@logto/schemas 1.30.1 → 1.32.0

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 (50) hide show
  1. package/alterations/1.31.0-1753689065-add-forgot-password-methods-to-sie-table.ts +20 -0
  2. package/alterations/1.32.0-1756370721-align-app-and-org-sign-in-exp-configs.ts +28 -0
  3. package/alterations/1.32.0-1756954492-add-default-to-forgot-password-methods.ts +35 -0
  4. package/alterations/1.32.0-1759041888-add-tenant-date-index-to-daily-active-users-table.ts +18 -0
  5. package/alterations-js/1.31.0-1753689065-add-forgot-password-methods-to-sie-table.js +16 -0
  6. package/alterations-js/1.32.0-1756370721-align-app-and-org-sign-in-exp-configs.js +24 -0
  7. package/alterations-js/1.32.0-1756954492-add-default-to-forgot-password-methods.js +29 -0
  8. package/alterations-js/1.32.0-1759041888-add-tenant-date-index-to-daily-active-users-table.js +15 -0
  9. package/lib/consts/oidc.d.ts +11 -0
  10. package/lib/consts/oidc.js +8 -0
  11. package/lib/consts/subscriptions.d.ts +8 -2
  12. package/lib/consts/subscriptions.js +7 -1
  13. package/lib/db-entries/application-sign-in-experience.d.ts +3 -1
  14. package/lib/db-entries/application-sign-in-experience.js +4 -0
  15. package/lib/db-entries/organization.d.ts +10 -2
  16. package/lib/db-entries/organization.js +9 -1
  17. package/lib/db-entries/sign-in-experience.d.ts +4 -2
  18. package/lib/db-entries/sign-in-experience.js +5 -1
  19. package/lib/foundations/jsonb-types/custom-profile-fields.d.ts +73 -50
  20. package/lib/foundations/jsonb-types/custom-profile-fields.js +3 -2
  21. package/lib/foundations/jsonb-types/sign-in-experience.d.ts +6 -0
  22. package/lib/foundations/jsonb-types/sign-in-experience.js +6 -0
  23. package/lib/foundations/jsonb-types/users.d.ts +9 -94
  24. package/lib/foundations/jsonb-types/users.js +1 -11
  25. package/lib/types/application.d.ts +3 -0
  26. package/lib/types/consent.d.ts +25 -40
  27. package/lib/types/cookie.d.ts +4 -0
  28. package/lib/types/cookie.js +1 -1
  29. package/lib/types/custom-profile-fields.d.ts +391 -376
  30. package/lib/types/custom-profile-fields.js +42 -23
  31. package/lib/types/interactions.d.ts +6 -120
  32. package/lib/types/interactions.js +1 -31
  33. package/lib/types/logto-config/index.d.ts +64 -40
  34. package/lib/types/logto-config/jwt-customizer.d.ts +134 -90
  35. package/lib/types/mfa.d.ts +2 -2
  36. package/lib/types/sign-in-experience.d.ts +9 -8
  37. package/lib/types/sign-in-experience.js +4 -3
  38. package/lib/types/ssr.d.ts +1 -0
  39. package/lib/types/user.d.ts +6 -60
  40. package/lib/types/verification-records/code-verification.d.ts +73 -1
  41. package/lib/types/verification-records/code-verification.js +14 -0
  42. package/lib/types/verification-records/verification-type.d.ts +2 -0
  43. package/lib/types/verification-records/verification-type.js +2 -0
  44. package/lib/types/verification-records/web-authn-verification.d.ts +16 -2
  45. package/lib/types/verification-records/web-authn-verification.js +2 -0
  46. package/package.json +6 -6
  47. package/tables/application_sign_in_experiences.sql +1 -0
  48. package/tables/daily_active_users.sql +3 -0
  49. package/tables/organizations.sql +4 -0
  50. package/tables/sign_in_experiences.sql +1 -0
@@ -0,0 +1,20 @@
1
+ import { sql } from '@silverhand/slonik';
2
+
3
+ import type { AlterationScript } from '../lib/types/alteration.js';
4
+
5
+ const alteration: AlterationScript = {
6
+ up: async (pool) => {
7
+ await pool.query(sql`
8
+ alter table sign_in_experiences
9
+ add column forgot_password_methods jsonb;
10
+ `);
11
+ },
12
+ down: async (pool) => {
13
+ await pool.query(sql`
14
+ alter table sign_in_experiences
15
+ drop column forgot_password_methods;
16
+ `);
17
+ },
18
+ };
19
+
20
+ export default alteration;
@@ -0,0 +1,28 @@
1
+ import { sql } from '@silverhand/slonik';
2
+
3
+ import type { AlterationScript } from '../lib/types/alteration.js';
4
+
5
+ const alteration: AlterationScript = {
6
+ up: async (pool) => {
7
+ await pool.query(sql`
8
+ alter table organizations
9
+ add column color jsonb not null default '{}'::jsonb,
10
+ add column custom_css text;
11
+ `);
12
+ await pool.query(sql`
13
+ alter table application_sign_in_experiences add column custom_css text;
14
+ `);
15
+ },
16
+ down: async (pool) => {
17
+ await pool.query(sql`
18
+ alter table organizations
19
+ drop column color,
20
+ drop column custom_css;
21
+ `);
22
+ await pool.query(sql`
23
+ alter table application_sign_in_experiences drop column custom_css;
24
+ `);
25
+ },
26
+ };
27
+
28
+ export default alteration;
@@ -0,0 +1,35 @@
1
+ import { sql } from '@silverhand/slonik';
2
+
3
+ import type { AlterationScript } from '../lib/types/alteration.js';
4
+
5
+ const alteration: AlterationScript = {
6
+ up: async (pool) => {
7
+ // Set default value for new rows, but keep the column nullable
8
+ // to preserve existing null values as migration markers
9
+ await pool.query(sql`
10
+ alter table sign_in_experiences
11
+ alter column forgot_password_methods set default '[]'::jsonb;
12
+ `);
13
+
14
+ // Update default and admin tenant to [], bypass the alter comparison
15
+ await pool.query(sql`
16
+ update sign_in_experiences
17
+ set forgot_password_methods = '[]'::jsonb
18
+ where forgot_password_methods is null and (tenant_id = 'admin' or tenant_id = 'default');
19
+ `);
20
+ },
21
+ down: async (pool) => {
22
+ await pool.query(sql`
23
+ alter table sign_in_experiences
24
+ alter column forgot_password_methods drop default;
25
+ `);
26
+
27
+ await pool.query(sql`
28
+ update sign_in_experiences
29
+ set forgot_password_methods = null
30
+ where forgot_password_methods = '[]'::jsonb and (tenant_id = 'admin' or tenant_id = 'default');
31
+ `);
32
+ },
33
+ };
34
+
35
+ export default alteration;
@@ -0,0 +1,18 @@
1
+ import { sql } from '@silverhand/slonik';
2
+
3
+ import type { AlterationScript } from '../lib/types/alteration.js';
4
+
5
+ const alteration: AlterationScript = {
6
+ up: async (pool) => {
7
+ await pool.query(sql`
8
+ create index daily_active_users__date
9
+ on daily_active_users (tenant_id, date);
10
+ `);
11
+ },
12
+ down: async (pool) => {
13
+ await pool.query(sql`
14
+ drop index daily_active_users__date;
15
+ `);
16
+ },
17
+ };
18
+ export default alteration;
@@ -0,0 +1,16 @@
1
+ import { sql } from '@silverhand/slonik';
2
+ const alteration = {
3
+ up: async (pool) => {
4
+ await pool.query(sql `
5
+ alter table sign_in_experiences
6
+ add column forgot_password_methods jsonb;
7
+ `);
8
+ },
9
+ down: async (pool) => {
10
+ await pool.query(sql `
11
+ alter table sign_in_experiences
12
+ drop column forgot_password_methods;
13
+ `);
14
+ },
15
+ };
16
+ export default alteration;
@@ -0,0 +1,24 @@
1
+ import { sql } from '@silverhand/slonik';
2
+ const alteration = {
3
+ up: async (pool) => {
4
+ await pool.query(sql `
5
+ alter table organizations
6
+ add column color jsonb not null default '{}'::jsonb,
7
+ add column custom_css text;
8
+ `);
9
+ await pool.query(sql `
10
+ alter table application_sign_in_experiences add column custom_css text;
11
+ `);
12
+ },
13
+ down: async (pool) => {
14
+ await pool.query(sql `
15
+ alter table organizations
16
+ drop column color,
17
+ drop column custom_css;
18
+ `);
19
+ await pool.query(sql `
20
+ alter table application_sign_in_experiences drop column custom_css;
21
+ `);
22
+ },
23
+ };
24
+ export default alteration;
@@ -0,0 +1,29 @@
1
+ import { sql } from '@silverhand/slonik';
2
+ const alteration = {
3
+ up: async (pool) => {
4
+ // Set default value for new rows, but keep the column nullable
5
+ // to preserve existing null values as migration markers
6
+ await pool.query(sql `
7
+ alter table sign_in_experiences
8
+ alter column forgot_password_methods set default '[]'::jsonb;
9
+ `);
10
+ // Update default and admin tenant to [], bypass the alter comparison
11
+ await pool.query(sql `
12
+ update sign_in_experiences
13
+ set forgot_password_methods = '[]'::jsonb
14
+ where forgot_password_methods is null and (tenant_id = 'admin' or tenant_id = 'default');
15
+ `);
16
+ },
17
+ down: async (pool) => {
18
+ await pool.query(sql `
19
+ alter table sign_in_experiences
20
+ alter column forgot_password_methods drop default;
21
+ `);
22
+ await pool.query(sql `
23
+ update sign_in_experiences
24
+ set forgot_password_methods = null
25
+ where forgot_password_methods = '[]'::jsonb and (tenant_id = 'admin' or tenant_id = 'default');
26
+ `);
27
+ },
28
+ };
29
+ export default alteration;
@@ -0,0 +1,15 @@
1
+ import { sql } from '@silverhand/slonik';
2
+ const alteration = {
3
+ up: async (pool) => {
4
+ await pool.query(sql `
5
+ create index daily_active_users__date
6
+ on daily_active_users (tenant_id, date);
7
+ `);
8
+ },
9
+ down: async (pool) => {
10
+ await pool.query(sql `
11
+ drop index daily_active_users__date;
12
+ `);
13
+ },
14
+ };
15
+ export default alteration;
@@ -38,6 +38,13 @@ export declare enum ExtraParamsKey {
38
38
  * This can be used to pre-fill the identifier field **only on the first screen** of the sign-in/sign-up flow.
39
39
  */
40
40
  LoginHint = "login_hint",
41
+ /**
42
+ * The end-users preferred languages to use for the client application, represented as a space-separated list of BCP47 language tags.
43
+ * E.g. `en` or `en-US` or `en-US en`.
44
+ *
45
+ * @see {@link https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.13.2.1}
46
+ */
47
+ UiLocales = "ui_locales",
41
48
  /**
42
49
  * Specifies the identifier used in the identifier sign-in or identifier register page.
43
50
  *
@@ -80,6 +87,7 @@ export declare const extraParamsObjectGuard: z.ZodObject<{
80
87
  direct_sign_in: z.ZodOptional<z.ZodString>;
81
88
  organization_id: z.ZodOptional<z.ZodString>;
82
89
  login_hint: z.ZodOptional<z.ZodString>;
90
+ ui_locales: z.ZodOptional<z.ZodString>;
83
91
  identifier: z.ZodOptional<z.ZodString>;
84
92
  one_time_token: z.ZodOptional<z.ZodString>;
85
93
  google_one_tap_credential: z.ZodOptional<z.ZodString>;
@@ -89,6 +97,7 @@ export declare const extraParamsObjectGuard: z.ZodObject<{
89
97
  direct_sign_in?: string | undefined;
90
98
  organization_id?: string | undefined;
91
99
  login_hint?: string | undefined;
100
+ ui_locales?: string | undefined;
92
101
  identifier?: string | undefined;
93
102
  one_time_token?: string | undefined;
94
103
  google_one_tap_credential?: string | undefined;
@@ -98,6 +107,7 @@ export declare const extraParamsObjectGuard: z.ZodObject<{
98
107
  direct_sign_in?: string | undefined;
99
108
  organization_id?: string | undefined;
100
109
  login_hint?: string | undefined;
110
+ ui_locales?: string | undefined;
101
111
  identifier?: string | undefined;
102
112
  one_time_token?: string | undefined;
103
113
  google_one_tap_credential?: string | undefined;
@@ -108,6 +118,7 @@ export type ExtraParamsObject = Partial<{
108
118
  [ExtraParamsKey.DirectSignIn]: string;
109
119
  [ExtraParamsKey.OrganizationId]: string;
110
120
  [ExtraParamsKey.LoginHint]: string;
121
+ [ExtraParamsKey.UiLocales]: string;
111
122
  [ExtraParamsKey.Identifier]: string;
112
123
  [ExtraParamsKey.OneTimeToken]: string;
113
124
  [ExtraParamsKey.GoogleOneTapCredential]: string;
@@ -40,6 +40,13 @@ export var ExtraParamsKey;
40
40
  * This can be used to pre-fill the identifier field **only on the first screen** of the sign-in/sign-up flow.
41
41
  */
42
42
  ExtraParamsKey["LoginHint"] = "login_hint";
43
+ /**
44
+ * The end-users preferred languages to use for the client application, represented as a space-separated list of BCP47 language tags.
45
+ * E.g. `en` or `en-US` or `en-US en`.
46
+ *
47
+ * @see {@link https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.13.2.1}
48
+ */
49
+ ExtraParamsKey["UiLocales"] = "ui_locales";
43
50
  /**
44
51
  * Specifies the identifier used in the identifier sign-in or identifier register page.
45
52
  *
@@ -85,6 +92,7 @@ export const extraParamsObjectGuard = z
85
92
  [ExtraParamsKey.DirectSignIn]: z.string(),
86
93
  [ExtraParamsKey.OrganizationId]: z.string(),
87
94
  [ExtraParamsKey.LoginHint]: z.string(),
95
+ [ExtraParamsKey.UiLocales]: z.string(),
88
96
  [ExtraParamsKey.Identifier]: z.string(),
89
97
  [ExtraParamsKey.OneTimeToken]: z.string(),
90
98
  [ExtraParamsKey.GoogleOneTapCredential]: z.string(),
@@ -19,9 +19,15 @@ export declare enum ReservedPlanId {
19
19
  */
20
20
  Admin = "admin",
21
21
  /**
22
- * The latest Pro plan ID applied from 2024-11.
22
+ * @deprecated
23
+ * Grandfathered Pro plan ID deprecated from 2025-09.
24
+ * Use {@link Pro202509} instead.
25
+ */
26
+ Pro202411 = "pro-202411",
27
+ /**
28
+ * Latest Pro plan ID applied from 2025-09.
23
29
  */
24
- Pro202411 = "pro-202411"
30
+ Pro202509 = "pro-202509"
25
31
  }
26
32
  /**
27
33
  * Tenant subscription related Redis cache keys.
@@ -20,9 +20,15 @@ export var ReservedPlanId;
20
20
  */
21
21
  ReservedPlanId["Admin"] = "admin";
22
22
  /**
23
- * The latest Pro plan ID applied from 2024-11.
23
+ * @deprecated
24
+ * Grandfathered Pro plan ID deprecated from 2025-09.
25
+ * Use {@link Pro202509} instead.
24
26
  */
25
27
  ReservedPlanId["Pro202411"] = "pro-202411";
28
+ /**
29
+ * Latest Pro plan ID applied from 2025-09.
30
+ */
31
+ ReservedPlanId["Pro202509"] = "pro-202509";
26
32
  })(ReservedPlanId || (ReservedPlanId = {}));
27
33
  /**
28
34
  * Tenant subscription related Redis cache keys.
@@ -10,6 +10,7 @@ export type CreateApplicationSignInExperience = {
10
10
  applicationId: string;
11
11
  color?: PartialColor;
12
12
  branding?: Branding;
13
+ customCss?: string | null;
13
14
  termsOfUseUrl?: string | null;
14
15
  privacyPolicyUrl?: string | null;
15
16
  displayName?: string | null;
@@ -20,9 +21,10 @@ export type ApplicationSignInExperience = {
20
21
  applicationId: string;
21
22
  color: PartialColor;
22
23
  branding: Branding;
24
+ customCss: string | null;
23
25
  termsOfUseUrl: string | null;
24
26
  privacyPolicyUrl: string | null;
25
27
  displayName: string | null;
26
28
  };
27
- export type ApplicationSignInExperienceKeys = 'tenantId' | 'applicationId' | 'color' | 'branding' | 'termsOfUseUrl' | 'privacyPolicyUrl' | 'displayName';
29
+ export type ApplicationSignInExperienceKeys = 'tenantId' | 'applicationId' | 'color' | 'branding' | 'customCss' | 'termsOfUseUrl' | 'privacyPolicyUrl' | 'displayName';
28
30
  export declare const ApplicationSignInExperiences: GeneratedSchema<ApplicationSignInExperienceKeys, CreateApplicationSignInExperience, ApplicationSignInExperience, 'application_sign_in_experiences', 'application_sign_in_experience'>;
@@ -6,6 +6,7 @@ const createGuard = z.object({
6
6
  applicationId: z.string().min(1).max(21),
7
7
  color: partialColorGuard.optional(),
8
8
  branding: brandingGuard.optional(),
9
+ customCss: z.string().nullable().optional(),
9
10
  termsOfUseUrl: z.string().max(2048).nullable().optional(),
10
11
  privacyPolicyUrl: z.string().max(2048).nullable().optional(),
11
12
  displayName: z.string().max(256).nullable().optional(),
@@ -15,6 +16,7 @@ const guard = z.object({
15
16
  applicationId: z.string().min(1).max(21),
16
17
  color: partialColorGuard,
17
18
  branding: brandingGuard,
19
+ customCss: z.string().nullable(),
18
20
  termsOfUseUrl: z.string().max(2048).nullable(),
19
21
  privacyPolicyUrl: z.string().max(2048).nullable(),
20
22
  displayName: z.string().max(256).nullable(),
@@ -27,6 +29,7 @@ export const ApplicationSignInExperiences = Object.freeze({
27
29
  applicationId: 'application_id',
28
30
  color: 'color',
29
31
  branding: 'branding',
32
+ customCss: 'custom_css',
30
33
  termsOfUseUrl: 'terms_of_use_url',
31
34
  privacyPolicyUrl: 'privacy_policy_url',
32
35
  displayName: 'display_name',
@@ -36,6 +39,7 @@ export const ApplicationSignInExperiences = Object.freeze({
36
39
  'applicationId',
37
40
  'color',
38
41
  'branding',
42
+ 'customCss',
39
43
  'termsOfUseUrl',
40
44
  'privacyPolicyUrl',
41
45
  'displayName',
@@ -1,4 +1,4 @@
1
- import { JsonObject, Branding, GeneratedSchema } from './../foundations/index.js';
1
+ import { JsonObject, PartialColor, Branding, GeneratedSchema } from './../foundations/index.js';
2
2
  /**
3
3
  * Organizations defined by [RFC 0001](https://github.com/logto-io/rfcs/blob/HEAD/active/0001-organization.md).
4
4
  *
@@ -17,8 +17,12 @@ export type CreateOrganization = {
17
17
  customData?: JsonObject;
18
18
  /** Whether multi-factor authentication configuration is required for the members of the organization. */
19
19
  isMfaRequired?: boolean;
20
+ /** The organization's branding color configuration. */
21
+ color?: PartialColor;
20
22
  /** The organization's branding configuration. */
21
23
  branding?: Branding;
24
+ /** The custom CSS of the organization. */
25
+ customCss?: string | null;
22
26
  /** When the organization was created. */
23
27
  createdAt?: number;
24
28
  };
@@ -35,10 +39,14 @@ export type Organization = {
35
39
  customData: JsonObject;
36
40
  /** Whether multi-factor authentication configuration is required for the members of the organization. */
37
41
  isMfaRequired: boolean;
42
+ /** The organization's branding color configuration. */
43
+ color: PartialColor;
38
44
  /** The organization's branding configuration. */
39
45
  branding: Branding;
46
+ /** The custom CSS of the organization. */
47
+ customCss: string | null;
40
48
  /** When the organization was created. */
41
49
  createdAt: number;
42
50
  };
43
- export type OrganizationKeys = 'tenantId' | 'id' | 'name' | 'description' | 'customData' | 'isMfaRequired' | 'branding' | 'createdAt';
51
+ export type OrganizationKeys = 'tenantId' | 'id' | 'name' | 'description' | 'customData' | 'isMfaRequired' | 'color' | 'branding' | 'customCss' | 'createdAt';
44
52
  export declare const Organizations: GeneratedSchema<OrganizationKeys, CreateOrganization, Organization, 'organizations', 'organization'>;
@@ -1,6 +1,6 @@
1
1
  // THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
2
  import { z } from 'zod';
3
- import { jsonObjectGuard, brandingGuard } from './../foundations/index.js';
3
+ import { jsonObjectGuard, partialColorGuard, brandingGuard } from './../foundations/index.js';
4
4
  const createGuard = z.object({
5
5
  tenantId: z.string().max(21).optional(),
6
6
  id: z.string().min(1).max(21),
@@ -8,7 +8,9 @@ const createGuard = z.object({
8
8
  description: z.string().max(256).nullable().optional(),
9
9
  customData: jsonObjectGuard.optional(),
10
10
  isMfaRequired: z.boolean().optional(),
11
+ color: partialColorGuard.optional(),
11
12
  branding: brandingGuard.optional(),
13
+ customCss: z.string().nullable().optional(),
12
14
  createdAt: z.number().optional(),
13
15
  });
14
16
  const guard = z.object({
@@ -18,7 +20,9 @@ const guard = z.object({
18
20
  description: z.string().max(256).nullable(),
19
21
  customData: jsonObjectGuard,
20
22
  isMfaRequired: z.boolean(),
23
+ color: partialColorGuard,
21
24
  branding: brandingGuard,
25
+ customCss: z.string().nullable(),
22
26
  createdAt: z.number(),
23
27
  });
24
28
  export const Organizations = Object.freeze({
@@ -31,7 +35,9 @@ export const Organizations = Object.freeze({
31
35
  description: 'description',
32
36
  customData: 'custom_data',
33
37
  isMfaRequired: 'is_mfa_required',
38
+ color: 'color',
34
39
  branding: 'branding',
40
+ customCss: 'custom_css',
35
41
  createdAt: 'created_at',
36
42
  },
37
43
  fieldKeys: [
@@ -41,7 +47,9 @@ export const Organizations = Object.freeze({
41
47
  'description',
42
48
  'customData',
43
49
  'isMfaRequired',
50
+ 'color',
44
51
  'branding',
52
+ 'customCss',
45
53
  'createdAt',
46
54
  ],
47
55
  createGuard,
@@ -1,4 +1,4 @@
1
- import { Color, Branding, LanguageInfo, SignIn, SignUp, SocialSignIn, ConnectorTargets, CustomContent, CustomUiAssets, PartialPasswordPolicy, Mfa, CaptchaPolicy, SentinelPolicy, EmailBlocklistPolicy, GeneratedSchema } from './../foundations/index.js';
1
+ import { Color, Branding, LanguageInfo, SignIn, SignUp, SocialSignIn, ConnectorTargets, CustomContent, CustomUiAssets, PartialPasswordPolicy, Mfa, CaptchaPolicy, SentinelPolicy, EmailBlocklistPolicy, ForgotPasswordMethods, GeneratedSchema } from './../foundations/index.js';
2
2
  import { AgreeToTermsPolicy, SignInMode } from './custom-types.js';
3
3
  /**
4
4
  *
@@ -32,6 +32,7 @@ export type CreateSignInExperience = {
32
32
  captchaPolicy?: CaptchaPolicy;
33
33
  sentinelPolicy?: SentinelPolicy;
34
34
  emailBlocklistPolicy?: EmailBlocklistPolicy;
35
+ forgotPasswordMethods?: ForgotPasswordMethods | null;
35
36
  };
36
37
  export type SignInExperience = {
37
38
  tenantId: string;
@@ -60,6 +61,7 @@ export type SignInExperience = {
60
61
  captchaPolicy: CaptchaPolicy;
61
62
  sentinelPolicy: SentinelPolicy;
62
63
  emailBlocklistPolicy: EmailBlocklistPolicy;
64
+ forgotPasswordMethods: ForgotPasswordMethods | null;
63
65
  };
64
- export type SignInExperienceKeys = 'tenantId' | 'id' | 'color' | 'branding' | 'languageInfo' | 'termsOfUseUrl' | 'privacyPolicyUrl' | 'agreeToTermsPolicy' | 'signIn' | 'signUp' | 'socialSignIn' | 'socialSignInConnectorTargets' | 'signInMode' | 'customCss' | 'customContent' | 'customUiAssets' | 'passwordPolicy' | 'mfa' | 'singleSignOnEnabled' | 'supportEmail' | 'supportWebsiteUrl' | 'unknownSessionRedirectUrl' | 'captchaPolicy' | 'sentinelPolicy' | 'emailBlocklistPolicy';
66
+ export type SignInExperienceKeys = 'tenantId' | 'id' | 'color' | 'branding' | 'languageInfo' | 'termsOfUseUrl' | 'privacyPolicyUrl' | 'agreeToTermsPolicy' | 'signIn' | 'signUp' | 'socialSignIn' | 'socialSignInConnectorTargets' | 'signInMode' | 'customCss' | 'customContent' | 'customUiAssets' | 'passwordPolicy' | 'mfa' | 'singleSignOnEnabled' | 'supportEmail' | 'supportWebsiteUrl' | 'unknownSessionRedirectUrl' | 'captchaPolicy' | 'sentinelPolicy' | 'emailBlocklistPolicy' | 'forgotPasswordMethods';
65
67
  export declare const SignInExperiences: GeneratedSchema<SignInExperienceKeys, CreateSignInExperience, SignInExperience, 'sign_in_experiences', 'sign_in_experience'>;
@@ -1,6 +1,6 @@
1
1
  // THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
2
  import { z } from 'zod';
3
- import { colorGuard, brandingGuard, languageInfoGuard, signInGuard, signUpGuard, socialSignInGuard, connectorTargetsGuard, customContentGuard, customUiAssetsGuard, partialPasswordPolicyGuard, mfaGuard, captchaPolicyGuard, sentinelPolicyGuard, emailBlocklistPolicyGuard } from './../foundations/index.js';
3
+ import { colorGuard, brandingGuard, languageInfoGuard, signInGuard, signUpGuard, socialSignInGuard, connectorTargetsGuard, customContentGuard, customUiAssetsGuard, partialPasswordPolicyGuard, mfaGuard, captchaPolicyGuard, sentinelPolicyGuard, emailBlocklistPolicyGuard, forgotPasswordMethodsGuard } from './../foundations/index.js';
4
4
  import { AgreeToTermsPolicy, SignInMode } from './custom-types.js';
5
5
  const createGuard = z.object({
6
6
  tenantId: z.string().max(21).optional(),
@@ -28,6 +28,7 @@ const createGuard = z.object({
28
28
  captchaPolicy: captchaPolicyGuard.optional(),
29
29
  sentinelPolicy: sentinelPolicyGuard.optional(),
30
30
  emailBlocklistPolicy: emailBlocklistPolicyGuard.optional(),
31
+ forgotPasswordMethods: forgotPasswordMethodsGuard.nullable().optional(),
31
32
  });
32
33
  const guard = z.object({
33
34
  tenantId: z.string().max(21),
@@ -55,6 +56,7 @@ const guard = z.object({
55
56
  captchaPolicy: captchaPolicyGuard,
56
57
  sentinelPolicy: sentinelPolicyGuard,
57
58
  emailBlocklistPolicy: emailBlocklistPolicyGuard,
59
+ forgotPasswordMethods: forgotPasswordMethodsGuard.nullable(),
58
60
  });
59
61
  export const SignInExperiences = Object.freeze({
60
62
  table: 'sign_in_experiences',
@@ -85,6 +87,7 @@ export const SignInExperiences = Object.freeze({
85
87
  captchaPolicy: 'captcha_policy',
86
88
  sentinelPolicy: 'sentinel_policy',
87
89
  emailBlocklistPolicy: 'email_blocklist_policy',
90
+ forgotPasswordMethods: 'forgot_password_methods',
88
91
  },
89
92
  fieldKeys: [
90
93
  'tenantId',
@@ -112,6 +115,7 @@ export const SignInExperiences = Object.freeze({
112
115
  'captchaPolicy',
113
116
  'sentinelPolicy',
114
117
  'emailBlocklistPolicy',
118
+ 'forgotPasswordMethods',
115
119
  ],
116
120
  createGuard,
117
121
  guard,