@stackframe/stack-shared 2.8.64 → 2.8.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/config/db-sync-mappings.d.mts +17 -0
  2. package/dist/config/db-sync-mappings.d.ts +17 -0
  3. package/dist/config/db-sync-mappings.js +195 -0
  4. package/dist/config/db-sync-mappings.js.map +1 -0
  5. package/dist/config/schema-fuzzer.test.js +24 -0
  6. package/dist/config/schema-fuzzer.test.js.map +1 -1
  7. package/dist/config/schema.d.mts +198 -24
  8. package/dist/config/schema.d.ts +198 -24
  9. package/dist/config/schema.js +56 -3
  10. package/dist/config/schema.js.map +1 -1
  11. package/dist/esm/config/db-sync-mappings.js +170 -0
  12. package/dist/esm/config/db-sync-mappings.js.map +1 -0
  13. package/dist/esm/config/schema-fuzzer.test.js +24 -0
  14. package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
  15. package/dist/esm/config/schema.js +56 -3
  16. package/dist/esm/config/schema.js.map +1 -1
  17. package/dist/esm/interface/admin-interface.js.map +1 -1
  18. package/dist/esm/interface/client-interface.js.map +1 -1
  19. package/dist/esm/interface/crud/current-user.js +3 -1
  20. package/dist/esm/interface/crud/current-user.js.map +1 -1
  21. package/dist/esm/interface/crud/sign-up-rules.js +1 -0
  22. package/dist/esm/interface/crud/sign-up-rules.js.map +1 -0
  23. package/dist/esm/interface/crud/users.js +40 -6
  24. package/dist/esm/interface/crud/users.js.map +1 -1
  25. package/dist/esm/known-errors.js +13 -0
  26. package/dist/esm/known-errors.js.map +1 -1
  27. package/dist/esm/schema-fields.js +6 -4
  28. package/dist/esm/schema-fields.js.map +1 -1
  29. package/dist/esm/utils/types.js.map +1 -1
  30. package/dist/interface/admin-interface.d.mts +2 -4
  31. package/dist/interface/admin-interface.d.ts +2 -4
  32. package/dist/interface/admin-interface.js.map +1 -1
  33. package/dist/interface/client-interface.js.map +1 -1
  34. package/dist/interface/crud/current-user.d.mts +22 -2
  35. package/dist/interface/crud/current-user.d.ts +22 -2
  36. package/dist/interface/crud/current-user.js +3 -1
  37. package/dist/interface/crud/current-user.js.map +1 -1
  38. package/dist/interface/crud/project-api-keys.d.mts +2 -2
  39. package/dist/interface/crud/project-api-keys.d.ts +2 -2
  40. package/dist/interface/crud/sign-up-rules.d.mts +13 -0
  41. package/dist/interface/crud/sign-up-rules.d.ts +13 -0
  42. package/dist/interface/crud/sign-up-rules.js +19 -0
  43. package/dist/interface/crud/sign-up-rules.js.map +1 -0
  44. package/dist/interface/crud/team-member-profiles.d.mts +14 -2
  45. package/dist/interface/crud/team-member-profiles.d.ts +14 -2
  46. package/dist/interface/crud/users.d.mts +52 -4
  47. package/dist/interface/crud/users.d.ts +52 -4
  48. package/dist/interface/crud/users.js +40 -6
  49. package/dist/interface/crud/users.js.map +1 -1
  50. package/dist/interface/webhooks.d.mts +14 -2
  51. package/dist/interface/webhooks.d.ts +14 -2
  52. package/dist/known-errors.d.mts +5 -2
  53. package/dist/known-errors.d.ts +5 -2
  54. package/dist/known-errors.js +13 -0
  55. package/dist/known-errors.js.map +1 -1
  56. package/dist/schema-fields.d.mts +9 -3
  57. package/dist/schema-fields.d.ts +9 -3
  58. package/dist/schema-fields.js +7 -4
  59. package/dist/schema-fields.js.map +1 -1
  60. package/dist/sessions.d.mts +2 -2
  61. package/dist/sessions.d.ts +2 -2
  62. package/dist/utils/types.d.mts +2 -2
  63. package/dist/utils/types.d.ts +2 -2
  64. package/dist/utils/types.js.map +1 -1
  65. package/package.json +1 -1
@@ -58,8 +58,26 @@ var usersCrudServerUpdateSchema = fieldSchema.yupObject({
58
58
  otp_auth_enabled: fieldSchema.userOtpAuthEnabledMutationSchema.optional(),
59
59
  totp_secret_base64: fieldSchema.userTotpSecretMutationSchema.optional(),
60
60
  selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),
61
- is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional()
62
- }).defined();
61
+ is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional(),
62
+ restricted_by_admin: fieldSchema.yupBoolean().optional().meta({ openapiField: { description: "Whether the user is restricted by an administrator. Can be set manually or by sign-up rules.", exampleValue: false } }),
63
+ restricted_by_admin_reason: fieldSchema.yupString().nullable().optional().meta({ openapiField: { description: "Public reason shown to the user explaining why they are restricted. Optional.", exampleValue: null } }),
64
+ restricted_by_admin_private_details: fieldSchema.yupString().nullable().optional().meta({ openapiField: { description: "Private details about the restriction (e.g., which sign-up rule triggered). Only visible to server access and above.", exampleValue: null } })
65
+ }).defined().test(
66
+ "restricted_by_admin_consistency",
67
+ "When restricted_by_admin is not true, reason and private_details must be null",
68
+ function(value) {
69
+ if (value == null) return true;
70
+ if (value.restricted_by_admin !== true) {
71
+ if (value.restricted_by_admin_reason != null) {
72
+ return this.createError({ message: "restricted_by_admin_reason must be null when restricted_by_admin is not true" });
73
+ }
74
+ if (value.restricted_by_admin_private_details != null) {
75
+ return this.createError({ message: "restricted_by_admin_private_details must be null when restricted_by_admin is not true" });
76
+ }
77
+ }
78
+ return true;
79
+ }
80
+ );
63
81
  var usersCrudServerReadSchema = fieldSchema.yupObject({
64
82
  id: fieldSchema.userIdSchema.defined(),
65
83
  primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),
@@ -79,9 +97,10 @@ var usersCrudServerReadSchema = fieldSchema.yupObject({
79
97
  last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),
80
98
  is_anonymous: fieldSchema.yupBoolean().defined(),
81
99
  is_restricted: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: "Whether the user is in restricted state (has signed up but not completed onboarding requirements)", exampleValue: false } }),
82
- restricted_reason: fieldSchema.yupObject({
83
- type: fieldSchema.yupString().oneOf(fieldSchema.restrictedReasonTypes).defined()
84
- }).nullable().defined().meta({ openapiField: { description: 'The reason why the user is restricted (e.g., type: "email_not_verified" or "anonymous"), null if not restricted', exampleValue: null } }),
100
+ restricted_reason: fieldSchema.restrictedReasonSchema.nullable().defined().meta({ openapiField: { description: 'The reason why the user is restricted (e.g., type: "email_not_verified", "anonymous", or "restricted_by_administrator"), null if not restricted', exampleValue: null } }),
101
+ restricted_by_admin: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: "Whether the user is restricted by an administrator. Can be set manually or by sign-up rules.", exampleValue: false } }),
102
+ restricted_by_admin_reason: fieldSchema.yupString().nullable().defined().meta({ openapiField: { description: "Public reason shown to the user explaining why they are restricted. Optional.", exampleValue: null } }),
103
+ restricted_by_admin_private_details: fieldSchema.yupString().nullable().defined().meta({ openapiField: { description: "Private details about the restriction (e.g., which sign-up rule triggered). Only visible to server access and above.", exampleValue: null } }),
85
104
  oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({
86
105
  id: fieldSchema.yupString().defined(),
87
106
  account_id: fieldSchema.yupString().defined(),
@@ -98,7 +117,22 @@ var usersCrudServerReadSchema = fieldSchema.yupObject({
98
117
  }).defined().test("restricted_reason_iff_restricted", "restricted_reason must be present if and only if is_restricted is true", function(value) {
99
118
  if (value == null) return true;
100
119
  return value.is_restricted === !!value.restricted_reason;
101
- });
120
+ }).test(
121
+ "restricted_by_admin_consistency",
122
+ "When restricted_by_admin is not true, reason and private_details must be null",
123
+ function(value) {
124
+ if (value == null) return true;
125
+ if (value.restricted_by_admin !== true) {
126
+ if (value.restricted_by_admin_reason != null) {
127
+ return this.createError({ message: "restricted_by_admin_reason must be null when restricted_by_admin is not true" });
128
+ }
129
+ if (value.restricted_by_admin_private_details != null) {
130
+ return this.createError({ message: "restricted_by_admin_private_details must be null when restricted_by_admin is not true" });
131
+ }
132
+ }
133
+ return true;
134
+ }
135
+ );
102
136
  var usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(["selected_team_id"]).concat(fieldSchema.yupObject({
103
137
  oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({
104
138
  id: fieldSchema.yupString().defined(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interface/crud/users.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\nimport { WebhookEvent } from \"../webhooks\";\nimport { teamsCrudServerReadSchema } from \"./teams\";\n\nexport const usersCrudServerUpdateSchema = fieldSchema.yupObject({\n display_name: fieldSchema.userDisplayNameSchema.optional(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().optional(),\n client_metadata: fieldSchema.userClientMetadataSchema.optional(),\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema.optional(),\n server_metadata: fieldSchema.userServerMetadataSchema.optional(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().optional().nonEmpty(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.optional(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.optional(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.optional(),\n password: fieldSchema.userPasswordMutationSchema.optional(),\n password_hash: fieldSchema.userPasswordHashMutationSchema.optional(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledMutationSchema.optional(),\n totp_secret_base64: fieldSchema.userTotpSecretMutationSchema.optional(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),\n is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional(),\n}).defined();\n\nexport const usersCrudServerReadSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.defined(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.defined(),\n display_name: fieldSchema.userDisplayNameSchema.nullable().defined(),\n selected_team: teamsCrudServerReadSchema.nullable().defined(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().defined(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().defined(),\n signed_up_at_millis: fieldSchema.signedUpAtMillisSchema.defined(),\n has_password: fieldSchema.userHasPasswordSchema.defined(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n client_metadata: fieldSchema.userClientMetadataSchema,\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema,\n server_metadata: fieldSchema.userServerMetadataSchema,\n last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),\n is_anonymous: fieldSchema.yupBoolean().defined(),\n is_restricted: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: 'Whether the user is in restricted state (has signed up but not completed onboarding requirements)', exampleValue: false } }),\n restricted_reason: fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf(fieldSchema.restrictedReasonTypes).defined(),\n }).nullable().defined().meta({ openapiField: { description: 'The reason why the user is restricted (e.g., type: \"email_not_verified\" or \"anonymous\"), null if not restricted', exampleValue: null } }),\n\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable(),\n }).defined()).defined().meta({ openapiField: { hidden: true } }),\n\n /**\n * @deprecated\n */\n 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 } }),\n /**\n * @deprecated\n */\n 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 } }),\n}).defined().test(\"restricted_reason_iff_restricted\", \"restricted_reason must be present if and only if is_restricted is true\", function(this: yup.TestContext<any>, value: any) {\n if (value == null) return true;\n return value.is_restricted === !!value.restricted_reason;\n});\n\nexport const usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(['selected_team_id']).concat(fieldSchema.yupObject({\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable().defined().default(null),\n }).defined()).optional().meta({ openapiField: { hidden: true } }),\n is_anonymous: fieldSchema.yupBoolean().optional(),\n}).defined());\n\nexport const usersCrudServerDeleteSchema = fieldSchema.yupMixed();\n\nexport const usersCrud = createCrud({\n serverReadSchema: usersCrudServerReadSchema,\n serverUpdateSchema: usersCrudServerUpdateSchema,\n serverCreateSchema: usersCrudServerCreateSchema,\n serverDeleteSchema: usersCrudServerDeleteSchema,\n docs: {\n serverCreate: {\n tags: [\"Users\"],\n summary: 'Create user',\n 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.',\n },\n serverRead: {\n tags: [\"Users\"],\n summary: 'Get user',\n description: 'Gets a user by user ID.',\n },\n serverUpdate: {\n tags: [\"Users\"],\n summary: 'Update user',\n description: 'Updates a user. Only the values provided will be updated.',\n },\n serverDelete: {\n tags: [\"Users\"],\n summary: 'Delete user',\n description: 'Deletes a user. Use this with caution.',\n },\n serverList: {\n tags: [\"Users\"],\n summary: 'List users',\n description: 'Lists all the users in the project. By default, only fully onboarded users are returned. Restricted users (those who haven\\'t completed onboarding requirements like email verification) are included if `include_restricted` is set to `true`. Anonymous users are included if `include_anonymous` is set to `true` (which also includes restricted users).',\n },\n },\n});\nexport type UsersCrud = CrudTypeOf<typeof usersCrud>;\n\nexport const userCreatedWebhookEvent = {\n type: \"user.created\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Created\",\n description: \"This event is triggered when a user is created.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nexport const userUpdatedWebhookEvent = {\n type: \"user.updated\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Updated\",\n description: \"This event is triggered when a user is updated.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nconst webhookUserDeletedSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n teams: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n })).defined(),\n}).defined();\n\nexport const userDeletedWebhookEvent = {\n type: \"user.deleted\",\n schema: webhookUserDeletedSchema,\n metadata: {\n summary: \"User Deleted\",\n description: \"This event is triggered when a user is deleted.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof webhookUserDeletedSchema>;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/interface/crud/users.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\nimport { WebhookEvent } from \"../webhooks\";\nimport { teamsCrudServerReadSchema } from \"./teams\";\n\nexport const usersCrudServerUpdateSchema = fieldSchema.yupObject({\n display_name: fieldSchema.userDisplayNameSchema.optional(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().optional(),\n client_metadata: fieldSchema.userClientMetadataSchema.optional(),\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema.optional(),\n server_metadata: fieldSchema.userServerMetadataSchema.optional(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().optional().nonEmpty(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.optional(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.optional(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.optional(),\n password: fieldSchema.userPasswordMutationSchema.optional(),\n password_hash: fieldSchema.userPasswordHashMutationSchema.optional(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledMutationSchema.optional(),\n totp_secret_base64: fieldSchema.userTotpSecretMutationSchema.optional(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),\n is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional(),\n restricted_by_admin: fieldSchema.yupBoolean().optional().meta({ openapiField: { description: 'Whether the user is restricted by an administrator. Can be set manually or by sign-up rules.', exampleValue: false } }),\n restricted_by_admin_reason: fieldSchema.yupString().nullable().optional().meta({ openapiField: { description: 'Public reason shown to the user explaining why they are restricted. Optional.', exampleValue: null } }),\n restricted_by_admin_private_details: fieldSchema.yupString().nullable().optional().meta({ openapiField: { description: 'Private details about the restriction (e.g., which sign-up rule triggered). Only visible to server access and above.', exampleValue: null } }),\n}).defined().test(\n \"restricted_by_admin_consistency\",\n \"When restricted_by_admin is not true, reason and private_details must be null\",\n function(this: yup.TestContext<any>, value: any) {\n if (value == null) return true;\n // If restricted_by_admin is false or missing, both reason and private_details must be null\n if (value.restricted_by_admin !== true) {\n if (value.restricted_by_admin_reason != null) {\n return this.createError({ message: \"restricted_by_admin_reason must be null when restricted_by_admin is not true\" });\n }\n if (value.restricted_by_admin_private_details != null) {\n return this.createError({ message: \"restricted_by_admin_private_details must be null when restricted_by_admin is not true\" });\n }\n }\n return true;\n }\n);\n\nexport const usersCrudServerReadSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.defined(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.defined(),\n display_name: fieldSchema.userDisplayNameSchema.nullable().defined(),\n selected_team: teamsCrudServerReadSchema.nullable().defined(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().defined(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().defined(),\n signed_up_at_millis: fieldSchema.signedUpAtMillisSchema.defined(),\n has_password: fieldSchema.userHasPasswordSchema.defined(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n client_metadata: fieldSchema.userClientMetadataSchema,\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema,\n server_metadata: fieldSchema.userServerMetadataSchema,\n last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),\n is_anonymous: fieldSchema.yupBoolean().defined(),\n is_restricted: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: 'Whether the user is in restricted state (has signed up but not completed onboarding requirements)', exampleValue: false } }),\n restricted_reason: fieldSchema.restrictedReasonSchema.nullable().defined().meta({ openapiField: { description: 'The reason why the user is restricted (e.g., type: \"email_not_verified\", \"anonymous\", or \"restricted_by_administrator\"), null if not restricted', exampleValue: null } }),\n restricted_by_admin: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: 'Whether the user is restricted by an administrator. Can be set manually or by sign-up rules.', exampleValue: false } }),\n restricted_by_admin_reason: fieldSchema.yupString().nullable().defined().meta({ openapiField: { description: 'Public reason shown to the user explaining why they are restricted. Optional.', exampleValue: null } }),\n restricted_by_admin_private_details: fieldSchema.yupString().nullable().defined().meta({ openapiField: { description: 'Private details about the restriction (e.g., which sign-up rule triggered). Only visible to server access and above.', exampleValue: null } }),\n\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable(),\n }).defined()).defined().meta({ openapiField: { hidden: true } }),\n\n /**\n * @deprecated\n */\n 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 } }),\n /**\n * @deprecated\n */\n 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 } }),\n}).defined().test(\"restricted_reason_iff_restricted\", \"restricted_reason must be present if and only if is_restricted is true\", function(this: yup.TestContext<any>, value: any) {\n if (value == null) return true;\n return value.is_restricted === !!value.restricted_reason;\n}).test(\n \"restricted_by_admin_consistency\",\n \"When restricted_by_admin is not true, reason and private_details must be null\",\n function(this: yup.TestContext<any>, value: any) {\n if (value == null) return true;\n // If restricted_by_admin is false or missing, both reason and private_details must be null\n if (value.restricted_by_admin !== true) {\n if (value.restricted_by_admin_reason != null) {\n return this.createError({ message: \"restricted_by_admin_reason must be null when restricted_by_admin is not true\" });\n }\n if (value.restricted_by_admin_private_details != null) {\n return this.createError({ message: \"restricted_by_admin_private_details must be null when restricted_by_admin is not true\" });\n }\n }\n return true;\n }\n);\n\nexport const usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(['selected_team_id']).concat(fieldSchema.yupObject({\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable().defined().default(null),\n }).defined()).optional().meta({ openapiField: { hidden: true } }),\n is_anonymous: fieldSchema.yupBoolean().optional(),\n}).defined());\n\nexport const usersCrudServerDeleteSchema = fieldSchema.yupMixed();\n\nexport const usersCrud = createCrud({\n serverReadSchema: usersCrudServerReadSchema,\n serverUpdateSchema: usersCrudServerUpdateSchema,\n serverCreateSchema: usersCrudServerCreateSchema,\n serverDeleteSchema: usersCrudServerDeleteSchema,\n docs: {\n serverCreate: {\n tags: [\"Users\"],\n summary: 'Create user',\n 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.',\n },\n serverRead: {\n tags: [\"Users\"],\n summary: 'Get user',\n description: 'Gets a user by user ID.',\n },\n serverUpdate: {\n tags: [\"Users\"],\n summary: 'Update user',\n description: 'Updates a user. Only the values provided will be updated.',\n },\n serverDelete: {\n tags: [\"Users\"],\n summary: 'Delete user',\n description: 'Deletes a user. Use this with caution.',\n },\n serverList: {\n tags: [\"Users\"],\n summary: 'List users',\n description: 'Lists all the users in the project. By default, only fully onboarded users are returned. Restricted users (those who haven\\'t completed onboarding requirements like email verification) are included if `include_restricted` is set to `true`. Anonymous users are included if `include_anonymous` is set to `true` (which also includes restricted users).',\n },\n },\n});\nexport type UsersCrud = CrudTypeOf<typeof usersCrud>;\n\nexport const userCreatedWebhookEvent = {\n type: \"user.created\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Created\",\n description: \"This event is triggered when a user is created.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nexport const userUpdatedWebhookEvent = {\n type: \"user.updated\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Updated\",\n description: \"This event is triggered when a user is updated.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nconst webhookUserDeletedSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n teams: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n })).defined(),\n}).defined();\n\nexport const userDeletedWebhookEvent = {\n type: \"user.deleted\",\n schema: webhookUserDeletedSchema,\n metadata: {\n summary: \"User Deleted\",\n description: \"This event is triggered when a user is deleted.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof webhookUserDeletedSchema>;\n"],"mappings":"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","names":[]}
@@ -39,8 +39,11 @@ declare const webhookEvents: readonly [{
39
39
  is_anonymous: boolean;
40
40
  is_restricted: boolean;
41
41
  restricted_reason: {
42
- type: "anonymous" | "email_not_verified";
42
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
43
43
  } | null;
44
+ restricted_by_admin: boolean;
45
+ restricted_by_admin_reason: string | null;
46
+ restricted_by_admin_private_details: string | null;
44
47
  oauth_providers: {
45
48
  email?: string | null | undefined;
46
49
  id: string;
@@ -78,6 +81,9 @@ declare const webhookEvents: readonly [{
78
81
  restricted_reason: {
79
82
  type: undefined;
80
83
  };
84
+ restricted_by_admin: undefined;
85
+ restricted_by_admin_reason: undefined;
86
+ restricted_by_admin_private_details: undefined;
81
87
  oauth_providers: undefined;
82
88
  auth_with_email: undefined;
83
89
  requires_totp_mfa: undefined;
@@ -117,8 +123,11 @@ declare const webhookEvents: readonly [{
117
123
  is_anonymous: boolean;
118
124
  is_restricted: boolean;
119
125
  restricted_reason: {
120
- type: "anonymous" | "email_not_verified";
126
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
121
127
  } | null;
128
+ restricted_by_admin: boolean;
129
+ restricted_by_admin_reason: string | null;
130
+ restricted_by_admin_private_details: string | null;
122
131
  oauth_providers: {
123
132
  email?: string | null | undefined;
124
133
  id: string;
@@ -156,6 +165,9 @@ declare const webhookEvents: readonly [{
156
165
  restricted_reason: {
157
166
  type: undefined;
158
167
  };
168
+ restricted_by_admin: undefined;
169
+ restricted_by_admin_reason: undefined;
170
+ restricted_by_admin_private_details: undefined;
159
171
  oauth_providers: undefined;
160
172
  auth_with_email: undefined;
161
173
  requires_totp_mfa: undefined;
@@ -39,8 +39,11 @@ declare const webhookEvents: readonly [{
39
39
  is_anonymous: boolean;
40
40
  is_restricted: boolean;
41
41
  restricted_reason: {
42
- type: "anonymous" | "email_not_verified";
42
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
43
43
  } | null;
44
+ restricted_by_admin: boolean;
45
+ restricted_by_admin_reason: string | null;
46
+ restricted_by_admin_private_details: string | null;
44
47
  oauth_providers: {
45
48
  email?: string | null | undefined;
46
49
  id: string;
@@ -78,6 +81,9 @@ declare const webhookEvents: readonly [{
78
81
  restricted_reason: {
79
82
  type: undefined;
80
83
  };
84
+ restricted_by_admin: undefined;
85
+ restricted_by_admin_reason: undefined;
86
+ restricted_by_admin_private_details: undefined;
81
87
  oauth_providers: undefined;
82
88
  auth_with_email: undefined;
83
89
  requires_totp_mfa: undefined;
@@ -117,8 +123,11 @@ declare const webhookEvents: readonly [{
117
123
  is_anonymous: boolean;
118
124
  is_restricted: boolean;
119
125
  restricted_reason: {
120
- type: "anonymous" | "email_not_verified";
126
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
121
127
  } | null;
128
+ restricted_by_admin: boolean;
129
+ restricted_by_admin_reason: string | null;
130
+ restricted_by_admin_private_details: string | null;
122
131
  oauth_providers: {
123
132
  email?: string | null | undefined;
124
133
  id: string;
@@ -156,6 +165,9 @@ declare const webhookEvents: readonly [{
156
165
  restricted_reason: {
157
166
  type: undefined;
158
167
  };
168
+ restricted_by_admin: undefined;
169
+ restricted_by_admin_reason: undefined;
170
+ restricted_by_admin_private_details: undefined;
159
171
  oauth_providers: undefined;
160
172
  auth_with_email: undefined;
161
173
  requires_totp_mfa: undefined;
@@ -252,7 +252,7 @@ declare const KnownErrors: {
252
252
  errorCode: "USER_NOT_FOUND";
253
253
  };
254
254
  RestrictedUserNotAllowed: KnownErrorConstructor<KnownError & KnownErrorBrand<"RESTRICTED_USER_NOT_ALLOWED">, [restrictedReason: {
255
- type: "anonymous" | "email_not_verified";
255
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
256
256
  }]> & {
257
257
  errorCode: "RESTRICTED_USER_NOT_ALLOWED";
258
258
  };
@@ -278,6 +278,9 @@ declare const KnownErrors: {
278
278
  SignUpNotEnabled: KnownErrorConstructor<KnownError & KnownErrorBrand<"SIGN_UP_NOT_ENABLED">, []> & {
279
279
  errorCode: "SIGN_UP_NOT_ENABLED";
280
280
  };
281
+ SignUpRejected: KnownErrorConstructor<KnownError & KnownErrorBrand<"SIGN_UP_REJECTED">, [message?: string | undefined]> & {
282
+ errorCode: "SIGN_UP_REJECTED";
283
+ };
281
284
  PasswordAuthenticationNotEnabled: KnownErrorConstructor<KnownError & KnownErrorBrand<"PASSWORD_AUTHENTICATION_NOT_ENABLED">, []> & {
282
285
  errorCode: "PASSWORD_AUTHENTICATION_NOT_ENABLED";
283
286
  };
@@ -372,7 +375,7 @@ declare const KnownErrors: {
372
375
  errorCode: "TEAM_MEMBERSHIP_NOT_FOUND";
373
376
  };
374
377
  TeamInvitationRestrictedUserNotAllowed: KnownErrorConstructor<KnownError & KnownErrorBrand<"TEAM_INVITATION_RESTRICTED_USER_NOT_ALLOWED">, [restrictedReason: {
375
- type: "anonymous" | "email_not_verified";
378
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
376
379
  }]> & {
377
380
  errorCode: "TEAM_INVITATION_RESTRICTED_USER_NOT_ALLOWED";
378
381
  };
@@ -252,7 +252,7 @@ declare const KnownErrors: {
252
252
  errorCode: "USER_NOT_FOUND";
253
253
  };
254
254
  RestrictedUserNotAllowed: KnownErrorConstructor<KnownError & KnownErrorBrand<"RESTRICTED_USER_NOT_ALLOWED">, [restrictedReason: {
255
- type: "anonymous" | "email_not_verified";
255
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
256
256
  }]> & {
257
257
  errorCode: "RESTRICTED_USER_NOT_ALLOWED";
258
258
  };
@@ -278,6 +278,9 @@ declare const KnownErrors: {
278
278
  SignUpNotEnabled: KnownErrorConstructor<KnownError & KnownErrorBrand<"SIGN_UP_NOT_ENABLED">, []> & {
279
279
  errorCode: "SIGN_UP_NOT_ENABLED";
280
280
  };
281
+ SignUpRejected: KnownErrorConstructor<KnownError & KnownErrorBrand<"SIGN_UP_REJECTED">, [message?: string | undefined]> & {
282
+ errorCode: "SIGN_UP_REJECTED";
283
+ };
281
284
  PasswordAuthenticationNotEnabled: KnownErrorConstructor<KnownError & KnownErrorBrand<"PASSWORD_AUTHENTICATION_NOT_ENABLED">, []> & {
282
285
  errorCode: "PASSWORD_AUTHENTICATION_NOT_ENABLED";
283
286
  };
@@ -372,7 +375,7 @@ declare const KnownErrors: {
372
375
  errorCode: "TEAM_MEMBERSHIP_NOT_FOUND";
373
376
  };
374
377
  TeamInvitationRestrictedUserNotAllowed: KnownErrorConstructor<KnownError & KnownErrorBrand<"TEAM_INVITATION_RESTRICTED_USER_NOT_ALLOWED">, [restrictedReason: {
375
- type: "anonymous" | "email_not_verified";
378
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
376
379
  }]> & {
377
380
  errorCode: "TEAM_INVITATION_RESTRICTED_USER_NOT_ALLOWED";
378
381
  };
@@ -587,6 +587,18 @@ var SignUpNotEnabled = createKnownErrorConstructor(
587
587
  ],
588
588
  () => []
589
589
  );
590
+ var SignUpRejected = createKnownErrorConstructor(
591
+ KnownError,
592
+ "SIGN_UP_REJECTED",
593
+ (message) => [
594
+ 403,
595
+ message ?? "Your sign up was rejected. Please contact us for more information.",
596
+ {
597
+ message: message ?? "Your sign up was rejected. Please contact us for more information."
598
+ }
599
+ ],
600
+ (json) => [json.message]
601
+ );
590
602
  var PasswordAuthenticationNotEnabled = createKnownErrorConstructor(
591
603
  KnownError,
592
604
  "PASSWORD_AUTHENTICATION_NOT_ENABLED",
@@ -1563,6 +1575,7 @@ var KnownErrors = {
1563
1575
  CurrentProjectNotFound,
1564
1576
  BranchDoesNotExist,
1565
1577
  SignUpNotEnabled,
1578
+ SignUpRejected,
1566
1579
  PasswordAuthenticationNotEnabled,
1567
1580
  PasskeyAuthenticationNotEnabled,
1568
1581
  AnonymousAccountsNotEnabled,