@authhero/adapter-interfaces 4.14.0 → 4.15.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.
@@ -0,0 +1,14 @@
1
+ import { TokenExchangeProfile, TokenExchangeProfileInsert, TokenExchangeProfileUpdate } from "../types/TokenExchangeProfile";
2
+ import { CreateOptions } from "../types/ImportMetadata";
3
+ export interface TokenExchangeProfilesAdapter {
4
+ create(tenant_id: string, profile: TokenExchangeProfileInsert, options?: CreateOptions): Promise<TokenExchangeProfile>;
5
+ get(tenant_id: string, id: string): Promise<TokenExchangeProfile | null>;
6
+ /**
7
+ * All profiles for the tenant, oldest first. Tenants hold a handful of
8
+ * profiles, so the management API pages in memory and the token endpoint
9
+ * resolves a `subject_token_type` from this list.
10
+ */
11
+ list(tenant_id: string): Promise<TokenExchangeProfile[]>;
12
+ update(tenant_id: string, id: string, profile: TokenExchangeProfileUpdate): Promise<boolean>;
13
+ remove(tenant_id: string, id: string): Promise<boolean>;
14
+ }
@@ -25,6 +25,7 @@ import { ThemesAdapter } from "./Themes";
25
25
  import { LoginSessionsAdapter } from "./LoginSessions";
26
26
  import { PromptSettingsAdapter } from "./PromptSettings";
27
27
  import { ProxyRoutesAdapter } from "./ProxyRoutes";
28
+ import { TokenExchangeProfilesAdapter } from "./TokenExchangeProfiles";
28
29
  import { ScimConfigurationsAdapter } from "./ScimConfigurations";
29
30
  import { ScimTokensAdapter } from "./ScimTokens";
30
31
  import { ScimExternalIdsAdapter } from "./ScimExternalIds";
@@ -151,6 +152,12 @@ export interface DataAdapters {
151
152
  */
152
153
  analytics?: AnalyticsAdapter;
153
154
  tenants: TenantsDataAdapter;
155
+ /**
156
+ * Optional Custom Token Exchange profiles (issue #1417). When set, the
157
+ * `/api/v2/token-exchange-profiles` management API is mounted and the
158
+ * token-exchange grant accepts customer-defined `subject_token_type`s.
159
+ */
160
+ tokenExchangeProfiles?: TokenExchangeProfilesAdapter;
154
161
  /**
155
162
  * Optional control-plane log of durable tenant lifecycle operations
156
163
  * (provision / seed / upgrade / backup / deprovision — issue #1026).
@@ -280,6 +287,7 @@ export * from "./Logs";
280
287
  export * from "./Passwords";
281
288
  export * from "./PromptSettings";
282
289
  export * from "./ProxyRoutes";
290
+ export * from "./TokenExchangeProfiles";
283
291
  export * from "./ScimConfigurations";
284
292
  export * from "./ScimTokens";
285
293
  export * from "./ScimExternalIds";
@@ -125,6 +125,9 @@ export declare const clientInsertSchema: z.ZodObject<{
125
125
  iat_dcr: "iat_dcr";
126
126
  }>>;
127
127
  registration_metadata: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>>;
128
+ token_exchange: z.ZodOptional<z.ZodObject<{
129
+ allow_any_profile_of_type: z.ZodOptional<z.ZodArray<z.ZodLiteral<"custom_authentication">>>;
130
+ }, z.core.$strip>>;
128
131
  user_linking_mode: z.ZodOptional<z.ZodEnum<{
129
132
  builtin: "builtin";
130
133
  off: "off";
@@ -258,6 +261,9 @@ export declare const clientSchema: z.ZodObject<{
258
261
  iat_dcr: "iat_dcr";
259
262
  }>>;
260
263
  registration_metadata: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>>;
264
+ token_exchange: z.ZodOptional<z.ZodObject<{
265
+ allow_any_profile_of_type: z.ZodOptional<z.ZodArray<z.ZodLiteral<"custom_authentication">>>;
266
+ }, z.core.$strip>>;
261
267
  user_linking_mode: z.ZodOptional<z.ZodEnum<{
262
268
  builtin: "builtin";
263
269
  off: "off";
@@ -8,6 +8,7 @@ export declare const codeTypeSchema: z.ZodEnum<{
8
8
  oauth2_state: "oauth2_state";
9
9
  ticket: "ticket";
10
10
  client_assertion_jti: "client_assertion_jti";
11
+ subject_token_jti: "subject_token_jti";
11
12
  }>;
12
13
  export type CodeType = z.infer<typeof codeTypeSchema>;
13
14
  export declare const codeInsertSchema: z.ZodObject<{
@@ -23,6 +24,7 @@ export declare const codeInsertSchema: z.ZodObject<{
23
24
  oauth2_state: "oauth2_state";
24
25
  ticket: "ticket";
25
26
  client_assertion_jti: "client_assertion_jti";
27
+ subject_token_jti: "subject_token_jti";
26
28
  }>;
27
29
  code_verifier: z.ZodOptional<z.ZodString>;
28
30
  code_challenge: z.ZodOptional<z.ZodString>;
@@ -52,6 +54,7 @@ export declare const codeSchema: z.ZodObject<{
52
54
  oauth2_state: "oauth2_state";
53
55
  ticket: "ticket";
54
56
  client_assertion_jti: "client_assertion_jti";
57
+ subject_token_jti: "subject_token_jti";
55
58
  }>;
56
59
  code_verifier: z.ZodOptional<z.ZodString>;
57
60
  code_challenge: z.ZodOptional<z.ZodString>;
@@ -62,6 +62,11 @@ declare const nextButtonComponent: z.ZodObject<{
62
62
  type: z.ZodLiteral<"NEXT_BUTTON">;
63
63
  config: z.ZodObject<{
64
64
  text: z.ZodOptional<z.ZodString>;
65
+ variant: z.ZodOptional<z.ZodEnum<{
66
+ primary: "primary";
67
+ secondary: "secondary";
68
+ }>>;
69
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
65
70
  }, z.core.$strip>;
66
71
  }, z.core.$strip>;
67
72
  declare const previousButtonComponent: z.ZodObject<{
@@ -690,6 +695,11 @@ export declare const blockComponentSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
690
695
  type: z.ZodLiteral<"NEXT_BUTTON">;
691
696
  config: z.ZodObject<{
692
697
  text: z.ZodOptional<z.ZodString>;
698
+ variant: z.ZodOptional<z.ZodEnum<{
699
+ primary: "primary";
700
+ secondary: "secondary";
701
+ }>>;
702
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
693
703
  }, z.core.$strip>;
694
704
  }, z.core.$strip>, z.ZodObject<{
695
705
  id: z.ZodString;
@@ -1303,6 +1313,11 @@ export declare const formNodeComponentDefinition: z.ZodUnion<readonly [z.ZodDisc
1303
1313
  type: z.ZodLiteral<"NEXT_BUTTON">;
1304
1314
  config: z.ZodObject<{
1305
1315
  text: z.ZodOptional<z.ZodString>;
1316
+ variant: z.ZodOptional<z.ZodEnum<{
1317
+ primary: "primary";
1318
+ secondary: "secondary";
1319
+ }>>;
1320
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
1306
1321
  }, z.core.$strip>;
1307
1322
  }, z.core.$strip>, z.ZodObject<{
1308
1323
  id: z.ZodString;
@@ -1999,6 +2014,11 @@ declare const stepNodeSchema: z.ZodObject<{
1999
2014
  type: z.ZodLiteral<"NEXT_BUTTON">;
2000
2015
  config: z.ZodObject<{
2001
2016
  text: z.ZodOptional<z.ZodString>;
2017
+ variant: z.ZodOptional<z.ZodEnum<{
2018
+ primary: "primary";
2019
+ secondary: "secondary";
2020
+ }>>;
2021
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
2002
2022
  }, z.core.$strip>;
2003
2023
  }, z.core.$strip>, z.ZodObject<{
2004
2024
  id: z.ZodString;
@@ -2642,6 +2662,11 @@ export declare const formNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2642
2662
  type: z.ZodLiteral<"NEXT_BUTTON">;
2643
2663
  config: z.ZodObject<{
2644
2664
  text: z.ZodOptional<z.ZodString>;
2665
+ variant: z.ZodOptional<z.ZodEnum<{
2666
+ primary: "primary";
2667
+ secondary: "secondary";
2668
+ }>>;
2669
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
2645
2670
  }, z.core.$strip>;
2646
2671
  }, z.core.$strip>, z.ZodObject<{
2647
2672
  id: z.ZodString;
@@ -3303,6 +3328,11 @@ export declare const formInsertSchema: z.ZodObject<{
3303
3328
  type: z.ZodLiteral<"NEXT_BUTTON">;
3304
3329
  config: z.ZodObject<{
3305
3330
  text: z.ZodOptional<z.ZodString>;
3331
+ variant: z.ZodOptional<z.ZodEnum<{
3332
+ primary: "primary";
3333
+ secondary: "secondary";
3334
+ }>>;
3335
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
3306
3336
  }, z.core.$strip>;
3307
3337
  }, z.core.$strip>, z.ZodObject<{
3308
3338
  id: z.ZodString;
@@ -3996,6 +4026,11 @@ export declare const formSchema: z.ZodObject<{
3996
4026
  type: z.ZodLiteral<"NEXT_BUTTON">;
3997
4027
  config: z.ZodObject<{
3998
4028
  text: z.ZodOptional<z.ZodString>;
4029
+ variant: z.ZodOptional<z.ZodEnum<{
4030
+ primary: "primary";
4031
+ secondary: "secondary";
4032
+ }>>;
4033
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
3999
4034
  }, z.core.$strip>;
4000
4035
  }, z.core.$strip>, z.ZodObject<{
4001
4036
  id: z.ZodString;
@@ -4680,6 +4715,11 @@ export declare const uiScreenSchema: z.ZodObject<{
4680
4715
  type: z.ZodLiteral<"NEXT_BUTTON">;
4681
4716
  config: z.ZodObject<{
4682
4717
  text: z.ZodOptional<z.ZodString>;
4718
+ variant: z.ZodOptional<z.ZodEnum<{
4719
+ primary: "primary";
4720
+ secondary: "secondary";
4721
+ }>>;
4722
+ skip_validation: z.ZodOptional<z.ZodBoolean>;
4683
4723
  }, z.core.$strip>;
4684
4724
  }, z.core.$strip>, z.ZodObject<{
4685
4725
  id: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  export declare const jwksSchema: z.ZodObject<{
3
- alg: z.ZodEnum<{
3
+ alg: z.ZodOptional<z.ZodEnum<{
4
4
  RS256: "RS256";
5
5
  RS384: "RS384";
6
6
  RS512: "RS512";
@@ -10,7 +10,7 @@ export declare const jwksSchema: z.ZodObject<{
10
10
  HS256: "HS256";
11
11
  HS384: "HS384";
12
12
  HS512: "HS512";
13
- }>;
13
+ }>>;
14
14
  kid: z.ZodOptional<z.ZodString>;
15
15
  kty: z.ZodEnum<{
16
16
  RSA: "RSA";
@@ -31,7 +31,7 @@ export declare const jwksSchema: z.ZodObject<{
31
31
  }, z.core.$strip>;
32
32
  export declare const jwksKeySchema: z.ZodObject<{
33
33
  keys: z.ZodArray<z.ZodObject<{
34
- alg: z.ZodEnum<{
34
+ alg: z.ZodOptional<z.ZodEnum<{
35
35
  RS256: "RS256";
36
36
  RS384: "RS384";
37
37
  RS512: "RS512";
@@ -41,7 +41,7 @@ export declare const jwksKeySchema: z.ZodObject<{
41
41
  HS256: "HS256";
42
42
  HS384: "HS384";
43
43
  HS512: "HS512";
44
- }>;
44
+ }>>;
45
45
  kid: z.ZodOptional<z.ZodString>;
46
46
  kty: z.ZodEnum<{
47
47
  RSA: "RSA";
@@ -0,0 +1,280 @@
1
+ import { z } from "@hono/zod-openapi";
2
+ /**
3
+ * Custom Token Exchange profiles (Auth0-compatible, issue #1417).
4
+ *
5
+ * A profile maps an RFC 8693 `subject_token_type` to the logic that validates
6
+ * a customer-issued subject token and decides which user the exchange issues
7
+ * tokens for. Auth0 only supports that logic as an Action (`action_id`).
8
+ * AuthHero additionally supports a declarative `jwt_verification` block so the
9
+ * common "verify our signed JWT against our JWKS" case needs no code.
10
+ * Exactly one of `action_id` and `jwt_verification` is set on a profile.
11
+ */
12
+ export declare const TOKEN_EXCHANGE_PROFILE_TYPE: "custom_authentication";
13
+ /**
14
+ * Namespaces a profile may not claim. `urn:ietf:params:oauth` holds the
15
+ * standard RFC 8693 token types that AuthHero handles natively; the vendor
16
+ * namespaces are reserved by Auth0.
17
+ */
18
+ export declare const RESERVED_SUBJECT_TOKEN_TYPE_PREFIXES: readonly ["urn:ietf:params:oauth:", "urn:auth0", "urn:okta", "http://auth0.com", "https://auth0.com", "http://okta.com", "https://okta.com"];
19
+ export declare const subjectTokenTypeSchema: z.ZodString;
20
+ export declare const tokenExchangeJwtAlgorithmSchema: z.ZodEnum<{
21
+ RS256: "RS256";
22
+ RS384: "RS384";
23
+ RS512: "RS512";
24
+ ES256: "ES256";
25
+ ES384: "ES384";
26
+ ES512: "ES512";
27
+ }>;
28
+ export type TokenExchangeJwtAlgorithm = z.infer<typeof tokenExchangeJwtAlgorithmSchema>;
29
+ export declare const tokenExchangeUserMappingSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
30
+ type: z.ZodLiteral<"connection">;
31
+ connection: z.ZodString;
32
+ create_if_not_exists: z.ZodDefault<z.ZodBoolean>;
33
+ trust_email_verified: z.ZodDefault<z.ZodBoolean>;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ type: z.ZodLiteral<"user_id">;
36
+ }, z.core.$strip>], "type">;
37
+ export type TokenExchangeUserMapping = z.infer<typeof tokenExchangeUserMappingSchema>;
38
+ export declare const tokenExchangeJwtVerificationSchema: z.ZodObject<{
39
+ issuer: z.ZodString;
40
+ jwks: z.ZodOptional<z.ZodObject<{
41
+ keys: z.ZodArray<z.ZodObject<{
42
+ alg: z.ZodOptional<z.ZodEnum<{
43
+ RS256: "RS256";
44
+ RS384: "RS384";
45
+ RS512: "RS512";
46
+ ES256: "ES256";
47
+ ES384: "ES384";
48
+ ES512: "ES512";
49
+ HS256: "HS256";
50
+ HS384: "HS384";
51
+ HS512: "HS512";
52
+ }>>;
53
+ kid: z.ZodOptional<z.ZodString>;
54
+ kty: z.ZodEnum<{
55
+ RSA: "RSA";
56
+ EC: "EC";
57
+ oct: "oct";
58
+ }>;
59
+ use: z.ZodOptional<z.ZodEnum<{
60
+ sig: "sig";
61
+ enc: "enc";
62
+ }>>;
63
+ n: z.ZodOptional<z.ZodString>;
64
+ e: z.ZodOptional<z.ZodString>;
65
+ crv: z.ZodOptional<z.ZodString>;
66
+ x: z.ZodOptional<z.ZodString>;
67
+ y: z.ZodOptional<z.ZodString>;
68
+ x5t: z.ZodOptional<z.ZodString>;
69
+ x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
70
+ }, z.core.$strip>>;
71
+ }, z.core.$strip>>;
72
+ jwks_uri: z.ZodOptional<z.ZodString>;
73
+ audience: z.ZodOptional<z.ZodArray<z.ZodString>>;
74
+ algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
75
+ RS256: "RS256";
76
+ RS384: "RS384";
77
+ RS512: "RS512";
78
+ ES256: "ES256";
79
+ ES384: "ES384";
80
+ ES512: "ES512";
81
+ }>>>;
82
+ max_lifetime_seconds: z.ZodDefault<z.ZodNumber>;
83
+ require_jti: z.ZodDefault<z.ZodBoolean>;
84
+ user_mapping: z.ZodDiscriminatedUnion<[z.ZodObject<{
85
+ type: z.ZodLiteral<"connection">;
86
+ connection: z.ZodString;
87
+ create_if_not_exists: z.ZodDefault<z.ZodBoolean>;
88
+ trust_email_verified: z.ZodDefault<z.ZodBoolean>;
89
+ }, z.core.$strip>, z.ZodObject<{
90
+ type: z.ZodLiteral<"user_id">;
91
+ }, z.core.$strip>], "type">;
92
+ }, z.core.$strip>;
93
+ export type TokenExchangeJwtVerification = z.infer<typeof tokenExchangeJwtVerificationSchema>;
94
+ export declare const tokenExchangeProfileInsertSchema: z.ZodObject<{
95
+ name: z.ZodString;
96
+ subject_token_type: z.ZodString;
97
+ action_id: z.ZodOptional<z.ZodString>;
98
+ type: z.ZodLiteral<"custom_authentication">;
99
+ jwt_verification: z.ZodOptional<z.ZodObject<{
100
+ issuer: z.ZodString;
101
+ jwks: z.ZodOptional<z.ZodObject<{
102
+ keys: z.ZodArray<z.ZodObject<{
103
+ alg: z.ZodOptional<z.ZodEnum<{
104
+ RS256: "RS256";
105
+ RS384: "RS384";
106
+ RS512: "RS512";
107
+ ES256: "ES256";
108
+ ES384: "ES384";
109
+ ES512: "ES512";
110
+ HS256: "HS256";
111
+ HS384: "HS384";
112
+ HS512: "HS512";
113
+ }>>;
114
+ kid: z.ZodOptional<z.ZodString>;
115
+ kty: z.ZodEnum<{
116
+ RSA: "RSA";
117
+ EC: "EC";
118
+ oct: "oct";
119
+ }>;
120
+ use: z.ZodOptional<z.ZodEnum<{
121
+ sig: "sig";
122
+ enc: "enc";
123
+ }>>;
124
+ n: z.ZodOptional<z.ZodString>;
125
+ e: z.ZodOptional<z.ZodString>;
126
+ crv: z.ZodOptional<z.ZodString>;
127
+ x: z.ZodOptional<z.ZodString>;
128
+ y: z.ZodOptional<z.ZodString>;
129
+ x5t: z.ZodOptional<z.ZodString>;
130
+ x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
+ }, z.core.$strip>>;
132
+ }, z.core.$strip>>;
133
+ jwks_uri: z.ZodOptional<z.ZodString>;
134
+ audience: z.ZodOptional<z.ZodArray<z.ZodString>>;
135
+ algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
136
+ RS256: "RS256";
137
+ RS384: "RS384";
138
+ RS512: "RS512";
139
+ ES256: "ES256";
140
+ ES384: "ES384";
141
+ ES512: "ES512";
142
+ }>>>;
143
+ max_lifetime_seconds: z.ZodDefault<z.ZodNumber>;
144
+ require_jti: z.ZodDefault<z.ZodBoolean>;
145
+ user_mapping: z.ZodDiscriminatedUnion<[z.ZodObject<{
146
+ type: z.ZodLiteral<"connection">;
147
+ connection: z.ZodString;
148
+ create_if_not_exists: z.ZodDefault<z.ZodBoolean>;
149
+ trust_email_verified: z.ZodDefault<z.ZodBoolean>;
150
+ }, z.core.$strip>, z.ZodObject<{
151
+ type: z.ZodLiteral<"user_id">;
152
+ }, z.core.$strip>], "type">;
153
+ }, z.core.$strip>>;
154
+ }, z.core.$strip>;
155
+ export type TokenExchangeProfileInsert = z.input<typeof tokenExchangeProfileInsertSchema>;
156
+ export declare const tokenExchangeProfileSchema: z.ZodObject<{
157
+ name: z.ZodString;
158
+ subject_token_type: z.ZodString;
159
+ action_id: z.ZodOptional<z.ZodString>;
160
+ type: z.ZodLiteral<"custom_authentication">;
161
+ jwt_verification: z.ZodOptional<z.ZodObject<{
162
+ issuer: z.ZodString;
163
+ jwks: z.ZodOptional<z.ZodObject<{
164
+ keys: z.ZodArray<z.ZodObject<{
165
+ alg: z.ZodOptional<z.ZodEnum<{
166
+ RS256: "RS256";
167
+ RS384: "RS384";
168
+ RS512: "RS512";
169
+ ES256: "ES256";
170
+ ES384: "ES384";
171
+ ES512: "ES512";
172
+ HS256: "HS256";
173
+ HS384: "HS384";
174
+ HS512: "HS512";
175
+ }>>;
176
+ kid: z.ZodOptional<z.ZodString>;
177
+ kty: z.ZodEnum<{
178
+ RSA: "RSA";
179
+ EC: "EC";
180
+ oct: "oct";
181
+ }>;
182
+ use: z.ZodOptional<z.ZodEnum<{
183
+ sig: "sig";
184
+ enc: "enc";
185
+ }>>;
186
+ n: z.ZodOptional<z.ZodString>;
187
+ e: z.ZodOptional<z.ZodString>;
188
+ crv: z.ZodOptional<z.ZodString>;
189
+ x: z.ZodOptional<z.ZodString>;
190
+ y: z.ZodOptional<z.ZodString>;
191
+ x5t: z.ZodOptional<z.ZodString>;
192
+ x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
193
+ }, z.core.$strip>>;
194
+ }, z.core.$strip>>;
195
+ jwks_uri: z.ZodOptional<z.ZodString>;
196
+ audience: z.ZodOptional<z.ZodArray<z.ZodString>>;
197
+ algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
198
+ RS256: "RS256";
199
+ RS384: "RS384";
200
+ RS512: "RS512";
201
+ ES256: "ES256";
202
+ ES384: "ES384";
203
+ ES512: "ES512";
204
+ }>>>;
205
+ max_lifetime_seconds: z.ZodDefault<z.ZodNumber>;
206
+ require_jti: z.ZodDefault<z.ZodBoolean>;
207
+ user_mapping: z.ZodDiscriminatedUnion<[z.ZodObject<{
208
+ type: z.ZodLiteral<"connection">;
209
+ connection: z.ZodString;
210
+ create_if_not_exists: z.ZodDefault<z.ZodBoolean>;
211
+ trust_email_verified: z.ZodDefault<z.ZodBoolean>;
212
+ }, z.core.$strip>, z.ZodObject<{
213
+ type: z.ZodLiteral<"user_id">;
214
+ }, z.core.$strip>], "type">;
215
+ }, z.core.$strip>>;
216
+ id: z.ZodString;
217
+ created_at: z.ZodString;
218
+ updated_at: z.ZodString;
219
+ }, z.core.$strip>;
220
+ export type TokenExchangeProfile = z.infer<typeof tokenExchangeProfileSchema>;
221
+ export declare const tokenExchangeProfileUpdateSchema: z.ZodObject<{
222
+ name: z.ZodOptional<z.ZodString>;
223
+ subject_token_type: z.ZodOptional<z.ZodString>;
224
+ jwt_verification: z.ZodOptional<z.ZodObject<{
225
+ issuer: z.ZodString;
226
+ jwks: z.ZodOptional<z.ZodObject<{
227
+ keys: z.ZodArray<z.ZodObject<{
228
+ alg: z.ZodOptional<z.ZodEnum<{
229
+ RS256: "RS256";
230
+ RS384: "RS384";
231
+ RS512: "RS512";
232
+ ES256: "ES256";
233
+ ES384: "ES384";
234
+ ES512: "ES512";
235
+ HS256: "HS256";
236
+ HS384: "HS384";
237
+ HS512: "HS512";
238
+ }>>;
239
+ kid: z.ZodOptional<z.ZodString>;
240
+ kty: z.ZodEnum<{
241
+ RSA: "RSA";
242
+ EC: "EC";
243
+ oct: "oct";
244
+ }>;
245
+ use: z.ZodOptional<z.ZodEnum<{
246
+ sig: "sig";
247
+ enc: "enc";
248
+ }>>;
249
+ n: z.ZodOptional<z.ZodString>;
250
+ e: z.ZodOptional<z.ZodString>;
251
+ crv: z.ZodOptional<z.ZodString>;
252
+ x: z.ZodOptional<z.ZodString>;
253
+ y: z.ZodOptional<z.ZodString>;
254
+ x5t: z.ZodOptional<z.ZodString>;
255
+ x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
256
+ }, z.core.$strip>>;
257
+ }, z.core.$strip>>;
258
+ jwks_uri: z.ZodOptional<z.ZodString>;
259
+ audience: z.ZodOptional<z.ZodArray<z.ZodString>>;
260
+ algorithms: z.ZodOptional<z.ZodArray<z.ZodEnum<{
261
+ RS256: "RS256";
262
+ RS384: "RS384";
263
+ RS512: "RS512";
264
+ ES256: "ES256";
265
+ ES384: "ES384";
266
+ ES512: "ES512";
267
+ }>>>;
268
+ max_lifetime_seconds: z.ZodDefault<z.ZodNumber>;
269
+ require_jti: z.ZodDefault<z.ZodBoolean>;
270
+ user_mapping: z.ZodDiscriminatedUnion<[z.ZodObject<{
271
+ type: z.ZodLiteral<"connection">;
272
+ connection: z.ZodString;
273
+ create_if_not_exists: z.ZodDefault<z.ZodBoolean>;
274
+ trust_email_verified: z.ZodDefault<z.ZodBoolean>;
275
+ }, z.core.$strip>, z.ZodObject<{
276
+ type: z.ZodLiteral<"user_id">;
277
+ }, z.core.$strip>], "type">;
278
+ }, z.core.$strip>>;
279
+ }, z.core.$strip>;
280
+ export type TokenExchangeProfileUpdate = z.input<typeof tokenExchangeProfileUpdateSchema>;
@@ -16,6 +16,12 @@
16
16
  * this const keeps them byte-identical by construction.
17
17
  */
18
18
  export declare const TRIGGER_API_SHAPES: Readonly<Record<string, Readonly<Record<string, readonly string[]>>>>;
19
+ /**
20
+ * The export each trigger's user code must define, e.g.
21
+ * `exports.onExecutePostLogin = async (event, api) => { ... }`. Shared by both
22
+ * executors for the same reason as {@link TRIGGER_API_SHAPES}.
23
+ */
24
+ export declare const TRIGGER_FUNCTION_NAMES: Readonly<Record<string, string>>;
19
25
  /**
20
26
  * A single candidate primary the built-in email-based linking policy would
21
27
  * consider, pre-resolved into a `post-user-login` code-hook event as
@@ -38,6 +38,7 @@ export * from "./User";
38
38
  export * from "./Theme";
39
39
  export * from "./PromptSetting";
40
40
  export * from "./ProxyRoute";
41
+ export * from "./TokenExchangeProfile";
41
42
  export * from "./ScimConfiguration";
42
43
  export * from "./ScimToken";
43
44
  export * from "./ScimExternalId";
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "type": "git",
12
12
  "url": "https://github.com/markusahlstrand/authhero"
13
13
  },
14
- "version": "4.14.0",
14
+ "version": "4.15.0",
15
15
  "files": [
16
16
  "dist"
17
17
  ],