@_mustachio/openauth 0.11.0 → 0.12.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 (164) hide show
  1. package/dist/esm/adapters/d1/index.js +18 -9
  2. package/dist/esm/adapters/d1/migrations.js +7 -2
  3. package/dist/esm/adapters/d1/session-store.js +39 -0
  4. package/dist/esm/adapters/d1/session.js +2 -2
  5. package/dist/esm/adapters/durable-object/index.js +4 -0
  6. package/dist/esm/adapters/durable-object/session-store.js +42 -0
  7. package/dist/esm/adapters/dynamo/index.js +24 -7
  8. package/dist/esm/adapters/dynamo/session-store.js +49 -0
  9. package/dist/esm/adapters/kms/index.js +6 -2
  10. package/dist/esm/adapters/kv/index.js +6 -2
  11. package/dist/esm/adapters/memory/index.js +24 -7
  12. package/dist/esm/adapters/memory/session-store.js +23 -0
  13. package/dist/esm/adapters/postgres/executor.js +2 -2
  14. package/dist/esm/adapters/postgres/index.js +33 -10
  15. package/dist/esm/adapters/postgres/migrations.js +8 -2
  16. package/dist/esm/adapters/postgres/session-store.js +42 -0
  17. package/dist/esm/client.js +27 -27
  18. package/dist/esm/domain/authorize.js +2 -2
  19. package/dist/esm/domain/callback.js +121 -7
  20. package/dist/esm/domain/client-auth.js +2 -2
  21. package/dist/esm/domain/crypto.js +14 -14
  22. package/dist/esm/domain/discovery.js +2 -2
  23. package/dist/esm/domain/dpop.js +4 -4
  24. package/dist/esm/domain/id-token.js +5 -5
  25. package/dist/esm/domain/jwt.js +4 -4
  26. package/dist/esm/domain/method-dispatch.js +27 -1
  27. package/dist/esm/domain/method-route.js +80 -1
  28. package/dist/esm/domain/par.js +2 -2
  29. package/dist/esm/domain/pkce.js +2 -2
  30. package/dist/esm/domain/revoke.js +2 -2
  31. package/dist/esm/domain/state-envelope.js +2 -2
  32. package/dist/esm/domain/token.js +5 -5
  33. package/dist/esm/error.js +8 -8
  34. package/dist/esm/http/cookies.js +19 -2
  35. package/dist/esm/http/errors.js +4 -4
  36. package/dist/esm/http/handlers/authorize.js +3 -19
  37. package/dist/esm/http/handlers/callback.js +7 -1
  38. package/dist/esm/http/handlers/metadata.js +2 -2
  39. package/dist/esm/http/handlers/method-route.js +47 -2
  40. package/dist/esm/http/handlers/revocation.js +2 -2
  41. package/dist/esm/http/middleware/tenant.js +6 -6
  42. package/dist/esm/http/schemas/authorize.js +2 -2
  43. package/dist/esm/http/schemas/revocation.js +2 -2
  44. package/dist/esm/http/schemas/token.js +7 -7
  45. package/dist/esm/index.js +33 -32
  46. package/dist/esm/methods/oauth2-factory.js +2 -2
  47. package/dist/esm/methods/password-hash.js +2 -2
  48. package/dist/esm/methods/providers/index.js +30 -14
  49. package/dist/esm/methods/saml-sp/acs.js +208 -0
  50. package/dist/esm/methods/saml-sp/attributes.js +75 -0
  51. package/dist/esm/methods/saml-sp/authnrequest.js +63 -0
  52. package/dist/esm/methods/saml-sp/cache-provider.js +33 -0
  53. package/dist/esm/methods/saml-sp/cert-rotation.js +13 -0
  54. package/dist/esm/methods/saml-sp/factory.js +70 -0
  55. package/dist/esm/methods/saml-sp/index.js +7 -0
  56. package/dist/esm/methods/saml-sp/metadata.js +69 -0
  57. package/dist/esm/methods/saml-sp/method.js +29 -0
  58. package/dist/esm/methods/saml-sp/parse-idp-metadata.js +102 -0
  59. package/dist/esm/methods/saml-sp/saml-instance.js +49 -0
  60. package/dist/esm/methods/saml-sp/slo-initiate.js +84 -0
  61. package/dist/esm/methods/saml-sp/sls.js +154 -0
  62. package/dist/esm/methods/saml-sp/types.js +0 -0
  63. package/dist/esm/types/result.js +3 -3
  64. package/dist/esm/ui/forms.js +3 -3
  65. package/dist/esm/ui/index.js +8 -5
  66. package/dist/esm/ui/picker.js +2 -2
  67. package/dist/types/adapters/d1/migrations.d.ts.map +1 -1
  68. package/dist/types/adapters/d1/session-store.d.ts +3 -0
  69. package/dist/types/adapters/d1/session-store.d.ts.map +1 -1
  70. package/dist/types/adapters/durable-object/session-store.d.ts +3 -0
  71. package/dist/types/adapters/durable-object/session-store.d.ts.map +1 -1
  72. package/dist/types/adapters/dynamo/session-store.d.ts +3 -0
  73. package/dist/types/adapters/dynamo/session-store.d.ts.map +1 -1
  74. package/dist/types/adapters/memory/session-store.d.ts +3 -0
  75. package/dist/types/adapters/memory/session-store.d.ts.map +1 -1
  76. package/dist/types/adapters/postgres/migrations.d.ts +1 -1
  77. package/dist/types/adapters/postgres/migrations.d.ts.map +1 -1
  78. package/dist/types/adapters/postgres/session-store.d.ts +3 -0
  79. package/dist/types/adapters/postgres/session-store.d.ts.map +1 -1
  80. package/dist/types/domain/callback.d.ts +16 -1
  81. package/dist/types/domain/callback.d.ts.map +1 -1
  82. package/dist/types/domain/method-dispatch.d.ts.map +1 -1
  83. package/dist/types/domain/method-route.d.ts +57 -1
  84. package/dist/types/domain/method-route.d.ts.map +1 -1
  85. package/dist/types/http/context.d.ts +3 -1
  86. package/dist/types/http/context.d.ts.map +1 -1
  87. package/dist/types/http/cookies.d.ts +9 -1
  88. package/dist/types/http/cookies.d.ts.map +1 -1
  89. package/dist/types/http/handlers/callback.d.ts.map +1 -1
  90. package/dist/types/http/handlers/method-route.d.ts.map +1 -1
  91. package/dist/types/index.d.ts +1 -1
  92. package/dist/types/index.d.ts.map +1 -1
  93. package/dist/types/methods/saml-sp/acs.d.ts +4 -0
  94. package/dist/types/methods/saml-sp/acs.d.ts.map +1 -0
  95. package/dist/types/methods/saml-sp/attributes.d.ts +40 -0
  96. package/dist/types/methods/saml-sp/attributes.d.ts.map +1 -0
  97. package/dist/types/methods/saml-sp/authnrequest.d.ts +4 -0
  98. package/dist/types/methods/saml-sp/authnrequest.d.ts.map +1 -0
  99. package/dist/types/methods/saml-sp/cache-provider.d.ts +38 -0
  100. package/dist/types/methods/saml-sp/cache-provider.d.ts.map +1 -0
  101. package/dist/types/methods/saml-sp/cert-rotation.d.ts +23 -0
  102. package/dist/types/methods/saml-sp/cert-rotation.d.ts.map +1 -0
  103. package/dist/types/methods/saml-sp/factory.d.ts +704 -0
  104. package/dist/types/methods/saml-sp/factory.d.ts.map +1 -0
  105. package/dist/types/methods/saml-sp/index.d.ts +24 -0
  106. package/dist/types/methods/saml-sp/index.d.ts.map +1 -0
  107. package/dist/types/methods/saml-sp/metadata.d.ts +42 -0
  108. package/dist/types/methods/saml-sp/metadata.d.ts.map +1 -0
  109. package/dist/types/methods/saml-sp/method.d.ts +17 -0
  110. package/dist/types/methods/saml-sp/method.d.ts.map +1 -0
  111. package/dist/types/methods/saml-sp/parse-idp-metadata.d.ts +4 -0
  112. package/dist/types/methods/saml-sp/parse-idp-metadata.d.ts.map +1 -0
  113. package/dist/types/methods/saml-sp/saml-instance.d.ts +81 -0
  114. package/dist/types/methods/saml-sp/saml-instance.d.ts.map +1 -0
  115. package/dist/types/methods/saml-sp/slo-initiate.d.ts +4 -0
  116. package/dist/types/methods/saml-sp/slo-initiate.d.ts.map +1 -0
  117. package/dist/types/methods/saml-sp/sls.d.ts +4 -0
  118. package/dist/types/methods/saml-sp/sls.d.ts.map +1 -0
  119. package/dist/types/methods/saml-sp/types.d.ts +204 -0
  120. package/dist/types/methods/saml-sp/types.d.ts.map +1 -0
  121. package/dist/types/ports/audit-log.d.ts +18 -5
  122. package/dist/types/ports/audit-log.d.ts.map +1 -1
  123. package/dist/types/ports/session-store.d.ts +23 -0
  124. package/dist/types/ports/session-store.d.ts.map +1 -1
  125. package/dist/types/types/idp.d.ts +71 -0
  126. package/dist/types/types/idp.d.ts.map +1 -1
  127. package/dist/types/types/method.d.ts +109 -0
  128. package/dist/types/types/method.d.ts.map +1 -1
  129. package/package.json +9 -1
  130. package/src/adapters/d1/migrations.ts +5 -0
  131. package/src/adapters/d1/session-store.ts +68 -0
  132. package/src/adapters/durable-object/session-store.ts +61 -0
  133. package/src/adapters/dynamo/session-store.ts +63 -0
  134. package/src/adapters/memory/session-store.ts +39 -0
  135. package/src/adapters/postgres/migrations.ts +6 -0
  136. package/src/adapters/postgres/session-store.ts +69 -0
  137. package/src/domain/callback.ts +215 -7
  138. package/src/domain/method-dispatch.ts +53 -1
  139. package/src/domain/method-route.ts +190 -1
  140. package/src/http/context.ts +6 -0
  141. package/src/http/cookies.ts +19 -1
  142. package/src/http/handlers/authorize.ts +2 -21
  143. package/src/http/handlers/callback.ts +9 -1
  144. package/src/http/handlers/method-route.ts +75 -2
  145. package/src/index.ts +3 -0
  146. package/src/methods/saml-sp/acs.ts +399 -0
  147. package/src/methods/saml-sp/attributes.ts +137 -0
  148. package/src/methods/saml-sp/authnrequest.ts +128 -0
  149. package/src/methods/saml-sp/cache-provider.ts +76 -0
  150. package/src/methods/saml-sp/cert-rotation.ts +34 -0
  151. package/src/methods/saml-sp/factory.ts +118 -0
  152. package/src/methods/saml-sp/index.ts +34 -0
  153. package/src/methods/saml-sp/metadata.ts +204 -0
  154. package/src/methods/saml-sp/method.ts +65 -0
  155. package/src/methods/saml-sp/parse-idp-metadata.ts +164 -0
  156. package/src/methods/saml-sp/saml-instance.ts +173 -0
  157. package/src/methods/saml-sp/slo-initiate.ts +177 -0
  158. package/src/methods/saml-sp/sls.ts +306 -0
  159. package/src/methods/saml-sp/types.ts +203 -0
  160. package/src/ports/CONSISTENCY.md +25 -0
  161. package/src/ports/audit-log.ts +18 -5
  162. package/src/ports/session-store.ts +28 -0
  163. package/src/types/idp.ts +74 -0
  164. package/src/types/method.ts +110 -0
@@ -0,0 +1,704 @@
1
+ /**
2
+ * SAML SP factory — `kind: "saml-sp"`.
3
+ *
4
+ * Parallels `oauth2Factory` / `oidcFactory`: a Zod `configSchema`
5
+ * validates the tenant-supplied `SamlSpConfig` blob (Zod 3.24+ is
6
+ * Standard Schema v1 conformant, so it satisfies
7
+ * `AuthMethodFactory.configSchema` directly), and `build` delegates to
8
+ * `buildSamlSpMethod`.
9
+ *
10
+ * No `@node-saml/*` import appears here — node-saml is reached only at
11
+ * request time inside the route handlers, so importing the factory
12
+ * type surface stays cheap and the public-API leak guard stays green.
13
+ */
14
+ import { z } from "zod";
15
+ import type { AuthMethodFactory } from "../../types/method";
16
+ import type { SamlSpConfig, SamlSpProperties, SamlSpState } from "./types";
17
+ declare const samlSpConfigSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
18
+ idp: z.ZodObject<{
19
+ entityId: z.ZodString;
20
+ ssoUrl: z.ZodString;
21
+ sloUrl: z.ZodOptional<z.ZodString>;
22
+ nameIdFormat: z.ZodOptional<z.ZodEnum<["persistent", "transient", "emailAddress", "unspecified"]>>;
23
+ signingCerts: z.ZodArray<z.ZodObject<{
24
+ pem: z.ZodString;
25
+ notBefore: z.ZodOptional<z.ZodNumber>;
26
+ notAfter: z.ZodOptional<z.ZodNumber>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ pem: string;
29
+ notBefore?: number | undefined;
30
+ notAfter?: number | undefined;
31
+ }, {
32
+ pem: string;
33
+ notBefore?: number | undefined;
34
+ notAfter?: number | undefined;
35
+ }>, "many">;
36
+ }, "strip", z.ZodTypeAny, {
37
+ entityId: string;
38
+ ssoUrl: string;
39
+ signingCerts: {
40
+ pem: string;
41
+ notBefore?: number | undefined;
42
+ notAfter?: number | undefined;
43
+ }[];
44
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
45
+ sloUrl?: string | undefined;
46
+ }, {
47
+ entityId: string;
48
+ ssoUrl: string;
49
+ signingCerts: {
50
+ pem: string;
51
+ notBefore?: number | undefined;
52
+ notAfter?: number | undefined;
53
+ }[];
54
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
55
+ sloUrl?: string | undefined;
56
+ }>;
57
+ attributeMapping: z.ZodObject<{
58
+ subject: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
59
+ source: z.ZodLiteral<"nameId">;
60
+ }, "strip", z.ZodTypeAny, {
61
+ source: "nameId";
62
+ }, {
63
+ source: "nameId";
64
+ }>, z.ZodObject<{
65
+ source: z.ZodLiteral<"attribute">;
66
+ name: z.ZodString;
67
+ format: z.ZodOptional<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ name: string;
70
+ source: "attribute";
71
+ format?: string | undefined;
72
+ }, {
73
+ name: string;
74
+ source: "attribute";
75
+ format?: string | undefined;
76
+ }>]>>;
77
+ email: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
78
+ source: z.ZodLiteral<"nameId">;
79
+ }, "strip", z.ZodTypeAny, {
80
+ source: "nameId";
81
+ }, {
82
+ source: "nameId";
83
+ }>, z.ZodObject<{
84
+ source: z.ZodLiteral<"attribute">;
85
+ name: z.ZodString;
86
+ format: z.ZodOptional<z.ZodString>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ name: string;
89
+ source: "attribute";
90
+ format?: string | undefined;
91
+ }, {
92
+ name: string;
93
+ source: "attribute";
94
+ format?: string | undefined;
95
+ }>]>>;
96
+ emailVerified: z.ZodOptional<z.ZodObject<{
97
+ source: z.ZodLiteral<"literal">;
98
+ value: z.ZodBoolean;
99
+ }, "strip", z.ZodTypeAny, {
100
+ value: boolean;
101
+ source: "literal";
102
+ }, {
103
+ value: boolean;
104
+ source: "literal";
105
+ }>>;
106
+ name: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
107
+ source: z.ZodLiteral<"nameId">;
108
+ }, "strip", z.ZodTypeAny, {
109
+ source: "nameId";
110
+ }, {
111
+ source: "nameId";
112
+ }>, z.ZodObject<{
113
+ source: z.ZodLiteral<"attribute">;
114
+ name: z.ZodString;
115
+ format: z.ZodOptional<z.ZodString>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ name: string;
118
+ source: "attribute";
119
+ format?: string | undefined;
120
+ }, {
121
+ name: string;
122
+ source: "attribute";
123
+ format?: string | undefined;
124
+ }>]>>;
125
+ groups: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
126
+ source: z.ZodLiteral<"nameId">;
127
+ }, "strip", z.ZodTypeAny, {
128
+ source: "nameId";
129
+ }, {
130
+ source: "nameId";
131
+ }>, z.ZodObject<{
132
+ source: z.ZodLiteral<"attribute">;
133
+ name: z.ZodString;
134
+ format: z.ZodOptional<z.ZodString>;
135
+ }, "strip", z.ZodTypeAny, {
136
+ name: string;
137
+ source: "attribute";
138
+ format?: string | undefined;
139
+ }, {
140
+ name: string;
141
+ source: "attribute";
142
+ format?: string | undefined;
143
+ }>]>>;
144
+ custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
145
+ source: z.ZodLiteral<"nameId">;
146
+ }, "strip", z.ZodTypeAny, {
147
+ source: "nameId";
148
+ }, {
149
+ source: "nameId";
150
+ }>, z.ZodObject<{
151
+ source: z.ZodLiteral<"attribute">;
152
+ name: z.ZodString;
153
+ format: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ name: string;
156
+ source: "attribute";
157
+ format?: string | undefined;
158
+ }, {
159
+ name: string;
160
+ source: "attribute";
161
+ format?: string | undefined;
162
+ }>]>>>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ subject?: {
165
+ source: "nameId";
166
+ } | {
167
+ name: string;
168
+ source: "attribute";
169
+ format?: string | undefined;
170
+ } | undefined;
171
+ custom?: Record<string, {
172
+ source: "nameId";
173
+ } | {
174
+ name: string;
175
+ source: "attribute";
176
+ format?: string | undefined;
177
+ }> | undefined;
178
+ name?: {
179
+ source: "nameId";
180
+ } | {
181
+ name: string;
182
+ source: "attribute";
183
+ format?: string | undefined;
184
+ } | undefined;
185
+ email?: {
186
+ source: "nameId";
187
+ } | {
188
+ name: string;
189
+ source: "attribute";
190
+ format?: string | undefined;
191
+ } | undefined;
192
+ groups?: {
193
+ source: "nameId";
194
+ } | {
195
+ name: string;
196
+ source: "attribute";
197
+ format?: string | undefined;
198
+ } | undefined;
199
+ emailVerified?: {
200
+ value: boolean;
201
+ source: "literal";
202
+ } | undefined;
203
+ }, {
204
+ subject?: {
205
+ source: "nameId";
206
+ } | {
207
+ name: string;
208
+ source: "attribute";
209
+ format?: string | undefined;
210
+ } | undefined;
211
+ custom?: Record<string, {
212
+ source: "nameId";
213
+ } | {
214
+ name: string;
215
+ source: "attribute";
216
+ format?: string | undefined;
217
+ }> | undefined;
218
+ name?: {
219
+ source: "nameId";
220
+ } | {
221
+ name: string;
222
+ source: "attribute";
223
+ format?: string | undefined;
224
+ } | undefined;
225
+ email?: {
226
+ source: "nameId";
227
+ } | {
228
+ name: string;
229
+ source: "attribute";
230
+ format?: string | undefined;
231
+ } | undefined;
232
+ groups?: {
233
+ source: "nameId";
234
+ } | {
235
+ name: string;
236
+ source: "attribute";
237
+ format?: string | undefined;
238
+ } | undefined;
239
+ emailVerified?: {
240
+ value: boolean;
241
+ source: "literal";
242
+ } | undefined;
243
+ }>;
244
+ signAuthnRequest: z.ZodOptional<z.ZodBoolean>;
245
+ signingKey: z.ZodOptional<z.ZodObject<{
246
+ privateKeyPem: z.ZodString;
247
+ certPem: z.ZodString;
248
+ }, "strip", z.ZodTypeAny, {
249
+ privateKeyPem: string;
250
+ certPem: string;
251
+ }, {
252
+ privateKeyPem: string;
253
+ certPem: string;
254
+ }>>;
255
+ allowEncryptedAssertions: z.ZodOptional<z.ZodBoolean>;
256
+ decryptionKey: z.ZodOptional<z.ZodObject<{
257
+ privateKeyPem: z.ZodString;
258
+ certPem: z.ZodString;
259
+ }, "strip", z.ZodTypeAny, {
260
+ privateKeyPem: string;
261
+ certPem: string;
262
+ }, {
263
+ privateKeyPem: string;
264
+ certPem: string;
265
+ }>>;
266
+ idpInitiated: z.ZodOptional<z.ZodObject<{
267
+ defaultClientId: z.ZodString;
268
+ defaultRedirectUri: z.ZodString;
269
+ defaultScopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
270
+ }, "strip", z.ZodTypeAny, {
271
+ defaultClientId: string;
272
+ defaultRedirectUri: string;
273
+ defaultScopes?: string[] | undefined;
274
+ }, {
275
+ defaultClientId: string;
276
+ defaultRedirectUri: string;
277
+ defaultScopes?: string[] | undefined;
278
+ }>>;
279
+ clockSkewSeconds: z.ZodOptional<z.ZodNumber>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ idp: {
282
+ entityId: string;
283
+ ssoUrl: string;
284
+ signingCerts: {
285
+ pem: string;
286
+ notBefore?: number | undefined;
287
+ notAfter?: number | undefined;
288
+ }[];
289
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
290
+ sloUrl?: string | undefined;
291
+ };
292
+ attributeMapping: {
293
+ subject?: {
294
+ source: "nameId";
295
+ } | {
296
+ name: string;
297
+ source: "attribute";
298
+ format?: string | undefined;
299
+ } | undefined;
300
+ custom?: Record<string, {
301
+ source: "nameId";
302
+ } | {
303
+ name: string;
304
+ source: "attribute";
305
+ format?: string | undefined;
306
+ }> | undefined;
307
+ name?: {
308
+ source: "nameId";
309
+ } | {
310
+ name: string;
311
+ source: "attribute";
312
+ format?: string | undefined;
313
+ } | undefined;
314
+ email?: {
315
+ source: "nameId";
316
+ } | {
317
+ name: string;
318
+ source: "attribute";
319
+ format?: string | undefined;
320
+ } | undefined;
321
+ groups?: {
322
+ source: "nameId";
323
+ } | {
324
+ name: string;
325
+ source: "attribute";
326
+ format?: string | undefined;
327
+ } | undefined;
328
+ emailVerified?: {
329
+ value: boolean;
330
+ source: "literal";
331
+ } | undefined;
332
+ };
333
+ idpInitiated?: {
334
+ defaultClientId: string;
335
+ defaultRedirectUri: string;
336
+ defaultScopes?: string[] | undefined;
337
+ } | undefined;
338
+ signAuthnRequest?: boolean | undefined;
339
+ signingKey?: {
340
+ privateKeyPem: string;
341
+ certPem: string;
342
+ } | undefined;
343
+ allowEncryptedAssertions?: boolean | undefined;
344
+ decryptionKey?: {
345
+ privateKeyPem: string;
346
+ certPem: string;
347
+ } | undefined;
348
+ clockSkewSeconds?: number | undefined;
349
+ }, {
350
+ idp: {
351
+ entityId: string;
352
+ ssoUrl: string;
353
+ signingCerts: {
354
+ pem: string;
355
+ notBefore?: number | undefined;
356
+ notAfter?: number | undefined;
357
+ }[];
358
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
359
+ sloUrl?: string | undefined;
360
+ };
361
+ attributeMapping: {
362
+ subject?: {
363
+ source: "nameId";
364
+ } | {
365
+ name: string;
366
+ source: "attribute";
367
+ format?: string | undefined;
368
+ } | undefined;
369
+ custom?: Record<string, {
370
+ source: "nameId";
371
+ } | {
372
+ name: string;
373
+ source: "attribute";
374
+ format?: string | undefined;
375
+ }> | undefined;
376
+ name?: {
377
+ source: "nameId";
378
+ } | {
379
+ name: string;
380
+ source: "attribute";
381
+ format?: string | undefined;
382
+ } | undefined;
383
+ email?: {
384
+ source: "nameId";
385
+ } | {
386
+ name: string;
387
+ source: "attribute";
388
+ format?: string | undefined;
389
+ } | undefined;
390
+ groups?: {
391
+ source: "nameId";
392
+ } | {
393
+ name: string;
394
+ source: "attribute";
395
+ format?: string | undefined;
396
+ } | undefined;
397
+ emailVerified?: {
398
+ value: boolean;
399
+ source: "literal";
400
+ } | undefined;
401
+ };
402
+ idpInitiated?: {
403
+ defaultClientId: string;
404
+ defaultRedirectUri: string;
405
+ defaultScopes?: string[] | undefined;
406
+ } | undefined;
407
+ signAuthnRequest?: boolean | undefined;
408
+ signingKey?: {
409
+ privateKeyPem: string;
410
+ certPem: string;
411
+ } | undefined;
412
+ allowEncryptedAssertions?: boolean | undefined;
413
+ decryptionKey?: {
414
+ privateKeyPem: string;
415
+ certPem: string;
416
+ } | undefined;
417
+ clockSkewSeconds?: number | undefined;
418
+ }>, {
419
+ idp: {
420
+ entityId: string;
421
+ ssoUrl: string;
422
+ signingCerts: {
423
+ pem: string;
424
+ notBefore?: number | undefined;
425
+ notAfter?: number | undefined;
426
+ }[];
427
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
428
+ sloUrl?: string | undefined;
429
+ };
430
+ attributeMapping: {
431
+ subject?: {
432
+ source: "nameId";
433
+ } | {
434
+ name: string;
435
+ source: "attribute";
436
+ format?: string | undefined;
437
+ } | undefined;
438
+ custom?: Record<string, {
439
+ source: "nameId";
440
+ } | {
441
+ name: string;
442
+ source: "attribute";
443
+ format?: string | undefined;
444
+ }> | undefined;
445
+ name?: {
446
+ source: "nameId";
447
+ } | {
448
+ name: string;
449
+ source: "attribute";
450
+ format?: string | undefined;
451
+ } | undefined;
452
+ email?: {
453
+ source: "nameId";
454
+ } | {
455
+ name: string;
456
+ source: "attribute";
457
+ format?: string | undefined;
458
+ } | undefined;
459
+ groups?: {
460
+ source: "nameId";
461
+ } | {
462
+ name: string;
463
+ source: "attribute";
464
+ format?: string | undefined;
465
+ } | undefined;
466
+ emailVerified?: {
467
+ value: boolean;
468
+ source: "literal";
469
+ } | undefined;
470
+ };
471
+ idpInitiated?: {
472
+ defaultClientId: string;
473
+ defaultRedirectUri: string;
474
+ defaultScopes?: string[] | undefined;
475
+ } | undefined;
476
+ signAuthnRequest?: boolean | undefined;
477
+ signingKey?: {
478
+ privateKeyPem: string;
479
+ certPem: string;
480
+ } | undefined;
481
+ allowEncryptedAssertions?: boolean | undefined;
482
+ decryptionKey?: {
483
+ privateKeyPem: string;
484
+ certPem: string;
485
+ } | undefined;
486
+ clockSkewSeconds?: number | undefined;
487
+ }, {
488
+ idp: {
489
+ entityId: string;
490
+ ssoUrl: string;
491
+ signingCerts: {
492
+ pem: string;
493
+ notBefore?: number | undefined;
494
+ notAfter?: number | undefined;
495
+ }[];
496
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
497
+ sloUrl?: string | undefined;
498
+ };
499
+ attributeMapping: {
500
+ subject?: {
501
+ source: "nameId";
502
+ } | {
503
+ name: string;
504
+ source: "attribute";
505
+ format?: string | undefined;
506
+ } | undefined;
507
+ custom?: Record<string, {
508
+ source: "nameId";
509
+ } | {
510
+ name: string;
511
+ source: "attribute";
512
+ format?: string | undefined;
513
+ }> | undefined;
514
+ name?: {
515
+ source: "nameId";
516
+ } | {
517
+ name: string;
518
+ source: "attribute";
519
+ format?: string | undefined;
520
+ } | undefined;
521
+ email?: {
522
+ source: "nameId";
523
+ } | {
524
+ name: string;
525
+ source: "attribute";
526
+ format?: string | undefined;
527
+ } | undefined;
528
+ groups?: {
529
+ source: "nameId";
530
+ } | {
531
+ name: string;
532
+ source: "attribute";
533
+ format?: string | undefined;
534
+ } | undefined;
535
+ emailVerified?: {
536
+ value: boolean;
537
+ source: "literal";
538
+ } | undefined;
539
+ };
540
+ idpInitiated?: {
541
+ defaultClientId: string;
542
+ defaultRedirectUri: string;
543
+ defaultScopes?: string[] | undefined;
544
+ } | undefined;
545
+ signAuthnRequest?: boolean | undefined;
546
+ signingKey?: {
547
+ privateKeyPem: string;
548
+ certPem: string;
549
+ } | undefined;
550
+ allowEncryptedAssertions?: boolean | undefined;
551
+ decryptionKey?: {
552
+ privateKeyPem: string;
553
+ certPem: string;
554
+ } | undefined;
555
+ clockSkewSeconds?: number | undefined;
556
+ }>, {
557
+ idp: {
558
+ entityId: string;
559
+ ssoUrl: string;
560
+ signingCerts: {
561
+ pem: string;
562
+ notBefore?: number | undefined;
563
+ notAfter?: number | undefined;
564
+ }[];
565
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
566
+ sloUrl?: string | undefined;
567
+ };
568
+ attributeMapping: {
569
+ subject?: {
570
+ source: "nameId";
571
+ } | {
572
+ name: string;
573
+ source: "attribute";
574
+ format?: string | undefined;
575
+ } | undefined;
576
+ custom?: Record<string, {
577
+ source: "nameId";
578
+ } | {
579
+ name: string;
580
+ source: "attribute";
581
+ format?: string | undefined;
582
+ }> | undefined;
583
+ name?: {
584
+ source: "nameId";
585
+ } | {
586
+ name: string;
587
+ source: "attribute";
588
+ format?: string | undefined;
589
+ } | undefined;
590
+ email?: {
591
+ source: "nameId";
592
+ } | {
593
+ name: string;
594
+ source: "attribute";
595
+ format?: string | undefined;
596
+ } | undefined;
597
+ groups?: {
598
+ source: "nameId";
599
+ } | {
600
+ name: string;
601
+ source: "attribute";
602
+ format?: string | undefined;
603
+ } | undefined;
604
+ emailVerified?: {
605
+ value: boolean;
606
+ source: "literal";
607
+ } | undefined;
608
+ };
609
+ idpInitiated?: {
610
+ defaultClientId: string;
611
+ defaultRedirectUri: string;
612
+ defaultScopes?: string[] | undefined;
613
+ } | undefined;
614
+ signAuthnRequest?: boolean | undefined;
615
+ signingKey?: {
616
+ privateKeyPem: string;
617
+ certPem: string;
618
+ } | undefined;
619
+ allowEncryptedAssertions?: boolean | undefined;
620
+ decryptionKey?: {
621
+ privateKeyPem: string;
622
+ certPem: string;
623
+ } | undefined;
624
+ clockSkewSeconds?: number | undefined;
625
+ }, {
626
+ idp: {
627
+ entityId: string;
628
+ ssoUrl: string;
629
+ signingCerts: {
630
+ pem: string;
631
+ notBefore?: number | undefined;
632
+ notAfter?: number | undefined;
633
+ }[];
634
+ nameIdFormat?: "persistent" | "transient" | "emailAddress" | "unspecified" | undefined;
635
+ sloUrl?: string | undefined;
636
+ };
637
+ attributeMapping: {
638
+ subject?: {
639
+ source: "nameId";
640
+ } | {
641
+ name: string;
642
+ source: "attribute";
643
+ format?: string | undefined;
644
+ } | undefined;
645
+ custom?: Record<string, {
646
+ source: "nameId";
647
+ } | {
648
+ name: string;
649
+ source: "attribute";
650
+ format?: string | undefined;
651
+ }> | undefined;
652
+ name?: {
653
+ source: "nameId";
654
+ } | {
655
+ name: string;
656
+ source: "attribute";
657
+ format?: string | undefined;
658
+ } | undefined;
659
+ email?: {
660
+ source: "nameId";
661
+ } | {
662
+ name: string;
663
+ source: "attribute";
664
+ format?: string | undefined;
665
+ } | undefined;
666
+ groups?: {
667
+ source: "nameId";
668
+ } | {
669
+ name: string;
670
+ source: "attribute";
671
+ format?: string | undefined;
672
+ } | undefined;
673
+ emailVerified?: {
674
+ value: boolean;
675
+ source: "literal";
676
+ } | undefined;
677
+ };
678
+ idpInitiated?: {
679
+ defaultClientId: string;
680
+ defaultRedirectUri: string;
681
+ defaultScopes?: string[] | undefined;
682
+ } | undefined;
683
+ signAuthnRequest?: boolean | undefined;
684
+ signingKey?: {
685
+ privateKeyPem: string;
686
+ certPem: string;
687
+ } | undefined;
688
+ allowEncryptedAssertions?: boolean | undefined;
689
+ decryptionKey?: {
690
+ privateKeyPem: string;
691
+ certPem: string;
692
+ } | undefined;
693
+ clockSkewSeconds?: number | undefined;
694
+ }>;
695
+ export type SamlSpFactoryConfig = z.infer<typeof samlSpConfigSchema>;
696
+ /**
697
+ * Generic SAML 2.0 Service Provider factory.
698
+ *
699
+ * `kind: "saml-sp"`. Use a distinct `MethodConfig.id` per upstream IdP
700
+ * to register multiple SAML connections against a single tenant.
701
+ */
702
+ export declare const samlSpFactory: AuthMethodFactory<SamlSpProperties, SamlSpState, SamlSpConfig>;
703
+ export {};
704
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/methods/saml-sp/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA4C1E,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCrB,CAAA;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAC3C,gBAAgB,EAChB,WAAW,EACX,YAAY,CAUb,CAAA"}