eigent/package/@stackframe/stack-shared/dist/esm/interface/crud/users.js

139 lines
6.1 KiB
JavaScript

// src/interface/crud/users.ts
import { createCrud } from "../../crud";
import * as fieldSchema from "../../schema-fields";
import { teamsCrudServerReadSchema } from "./teams";
var usersCrudServerUpdateSchema = fieldSchema.yupObject({
display_name: fieldSchema.userDisplayNameSchema.optional(),
profile_image_url: fieldSchema.profileImageUrlSchema.nullable().optional(),
client_metadata: fieldSchema.userClientMetadataSchema.optional(),
client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema.optional(),
server_metadata: fieldSchema.userServerMetadataSchema.optional(),
primary_email: fieldSchema.primaryEmailSchema.nullable().optional().nonEmpty(),
primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.optional(),
primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.optional(),
passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.optional(),
password: fieldSchema.userPasswordMutationSchema.optional(),
password_hash: fieldSchema.userPasswordHashMutationSchema.optional(),
otp_auth_enabled: fieldSchema.userOtpAuthEnabledMutationSchema.optional(),
totp_secret_base64: fieldSchema.userTotpSecretMutationSchema.optional(),
selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),
is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional()
}).defined();
var usersCrudServerReadSchema = fieldSchema.yupObject({
id: fieldSchema.userIdSchema.defined(),
primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),
primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.defined(),
primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.defined(),
display_name: fieldSchema.userDisplayNameSchema.nullable().defined(),
selected_team: teamsCrudServerReadSchema.nullable().defined(),
selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().defined(),
profile_image_url: fieldSchema.profileImageUrlSchema.nullable().defined(),
signed_up_at_millis: fieldSchema.signedUpAtMillisSchema.defined(),
has_password: fieldSchema.userHasPasswordSchema.defined(),
otp_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),
passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),
client_metadata: fieldSchema.userClientMetadataSchema,
client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema,
server_metadata: fieldSchema.userServerMetadataSchema,
last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),
is_anonymous: fieldSchema.yupBoolean().defined(),
oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({
id: fieldSchema.yupString().defined(),
account_id: fieldSchema.yupString().defined(),
email: fieldSchema.yupString().nullable()
}).defined()).defined().meta({ openapiField: { hidden: true } }),
/**
* @deprecated
*/
auth_with_email: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: "Whether the user can authenticate with their primary e-mail. If set to true, the user can log-in with credentials and/or magic link, if enabled in the project settings.", exampleValue: true } }),
/**
* @deprecated
*/
requires_totp_mfa: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: "Whether the user is required to use TOTP MFA to sign in", exampleValue: false } })
}).defined();
var usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(["selected_team_id"]).concat(fieldSchema.yupObject({
oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({
id: fieldSchema.yupString().defined(),
account_id: fieldSchema.yupString().defined(),
email: fieldSchema.yupString().nullable().defined().default(null)
}).defined()).optional().meta({ openapiField: { hidden: true } }),
is_anonymous: fieldSchema.yupBoolean().optional()
}).defined());
var usersCrudServerDeleteSchema = fieldSchema.yupMixed();
var usersCrud = createCrud({
serverReadSchema: usersCrudServerReadSchema,
serverUpdateSchema: usersCrudServerUpdateSchema,
serverCreateSchema: usersCrudServerCreateSchema,
serverDeleteSchema: usersCrudServerDeleteSchema,
docs: {
serverCreate: {
tags: ["Users"],
summary: "Create user",
description: "Creates a new user. E-mail authentication is always enabled, and no password is set, meaning the only way to authenticate the newly created user is through magic link."
},
serverRead: {
tags: ["Users"],
summary: "Get user",
description: "Gets a user by user ID."
},
serverUpdate: {
tags: ["Users"],
summary: "Update user",
description: "Updates a user. Only the values provided will be updated."
},
serverDelete: {
tags: ["Users"],
summary: "Delete user",
description: "Deletes a user. Use this with caution."
},
serverList: {
tags: ["Users"],
summary: "List users",
description: "Lists all the users in the project."
}
}
});
var userCreatedWebhookEvent = {
type: "user.created",
schema: usersCrud.server.readSchema,
metadata: {
summary: "User Created",
description: "This event is triggered when a user is created.",
tags: ["Users"]
}
};
var userUpdatedWebhookEvent = {
type: "user.updated",
schema: usersCrud.server.readSchema,
metadata: {
summary: "User Updated",
description: "This event is triggered when a user is updated.",
tags: ["Users"]
}
};
var webhookUserDeletedSchema = fieldSchema.yupObject({
id: fieldSchema.userIdSchema.defined(),
teams: fieldSchema.yupArray(fieldSchema.yupObject({
id: fieldSchema.yupString().defined()
})).defined()
}).defined();
var userDeletedWebhookEvent = {
type: "user.deleted",
schema: webhookUserDeletedSchema,
metadata: {
summary: "User Deleted",
description: "This event is triggered when a user is deleted.",
tags: ["Users"]
}
};
export {
userCreatedWebhookEvent,
userDeletedWebhookEvent,
userUpdatedWebhookEvent,
usersCrud,
usersCrudServerCreateSchema,
usersCrudServerDeleteSchema,
usersCrudServerReadSchema,
usersCrudServerUpdateSchema
};
//# sourceMappingURL=users.js.map