@logto/schemas 1.22.0 → 1.23.1
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.
- package/alterations/1.23.0-1732851150-rename-saml-application-constraints.ts +34 -0
- package/alterations/1.23.0-1733212543-add-saml-application-type-to-idp-initiated-sso-application-allow-list.ts +30 -0
- package/alterations/1.23.0-1735012422-add-saml-application-sessions-table.ts +37 -0
- package/alterations/1.23.1-1735274337-add-encryption-config-to-saml-apps.ts +35 -0
- package/alterations/1.23.1-1735292380-make-saml-app-first-party-app.ts +28 -0
- package/alterations-js/1.23.0-1732851150-rename-saml-application-constraints.js +28 -0
- package/alterations-js/1.23.0-1733212543-add-saml-application-type-to-idp-initiated-sso-application-allow-list.js +24 -0
- package/alterations-js/1.23.0-1735012422-add-saml-application-sessions-table.js +32 -0
- package/alterations-js/1.23.1-1735274337-add-encryption-config-to-saml-apps.js +31 -0
- package/alterations-js/1.23.1-1735292380-make-saml-app-first-party-app.js +24 -0
- package/lib/consts/subscriptions.d.ts +16 -15
- package/lib/consts/subscriptions.js +16 -14
- package/lib/db-entries/index.d.ts +1 -0
- package/lib/db-entries/index.js +1 -0
- package/lib/db-entries/saml-application-config.d.ts +28 -1
- package/lib/db-entries/saml-application-config.js +45 -1
- package/lib/db-entries/saml-application-session.d.ts +40 -0
- package/lib/db-entries/saml-application-session.js +53 -0
- package/lib/foundations/jsonb-types/index.d.ts +1 -0
- package/lib/foundations/jsonb-types/index.js +1 -0
- package/lib/foundations/jsonb-types/saml-application-configs.d.ts +46 -5
- package/lib/foundations/jsonb-types/saml-application-configs.js +35 -4
- package/lib/foundations/jsonb-types/saml-application-configs.test.d.ts +1 -0
- package/lib/foundations/jsonb-types/saml-application-configs.test.js +49 -0
- package/lib/foundations/jsonb-types/saml-application-sessions.d.ts +45 -0
- package/lib/foundations/jsonb-types/saml-application-sessions.js +10 -0
- package/lib/foundations/jsonb-types/sign-in-experience.d.ts +9 -1
- package/lib/foundations/jsonb-types/sign-in-experience.js +8 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/log/index.d.ts +5 -1
- package/lib/types/log/index.js +1 -0
- package/lib/types/log/saml.d.ts +7 -0
- package/lib/types/log/saml.js +6 -0
- package/lib/types/logto-config/index.d.ts +67 -67
- package/lib/types/logto-config/jwt-customizer.d.ts +117 -117
- package/lib/types/saml-application.d.ts +558 -0
- package/lib/types/saml-application.js +60 -0
- package/lib/types/system.d.ts +3 -0
- package/lib/types/system.js +1 -0
- package/lib/types/user.d.ts +7 -7
- package/package.json +6 -6
- package/tables/applications.sql +1 -4
- package/tables/saml_application_configs.sql +4 -6
- package/tables/saml_application_secrets.sql +1 -1
- package/tables/saml_application_sessions.sql +23 -0
- package/tables/sso_connector_idp_initiated_auth_configs.sql +1 -1
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
import { type UserClaim } from '@logto/core-kit';
|
|
1
2
|
import { z } from 'zod';
|
|
2
|
-
export type SamlAttributeMapping = Record<
|
|
3
|
-
export declare const
|
|
3
|
+
export type SamlAttributeMapping = Partial<Record<UserClaim | 'id', string>>;
|
|
4
|
+
export declare const samlAttributeMappingKeys: readonly ("name" | "id" | "username" | "email" | "nickname" | "profile" | "website" | "gender" | "birthdate" | "zoneinfo" | "locale" | "address" | "given_name" | "family_name" | "middle_name" | "preferred_username" | "picture" | "email_verified" | "phone_number" | "phone_number_verified" | "updated_at" | "roles" | "organizations" | "organization_data" | "organization_roles" | "custom_data" | "identities" | "sso_identities" | "created_at")[];
|
|
5
|
+
export declare const samlAttributeMappingGuard: z.ZodObject<{
|
|
6
|
+
[x: string]: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
[x: string]: string | undefined;
|
|
9
|
+
}, {
|
|
10
|
+
[x: string]: string | undefined;
|
|
11
|
+
}>;
|
|
4
12
|
export declare enum BindingType {
|
|
5
|
-
|
|
6
|
-
|
|
13
|
+
Post = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
|
|
14
|
+
Redirect = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
|
|
7
15
|
}
|
|
8
16
|
export type SamlAcsUrl = {
|
|
9
|
-
binding
|
|
17
|
+
binding: BindingType;
|
|
10
18
|
url: string;
|
|
11
19
|
};
|
|
12
20
|
export declare const samlAcsUrlGuard: z.ZodObject<{
|
|
@@ -19,3 +27,36 @@ export declare const samlAcsUrlGuard: z.ZodObject<{
|
|
|
19
27
|
url: string;
|
|
20
28
|
binding: BindingType;
|
|
21
29
|
}>;
|
|
30
|
+
export declare const samlEncryptionGuard: z.ZodEffects<z.ZodObject<{
|
|
31
|
+
encryptAssertion: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
encryptThenSign: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
certificate: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
encryptAssertion?: boolean | undefined;
|
|
36
|
+
encryptThenSign?: boolean | undefined;
|
|
37
|
+
certificate?: string | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
encryptAssertion?: boolean | undefined;
|
|
40
|
+
encryptThenSign?: boolean | undefined;
|
|
41
|
+
certificate?: string | undefined;
|
|
42
|
+
}>, {
|
|
43
|
+
encryptAssertion?: boolean | undefined;
|
|
44
|
+
encryptThenSign?: boolean | undefined;
|
|
45
|
+
certificate?: string | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
encryptAssertion?: boolean | undefined;
|
|
48
|
+
encryptThenSign?: boolean | undefined;
|
|
49
|
+
certificate?: string | undefined;
|
|
50
|
+
}>;
|
|
51
|
+
export type SamlEncryption = z.input<typeof samlEncryptionGuard>;
|
|
52
|
+
export declare enum NameIdFormat {
|
|
53
|
+
/** Uses unique and persistent identifiers for the user. */
|
|
54
|
+
Persistent = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
|
|
55
|
+
/** Returns the email address of the user. */
|
|
56
|
+
EmailAddress = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
|
|
57
|
+
/** Uses unique and transient identifiers for the user, which can be different for each session. */
|
|
58
|
+
Transient = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
|
|
59
|
+
/** The Identity Provider can determine the format. */
|
|
60
|
+
Unspecified = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
|
|
61
|
+
}
|
|
62
|
+
export declare const nameIdFormatGuard: z.ZodNativeEnum<typeof NameIdFormat>;
|
|
@@ -1,11 +1,42 @@
|
|
|
1
|
+
import { completeUserClaims } from '@logto/core-kit';
|
|
1
2
|
import { z } from 'zod';
|
|
2
|
-
export const
|
|
3
|
+
export const samlAttributeMappingKeys = Object.freeze(['id', ...completeUserClaims]);
|
|
4
|
+
export const samlAttributeMappingGuard = z
|
|
5
|
+
.object(Object.fromEntries(samlAttributeMappingKeys.map((claim) => [claim, z.string()])))
|
|
6
|
+
.partial();
|
|
3
7
|
export var BindingType;
|
|
4
8
|
(function (BindingType) {
|
|
5
|
-
BindingType["
|
|
6
|
-
BindingType["
|
|
9
|
+
BindingType["Post"] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST";
|
|
10
|
+
BindingType["Redirect"] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect";
|
|
7
11
|
})(BindingType || (BindingType = {}));
|
|
8
12
|
export const samlAcsUrlGuard = z.object({
|
|
9
13
|
binding: z.nativeEnum(BindingType),
|
|
10
|
-
url: z.string(),
|
|
14
|
+
url: z.string().url(),
|
|
11
15
|
});
|
|
16
|
+
export const samlEncryptionGuard = z
|
|
17
|
+
.object({
|
|
18
|
+
encryptAssertion: z.boolean().optional(),
|
|
19
|
+
encryptThenSign: z.boolean().optional(),
|
|
20
|
+
certificate: z.string().optional(),
|
|
21
|
+
})
|
|
22
|
+
.superRefine(({ encryptAssertion, encryptThenSign, certificate }, ctx) => {
|
|
23
|
+
if (encryptAssertion && (encryptThenSign === undefined || certificate === undefined)) {
|
|
24
|
+
ctx.addIssue({
|
|
25
|
+
code: z.ZodIssueCode.custom,
|
|
26
|
+
message: '`encryptThenSign` and `certificate` are required when `encryptAssertion` is `true`',
|
|
27
|
+
});
|
|
28
|
+
return z.NEVER;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
export var NameIdFormat;
|
|
32
|
+
(function (NameIdFormat) {
|
|
33
|
+
/** Uses unique and persistent identifiers for the user. */
|
|
34
|
+
NameIdFormat["Persistent"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent";
|
|
35
|
+
/** Returns the email address of the user. */
|
|
36
|
+
NameIdFormat["EmailAddress"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
|
|
37
|
+
/** Uses unique and transient identifiers for the user, which can be different for each session. */
|
|
38
|
+
NameIdFormat["Transient"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient";
|
|
39
|
+
/** The Identity Provider can determine the format. */
|
|
40
|
+
NameIdFormat["Unspecified"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
|
|
41
|
+
})(NameIdFormat || (NameIdFormat = {}));
|
|
42
|
+
export const nameIdFormatGuard = z.nativeEnum(NameIdFormat);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { samlEncryptionGuard } from './saml-application-configs.js';
|
|
3
|
+
describe('samlEncryptionGuard', () => {
|
|
4
|
+
// Test valid configurations
|
|
5
|
+
it('should pass when encryption is disabled', () => {
|
|
6
|
+
const result = samlEncryptionGuard.safeParse({
|
|
7
|
+
encryptAssertion: false,
|
|
8
|
+
});
|
|
9
|
+
expect(result.success).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
it('should pass when encryption is enabled with all required fields', () => {
|
|
12
|
+
const result = samlEncryptionGuard.safeParse({
|
|
13
|
+
encryptAssertion: true,
|
|
14
|
+
encryptThenSign: true,
|
|
15
|
+
certificate: '-----BEGIN CERTIFICATE-----\nMIICYDCCAcmgAwIBA...',
|
|
16
|
+
});
|
|
17
|
+
expect(result.success).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
// Test invalid configurations
|
|
20
|
+
it('should fail when encryptAssertion is true but missing encryptThenSign', () => {
|
|
21
|
+
const result = samlEncryptionGuard.safeParse({
|
|
22
|
+
encryptAssertion: true,
|
|
23
|
+
certificate: '-----BEGIN CERTIFICATE-----\nMIICYDCCAcmgAwIBA...',
|
|
24
|
+
});
|
|
25
|
+
expect(result.success).toBe(false);
|
|
26
|
+
if (!result.success) {
|
|
27
|
+
expect(result.error.issues[0]?.message).toBe('`encryptThenSign` and `certificate` are required when `encryptAssertion` is `true`');
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
it('should fail when encryptAssertion is true but missing certificate', () => {
|
|
31
|
+
const result = samlEncryptionGuard.safeParse({
|
|
32
|
+
encryptAssertion: true,
|
|
33
|
+
encryptThenSign: true,
|
|
34
|
+
});
|
|
35
|
+
expect(result.success).toBe(false);
|
|
36
|
+
if (!result.success) {
|
|
37
|
+
expect(result.error.issues[0]?.message).toBe('`encryptThenSign` and `certificate` are required when `encryptAssertion` is `true`');
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
it('should fail when encryptAssertion is true but missing both encryptThenSign and certificate', () => {
|
|
41
|
+
const result = samlEncryptionGuard.safeParse({
|
|
42
|
+
encryptAssertion: true,
|
|
43
|
+
});
|
|
44
|
+
expect(result.success).toBe(false);
|
|
45
|
+
if (!result.success) {
|
|
46
|
+
expect(result.error.issues[0]?.message).toBe('`encryptThenSign` and `certificate` are required when `encryptAssertion` is `true`');
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type AuthRequestInfo = {
|
|
3
|
+
issuer: string;
|
|
4
|
+
request: {
|
|
5
|
+
id: string;
|
|
6
|
+
destination: string;
|
|
7
|
+
issueInstant: string;
|
|
8
|
+
assertionConsumerServiceUrl: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const authRequestInfoGuard: z.ZodObject<{
|
|
12
|
+
issuer: z.ZodString;
|
|
13
|
+
request: z.ZodObject<{
|
|
14
|
+
id: z.ZodString;
|
|
15
|
+
destination: z.ZodString;
|
|
16
|
+
issueInstant: z.ZodString;
|
|
17
|
+
assertionConsumerServiceUrl: z.ZodString;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
id: string;
|
|
20
|
+
destination: string;
|
|
21
|
+
issueInstant: string;
|
|
22
|
+
assertionConsumerServiceUrl: string;
|
|
23
|
+
}, {
|
|
24
|
+
id: string;
|
|
25
|
+
destination: string;
|
|
26
|
+
issueInstant: string;
|
|
27
|
+
assertionConsumerServiceUrl: string;
|
|
28
|
+
}>;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
issuer: string;
|
|
31
|
+
request: {
|
|
32
|
+
id: string;
|
|
33
|
+
destination: string;
|
|
34
|
+
issueInstant: string;
|
|
35
|
+
assertionConsumerServiceUrl: string;
|
|
36
|
+
};
|
|
37
|
+
}, {
|
|
38
|
+
issuer: string;
|
|
39
|
+
request: {
|
|
40
|
+
id: string;
|
|
41
|
+
destination: string;
|
|
42
|
+
issueInstant: string;
|
|
43
|
+
assertionConsumerServiceUrl: string;
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
@@ -142,8 +142,16 @@ export declare enum MfaFactor {
|
|
|
142
142
|
export declare const mfaFactorsGuard: z.ZodArray<z.ZodNativeEnum<typeof MfaFactor>, "many">;
|
|
143
143
|
export type MfaFactors = z.infer<typeof mfaFactorsGuard>;
|
|
144
144
|
export declare enum MfaPolicy {
|
|
145
|
+
/** @deprecated, use `PromptAtSignInAndSignUp` instead */
|
|
145
146
|
UserControlled = "UserControlled",
|
|
146
|
-
|
|
147
|
+
/** MFA is required for all users */
|
|
148
|
+
Mandatory = "Mandatory",
|
|
149
|
+
/** Ask users to set up MFA on their sign-in after registration (skippable, one-time prompt) */
|
|
150
|
+
PromptOnlyAtSignIn = "PromptOnlyAtSignIn",
|
|
151
|
+
/** Ask users to set up MFA during registration (skippable, one-time prompt) */
|
|
152
|
+
PromptAtSignInAndSignUp = "PromptAtSignInAndSignUp",
|
|
153
|
+
/** Do not ask users to set up MFA */
|
|
154
|
+
NoPrompt = "NoPrompt"
|
|
147
155
|
}
|
|
148
156
|
export declare const mfaGuard: z.ZodObject<{
|
|
149
157
|
factors: z.ZodArray<z.ZodNativeEnum<typeof MfaFactor>, "many">;
|
|
@@ -65,8 +65,16 @@ export var MfaFactor;
|
|
|
65
65
|
export const mfaFactorsGuard = z.nativeEnum(MfaFactor).array();
|
|
66
66
|
export var MfaPolicy;
|
|
67
67
|
(function (MfaPolicy) {
|
|
68
|
+
/** @deprecated, use `PromptAtSignInAndSignUp` instead */
|
|
68
69
|
MfaPolicy["UserControlled"] = "UserControlled";
|
|
70
|
+
/** MFA is required for all users */
|
|
69
71
|
MfaPolicy["Mandatory"] = "Mandatory";
|
|
72
|
+
/** Ask users to set up MFA on their sign-in after registration (skippable, one-time prompt) */
|
|
73
|
+
MfaPolicy["PromptOnlyAtSignIn"] = "PromptOnlyAtSignIn";
|
|
74
|
+
/** Ask users to set up MFA during registration (skippable, one-time prompt) */
|
|
75
|
+
MfaPolicy["PromptAtSignInAndSignUp"] = "PromptAtSignInAndSignUp";
|
|
76
|
+
/** Do not ask users to set up MFA */
|
|
77
|
+
MfaPolicy["NoPrompt"] = "NoPrompt";
|
|
70
78
|
})(MfaPolicy || (MfaPolicy = {}));
|
|
71
79
|
export const mfaGuard = z.object({
|
|
72
80
|
factors: mfaFactorsGuard,
|
package/lib/types/index.d.ts
CHANGED
package/lib/types/index.js
CHANGED
package/lib/types/log/index.d.ts
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import type * as hook from './hook.js';
|
|
2
2
|
import type * as interaction from './interaction.js';
|
|
3
3
|
import type * as jwtCustomizer from './jwt-customizer.js';
|
|
4
|
+
import type * as saml from './saml.js';
|
|
4
5
|
import type * as token from './token.js';
|
|
5
6
|
export * as interaction from './interaction.js';
|
|
6
7
|
export * as token from './token.js';
|
|
7
8
|
export * as hook from './hook.js';
|
|
8
9
|
export * as jwtCustomizer from './jwt-customizer.js';
|
|
10
|
+
export * as saml from './saml.js';
|
|
9
11
|
/** Fallback for empty or unrecognized log keys. */
|
|
10
12
|
export declare const LogKeyUnknown = "Unknown";
|
|
11
|
-
export type AuditLogKey = typeof LogKeyUnknown | interaction.LogKey | token.LogKey;
|
|
13
|
+
export type AuditLogKey = typeof LogKeyUnknown | interaction.LogKey | token.LogKey | saml.LogKey;
|
|
12
14
|
export type WebhookLogKey = hook.LogKey;
|
|
13
15
|
export type JwtCustomizerLogKey = jwtCustomizer.LogKey;
|
|
16
|
+
export type SamlLogKey = saml.LogKey;
|
|
14
17
|
/**
|
|
15
18
|
* The union type of all available log keys.
|
|
16
19
|
* Note duplicate keys are allowed but should be avoided.
|
|
17
20
|
*
|
|
18
21
|
* @see {@link interaction.LogKey} for interaction log keys.
|
|
19
22
|
* @see {@link token.LogKey} for token log keys.
|
|
23
|
+
* @see {@link saml.LogKey} for SAML application log keys.
|
|
20
24
|
**/
|
|
21
25
|
export type LogKey = AuditLogKey | WebhookLogKey | JwtCustomizerLogKey;
|
package/lib/types/log/index.js
CHANGED
|
@@ -2,5 +2,6 @@ export * as interaction from './interaction.js';
|
|
|
2
2
|
export * as token from './token.js';
|
|
3
3
|
export * as hook from './hook.js';
|
|
4
4
|
export * as jwtCustomizer from './jwt-customizer.js';
|
|
5
|
+
export * as saml from './saml.js';
|
|
5
6
|
/** Fallback for empty or unrecognized log keys. */
|
|
6
7
|
export const LogKeyUnknown = 'Unknown';
|
|
@@ -150,9 +150,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
150
150
|
}>>>;
|
|
151
151
|
avatar: z.ZodOptional<ZodType<string | null, z.ZodTypeDef, string | null>>;
|
|
152
152
|
customData: z.ZodOptional<ZodType<import("@withtyped/server").JsonObject, z.ZodTypeDef, import("@withtyped/server").JsonObject>>;
|
|
153
|
-
updatedAt: z.ZodOptional<ZodType<number, z.ZodTypeDef, number>>;
|
|
154
|
-
primaryEmail: z.ZodOptional<ZodType<string | null, z.ZodTypeDef, string | null>>;
|
|
155
|
-
primaryPhone: z.ZodOptional<ZodType<string | null, z.ZodTypeDef, string | null>>;
|
|
156
153
|
identities: z.ZodOptional<ZodType<Record<string, {
|
|
157
154
|
userId: string;
|
|
158
155
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
@@ -160,6 +157,9 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
160
157
|
userId: string;
|
|
161
158
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
162
159
|
}>>>;
|
|
160
|
+
updatedAt: z.ZodOptional<ZodType<number, z.ZodTypeDef, number>>;
|
|
161
|
+
primaryEmail: z.ZodOptional<ZodType<string | null, z.ZodTypeDef, string | null>>;
|
|
162
|
+
primaryPhone: z.ZodOptional<ZodType<string | null, z.ZodTypeDef, string | null>>;
|
|
163
163
|
isSuspended: z.ZodOptional<ZodType<boolean, z.ZodTypeDef, boolean>>;
|
|
164
164
|
lastSignInAt: z.ZodOptional<ZodType<number | null, z.ZodTypeDef, number | null>>;
|
|
165
165
|
hasPassword: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -305,12 +305,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
305
305
|
}> | undefined;
|
|
306
306
|
avatar?: string | null | undefined;
|
|
307
307
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
308
|
-
updatedAt?: number | undefined;
|
|
309
|
-
organizations?: {
|
|
310
|
-
name: string;
|
|
311
|
-
id: string;
|
|
312
|
-
description: string | null;
|
|
313
|
-
}[] | undefined;
|
|
314
308
|
roles?: {
|
|
315
309
|
name: string;
|
|
316
310
|
id: string;
|
|
@@ -323,12 +317,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
323
317
|
resourceId: string;
|
|
324
318
|
}[];
|
|
325
319
|
}[] | undefined;
|
|
326
|
-
|
|
327
|
-
|
|
320
|
+
organizations?: {
|
|
321
|
+
name: string;
|
|
322
|
+
id: string;
|
|
323
|
+
description: string | null;
|
|
324
|
+
}[] | undefined;
|
|
328
325
|
identities?: Record<string, {
|
|
329
326
|
userId: string;
|
|
330
327
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
331
328
|
}> | undefined;
|
|
329
|
+
updatedAt?: number | undefined;
|
|
330
|
+
primaryEmail?: string | null | undefined;
|
|
331
|
+
primaryPhone?: string | null | undefined;
|
|
332
332
|
isSuspended?: boolean | undefined;
|
|
333
333
|
lastSignInAt?: number | null | undefined;
|
|
334
334
|
hasPassword?: boolean | undefined;
|
|
@@ -372,12 +372,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
372
372
|
}> | undefined;
|
|
373
373
|
avatar?: string | null | undefined;
|
|
374
374
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
375
|
-
updatedAt?: number | undefined;
|
|
376
|
-
organizations?: {
|
|
377
|
-
name: string;
|
|
378
|
-
id: string;
|
|
379
|
-
description: string | null;
|
|
380
|
-
}[] | undefined;
|
|
381
375
|
roles?: {
|
|
382
376
|
name: string;
|
|
383
377
|
id: string;
|
|
@@ -390,12 +384,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
390
384
|
resourceId: string;
|
|
391
385
|
}[];
|
|
392
386
|
}[] | undefined;
|
|
393
|
-
|
|
394
|
-
|
|
387
|
+
organizations?: {
|
|
388
|
+
name: string;
|
|
389
|
+
id: string;
|
|
390
|
+
description: string | null;
|
|
391
|
+
}[] | undefined;
|
|
395
392
|
identities?: Record<string, {
|
|
396
393
|
userId: string;
|
|
397
394
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
398
395
|
}> | undefined;
|
|
396
|
+
updatedAt?: number | undefined;
|
|
397
|
+
primaryEmail?: string | null | undefined;
|
|
398
|
+
primaryPhone?: string | null | undefined;
|
|
399
399
|
isSuspended?: boolean | undefined;
|
|
400
400
|
lastSignInAt?: number | null | undefined;
|
|
401
401
|
hasPassword?: boolean | undefined;
|
|
@@ -451,12 +451,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
451
451
|
}> | undefined;
|
|
452
452
|
avatar?: string | null | undefined;
|
|
453
453
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
454
|
-
updatedAt?: number | undefined;
|
|
455
|
-
organizations?: {
|
|
456
|
-
name: string;
|
|
457
|
-
id: string;
|
|
458
|
-
description: string | null;
|
|
459
|
-
}[] | undefined;
|
|
460
454
|
roles?: {
|
|
461
455
|
name: string;
|
|
462
456
|
id: string;
|
|
@@ -469,12 +463,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
469
463
|
resourceId: string;
|
|
470
464
|
}[];
|
|
471
465
|
}[] | undefined;
|
|
472
|
-
|
|
473
|
-
|
|
466
|
+
organizations?: {
|
|
467
|
+
name: string;
|
|
468
|
+
id: string;
|
|
469
|
+
description: string | null;
|
|
470
|
+
}[] | undefined;
|
|
474
471
|
identities?: Record<string, {
|
|
475
472
|
userId: string;
|
|
476
473
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
477
474
|
}> | undefined;
|
|
475
|
+
updatedAt?: number | undefined;
|
|
476
|
+
primaryEmail?: string | null | undefined;
|
|
477
|
+
primaryPhone?: string | null | undefined;
|
|
478
478
|
isSuspended?: boolean | undefined;
|
|
479
479
|
lastSignInAt?: number | null | undefined;
|
|
480
480
|
hasPassword?: boolean | undefined;
|
|
@@ -524,12 +524,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
524
524
|
}> | undefined;
|
|
525
525
|
avatar?: string | null | undefined;
|
|
526
526
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
527
|
-
updatedAt?: number | undefined;
|
|
528
|
-
organizations?: {
|
|
529
|
-
name: string;
|
|
530
|
-
id: string;
|
|
531
|
-
description: string | null;
|
|
532
|
-
}[] | undefined;
|
|
533
527
|
roles?: {
|
|
534
528
|
name: string;
|
|
535
529
|
id: string;
|
|
@@ -542,12 +536,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
542
536
|
resourceId: string;
|
|
543
537
|
}[];
|
|
544
538
|
}[] | undefined;
|
|
545
|
-
|
|
546
|
-
|
|
539
|
+
organizations?: {
|
|
540
|
+
name: string;
|
|
541
|
+
id: string;
|
|
542
|
+
description: string | null;
|
|
543
|
+
}[] | undefined;
|
|
547
544
|
identities?: Record<string, {
|
|
548
545
|
userId: string;
|
|
549
546
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
550
547
|
}> | undefined;
|
|
548
|
+
updatedAt?: number | undefined;
|
|
549
|
+
primaryEmail?: string | null | undefined;
|
|
550
|
+
primaryPhone?: string | null | undefined;
|
|
551
551
|
isSuspended?: boolean | undefined;
|
|
552
552
|
lastSignInAt?: number | null | undefined;
|
|
553
553
|
hasPassword?: boolean | undefined;
|
|
@@ -601,12 +601,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
601
601
|
}> | undefined;
|
|
602
602
|
avatar?: string | null | undefined;
|
|
603
603
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
604
|
-
updatedAt?: number | undefined;
|
|
605
|
-
organizations?: {
|
|
606
|
-
name: string;
|
|
607
|
-
id: string;
|
|
608
|
-
description: string | null;
|
|
609
|
-
}[] | undefined;
|
|
610
604
|
roles?: {
|
|
611
605
|
name: string;
|
|
612
606
|
id: string;
|
|
@@ -619,12 +613,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
619
613
|
resourceId: string;
|
|
620
614
|
}[];
|
|
621
615
|
}[] | undefined;
|
|
622
|
-
|
|
623
|
-
|
|
616
|
+
organizations?: {
|
|
617
|
+
name: string;
|
|
618
|
+
id: string;
|
|
619
|
+
description: string | null;
|
|
620
|
+
}[] | undefined;
|
|
624
621
|
identities?: Record<string, {
|
|
625
622
|
userId: string;
|
|
626
623
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
627
624
|
}> | undefined;
|
|
625
|
+
updatedAt?: number | undefined;
|
|
626
|
+
primaryEmail?: string | null | undefined;
|
|
627
|
+
primaryPhone?: string | null | undefined;
|
|
628
628
|
isSuspended?: boolean | undefined;
|
|
629
629
|
lastSignInAt?: number | null | undefined;
|
|
630
630
|
hasPassword?: boolean | undefined;
|
|
@@ -691,12 +691,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
691
691
|
}> | undefined;
|
|
692
692
|
avatar?: string | null | undefined;
|
|
693
693
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
694
|
-
updatedAt?: number | undefined;
|
|
695
|
-
organizations?: {
|
|
696
|
-
name: string;
|
|
697
|
-
id: string;
|
|
698
|
-
description: string | null;
|
|
699
|
-
}[] | undefined;
|
|
700
694
|
roles?: {
|
|
701
695
|
name: string;
|
|
702
696
|
id: string;
|
|
@@ -709,12 +703,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
709
703
|
resourceId: string;
|
|
710
704
|
}[];
|
|
711
705
|
}[] | undefined;
|
|
712
|
-
|
|
713
|
-
|
|
706
|
+
organizations?: {
|
|
707
|
+
name: string;
|
|
708
|
+
id: string;
|
|
709
|
+
description: string | null;
|
|
710
|
+
}[] | undefined;
|
|
714
711
|
identities?: Record<string, {
|
|
715
712
|
userId: string;
|
|
716
713
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
717
714
|
}> | undefined;
|
|
715
|
+
updatedAt?: number | undefined;
|
|
716
|
+
primaryEmail?: string | null | undefined;
|
|
717
|
+
primaryPhone?: string | null | undefined;
|
|
718
718
|
isSuspended?: boolean | undefined;
|
|
719
719
|
lastSignInAt?: number | null | undefined;
|
|
720
720
|
hasPassword?: boolean | undefined;
|
|
@@ -783,12 +783,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
783
783
|
}> | undefined;
|
|
784
784
|
avatar?: string | null | undefined;
|
|
785
785
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
786
|
-
updatedAt?: number | undefined;
|
|
787
|
-
organizations?: {
|
|
788
|
-
name: string;
|
|
789
|
-
id: string;
|
|
790
|
-
description: string | null;
|
|
791
|
-
}[] | undefined;
|
|
792
786
|
roles?: {
|
|
793
787
|
name: string;
|
|
794
788
|
id: string;
|
|
@@ -801,12 +795,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
801
795
|
resourceId: string;
|
|
802
796
|
}[];
|
|
803
797
|
}[] | undefined;
|
|
804
|
-
|
|
805
|
-
|
|
798
|
+
organizations?: {
|
|
799
|
+
name: string;
|
|
800
|
+
id: string;
|
|
801
|
+
description: string | null;
|
|
802
|
+
}[] | undefined;
|
|
806
803
|
identities?: Record<string, {
|
|
807
804
|
userId: string;
|
|
808
805
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
809
806
|
}> | undefined;
|
|
807
|
+
updatedAt?: number | undefined;
|
|
808
|
+
primaryEmail?: string | null | undefined;
|
|
809
|
+
primaryPhone?: string | null | undefined;
|
|
810
810
|
isSuspended?: boolean | undefined;
|
|
811
811
|
lastSignInAt?: number | null | undefined;
|
|
812
812
|
hasPassword?: boolean | undefined;
|
|
@@ -876,12 +876,6 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
876
876
|
}> | undefined;
|
|
877
877
|
avatar?: string | null | undefined;
|
|
878
878
|
customData?: import("@withtyped/server").JsonObject | undefined;
|
|
879
|
-
updatedAt?: number | undefined;
|
|
880
|
-
organizations?: {
|
|
881
|
-
name: string;
|
|
882
|
-
id: string;
|
|
883
|
-
description: string | null;
|
|
884
|
-
}[] | undefined;
|
|
885
879
|
roles?: {
|
|
886
880
|
name: string;
|
|
887
881
|
id: string;
|
|
@@ -894,12 +888,18 @@ export declare const jwtCustomizerConfigsGuard: z.ZodDiscriminatedUnion<"key", [
|
|
|
894
888
|
resourceId: string;
|
|
895
889
|
}[];
|
|
896
890
|
}[] | undefined;
|
|
897
|
-
|
|
898
|
-
|
|
891
|
+
organizations?: {
|
|
892
|
+
name: string;
|
|
893
|
+
id: string;
|
|
894
|
+
description: string | null;
|
|
895
|
+
}[] | undefined;
|
|
899
896
|
identities?: Record<string, {
|
|
900
897
|
userId: string;
|
|
901
898
|
details?: Record<string, import("@withtyped/server").Json> | undefined;
|
|
902
899
|
}> | undefined;
|
|
900
|
+
updatedAt?: number | undefined;
|
|
901
|
+
primaryEmail?: string | null | undefined;
|
|
902
|
+
primaryPhone?: string | null | undefined;
|
|
903
903
|
isSuspended?: boolean | undefined;
|
|
904
904
|
lastSignInAt?: number | null | undefined;
|
|
905
905
|
hasPassword?: boolean | undefined;
|