@authhero/aws-adapter 0.36.13 → 0.36.15

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/dist/aws-adapter.cjs +1 -0
  2. package/dist/aws-adapter.d.ts +393 -0
  3. package/dist/aws-adapter.mjs +2882 -0
  4. package/dist/tsconfig.types.tsbuildinfo +1 -0
  5. package/dist/types/adapters/actionExecutions.d.ts +9 -0
  6. package/dist/types/adapters/actionVersions.d.ts +8 -0
  7. package/dist/types/adapters/actions.d.ts +9 -0
  8. package/dist/types/adapters/authenticationMethods.d.ts +3 -0
  9. package/dist/types/adapters/branding.d.ts +3 -0
  10. package/dist/types/adapters/clientConnections.d.ts +3 -0
  11. package/dist/types/adapters/clientGrants.d.ts +3 -0
  12. package/dist/types/adapters/clientRegistrationTokens.d.ts +3 -0
  13. package/dist/types/adapters/clients.d.ts +3 -0
  14. package/dist/types/adapters/codes.d.ts +3 -0
  15. package/dist/types/adapters/connections.d.ts +3 -0
  16. package/dist/types/adapters/customDomains.d.ts +3 -0
  17. package/dist/types/adapters/customText.d.ts +3 -0
  18. package/dist/types/adapters/emailProviders.d.ts +3 -0
  19. package/dist/types/adapters/emailTemplates.d.ts +3 -0
  20. package/dist/types/adapters/flows.d.ts +3 -0
  21. package/dist/types/adapters/forms.d.ts +3 -0
  22. package/dist/types/adapters/hookCode.d.ts +3 -0
  23. package/dist/types/adapters/hooks.d.ts +3 -0
  24. package/dist/types/adapters/invites.d.ts +3 -0
  25. package/dist/types/adapters/keys.d.ts +3 -0
  26. package/dist/types/adapters/loginSessions.d.ts +3 -0
  27. package/dist/types/adapters/logs.d.ts +3 -0
  28. package/dist/types/adapters/organizationConnections.d.ts +3 -0
  29. package/dist/types/adapters/organizations.d.ts +3 -0
  30. package/dist/types/adapters/passwords.d.ts +3 -0
  31. package/dist/types/adapters/promptSettings.d.ts +3 -0
  32. package/dist/types/adapters/proxyData.d.ts +3 -0
  33. package/dist/types/adapters/proxyRoutes.d.ts +3 -0
  34. package/dist/types/adapters/refreshTokens.d.ts +3 -0
  35. package/dist/types/adapters/resourceServers.d.ts +3 -0
  36. package/dist/types/adapters/rolePermissions.d.ts +3 -0
  37. package/dist/types/adapters/roles.d.ts +3 -0
  38. package/dist/types/adapters/sessions.d.ts +3 -0
  39. package/dist/types/adapters/tenants.d.ts +3 -0
  40. package/dist/types/adapters/themes.d.ts +3 -0
  41. package/dist/types/adapters/universalLoginTemplates.d.ts +3 -0
  42. package/dist/types/adapters/userOrganizations.d.ts +3 -0
  43. package/dist/types/adapters/userPermissions.d.ts +3 -0
  44. package/dist/types/adapters/userRoles.d.ts +3 -0
  45. package/dist/types/adapters/users.d.ts +3 -0
  46. package/dist/types/index.d.ts +61 -0
  47. package/dist/types/keys.d.ts +202 -0
  48. package/dist/types/types.d.ts +27 -0
  49. package/dist/types/utils.d.ts +69 -0
  50. package/package.json +4 -3
@@ -0,0 +1,2882 @@
1
+ import { LoginSessionState as e, authenticationMethodSchema as t, brandingSchema as n, clientGrantSchema as r, clientRegistrationTokenSchema as i, clientSchema as a, codeSchema as o, connectionSchema as s, customDomainSchema as c, customDomainWithTenantIdSchema as l, emailProviderSchema as u, emailTemplateSchema as ee, flowSchema as te, formSchema as ne, handlerConfigSchema as re, hookSchema as ie, inviteSchema as ae, logSchema as oe, loginSessionSchema as se, matchSchema as ce, organizationSchema as le, parseUserId as ue, passwordSchema as de, promptSettingSchema as fe, refreshTokenSchema as pe, resourceServerSchema as me, rolePermissionSchema as he, roleSchema as ge, sessionSchema as _e, signingKeySchema as ve, tenantSchema as ye, themeSchema as be, userOrganizationSchema as xe, userPermissionWithDetailsSchema as Se, userSchema as Ce } from "@authhero/adapter-interfaces";
2
+ import { BatchWriteCommand as we, DeleteCommand as Te, GetCommand as Ee, PutCommand as De, QueryCommand as Oe, TransactWriteCommand as ke, UpdateCommand as Ae } from "@aws-sdk/lib-dynamodb";
3
+ //#region src/adapters/actions.ts
4
+ function je() {
5
+ let e = (e) => {
6
+ throw Error(`Actions are not implemented in the AWS DynamoDB adapter (called ${e}). Use a SQL-backed adapter (kysely) for tenants that require actions.`);
7
+ };
8
+ return {
9
+ create: () => e("create"),
10
+ get: () => e("get"),
11
+ list: () => e("list"),
12
+ update: () => e("update"),
13
+ remove: () => e("remove")
14
+ };
15
+ }
16
+ //#endregion
17
+ //#region src/adapters/actionExecutions.ts
18
+ function Me() {
19
+ let e = (e) => {
20
+ throw Error(`Action executions are not implemented in the AWS DynamoDB adapter (called ${e}). Use a SQL-backed adapter (kysely) for tenants that require actions.`);
21
+ };
22
+ return {
23
+ create: () => e("create"),
24
+ get: () => e("get")
25
+ };
26
+ }
27
+ //#endregion
28
+ //#region src/adapters/actionVersions.ts
29
+ function Ne() {
30
+ let e = (e) => {
31
+ throw Error(`Action versions are not implemented in the AWS DynamoDB adapter (called ${e}). Use a SQL-backed adapter (kysely) for tenants that require actions.`);
32
+ };
33
+ return {
34
+ create: () => e("create"),
35
+ get: () => e("get"),
36
+ list: () => e("list"),
37
+ removeForAction: () => e("removeForAction")
38
+ };
39
+ }
40
+ //#endregion
41
+ //#region ../../node_modules/.pnpm/nanoid@5.1.15/node_modules/nanoid/url-alphabet/index.js
42
+ var Pe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", d = (e = 21) => {
43
+ let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
44
+ for (; e--;) t += Pe[n[e] & 63];
45
+ return t;
46
+ }, f = {
47
+ pk: (e) => `TENANT#${e}`,
48
+ sk: () => "TENANT",
49
+ gsi1pk: () => "TENANTS",
50
+ gsi1sk: (e) => `TENANT#${e}`
51
+ }, p = {
52
+ pk: (e) => `TENANT#${e}`,
53
+ sk: (e) => `USER#${e}`,
54
+ gsi1pk: (e, t) => `TENANT#${e}#EMAIL#${t.toLowerCase()}`,
55
+ gsi1sk: () => "USER",
56
+ gsi2pk: (e, t) => `TENANT#${e}#CONNECTION#${t}`,
57
+ gsi2sk: (e) => `USER#${e}`
58
+ }, m = {
59
+ pk: (e) => `TENANT#${e}`,
60
+ sk: (e) => `SESSION#${e}`,
61
+ gsi1pk: (e, t) => `TENANT#${e}#USER#${t}`,
62
+ gsi1sk: (e) => `SESSION#${e}`
63
+ }, h = {
64
+ pk: (e) => `TENANT#${e}`,
65
+ sk: (e) => `LOGIN_SESSION#${e}`
66
+ }, g = {
67
+ pk: (e) => `TENANT#${e}`,
68
+ sk: (e) => `CLIENT#${e}`
69
+ }, _ = {
70
+ pk: (e) => `TENANT#${e}`,
71
+ sk: (e) => `CLIENT_GRANT#${e}`,
72
+ gsi1pk: (e, t) => `TENANT#${e}#CLIENT#${t}`,
73
+ gsi1sk: (e) => `CLIENT_GRANT#${e}`
74
+ }, v = {
75
+ pk: (e) => `TENANT#${e}`,
76
+ sk: (e) => `CONNECTION#${e}`,
77
+ gsi1pk: (e, t) => `TENANT#${e}#CONNECTION_NAME#${t}`,
78
+ gsi1sk: () => "CONNECTION"
79
+ }, y = {
80
+ pk: (e) => `TENANT#${e}`,
81
+ sk: (e, t) => `CODE#${e}#${t}`,
82
+ skPrefixByCodeId: (e) => `CODE#${e}#`
83
+ }, b = {
84
+ pk: (e, t) => `TENANT#${e}#USER#${t}`,
85
+ sk: (e) => `PASSWORD#${e}`,
86
+ skPrefix: () => "PASSWORD#"
87
+ }, Fe = {
88
+ pk: (e) => `TENANT#${e}`,
89
+ sk: () => "BRANDING"
90
+ }, x = {
91
+ pk: (e) => `TENANT#${e}`,
92
+ sk: () => "UNIVERSAL_LOGIN_TEMPLATE"
93
+ }, S = {
94
+ pk: (e) => `TENANT#${e}`,
95
+ sk: (e) => `THEME#${e}`
96
+ }, C = {
97
+ pk: (e) => `TENANT#${e}`,
98
+ sk: (e) => `HOOK#${e}`
99
+ }, Ie = {
100
+ pk: () => "KEYS",
101
+ sk: (e) => `KEY#${e}`
102
+ }, w = {
103
+ pk: (e) => `TENANT#${e}`,
104
+ sk: (e) => `CUSTOM_DOMAIN#${e}`,
105
+ gsi1pk: (e) => `DOMAIN#${e}`,
106
+ gsi1sk: () => "CUSTOM_DOMAIN"
107
+ }, T = {
108
+ pk: (e) => `TENANT#${e}`,
109
+ sk: (e) => `PROXY_ROUTE#${e}`,
110
+ gsi1pk: (e, t) => `TENANT#${e}#CUSTOM_DOMAIN#${t}`,
111
+ gsi1sk: (e) => `PROXY_ROUTE#${e}`
112
+ }, E = {
113
+ pk: (e) => `TENANT#${e}`,
114
+ sk: (e) => `LOG#${e}`,
115
+ gsi1pk: (e, t) => `TENANT#${e}#LOG#${t}`,
116
+ gsi1sk: (e) => `LOG#${e}`
117
+ }, D = {
118
+ pk: (e) => `TENANT#${e}`,
119
+ sk: () => "EMAIL_PROVIDER"
120
+ }, O = {
121
+ pk: (e) => `TENANT#${e}`,
122
+ sk: (e) => `EMAIL_TEMPLATE#${e}`,
123
+ skPrefix: () => "EMAIL_TEMPLATE#"
124
+ }, Le = {
125
+ pk: (e) => `TENANT#${e}`,
126
+ sk: () => "PROMPT_SETTINGS"
127
+ }, k = {
128
+ pk: (e) => `TENANT#${e}`,
129
+ sk: (e) => `REFRESH_TOKEN#${e}`,
130
+ gsi1pk: (e, t) => `TENANT#${e}#USER#${t}`,
131
+ gsi1sk: (e) => `REFRESH_TOKEN#${e}`,
132
+ gsi2pk: (e, t) => `TENANT#${e}#RT_LOOKUP#${t}`,
133
+ gsi2sk: () => "REFRESH_TOKEN"
134
+ }, A = {
135
+ pk: (e) => `TENANT#${e}`,
136
+ sk: (e) => `FORM#${e}`
137
+ }, j = {
138
+ pk: (e) => `TENANT#${e}`,
139
+ sk: (e) => `FLOW#${e}`
140
+ }, M = {
141
+ pk: (e) => `TENANT#${e}`,
142
+ sk: (e) => `RESOURCE_SERVER#${e}`,
143
+ gsi1pk: (e, t) => `TENANT#${e}#RESOURCE_SERVER_ID#${t}`,
144
+ gsi1sk: () => "RESOURCE_SERVER"
145
+ }, N = {
146
+ pk: (e) => `TENANT#${e}`,
147
+ sk: (e) => `ROLE#${e}`
148
+ }, P = {
149
+ pk: (e, t) => `TENANT#${e}#ROLE#${t}`,
150
+ sk: (e, t) => `PERMISSION#${e}#${t}`,
151
+ skPrefix: () => "PERMISSION#"
152
+ }, F = {
153
+ pk: (e, t, n) => n ? `TENANT#${e}#ORG#${n}#USER#${t}` : `TENANT#${e}#USER#${t}`,
154
+ sk: (e, t) => `USER_PERMISSION#${e}#${t}`,
155
+ skPrefix: () => "USER_PERMISSION#"
156
+ }, I = {
157
+ pk: (e, t, n) => n ? `TENANT#${e}#ORG#${n}#USER#${t}` : `TENANT#${e}#USER#${t}`,
158
+ sk: (e) => `USER_ROLE#${e}`,
159
+ skPrefix: () => "USER_ROLE#"
160
+ }, L = {
161
+ pk: (e) => `TENANT#${e}`,
162
+ sk: (e) => `ORGANIZATION#${e}`,
163
+ gsi1pk: (e, t) => `TENANT#${e}#ORG_NAME#${t}`,
164
+ gsi1sk: () => "ORGANIZATION"
165
+ }, R = {
166
+ pk: (e) => `TENANT#${e}`,
167
+ sk: (e) => `USER_ORG#${e}`,
168
+ gsi1pk: (e, t) => `TENANT#${e}#USER#${t}`,
169
+ gsi1sk: (e) => `USER_ORG#${e}`,
170
+ gsi2pk: (e, t) => `TENANT#${e}#ORG#${t}`,
171
+ gsi2sk: (e) => `USER_ORG#${e}`
172
+ }, z = {
173
+ pk: (e, t) => `TENANT#${e}#ORG#${t}`,
174
+ sk: (e) => `ORG_CONNECTION#${e}`,
175
+ skPrefix: () => "ORG_CONNECTION#"
176
+ }, B = {
177
+ pk: (e) => `TENANT#${e}`,
178
+ sk: (e) => `INVITE#${e}`,
179
+ gsi1pk: (e, t) => `TENANT#${e}#ORG#${t}`,
180
+ gsi1sk: (e) => `INVITE#${e}`
181
+ }, Re = {
182
+ pk: () => "LEGACY_CLIENTS",
183
+ sk: (e) => `LEGACY_CLIENT#${e}`
184
+ }, V = {
185
+ pk: (e, t) => `TENANT#${e}#CLIENT#${t}`,
186
+ sk: (e, t) => `CLIENT_CONNECTION#${String(t).padStart(5, "0")}#${e}`,
187
+ skPrefix: () => "CLIENT_CONNECTION#",
188
+ gsi1pk: (e, t) => `TENANT#${e}#CONNECTION#${t}`,
189
+ gsi1sk: (e) => `CLIENT_CONNECTION#${e}`
190
+ }, H = {
191
+ pk: (e) => `TENANT#${e}`,
192
+ sk: (e) => `AUTHENTICATION_METHOD#${e}`,
193
+ gsi1pk: (e, t) => `TENANT#${e}#USER#${t}`,
194
+ gsi1sk: (e) => `AUTHENTICATION_METHOD#${e}`,
195
+ gsi1skPrefix: () => "AUTHENTICATION_METHOD#"
196
+ }, U = {
197
+ pk: (e) => `TENANT#${e}`,
198
+ sk: (e) => `CLIENT_REGISTRATION_TOKEN#${e}`,
199
+ skPrefix: () => "CLIENT_REGISTRATION_TOKEN#",
200
+ gsi1pk: (e, t) => `TENANT#${e}#CRT_HASH#${t}`,
201
+ gsi1sk: () => "CLIENT_REGISTRATION_TOKEN",
202
+ gsi2pk: (e, t) => `TENANT#${e}#CLIENT#${t}`,
203
+ gsi2sk: (e) => `CLIENT_REGISTRATION_TOKEN#${e}`
204
+ }, W = {
205
+ pk: (e) => `TENANT#${e}`,
206
+ sk: (e, t) => `CUSTOM_TEXT#${e}#${t}`,
207
+ skPrefix: () => "CUSTOM_TEXT#"
208
+ };
209
+ //#endregion
210
+ //#region src/utils.ts
211
+ async function ze(e, t) {
212
+ let n = t.map((t) => {
213
+ if (t.type === "put" && t.item) return { Put: {
214
+ TableName: e.tableName,
215
+ Item: t.item,
216
+ ConditionExpression: t.conditionExpression
217
+ } };
218
+ if (t.type === "delete" && t.pk && t.sk) return { Delete: {
219
+ TableName: e.tableName,
220
+ Key: {
221
+ PK: t.pk,
222
+ SK: t.sk
223
+ }
224
+ } };
225
+ throw Error("Invalid transaction operation");
226
+ });
227
+ await e.client.send(new ke({ TransactItems: n }));
228
+ }
229
+ async function G(e, t, n) {
230
+ return (await e.client.send(new Ee({
231
+ TableName: e.tableName,
232
+ Key: {
233
+ PK: t,
234
+ SK: n
235
+ }
236
+ }))).Item || null;
237
+ }
238
+ async function K(e, t, n) {
239
+ await e.client.send(new De({
240
+ TableName: e.tableName,
241
+ Item: t,
242
+ ConditionExpression: n?.conditionExpression
243
+ }));
244
+ }
245
+ async function q(e, t, n) {
246
+ return await e.client.send(new Te({
247
+ TableName: e.tableName,
248
+ Key: {
249
+ PK: t,
250
+ SK: n
251
+ }
252
+ })), !0;
253
+ }
254
+ async function J(e, t, n) {
255
+ let { skPrefix: r, skValue: i, indexName: a, limit: o, startKey: s, scanIndexForward: c = !0 } = n || {}, l = a ? `${a}PK = :pk` : "PK = :pk", u = { ":pk": t };
256
+ if (r) {
257
+ let e = a ? `${a}SK` : "SK";
258
+ l += ` AND begins_with(${e}, :skPrefix)`, u[":skPrefix"] = r;
259
+ } else if (i) {
260
+ let e = a ? `${a}SK` : "SK";
261
+ l += ` AND ${e} = :sk`, u[":sk"] = i;
262
+ }
263
+ let ee = await e.client.send(new Oe({
264
+ TableName: e.tableName,
265
+ IndexName: a,
266
+ KeyConditionExpression: l,
267
+ ExpressionAttributeValues: u,
268
+ Limit: o,
269
+ ExclusiveStartKey: s,
270
+ ScanIndexForward: c
271
+ }));
272
+ return {
273
+ items: ee.Items || [],
274
+ lastKey: ee.LastEvaluatedKey
275
+ };
276
+ }
277
+ async function Y(e, t, n = {}, r) {
278
+ let { page: i, per_page: a, include_totals: o = !1, from: s, take: c } = n, { skPrefix: l, indexName: u, scanIndexForward: ee = !0 } = r || {}, te = c || a || 50, ne = s === void 0 ? (i || 0) * te : parseInt(s, 10), re = u ? `${u}PK = :pk` : "PK = :pk", ie = { ":pk": t };
279
+ if (l) {
280
+ let e = u ? `${u}SK` : "SK";
281
+ re += ` AND begins_with(${e}, :skPrefix)`, ie[":skPrefix"] = l;
282
+ }
283
+ let ae = [], oe, se = 0, ce = ne + te;
284
+ for (; se < ce;) {
285
+ let t = await e.client.send(new Oe({
286
+ TableName: e.tableName,
287
+ IndexName: u,
288
+ KeyConditionExpression: re,
289
+ ExpressionAttributeValues: ie,
290
+ Limit: Math.min(ce - se, 1e3),
291
+ ExclusiveStartKey: oe,
292
+ ScanIndexForward: ee
293
+ })), n = t.Items || [];
294
+ if (ae = ae.concat(n), se += n.length, oe = t.LastEvaluatedKey, !oe) break;
295
+ }
296
+ let le = ae.slice(ne, ne + te), ue = ae.length;
297
+ if (o && oe) {
298
+ let t = oe;
299
+ for (; t;) {
300
+ let n = await e.client.send(new Oe({
301
+ TableName: e.tableName,
302
+ IndexName: u,
303
+ KeyConditionExpression: re,
304
+ ExpressionAttributeValues: ie,
305
+ Select: "COUNT",
306
+ ExclusiveStartKey: t
307
+ }));
308
+ ue += n.Count || 0, t = n.LastEvaluatedKey;
309
+ }
310
+ }
311
+ return {
312
+ items: le,
313
+ start: ne,
314
+ limit: te,
315
+ length: le.length,
316
+ total: o ? ue : void 0
317
+ };
318
+ }
319
+ async function X(e, t, n, r) {
320
+ let i = Object.entries(r).filter(([, e]) => e !== void 0);
321
+ if (i.length === 0) return !0;
322
+ let a = "SET " + i.map(([e], t) => `#attr${t} = :val${t}`).join(", "), o = {}, s = {};
323
+ return i.forEach(([e, t], n) => {
324
+ o[`#attr${n}`] = e, s[`:val${n}`] = t;
325
+ }), await e.client.send(new Ae({
326
+ TableName: e.tableName,
327
+ Key: {
328
+ PK: t,
329
+ SK: n
330
+ },
331
+ UpdateExpression: a,
332
+ ConditionExpression: "attribute_exists(PK)",
333
+ ExpressionAttributeNames: o,
334
+ ExpressionAttributeValues: s
335
+ })), !0;
336
+ }
337
+ function Z(e) {
338
+ let { PK: t, SK: n, GSI1PK: r, GSI1SK: i, GSI2PK: a, GSI2SK: o, entityType: s, ttl: c, ...l } = e;
339
+ return l;
340
+ }
341
+ function Q(e) {
342
+ let t = { ...e };
343
+ for (let e in t) (t[e] === null || t[e] === void 0) && delete t[e];
344
+ return t;
345
+ }
346
+ //#endregion
347
+ //#region src/adapters/flows.ts
348
+ function Be(e) {
349
+ let { tenant_id: t, ...n } = Z(e), r = [];
350
+ if (e.actions) try {
351
+ r = JSON.parse(e.actions);
352
+ } catch {
353
+ console.error(`Failed to parse actions JSON for flow ${e.id}`);
354
+ }
355
+ let i = Q({
356
+ ...n,
357
+ actions: r
358
+ });
359
+ return te.parse(i);
360
+ }
361
+ function Ve(e) {
362
+ return {
363
+ async create(t, n) {
364
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = `af_${d()}`, a = {
365
+ PK: j.pk(t),
366
+ SK: j.sk(i),
367
+ entityType: "FLOW",
368
+ tenant_id: t,
369
+ id: i,
370
+ name: n.name,
371
+ actions: n.actions ? JSON.stringify(n.actions) : void 0,
372
+ created_at: r,
373
+ updated_at: r
374
+ };
375
+ return await K(e, a), Be(a);
376
+ },
377
+ async get(t, n) {
378
+ let r = await G(e, j.pk(t), j.sk(n));
379
+ return r ? Be(r) : null;
380
+ },
381
+ async list(t, n = {}) {
382
+ let r = await Y(e, j.pk(t), n, { skPrefix: "FLOW#" });
383
+ return {
384
+ flows: r.items.map(Be),
385
+ start: r.start,
386
+ limit: r.limit,
387
+ length: r.length
388
+ };
389
+ },
390
+ async update(t, n, r) {
391
+ let i = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
392
+ return r.name !== void 0 && (i.name = r.name), r.actions !== void 0 && (i.actions = JSON.stringify(r.actions)), await X(e, j.pk(t), j.sk(n), i) ? this.get(t, n) : null;
393
+ },
394
+ async remove(t, n) {
395
+ return q(e, j.pk(t), j.sk(n));
396
+ }
397
+ };
398
+ }
399
+ //#endregion
400
+ //#region src/adapters/tenants.ts
401
+ function He(e) {
402
+ let t = Z(e);
403
+ return ye.parse(Q(t));
404
+ }
405
+ function Ue(e) {
406
+ return {
407
+ async create(t) {
408
+ let n = (/* @__PURE__ */ new Date()).toISOString(), r = t.id || d(), i = {
409
+ PK: f.pk(r),
410
+ SK: f.sk(),
411
+ GSI1PK: f.gsi1pk(),
412
+ GSI1SK: f.gsi1sk(r),
413
+ entityType: "TENANT",
414
+ id: r,
415
+ audience: t.audience,
416
+ friendly_name: t.friendly_name,
417
+ sender_name: t.sender_name,
418
+ sender_email: t.sender_email,
419
+ session_lifetime: t.session_lifetime,
420
+ idle_session_lifetime: t.idle_session_lifetime,
421
+ created_at: n,
422
+ updated_at: n
423
+ };
424
+ return await K(e, i), He(i);
425
+ },
426
+ async get(t) {
427
+ let n = await G(e, f.pk(t), f.sk());
428
+ return n ? He(n) : null;
429
+ },
430
+ async list(t = {}) {
431
+ let { include_totals: n = !1 } = t, r = await Y(e, f.gsi1pk(), t, {
432
+ indexName: "GSI1",
433
+ skPrefix: "TENANT#"
434
+ }), i = r.items.map(He);
435
+ return n ? {
436
+ tenants: i,
437
+ totals: {
438
+ start: r.start,
439
+ limit: r.limit,
440
+ length: r.length
441
+ }
442
+ } : { tenants: i };
443
+ },
444
+ async update(t, n) {
445
+ let r = {
446
+ ...n,
447
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
448
+ };
449
+ await X(e, f.pk(t), f.sk(), r);
450
+ },
451
+ async remove(t) {
452
+ return q(e, f.pk(t), f.sk());
453
+ }
454
+ };
455
+ }
456
+ //#endregion
457
+ //#region ../../node_modules/.pnpm/hono@4.12.27/node_modules/hono/dist/http-exception.js
458
+ var We = class extends Error {
459
+ res;
460
+ status;
461
+ constructor(e = 500, t) {
462
+ super(t?.message, { cause: t?.cause }), this.res = t?.res, this.status = e;
463
+ }
464
+ getResponse() {
465
+ return this.res ? new Response(this.res.body, {
466
+ status: this.status,
467
+ headers: this.res.headers
468
+ }) : new Response(this.message, { status: this.status });
469
+ }
470
+ };
471
+ //#endregion
472
+ //#region src/adapters/users.ts
473
+ function Ge(e, t = []) {
474
+ let { tenant_id: n, ...r } = Z(e), i = Q({
475
+ ...r,
476
+ app_metadata: JSON.parse(e.app_metadata || "{}"),
477
+ user_metadata: JSON.parse(e.user_metadata || "{}"),
478
+ identities: [{
479
+ connection: e.connection,
480
+ provider: e.provider,
481
+ user_id: ue(e.user_id).id,
482
+ isSocial: e.is_social,
483
+ ...e.email ? { email: e.email } : {},
484
+ ...e.email_verified === void 0 ? {} : { email_verified: !!e.email_verified },
485
+ ...e.phone_number ? { phone_number: e.phone_number } : {},
486
+ ...e.phone_verified === void 0 ? {} : { phone_verified: !!e.phone_verified },
487
+ ...e.username ? { username: e.username } : {}
488
+ }, ...t.map((e) => ({
489
+ connection: e.connection,
490
+ provider: e.provider,
491
+ user_id: ue(e.user_id).id,
492
+ isSocial: e.is_social,
493
+ ...e.email ? { email: e.email } : {},
494
+ ...e.email_verified === void 0 ? {} : { email_verified: !!e.email_verified },
495
+ ...e.phone_number ? { phone_number: e.phone_number } : {},
496
+ ...e.phone_verified === void 0 ? {} : { phone_verified: !!e.phone_verified },
497
+ ...e.username ? { username: e.username } : {}
498
+ }))]
499
+ });
500
+ return Ce.parse(i);
501
+ }
502
+ function Ke(e) {
503
+ let t = async (t, n) => {
504
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.user_id || `${n.provider}|${d()}`, a = {
505
+ PK: p.pk(t),
506
+ SK: p.sk(i),
507
+ entityType: "USER",
508
+ tenant_id: t,
509
+ user_id: i,
510
+ email: n.email,
511
+ username: n.username,
512
+ phone_number: n.phone_number,
513
+ given_name: n.given_name,
514
+ family_name: n.family_name,
515
+ nickname: n.nickname,
516
+ name: n.name,
517
+ picture: n.picture,
518
+ locale: n.locale,
519
+ linked_to: n.linked_to,
520
+ profileData: n.profileData,
521
+ email_verified: n.email_verified ?? !1,
522
+ last_ip: n.last_ip,
523
+ last_login: n.last_login,
524
+ provider: n.provider || "auth",
525
+ connection: n.connection,
526
+ is_social: n.is_social ?? !1,
527
+ login_count: 0,
528
+ app_metadata: JSON.stringify(n.app_metadata || {}),
529
+ user_metadata: JSON.stringify(n.user_metadata || {}),
530
+ middle_name: n.middle_name,
531
+ preferred_username: n.preferred_username,
532
+ profile: n.profile,
533
+ website: n.website,
534
+ gender: n.gender,
535
+ birthdate: n.birthdate,
536
+ zoneinfo: n.zoneinfo,
537
+ created_at: r,
538
+ updated_at: r
539
+ };
540
+ n.email && (a.GSI1PK = p.gsi1pk(t, n.email), a.GSI1SK = p.gsi1sk()), a.GSI2PK = p.gsi2pk(t, n.connection), a.GSI2SK = p.gsi2sk(i);
541
+ try {
542
+ if (n.password) {
543
+ let o = d(), s = {
544
+ PK: b.pk(t, i),
545
+ SK: b.sk(o),
546
+ entityType: "PASSWORD",
547
+ id: o,
548
+ tenant_id: t,
549
+ user_id: i,
550
+ password: n.password.hash,
551
+ algorithm: n.password.algorithm,
552
+ is_current: !0,
553
+ created_at: r,
554
+ updated_at: r
555
+ };
556
+ await ze(e, [{
557
+ type: "put",
558
+ item: a,
559
+ conditionExpression: "attribute_not_exists(PK)"
560
+ }, {
561
+ type: "put",
562
+ item: s
563
+ }]);
564
+ } else await K(e, a, { conditionExpression: "attribute_not_exists(PK)" });
565
+ } catch (e) {
566
+ throw e.name === "ConditionalCheckFailedException" || e.name === "TransactionCanceledException" && (e.CancellationReasons || []).some((e) => e?.Code === "ConditionalCheckFailed") ? new We(409, { message: "User already exists" }) : e;
567
+ }
568
+ return Ge(a);
569
+ };
570
+ return {
571
+ create: t,
572
+ rawCreate: t,
573
+ async get(t, n) {
574
+ let [r, i] = await Promise.all([G(e, p.pk(t), p.sk(n)), J(e, p.pk(t), { skPrefix: "USER#" }).then((e) => e.items.filter((e) => e.linked_to === n))]);
575
+ return r ? Ge(r, i) : null;
576
+ },
577
+ async list(t, n = {}) {
578
+ let r = await Y(e, p.pk(t), n, { skPrefix: "USER#" }), i = r.items.filter((e) => !e.linked_to), a = r.items.filter((e) => e.linked_to);
579
+ return {
580
+ users: i.map((e) => Ge(e, a.filter((t) => t.linked_to === e.user_id))),
581
+ start: r.start,
582
+ limit: r.limit,
583
+ length: r.length
584
+ };
585
+ },
586
+ async update(t, n, r) {
587
+ let i = {
588
+ ...r,
589
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
590
+ };
591
+ return r.app_metadata !== void 0 && (i.app_metadata = JSON.stringify(r.app_metadata)), r.user_metadata !== void 0 && (i.user_metadata = JSON.stringify(r.user_metadata)), delete i.user_id, delete i.identities, X(e, p.pk(t), p.sk(n), i);
592
+ },
593
+ async remove(t, n) {
594
+ return q(e, p.pk(t), p.sk(n));
595
+ },
596
+ async unlink(t, n, r, i) {
597
+ let a = `${r}|${i}`;
598
+ return q(e, p.pk(t), p.sk(a));
599
+ }
600
+ };
601
+ }
602
+ //#endregion
603
+ //#region src/adapters/sessions.ts
604
+ function qe(e) {
605
+ let { tenant_id: t, ...n } = Z(e), r = Q({
606
+ ...n,
607
+ device: JSON.parse(e.device || "{}"),
608
+ clients: JSON.parse(e.clients || "[]")
609
+ });
610
+ return _e.parse(r);
611
+ }
612
+ function Je(e) {
613
+ return {
614
+ async create(t, n) {
615
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = {
616
+ PK: m.pk(t),
617
+ SK: m.sk(n.id),
618
+ GSI1PK: m.gsi1pk(t, n.user_id),
619
+ GSI1SK: m.gsi1sk(n.id),
620
+ entityType: "SESSION",
621
+ tenant_id: t,
622
+ id: n.id,
623
+ user_id: n.user_id,
624
+ login_session_id: n.login_session_id,
625
+ revoked_at: n.revoked_at,
626
+ used_at: n.used_at,
627
+ expires_at: n.expires_at,
628
+ idle_expires_at: n.idle_expires_at,
629
+ authenticated_at: r,
630
+ last_interaction_at: r,
631
+ device: JSON.stringify(n.device || {}),
632
+ clients: JSON.stringify(n.clients || []),
633
+ created_at: r,
634
+ updated_at: r
635
+ };
636
+ return n.expires_at && (i.ttl = Math.floor(new Date(n.expires_at).getTime() / 1e3)), await K(e, i), qe(i);
637
+ },
638
+ async get(t, n) {
639
+ let r = await G(e, m.pk(t), m.sk(n));
640
+ return r ? qe(r) : null;
641
+ },
642
+ async list(t, n = {}) {
643
+ let r = await Y(e, m.pk(t), n, { skPrefix: "SESSION#" });
644
+ return {
645
+ sessions: r.items.map(qe),
646
+ start: r.start,
647
+ limit: r.limit,
648
+ length: r.length
649
+ };
650
+ },
651
+ async update(t, n, r) {
652
+ let i = {
653
+ ...r,
654
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
655
+ };
656
+ return r.device !== void 0 && (i.device = JSON.stringify(r.device)), r.clients !== void 0 && (i.clients = JSON.stringify(r.clients)), r.expires_at && (i.ttl = Math.floor(new Date(r.expires_at).getTime() / 1e3)), delete i.id, X(e, m.pk(t), m.sk(n), i);
657
+ },
658
+ async remove(t, n) {
659
+ return q(e, m.pk(t), m.sk(n));
660
+ }
661
+ };
662
+ }
663
+ //#endregion
664
+ //#region src/adapters/passwords.ts
665
+ function Ye(e) {
666
+ let { tenant_id: t, ...n } = Z(e);
667
+ return de.parse(Q(n));
668
+ }
669
+ function Xe(e) {
670
+ return {
671
+ async create(t, n) {
672
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = await this.list(t, n.user_id);
673
+ for (let i of a) i.is_current && await X(e, b.pk(t, n.user_id), b.sk(i.id), {
674
+ is_current: !1,
675
+ updated_at: r
676
+ });
677
+ let o = {
678
+ PK: b.pk(t, n.user_id),
679
+ SK: b.sk(i),
680
+ entityType: "PASSWORD",
681
+ id: i,
682
+ tenant_id: t,
683
+ user_id: n.user_id,
684
+ password: n.password,
685
+ algorithm: n.algorithm || "bcrypt",
686
+ is_current: !0,
687
+ created_at: r,
688
+ updated_at: r
689
+ };
690
+ return await K(e, o), Ye(o);
691
+ },
692
+ async update(e, t) {
693
+ return await this.create(e, t), !0;
694
+ },
695
+ async get(t, n) {
696
+ let { items: r } = await J(e, b.pk(t, n), { skPrefix: b.skPrefix() }), i = r.find((e) => e.is_current);
697
+ return i ? Ye(i) : null;
698
+ },
699
+ async list(t, n, r) {
700
+ let { items: i } = await J(e, b.pk(t, n), {
701
+ skPrefix: b.skPrefix(),
702
+ limit: r
703
+ });
704
+ return i.map(Ye);
705
+ }
706
+ };
707
+ }
708
+ //#endregion
709
+ //#region src/adapters/codes.ts
710
+ function Ze(e) {
711
+ let { tenant_id: t, ...n } = Z(e);
712
+ return o.parse(Q(n));
713
+ }
714
+ function Qe(e) {
715
+ return {
716
+ async create(t, n) {
717
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = {
718
+ PK: y.pk(t),
719
+ SK: y.sk(n.code_id, n.code_type),
720
+ entityType: "CODE",
721
+ code_id: n.code_id,
722
+ tenant_id: t,
723
+ code_type: n.code_type,
724
+ login_id: n.login_id,
725
+ connection_id: n.connection_id,
726
+ code_verifier: n.code_verifier,
727
+ code_challenge: n.code_challenge,
728
+ code_challenge_method: n.code_challenge_method,
729
+ nonce: n.nonce,
730
+ state: n.state,
731
+ redirect_uri: n.redirect_uri,
732
+ user_id: n.user_id,
733
+ used_at: n.used_at,
734
+ expires_at: n.expires_at,
735
+ created_at: r,
736
+ updated_at: r
737
+ };
738
+ return i.ttl = Math.floor(new Date(n.expires_at).getTime() / 1e3), await K(e, i), Ze(i);
739
+ },
740
+ async get(t, n, r) {
741
+ let i = await G(e, y.pk(t), y.sk(n, r));
742
+ return i ? Ze(i) : null;
743
+ },
744
+ async list(t, n = {}) {
745
+ let r = await Y(e, y.pk(t), n, { skPrefix: "CODE#" });
746
+ return {
747
+ codes: r.items.map(Ze),
748
+ start: r.start,
749
+ limit: r.limit,
750
+ length: r.length
751
+ };
752
+ },
753
+ async used(t, n) {
754
+ let { items: r } = await J(e, y.pk(t), {
755
+ skPrefix: y.skPrefixByCodeId(n),
756
+ limit: 1
757
+ }), i = r[0];
758
+ return i ? X(e, y.pk(t), y.sk(n, i.code_type), { used_at: (/* @__PURE__ */ new Date()).toISOString() }) : !1;
759
+ },
760
+ async consume(t, n) {
761
+ let { items: r } = await J(e, y.pk(t), {
762
+ skPrefix: y.skPrefixByCodeId(n),
763
+ limit: 1
764
+ }), i = r[0];
765
+ if (!i) return !1;
766
+ try {
767
+ return await e.client.send(new Ae({
768
+ TableName: e.tableName,
769
+ Key: {
770
+ PK: y.pk(t),
771
+ SK: y.sk(n, i.code_type)
772
+ },
773
+ UpdateExpression: "SET #used_at = :now",
774
+ ConditionExpression: "attribute_not_exists(#used_at) OR #used_at = :null",
775
+ ExpressionAttributeNames: { "#used_at": "used_at" },
776
+ ExpressionAttributeValues: {
777
+ ":now": (/* @__PURE__ */ new Date()).toISOString(),
778
+ ":null": null
779
+ }
780
+ })), !0;
781
+ } catch (e) {
782
+ if (e.name === "ConditionalCheckFailedException") return !1;
783
+ throw e;
784
+ }
785
+ },
786
+ async remove(t, n) {
787
+ let { items: r } = await J(e, y.pk(t), {
788
+ skPrefix: y.skPrefixByCodeId(n),
789
+ limit: 1
790
+ }), i = r[0];
791
+ return i ? q(e, y.pk(t), y.sk(n, i.code_type)) : !1;
792
+ }
793
+ };
794
+ }
795
+ //#endregion
796
+ //#region src/adapters/clients.ts
797
+ function $e(e) {
798
+ let { tenant_id: t, ...n } = Z(e), r = Q({
799
+ ...n,
800
+ callbacks: e.callbacks ? JSON.parse(e.callbacks) : void 0,
801
+ allowed_origins: e.allowed_origins ? JSON.parse(e.allowed_origins) : void 0,
802
+ web_origins: e.web_origins ? JSON.parse(e.web_origins) : void 0,
803
+ client_aliases: e.client_aliases ? JSON.parse(e.client_aliases) : void 0,
804
+ allowed_clients: e.allowed_clients ? JSON.parse(e.allowed_clients) : void 0,
805
+ connections: e.connections ? JSON.parse(e.connections) : void 0,
806
+ allowed_logout_urls: e.allowed_logout_urls ? JSON.parse(e.allowed_logout_urls) : void 0,
807
+ session_transfer: e.session_transfer ? JSON.parse(e.session_transfer) : void 0,
808
+ oidc_logout: e.oidc_logout ? JSON.parse(e.oidc_logout) : void 0,
809
+ grant_types: e.grant_types ? JSON.parse(e.grant_types) : void 0,
810
+ jwt_configuration: e.jwt_configuration ? JSON.parse(e.jwt_configuration) : void 0,
811
+ signing_keys: e.signing_keys ? JSON.parse(e.signing_keys) : void 0,
812
+ encryption_key: e.encryption_key ? JSON.parse(e.encryption_key) : void 0,
813
+ addons: e.addons ? JSON.parse(e.addons) : void 0,
814
+ client_metadata: e.client_metadata ? JSON.parse(e.client_metadata) : void 0,
815
+ mobile: e.mobile ? JSON.parse(e.mobile) : void 0,
816
+ native_social_login: e.native_social_login ? JSON.parse(e.native_social_login) : void 0,
817
+ refresh_token: e.refresh_token ? JSON.parse(e.refresh_token) : void 0,
818
+ default_organization: e.default_organization ? JSON.parse(e.default_organization) : void 0,
819
+ client_authentication_methods: e.client_authentication_methods ? JSON.parse(e.client_authentication_methods) : void 0,
820
+ signed_request_object: e.signed_request_object ? JSON.parse(e.signed_request_object) : void 0,
821
+ token_quota: e.token_quota ? JSON.parse(e.token_quota) : void 0
822
+ });
823
+ return a.parse(r);
824
+ }
825
+ function et(e) {
826
+ return {
827
+ ...$e(e),
828
+ tenant_id: e.tenant_id
829
+ };
830
+ }
831
+ function tt(e) {
832
+ return {
833
+ async create(t, n) {
834
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.client_id ?? d(), a = {
835
+ PK: g.pk(t),
836
+ SK: g.sk(i),
837
+ entityType: "CLIENT",
838
+ tenant_id: t,
839
+ client_id: i,
840
+ name: n.name,
841
+ client_secret: n.client_secret,
842
+ description: n.description,
843
+ logo_uri: n.logo_uri,
844
+ app_type: n.app_type,
845
+ token_endpoint_auth_method: n.token_endpoint_auth_method,
846
+ initiate_login_uri: n.initiate_login_uri,
847
+ cross_origin_loc: n.cross_origin_loc,
848
+ custom_login_page: n.custom_login_page,
849
+ custom_login_page_preview: n.custom_login_page_preview,
850
+ form_template: n.form_template,
851
+ organization_usage: n.organization_usage,
852
+ organization_require_behavior: n.organization_require_behavior,
853
+ compliance_level: n.compliance_level,
854
+ par_request_expiry: n.par_request_expiry,
855
+ global: n.global ?? !1,
856
+ is_first_party: n.is_first_party ?? !1,
857
+ oidc_conformant: n.oidc_conformant ?? !0,
858
+ auth0_conformant: n.auth0_conformant ?? !0,
859
+ sso: n.sso,
860
+ sso_disabled: n.sso_disabled,
861
+ cross_origin_authentication: n.cross_origin_authentication,
862
+ custom_login_page_on: n.custom_login_page_on,
863
+ require_pushed_authorization_requests: n.require_pushed_authorization_requests,
864
+ require_proof_of_possession: n.require_proof_of_possession,
865
+ callbacks: n.callbacks ? JSON.stringify(n.callbacks) : void 0,
866
+ allowed_origins: n.allowed_origins ? JSON.stringify(n.allowed_origins) : void 0,
867
+ web_origins: n.web_origins ? JSON.stringify(n.web_origins) : void 0,
868
+ client_aliases: n.client_aliases ? JSON.stringify(n.client_aliases) : void 0,
869
+ allowed_clients: n.allowed_clients ? JSON.stringify(n.allowed_clients) : void 0,
870
+ connections: n.connections ? JSON.stringify(n.connections) : void 0,
871
+ allowed_logout_urls: n.allowed_logout_urls ? JSON.stringify(n.allowed_logout_urls) : void 0,
872
+ session_transfer: n.session_transfer ? JSON.stringify(n.session_transfer) : void 0,
873
+ oidc_logout: n.oidc_logout ? JSON.stringify(n.oidc_logout) : void 0,
874
+ grant_types: n.grant_types ? JSON.stringify(n.grant_types) : void 0,
875
+ jwt_configuration: n.jwt_configuration ? JSON.stringify(n.jwt_configuration) : void 0,
876
+ signing_keys: n.signing_keys ? JSON.stringify(n.signing_keys) : void 0,
877
+ encryption_key: n.encryption_key ? JSON.stringify(n.encryption_key) : void 0,
878
+ addons: n.addons ? JSON.stringify(n.addons) : void 0,
879
+ client_metadata: n.client_metadata ? JSON.stringify(n.client_metadata) : void 0,
880
+ mobile: n.mobile ? JSON.stringify(n.mobile) : void 0,
881
+ native_social_login: n.native_social_login ? JSON.stringify(n.native_social_login) : void 0,
882
+ refresh_token: n.refresh_token ? JSON.stringify(n.refresh_token) : void 0,
883
+ default_organization: n.default_organization ? JSON.stringify(n.default_organization) : void 0,
884
+ client_authentication_methods: n.client_authentication_methods ? JSON.stringify(n.client_authentication_methods) : void 0,
885
+ signed_request_object: n.signed_request_object ? JSON.stringify(n.signed_request_object) : void 0,
886
+ token_quota: n.token_quota ? JSON.stringify(n.token_quota) : void 0,
887
+ created_at: r,
888
+ updated_at: r
889
+ };
890
+ return await K(e, a), $e(a);
891
+ },
892
+ async get(t, n) {
893
+ let r = await G(e, g.pk(t), g.sk(n));
894
+ return r ? $e(r) : null;
895
+ },
896
+ async getByClientId(t) {
897
+ let n = await G(e, Re.pk(), Re.sk(t));
898
+ if (!n?.tenant_id) return null;
899
+ let r = await G(e, g.pk(n.tenant_id), g.sk(t));
900
+ return r ? et(r) : null;
901
+ },
902
+ async list(t, n = {}) {
903
+ let r = await Y(e, g.pk(t), n, { skPrefix: "CLIENT#" }), i = r.items.map($e);
904
+ return n.include_totals ? {
905
+ clients: i,
906
+ totals: {
907
+ start: r.start,
908
+ limit: r.limit,
909
+ length: r.length
910
+ }
911
+ } : { clients: i };
912
+ },
913
+ async update(t, n, r) {
914
+ let i = {
915
+ ...r,
916
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
917
+ };
918
+ for (let e of [
919
+ "callbacks",
920
+ "allowed_origins",
921
+ "web_origins",
922
+ "client_aliases",
923
+ "allowed_clients",
924
+ "connections",
925
+ "allowed_logout_urls",
926
+ "session_transfer",
927
+ "oidc_logout",
928
+ "grant_types",
929
+ "jwt_configuration",
930
+ "signing_keys",
931
+ "encryption_key",
932
+ "addons",
933
+ "client_metadata",
934
+ "mobile",
935
+ "native_social_login",
936
+ "refresh_token",
937
+ "default_organization",
938
+ "client_authentication_methods",
939
+ "signed_request_object",
940
+ "token_quota"
941
+ ]) r[e] !== void 0 && (i[e] = JSON.stringify(r[e]));
942
+ return delete i.client_id, X(e, g.pk(t), g.sk(n), i);
943
+ },
944
+ async remove(t, n) {
945
+ return q(e, g.pk(t), g.sk(n));
946
+ }
947
+ };
948
+ }
949
+ //#endregion
950
+ //#region src/adapters/clientGrants.ts
951
+ function nt(e) {
952
+ let { tenant_id: t, ...n } = Z(e), i = Q({
953
+ ...n,
954
+ scope: e.scope ? JSON.parse(e.scope) : void 0,
955
+ authorization_details_types: e.authorization_details_types ? JSON.parse(e.authorization_details_types) : void 0
956
+ });
957
+ return r.parse(i);
958
+ }
959
+ function rt(e) {
960
+ return {
961
+ async create(t, n) {
962
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = {
963
+ PK: _.pk(t),
964
+ SK: _.sk(i),
965
+ GSI1PK: _.gsi1pk(t, n.client_id),
966
+ GSI1SK: _.gsi1sk(n.audience),
967
+ entityType: "CLIENT_GRANT",
968
+ tenant_id: t,
969
+ id: i,
970
+ client_id: n.client_id,
971
+ audience: n.audience,
972
+ scope: n.scope ? JSON.stringify(n.scope) : void 0,
973
+ organization_usage: n.organization_usage,
974
+ allow_any_organization: n.allow_any_organization,
975
+ is_system: n.is_system,
976
+ subject_type: n.subject_type,
977
+ authorization_details_types: n.authorization_details_types ? JSON.stringify(n.authorization_details_types) : void 0,
978
+ created_at: r,
979
+ updated_at: r
980
+ };
981
+ return await K(e, a), nt(a);
982
+ },
983
+ async get(t, n) {
984
+ let r = await G(e, _.pk(t), _.sk(n));
985
+ return r ? nt(r) : null;
986
+ },
987
+ async list(t, n = {}) {
988
+ let r = await Y(e, _.pk(t), n, { skPrefix: "CLIENT_GRANT#" });
989
+ return {
990
+ client_grants: r.items.map(nt),
991
+ start: r.start,
992
+ limit: r.limit,
993
+ length: r.length
994
+ };
995
+ },
996
+ async update(t, n, r) {
997
+ let i = {
998
+ ...r,
999
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1000
+ };
1001
+ return r.scope !== void 0 && (i.scope = JSON.stringify(r.scope)), r.authorization_details_types !== void 0 && (i.authorization_details_types = JSON.stringify(r.authorization_details_types)), delete i.id, X(e, _.pk(t), _.sk(n), i);
1002
+ },
1003
+ async remove(t, n) {
1004
+ return q(e, _.pk(t), _.sk(n));
1005
+ }
1006
+ };
1007
+ }
1008
+ //#endregion
1009
+ //#region src/adapters/clientConnections.ts
1010
+ function it(e) {
1011
+ let { tenant_id: t, ...n } = Z(e), r = Q({
1012
+ ...n,
1013
+ options: e.options ? JSON.parse(e.options) : void 0
1014
+ });
1015
+ return s.parse(r);
1016
+ }
1017
+ function at(e) {
1018
+ return {
1019
+ async listByClient(t, n) {
1020
+ let { items: r } = await J(e, V.pk(t, n), { skPrefix: V.skPrefix() });
1021
+ r.sort((e, t) => e.order - t.order);
1022
+ let i = [];
1023
+ for (let n of r) {
1024
+ let r = await G(e, v.pk(t), v.sk(n.connection_id));
1025
+ r && i.push(it(r));
1026
+ }
1027
+ return i;
1028
+ },
1029
+ async updateByClient(t, n, r) {
1030
+ let { items: i } = await J(e, V.pk(t, n), { skPrefix: V.skPrefix() });
1031
+ if (i.length > 0) {
1032
+ let r = i.map((e) => ({ DeleteRequest: { Key: {
1033
+ PK: V.pk(t, n),
1034
+ SK: V.sk(e.connection_id, e.order)
1035
+ } } }));
1036
+ for (let t = 0; t < r.length; t += 25) {
1037
+ let n = r.slice(t, t + 25);
1038
+ await e.client.send(new we({ RequestItems: { [e.tableName]: n } }));
1039
+ }
1040
+ }
1041
+ let a = (/* @__PURE__ */ new Date()).toISOString();
1042
+ for (let i = 0; i < r.length; i++) {
1043
+ let o = r[i];
1044
+ await K(e, {
1045
+ PK: V.pk(t, n),
1046
+ SK: V.sk(o, i),
1047
+ GSI1PK: V.gsi1pk(t, o),
1048
+ GSI1SK: V.gsi1sk(n),
1049
+ entityType: "CLIENT_CONNECTION",
1050
+ tenant_id: t,
1051
+ client_id: n,
1052
+ connection_id: o,
1053
+ order: i,
1054
+ created_at: a,
1055
+ updated_at: a
1056
+ });
1057
+ }
1058
+ return !0;
1059
+ },
1060
+ async listByConnection(t, n) {
1061
+ let { items: r } = await J(e, V.gsi1pk(t, n), {
1062
+ indexName: "GSI1",
1063
+ skPrefix: "CLIENT_CONNECTION#"
1064
+ });
1065
+ return r.map((e) => e.client_id);
1066
+ },
1067
+ async addClientToConnection(t, n, r) {
1068
+ let { items: i } = await J(e, V.pk(t, r), { skPrefix: V.skPrefix() });
1069
+ if (i.some((e) => e.connection_id === n)) return !0;
1070
+ let a = i.length, o = (/* @__PURE__ */ new Date()).toISOString();
1071
+ return await K(e, {
1072
+ PK: V.pk(t, r),
1073
+ SK: V.sk(n, a),
1074
+ GSI1PK: V.gsi1pk(t, n),
1075
+ GSI1SK: V.gsi1sk(r),
1076
+ entityType: "CLIENT_CONNECTION",
1077
+ tenant_id: t,
1078
+ client_id: r,
1079
+ connection_id: n,
1080
+ order: a,
1081
+ created_at: o,
1082
+ updated_at: o
1083
+ }), !0;
1084
+ },
1085
+ async removeClientFromConnection(t, n, r) {
1086
+ let { items: i } = await J(e, V.pk(t, r), { skPrefix: V.skPrefix() }), a = i.find((e) => e.connection_id === n);
1087
+ return a ? q(e, V.pk(t, r), V.sk(n, a.order)) : !1;
1088
+ }
1089
+ };
1090
+ }
1091
+ //#endregion
1092
+ //#region src/adapters/clientRegistrationTokens.ts
1093
+ function ot(e) {
1094
+ let { tenant_id: t, constraints: n, ...r } = Z(e), a = Q({
1095
+ ...r,
1096
+ constraints: n ? JSON.parse(n) : void 0
1097
+ });
1098
+ return i.parse(a);
1099
+ }
1100
+ function st(e) {
1101
+ return {
1102
+ async create(t, n) {
1103
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = {
1104
+ PK: U.pk(t),
1105
+ SK: U.sk(n.id),
1106
+ GSI1PK: U.gsi1pk(t, n.token_hash),
1107
+ GSI1SK: U.gsi1sk(),
1108
+ entityType: "CLIENT_REGISTRATION_TOKEN",
1109
+ tenant_id: t,
1110
+ id: n.id,
1111
+ token_hash: n.token_hash,
1112
+ type: n.type,
1113
+ client_id: n.client_id,
1114
+ sub: n.sub,
1115
+ constraints: n.constraints ? JSON.stringify(n.constraints) : void 0,
1116
+ single_use: n.single_use,
1117
+ expires_at: n.expires_at,
1118
+ created_at: r,
1119
+ updated_at: r
1120
+ };
1121
+ return n.client_id && (i.GSI2PK = U.gsi2pk(t, n.client_id), i.GSI2SK = U.gsi2sk(n.id)), n.expires_at && (i.ttl = Math.floor(new Date(n.expires_at).getTime() / 1e3)), await K(e, i), ot(i);
1122
+ },
1123
+ async get(t, n) {
1124
+ let r = await G(e, U.pk(t), U.sk(n));
1125
+ return r ? ot(r) : null;
1126
+ },
1127
+ async getByHash(t, n) {
1128
+ let r = await J(e, U.gsi1pk(t, n), {
1129
+ indexName: "GSI1",
1130
+ skValue: U.gsi1sk(),
1131
+ limit: 1
1132
+ });
1133
+ return r.items[0] ? ot(r.items[0]) : null;
1134
+ },
1135
+ async listByClient(t, n) {
1136
+ return (await J(e, U.gsi2pk(t, n), {
1137
+ indexName: "GSI2",
1138
+ skPrefix: U.skPrefix(),
1139
+ scanIndexForward: !1
1140
+ })).items.map(ot);
1141
+ },
1142
+ async markUsed(t, n, r) {
1143
+ try {
1144
+ return await e.client.send(new Ae({
1145
+ TableName: e.tableName,
1146
+ Key: {
1147
+ PK: U.pk(t),
1148
+ SK: U.sk(n)
1149
+ },
1150
+ UpdateExpression: "SET #used_at = :used_at, #updated_at = :updated_at",
1151
+ ConditionExpression: "attribute_exists(PK) AND attribute_not_exists(#used_at)",
1152
+ ExpressionAttributeNames: {
1153
+ "#used_at": "used_at",
1154
+ "#updated_at": "updated_at"
1155
+ },
1156
+ ExpressionAttributeValues: {
1157
+ ":used_at": r,
1158
+ ":updated_at": (/* @__PURE__ */ new Date()).toISOString()
1159
+ }
1160
+ })), !0;
1161
+ } catch (e) {
1162
+ if (e?.name === "ConditionalCheckFailedException") return !1;
1163
+ throw e;
1164
+ }
1165
+ },
1166
+ async revoke(t, n, r) {
1167
+ try {
1168
+ return await e.client.send(new Ae({
1169
+ TableName: e.tableName,
1170
+ Key: {
1171
+ PK: U.pk(t),
1172
+ SK: U.sk(n)
1173
+ },
1174
+ UpdateExpression: "SET #revoked_at = :revoked_at, #updated_at = :updated_at",
1175
+ ConditionExpression: "attribute_exists(PK)",
1176
+ ExpressionAttributeNames: {
1177
+ "#revoked_at": "revoked_at",
1178
+ "#updated_at": "updated_at"
1179
+ },
1180
+ ExpressionAttributeValues: {
1181
+ ":revoked_at": r,
1182
+ ":updated_at": (/* @__PURE__ */ new Date()).toISOString()
1183
+ }
1184
+ })), !0;
1185
+ } catch (e) {
1186
+ if (e?.name === "ConditionalCheckFailedException") return !1;
1187
+ throw e;
1188
+ }
1189
+ },
1190
+ async revokeByClient(t, n, r) {
1191
+ let i = await J(e, U.gsi2pk(t, n), {
1192
+ indexName: "GSI2",
1193
+ skPrefix: U.skPrefix()
1194
+ }), a = 0, o = (/* @__PURE__ */ new Date()).toISOString();
1195
+ for (let t of i.items) if (!t.revoked_at) try {
1196
+ await e.client.send(new Ae({
1197
+ TableName: e.tableName,
1198
+ Key: {
1199
+ PK: t.PK,
1200
+ SK: t.SK
1201
+ },
1202
+ UpdateExpression: "SET #revoked_at = :revoked_at, #updated_at = :updated_at",
1203
+ ConditionExpression: "attribute_exists(PK) AND attribute_not_exists(#revoked_at)",
1204
+ ExpressionAttributeNames: {
1205
+ "#revoked_at": "revoked_at",
1206
+ "#updated_at": "updated_at"
1207
+ },
1208
+ ExpressionAttributeValues: {
1209
+ ":revoked_at": r,
1210
+ ":updated_at": o
1211
+ }
1212
+ })), a++;
1213
+ } catch (e) {
1214
+ if (e?.name === "ConditionalCheckFailedException") continue;
1215
+ throw e;
1216
+ }
1217
+ return a;
1218
+ },
1219
+ async remove(t, n) {
1220
+ return q(e, U.pk(t), U.sk(n));
1221
+ }
1222
+ };
1223
+ }
1224
+ //#endregion
1225
+ //#region src/adapters/connections.ts
1226
+ function ct(e) {
1227
+ let { tenant_id: t, is_system: n, ...r } = Z(e), i = Q({
1228
+ ...r,
1229
+ options: e.options ? JSON.parse(e.options) : void 0,
1230
+ is_system: n ? !0 : void 0
1231
+ });
1232
+ return s.parse(i);
1233
+ }
1234
+ function lt(e) {
1235
+ return {
1236
+ async create(t, n) {
1237
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.id || d(), a = {
1238
+ PK: v.pk(t),
1239
+ SK: v.sk(i),
1240
+ GSI1PK: v.gsi1pk(t, n.name),
1241
+ GSI1SK: v.gsi1sk(),
1242
+ entityType: "CONNECTION",
1243
+ tenant_id: t,
1244
+ id: i,
1245
+ name: n.name,
1246
+ strategy: n.strategy,
1247
+ options: n.options ? JSON.stringify(n.options) : void 0,
1248
+ is_system: n.is_system ?? !1,
1249
+ created_at: r,
1250
+ updated_at: r
1251
+ };
1252
+ return await K(e, a), ct(a);
1253
+ },
1254
+ async get(t, n) {
1255
+ let r = await G(e, v.pk(t), v.sk(n));
1256
+ return r ? ct(r) : null;
1257
+ },
1258
+ async list(t, n = {}) {
1259
+ let r = await Y(e, v.pk(t), n, { skPrefix: "CONNECTION#" });
1260
+ return {
1261
+ connections: r.items.map(ct),
1262
+ start: r.start,
1263
+ limit: r.limit,
1264
+ length: r.length
1265
+ };
1266
+ },
1267
+ async update(t, n, r) {
1268
+ let i = {
1269
+ ...r,
1270
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1271
+ };
1272
+ return r.options !== void 0 && (i.options = JSON.stringify(r.options)), r.name !== void 0 && (i.GSI1PK = v.gsi1pk(t, r.name), i.GSI1SK = v.gsi1sk()), delete i.id, X(e, v.pk(t), v.sk(n), i);
1273
+ },
1274
+ async remove(t, n) {
1275
+ return q(e, v.pk(t), v.sk(n));
1276
+ }
1277
+ };
1278
+ }
1279
+ //#endregion
1280
+ //#region src/adapters/loginSessions.ts
1281
+ function ut(e) {
1282
+ let { tenant_id: t, authParams: n, ...r } = Z(e), i = Q({
1283
+ ...r,
1284
+ authParams: JSON.parse(n)
1285
+ });
1286
+ return se.parse(i);
1287
+ }
1288
+ function dt(t) {
1289
+ return {
1290
+ async create(n, r) {
1291
+ let i = (/* @__PURE__ */ new Date()).toISOString(), a = d(), o = {
1292
+ PK: h.pk(n),
1293
+ SK: h.sk(a),
1294
+ entityType: "LOGIN_SESSION",
1295
+ tenant_id: n,
1296
+ id: a,
1297
+ csrf_token: r.csrf_token,
1298
+ authParams: JSON.stringify(r.authParams),
1299
+ expires_at: r.expires_at,
1300
+ state: r.state ?? e.PENDING,
1301
+ state_data: r.state_data,
1302
+ failure_reason: r.failure_reason,
1303
+ user_id: r.user_id,
1304
+ auth0Client: r.auth0Client,
1305
+ deleted_at: r.deleted_at,
1306
+ ip: r.ip,
1307
+ useragent: r.useragent,
1308
+ session_id: r.session_id,
1309
+ authorization_url: r.authorization_url?.slice(0, 1024),
1310
+ created_at: i,
1311
+ updated_at: i
1312
+ };
1313
+ return o.ttl = Math.floor(new Date(r.expires_at).getTime() / 1e3), await K(t, o), ut(o);
1314
+ },
1315
+ async get(e, n) {
1316
+ let r = await G(t, h.pk(e), h.sk(n));
1317
+ return r ? ut(r) : null;
1318
+ },
1319
+ async update(e, n, r) {
1320
+ let i = {
1321
+ ...r,
1322
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1323
+ };
1324
+ return r.authParams !== void 0 && (i.authParams = JSON.stringify(r.authParams)), delete i.id, X(t, h.pk(e), h.sk(n), i);
1325
+ },
1326
+ async remove(e, n) {
1327
+ return q(t, h.pk(e), h.sk(n));
1328
+ }
1329
+ };
1330
+ }
1331
+ //#endregion
1332
+ //#region src/adapters/branding.ts
1333
+ function ft(e) {
1334
+ let { tenant_id: t, ...r } = Z(e), i = Q({
1335
+ ...r,
1336
+ colors: e.colors ? JSON.parse(e.colors) : void 0,
1337
+ font: e.font ? JSON.parse(e.font) : void 0
1338
+ });
1339
+ return n.parse(i);
1340
+ }
1341
+ function pt(e) {
1342
+ return {
1343
+ async set(t, n) {
1344
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = await G(e, Fe.pk(t), Fe.sk());
1345
+ await K(e, {
1346
+ PK: Fe.pk(t),
1347
+ SK: Fe.sk(),
1348
+ entityType: "BRANDING",
1349
+ tenant_id: t,
1350
+ colors: n.colors ? JSON.stringify(n.colors) : void 0,
1351
+ favicon_url: n.favicon_url,
1352
+ logo_url: n.logo_url,
1353
+ powered_by_logo_url: n.powered_by_logo_url,
1354
+ font: n.font ? JSON.stringify(n.font) : void 0,
1355
+ created_at: i?.created_at || r,
1356
+ updated_at: r
1357
+ });
1358
+ },
1359
+ async get(t) {
1360
+ let n = await G(e, Fe.pk(t), Fe.sk());
1361
+ return n ? ft(n) : null;
1362
+ }
1363
+ };
1364
+ }
1365
+ //#endregion
1366
+ //#region src/adapters/universalLoginTemplates.ts
1367
+ function mt(e) {
1368
+ return {
1369
+ async get(t) {
1370
+ let n = await G(e, x.pk(t), x.sk());
1371
+ return n ? { body: n.body } : null;
1372
+ },
1373
+ async set(t, n) {
1374
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = await G(e, x.pk(t), x.sk());
1375
+ await K(e, {
1376
+ PK: x.pk(t),
1377
+ SK: x.sk(),
1378
+ entityType: "UNIVERSAL_LOGIN_TEMPLATE",
1379
+ tenant_id: t,
1380
+ body: n.body,
1381
+ created_at: i?.created_at || r,
1382
+ updated_at: r
1383
+ });
1384
+ },
1385
+ async delete(t) {
1386
+ await q(e, x.pk(t), x.sk());
1387
+ }
1388
+ };
1389
+ }
1390
+ //#endregion
1391
+ //#region src/adapters/hookCode.ts
1392
+ var $ = {
1393
+ pk: (e) => `TENANT#${e}`,
1394
+ sk: (e) => `HOOK_CODE#${e}`
1395
+ };
1396
+ function ht(e) {
1397
+ let { tenant_id: t, secrets: n, ...r } = Z(e);
1398
+ return {
1399
+ ...r,
1400
+ tenant_id: t,
1401
+ secrets: n ? JSON.parse(n) : void 0
1402
+ };
1403
+ }
1404
+ function gt(e) {
1405
+ return {
1406
+ async create(t, n) {
1407
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = `hc_${d()}`, a = {
1408
+ PK: $.pk(t),
1409
+ SK: $.sk(i),
1410
+ entityType: "HOOK_CODE",
1411
+ id: i,
1412
+ tenant_id: t,
1413
+ code: n.code,
1414
+ secrets: n.secrets ? JSON.stringify(n.secrets) : null,
1415
+ created_at: r,
1416
+ updated_at: r
1417
+ };
1418
+ return await K(e, a), ht(a);
1419
+ },
1420
+ async get(t, n) {
1421
+ let r = await G(e, $.pk(t), $.sk(n));
1422
+ return r ? ht(r) : null;
1423
+ },
1424
+ async update(t, n, r) {
1425
+ let i = await G(e, $.pk(t), $.sk(n));
1426
+ if (!i) return !1;
1427
+ let a = {
1428
+ ...i,
1429
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1430
+ };
1431
+ return r.code !== void 0 && (a.code = r.code), r.secrets !== void 0 && (a.secrets = JSON.stringify(r.secrets)), await K(e, a), !0;
1432
+ },
1433
+ async remove(t, n) {
1434
+ return await G(e, $.pk(t), $.sk(n)) ? (await q(e, $.pk(t), $.sk(n)), !0) : !1;
1435
+ }
1436
+ };
1437
+ }
1438
+ //#endregion
1439
+ //#region src/adapters/hooks.ts
1440
+ function _t(e) {
1441
+ let { tenant_id: t, ...n } = Z(e);
1442
+ return ie.parse(Q(n));
1443
+ }
1444
+ function vt(e) {
1445
+ return {
1446
+ async create(t, n) {
1447
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.hook_id || d(), a = "url" in n ? n.url : void 0, o = "form_id" in n ? n.form_id : void 0, s = "template_id" in n ? n.template_id : void 0, c = {
1448
+ PK: C.pk(t),
1449
+ SK: C.sk(i),
1450
+ entityType: "HOOK",
1451
+ tenant_id: t,
1452
+ hook_id: i,
1453
+ trigger_id: n.trigger_id,
1454
+ url: a,
1455
+ form_id: o,
1456
+ template_id: s,
1457
+ enabled: n.enabled ?? !1,
1458
+ synchronous: n.synchronous ?? !1,
1459
+ priority: n.priority,
1460
+ created_at: r,
1461
+ updated_at: r
1462
+ };
1463
+ return await K(e, c), _t(c);
1464
+ },
1465
+ async get(t, n) {
1466
+ let r = await G(e, C.pk(t), C.sk(n));
1467
+ return r ? _t(r) : null;
1468
+ },
1469
+ async list(t, n = {}) {
1470
+ let r = await Y(e, C.pk(t), n, { skPrefix: "HOOK#" });
1471
+ return {
1472
+ hooks: r.items.map(_t),
1473
+ start: r.start,
1474
+ limit: r.limit,
1475
+ length: r.length
1476
+ };
1477
+ },
1478
+ async update(t, n, r) {
1479
+ let i = {
1480
+ ...r,
1481
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1482
+ };
1483
+ return delete i.hook_id, X(e, C.pk(t), C.sk(n), i);
1484
+ },
1485
+ async remove(t, n) {
1486
+ return q(e, C.pk(t), C.sk(n));
1487
+ }
1488
+ };
1489
+ }
1490
+ //#endregion
1491
+ //#region src/adapters/keys.ts
1492
+ function yt(e) {
1493
+ return ve.parse(Q(Z(e)));
1494
+ }
1495
+ function bt(e) {
1496
+ return {
1497
+ async create(t) {
1498
+ let n = (/* @__PURE__ */ new Date()).toISOString();
1499
+ await K(e, {
1500
+ PK: Ie.pk(),
1501
+ SK: Ie.sk(t.kid),
1502
+ entityType: "KEY",
1503
+ kid: t.kid,
1504
+ cert: t.cert,
1505
+ fingerprint: t.fingerprint,
1506
+ thumbprint: t.thumbprint,
1507
+ pkcs7: t.pkcs7,
1508
+ current: t.current,
1509
+ next: t.next,
1510
+ previous: t.previous,
1511
+ current_since: t.current_since,
1512
+ current_until: t.current_until,
1513
+ revoked: t.revoked,
1514
+ revoked_at: t.revoked_at,
1515
+ connection: t.connection,
1516
+ type: t.type,
1517
+ created_at: n,
1518
+ updated_at: n
1519
+ });
1520
+ },
1521
+ async list(t = {}) {
1522
+ let n = await Y(e, Ie.pk(), t, { skPrefix: "KEY#" });
1523
+ return {
1524
+ signingKeys: n.items.map(yt),
1525
+ start: n.start,
1526
+ limit: n.limit,
1527
+ length: n.length
1528
+ };
1529
+ },
1530
+ async update(t, n) {
1531
+ let r = {
1532
+ ...n,
1533
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1534
+ };
1535
+ return X(e, Ie.pk(), Ie.sk(t), r);
1536
+ }
1537
+ };
1538
+ }
1539
+ //#endregion
1540
+ //#region src/adapters/customDomains.ts
1541
+ function xt(e) {
1542
+ let { tenant_id: t, verification: n, domain_metadata: r, ...i } = Z(e), a = Q({
1543
+ ...i,
1544
+ verification: n ? JSON.parse(n) : void 0,
1545
+ domain_metadata: r ? JSON.parse(r) : void 0
1546
+ });
1547
+ return c.parse(a);
1548
+ }
1549
+ function St(e) {
1550
+ let { verification: t, domain_metadata: n, ...r } = Z(e), i = Q({
1551
+ ...r,
1552
+ tenant_id: e.tenant_id,
1553
+ verification: t ? JSON.parse(t) : void 0,
1554
+ domain_metadata: n ? JSON.parse(n) : void 0
1555
+ });
1556
+ return l.parse(i);
1557
+ }
1558
+ function Ct(e) {
1559
+ return {
1560
+ async create(t, n) {
1561
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.custom_domain_id || d(), a = {
1562
+ PK: w.pk(t),
1563
+ SK: w.sk(i),
1564
+ GSI1PK: w.gsi1pk(n.domain),
1565
+ GSI1SK: w.gsi1sk(),
1566
+ entityType: "CUSTOM_DOMAIN",
1567
+ tenant_id: t,
1568
+ custom_domain_id: i,
1569
+ domain: n.domain,
1570
+ primary: !1,
1571
+ status: "pending_verification",
1572
+ type: n.type,
1573
+ verification_method: n.verification_method,
1574
+ custom_client_ip_header: n.custom_client_ip_header,
1575
+ tls_policy: n.tls_policy,
1576
+ domain_metadata: n.domain_metadata ? JSON.stringify(n.domain_metadata) : void 0,
1577
+ created_at: r,
1578
+ updated_at: r
1579
+ };
1580
+ return await K(e, a), xt(a);
1581
+ },
1582
+ async get(t, n) {
1583
+ let r = await G(e, w.pk(t), w.sk(n));
1584
+ return r ? xt(r) : null;
1585
+ },
1586
+ async getByDomain(t) {
1587
+ let { items: n } = await J(e, w.gsi1pk(t), {
1588
+ indexName: "GSI1",
1589
+ skValue: w.gsi1sk()
1590
+ });
1591
+ return n.length ? St(n[0]) : null;
1592
+ },
1593
+ async list(t) {
1594
+ let { items: n } = await J(e, w.pk(t), { skPrefix: "CUSTOM_DOMAIN#" });
1595
+ return n.map(xt);
1596
+ },
1597
+ async update(t, n, r) {
1598
+ let i = {
1599
+ ...r,
1600
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1601
+ };
1602
+ return r.verification !== void 0 && (i.verification = JSON.stringify(r.verification)), r.domain_metadata !== void 0 && (i.domain_metadata = JSON.stringify(r.domain_metadata)), delete i.custom_domain_id, X(e, w.pk(t), w.sk(n), i);
1603
+ },
1604
+ async remove(t, n) {
1605
+ return q(e, w.pk(t), w.sk(n));
1606
+ }
1607
+ };
1608
+ }
1609
+ //#endregion
1610
+ //#region src/adapters/logs.ts
1611
+ function wt(e) {
1612
+ let { tenant_id: t, country_code: n, city_name: r, latitude: i, longitude: a, time_zone: o, continent_code: s, ...c } = Z(e), l = Q({
1613
+ ...c,
1614
+ auth0_client: e.auth0_client ? JSON.parse(e.auth0_client) : void 0,
1615
+ details: e.details ? JSON.parse(e.details) : void 0,
1616
+ location_info: n ? {
1617
+ country_code: n,
1618
+ city_name: r,
1619
+ latitude: i,
1620
+ longitude: a,
1621
+ time_zone: o,
1622
+ continent_code: s
1623
+ } : void 0
1624
+ });
1625
+ return oe.parse(l);
1626
+ }
1627
+ function Tt(e) {
1628
+ return {
1629
+ async create(t, n) {
1630
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.log_id || d(), a = n.date || r, o = a.substring(0, 10), s = {
1631
+ PK: E.pk(t),
1632
+ SK: E.sk(i),
1633
+ GSI1PK: E.gsi1pk(t, o),
1634
+ GSI1SK: E.gsi1sk(i),
1635
+ entityType: "LOG",
1636
+ tenant_id: t,
1637
+ log_id: i,
1638
+ type: n.type,
1639
+ description: n.description,
1640
+ ip: n.ip,
1641
+ user_agent: n.user_agent,
1642
+ date: a,
1643
+ user_id: n.user_id,
1644
+ user_name: n.user_name,
1645
+ connection: n.connection,
1646
+ connection_id: n.connection_id,
1647
+ client_id: n.client_id,
1648
+ client_name: n.client_name,
1649
+ audience: n.audience,
1650
+ scope: n.scope,
1651
+ strategy: n.strategy,
1652
+ strategy_type: n.strategy_type,
1653
+ hostname: n.hostname,
1654
+ isMobile: n.isMobile,
1655
+ auth0_client: n.auth0_client ? JSON.stringify(n.auth0_client) : void 0,
1656
+ details: n.details ? JSON.stringify(n.details) : void 0,
1657
+ country_code: n.location_info?.country_code,
1658
+ city_name: n.location_info?.city_name,
1659
+ latitude: n.location_info?.latitude,
1660
+ longitude: n.location_info?.longitude,
1661
+ time_zone: n.location_info?.time_zone,
1662
+ continent_code: n.location_info?.continent_code,
1663
+ created_at: r,
1664
+ updated_at: r
1665
+ }, c = new Date(a);
1666
+ return c.setDate(c.getDate() + 30), s.ttl = Math.floor(c.getTime() / 1e3), await K(e, s), wt(s);
1667
+ },
1668
+ async list(t, n = {}) {
1669
+ let r = await Y(e, E.pk(t), n, {
1670
+ skPrefix: "LOG#",
1671
+ scanIndexForward: !1
1672
+ });
1673
+ return {
1674
+ logs: r.items.map(wt),
1675
+ start: r.start,
1676
+ limit: r.limit,
1677
+ length: r.length
1678
+ };
1679
+ },
1680
+ async get(t, n) {
1681
+ let r = await G(e, E.pk(t), E.sk(n));
1682
+ return r ? wt(r) : null;
1683
+ }
1684
+ };
1685
+ }
1686
+ //#endregion
1687
+ //#region src/adapters/themes.ts
1688
+ function Et(e) {
1689
+ let { tenant_id: t, ...n } = Z(e), r = Q({
1690
+ ...n,
1691
+ borders: e.borders ? JSON.parse(e.borders) : void 0,
1692
+ colors: e.colors ? JSON.parse(e.colors) : void 0,
1693
+ fonts: e.fonts ? JSON.parse(e.fonts) : void 0,
1694
+ page_background: e.page_background ? JSON.parse(e.page_background) : void 0,
1695
+ widget: e.widget ? JSON.parse(e.widget) : void 0
1696
+ });
1697
+ return be.parse(r);
1698
+ }
1699
+ function Dt(e) {
1700
+ return {
1701
+ async create(t, n, r) {
1702
+ let i = (/* @__PURE__ */ new Date()).toISOString(), a = r || d(), o = {
1703
+ PK: S.pk(t),
1704
+ SK: S.sk(a),
1705
+ entityType: "THEME",
1706
+ tenant_id: t,
1707
+ themeId: a,
1708
+ displayName: n.displayName,
1709
+ borders: n.borders ? JSON.stringify(n.borders) : void 0,
1710
+ colors: n.colors ? JSON.stringify(n.colors) : void 0,
1711
+ fonts: n.fonts ? JSON.stringify(n.fonts) : void 0,
1712
+ page_background: n.page_background ? JSON.stringify(n.page_background) : void 0,
1713
+ widget: n.widget ? JSON.stringify(n.widget) : void 0,
1714
+ created_at: i,
1715
+ updated_at: i
1716
+ };
1717
+ return await K(e, o), Et(o);
1718
+ },
1719
+ async get(t, n) {
1720
+ let r = await G(e, S.pk(t), S.sk(n));
1721
+ return r ? Et(r) : null;
1722
+ },
1723
+ async update(t, n, r) {
1724
+ let i = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
1725
+ return r.displayName !== void 0 && (i.displayName = r.displayName), r.borders !== void 0 && (i.borders = JSON.stringify(r.borders)), r.colors !== void 0 && (i.colors = JSON.stringify(r.colors)), r.fonts !== void 0 && (i.fonts = JSON.stringify(r.fonts)), r.page_background !== void 0 && (i.page_background = JSON.stringify(r.page_background)), r.widget !== void 0 && (i.widget = JSON.stringify(r.widget)), X(e, S.pk(t), S.sk(n), i);
1726
+ },
1727
+ async remove(t, n) {
1728
+ return q(e, S.pk(t), S.sk(n));
1729
+ }
1730
+ };
1731
+ }
1732
+ //#endregion
1733
+ //#region src/adapters/promptSettings.ts
1734
+ var Ot = {
1735
+ universal_login_experience: "new",
1736
+ identifier_first: !1,
1737
+ password_first: !1,
1738
+ webauthn_platform_first_factor: !1
1739
+ };
1740
+ function kt(e) {
1741
+ let { tenant_id: t, ...n } = Z(e), r = Q({
1742
+ universal_login_experience: n.universal_login_experience || "new",
1743
+ identifier_first: n.identifier_first ?? !1,
1744
+ password_first: n.password_first ?? !1,
1745
+ webauthn_platform_first_factor: n.webauthn_platform_first_factor ?? !1
1746
+ });
1747
+ return fe.parse(r);
1748
+ }
1749
+ function At(e) {
1750
+ return {
1751
+ async set(t, n) {
1752
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = await this.get(t), a = await G(e, Le.pk(t), Le.sk());
1753
+ await K(e, {
1754
+ PK: Le.pk(t),
1755
+ SK: Le.sk(),
1756
+ entityType: "PROMPT_SETTING",
1757
+ tenant_id: t,
1758
+ universal_login_experience: n.universal_login_experience ?? i.universal_login_experience,
1759
+ identifier_first: n.identifier_first ?? i.identifier_first,
1760
+ password_first: n.password_first ?? i.password_first,
1761
+ webauthn_platform_first_factor: n.webauthn_platform_first_factor ?? i.webauthn_platform_first_factor,
1762
+ created_at: a?.created_at || r,
1763
+ updated_at: r
1764
+ });
1765
+ },
1766
+ async get(t) {
1767
+ let n = await G(e, Le.pk(t), Le.sk());
1768
+ return n ? kt(n) : Ot;
1769
+ }
1770
+ };
1771
+ }
1772
+ //#endregion
1773
+ //#region src/adapters/emailProviders.ts
1774
+ function jt(e) {
1775
+ let { tenant_id: t, ...n } = Z(e), r = Q({
1776
+ ...n,
1777
+ credentials: e.credentials ? JSON.parse(e.credentials) : void 0,
1778
+ settings: e.settings ? JSON.parse(e.settings) : void 0
1779
+ });
1780
+ return u.parse(r);
1781
+ }
1782
+ function Mt(e) {
1783
+ return {
1784
+ async create(t, n) {
1785
+ let r = (/* @__PURE__ */ new Date()).toISOString();
1786
+ await K(e, {
1787
+ PK: D.pk(t),
1788
+ SK: D.sk(),
1789
+ entityType: "EMAIL_PROVIDER",
1790
+ tenant_id: t,
1791
+ name: n.name,
1792
+ enabled: n.enabled ?? !0,
1793
+ default_from_address: n.default_from_address,
1794
+ credentials: n.credentials ? JSON.stringify(n.credentials) : void 0,
1795
+ settings: n.settings ? JSON.stringify(n.settings) : void 0,
1796
+ created_at: r,
1797
+ updated_at: r
1798
+ });
1799
+ },
1800
+ async get(t) {
1801
+ let n = await G(e, D.pk(t), D.sk());
1802
+ return n ? jt(n) : null;
1803
+ },
1804
+ async update(t, n) {
1805
+ let r = {
1806
+ ...n,
1807
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1808
+ };
1809
+ n.credentials !== void 0 && (r.credentials = JSON.stringify(n.credentials)), n.settings !== void 0 && (r.settings = JSON.stringify(n.settings)), await X(e, D.pk(t), D.sk(), r);
1810
+ },
1811
+ async remove(t) {
1812
+ await q(e, D.pk(t), D.sk());
1813
+ }
1814
+ };
1815
+ }
1816
+ //#endregion
1817
+ //#region src/adapters/emailTemplates.ts
1818
+ function Nt(e) {
1819
+ let t = Z(e), n = Q({
1820
+ template: t.template,
1821
+ body: t.body,
1822
+ from: t.from,
1823
+ subject: t.subject,
1824
+ syntax: t.syntax,
1825
+ resultUrl: t.result_url,
1826
+ urlLifetimeInSeconds: t.url_lifetime_in_seconds,
1827
+ includeEmailInRedirect: !!t.include_email_in_redirect,
1828
+ enabled: !!t.enabled
1829
+ });
1830
+ return ee.parse(n);
1831
+ }
1832
+ function Pt(e) {
1833
+ return {
1834
+ async create(t, n) {
1835
+ let r = (/* @__PURE__ */ new Date()).toISOString();
1836
+ return await K(e, {
1837
+ PK: O.pk(t),
1838
+ SK: O.sk(n.template),
1839
+ entityType: "EMAIL_TEMPLATE",
1840
+ tenant_id: t,
1841
+ template: n.template,
1842
+ body: n.body,
1843
+ from: n.from,
1844
+ subject: n.subject,
1845
+ syntax: n.syntax,
1846
+ result_url: n.resultUrl,
1847
+ url_lifetime_in_seconds: n.urlLifetimeInSeconds,
1848
+ include_email_in_redirect: n.includeEmailInRedirect,
1849
+ enabled: n.enabled,
1850
+ created_at: r,
1851
+ updated_at: r
1852
+ }), n;
1853
+ },
1854
+ async get(t, n) {
1855
+ let r = await G(e, O.pk(t), O.sk(n));
1856
+ return r ? Nt(r) : null;
1857
+ },
1858
+ async list(t) {
1859
+ let { items: n } = await J(e, O.pk(t), { skPrefix: O.skPrefix() });
1860
+ return n.map(Nt);
1861
+ },
1862
+ async update(t, n, r) {
1863
+ let i = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
1864
+ return r.body !== void 0 && (i.body = r.body), r.from !== void 0 && (i.from = r.from), r.subject !== void 0 && (i.subject = r.subject), r.syntax !== void 0 && (i.syntax = r.syntax), r.resultUrl !== void 0 && (i.result_url = r.resultUrl), r.urlLifetimeInSeconds !== void 0 && (i.url_lifetime_in_seconds = r.urlLifetimeInSeconds), r.includeEmailInRedirect !== void 0 && (i.include_email_in_redirect = r.includeEmailInRedirect), r.enabled !== void 0 && (i.enabled = r.enabled), await G(e, O.pk(t), O.sk(n)) ? (await X(e, O.pk(t), O.sk(n), i), !0) : !1;
1865
+ },
1866
+ async remove(t, n) {
1867
+ return await G(e, O.pk(t), O.sk(n)) ? (await q(e, O.pk(t), O.sk(n)), !0) : !1;
1868
+ }
1869
+ };
1870
+ }
1871
+ //#endregion
1872
+ //#region src/adapters/refreshTokens.ts
1873
+ function Ft(e) {
1874
+ let { tenant_id: t, device: n, resource_servers: r, ...i } = Z(e), a = Q({
1875
+ ...i,
1876
+ device: JSON.parse(n),
1877
+ resource_servers: JSON.parse(r)
1878
+ });
1879
+ return pe.parse(a);
1880
+ }
1881
+ function It(e) {
1882
+ return {
1883
+ async create(t, n) {
1884
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = {
1885
+ PK: k.pk(t),
1886
+ SK: k.sk(n.id),
1887
+ GSI1PK: k.gsi1pk(t, n.user_id),
1888
+ GSI1SK: k.gsi1sk(n.id),
1889
+ entityType: "REFRESH_TOKEN",
1890
+ tenant_id: t,
1891
+ id: n.id,
1892
+ user_id: n.user_id,
1893
+ login_id: n.login_id,
1894
+ client_id: n.client_id,
1895
+ expires_at: n.expires_at,
1896
+ idle_expires_at: n.idle_expires_at,
1897
+ last_exchanged_at: n.last_exchanged_at,
1898
+ device: JSON.stringify(n.device),
1899
+ resource_servers: JSON.stringify(n.resource_servers),
1900
+ rotating: n.rotating,
1901
+ token_lookup: n.token_lookup,
1902
+ token_hash: n.token_hash,
1903
+ family_id: n.family_id,
1904
+ rotated_to: n.rotated_to,
1905
+ rotated_at: n.rotated_at,
1906
+ created_at: r,
1907
+ updated_at: r
1908
+ };
1909
+ return n.token_lookup && (i.GSI2PK = k.gsi2pk(t, n.token_lookup), i.GSI2SK = k.gsi2sk()), n.expires_at && (i.ttl = Math.floor(new Date(n.expires_at).getTime() / 1e3)), await K(e, i), Ft(i);
1910
+ },
1911
+ async get(t, n) {
1912
+ let r = await G(e, k.pk(t), k.sk(n));
1913
+ return r ? Ft(r) : null;
1914
+ },
1915
+ async getByLookup(t, n) {
1916
+ let r = await J(e, k.gsi2pk(t, n), {
1917
+ indexName: "GSI2",
1918
+ skValue: k.gsi2sk(),
1919
+ limit: 1
1920
+ });
1921
+ return r.items[0] ? Ft(r.items[0]) : null;
1922
+ },
1923
+ async list(t, n = {}) {
1924
+ let r = await Y(e, k.pk(t), n, { skPrefix: "REFRESH_TOKEN#" });
1925
+ return {
1926
+ refresh_tokens: r.items.map(Ft),
1927
+ start: r.start,
1928
+ limit: r.limit,
1929
+ length: r.length
1930
+ };
1931
+ },
1932
+ async update(t, n, r, i) {
1933
+ let a = {
1934
+ ...r,
1935
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1936
+ };
1937
+ r.device !== void 0 && (a.device = JSON.stringify(r.device)), r.resource_servers !== void 0 && (a.resource_servers = JSON.stringify(r.resource_servers)), delete a.id;
1938
+ let o = await X(e, k.pk(t), k.sk(n), a);
1939
+ if (o && i?.loginSessionBump) try {
1940
+ await X(e, h.pk(t), h.sk(i.loginSessionBump.login_id), {
1941
+ expires_at: i.loginSessionBump.expires_at,
1942
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
1943
+ });
1944
+ } catch {}
1945
+ return o;
1946
+ },
1947
+ async remove(t, n) {
1948
+ return q(e, k.pk(t), k.sk(n));
1949
+ },
1950
+ async revokeByLoginSession(t, n, r) {
1951
+ let i = 0, a = 0;
1952
+ for (;;) {
1953
+ let o = await Y(e, k.pk(t), {
1954
+ page: a,
1955
+ per_page: 100
1956
+ }, { skPrefix: "REFRESH_TOKEN#" });
1957
+ for (let a of o.items) if (a.login_id === n && !a.revoked_at) try {
1958
+ await e.client.send(new Ae({
1959
+ TableName: e.tableName,
1960
+ Key: {
1961
+ PK: k.pk(t),
1962
+ SK: k.sk(a.id)
1963
+ },
1964
+ UpdateExpression: "SET #revoked_at = :revoked_at, #updated_at = :updated_at",
1965
+ ConditionExpression: "attribute_exists(PK) AND attribute_not_exists(#revoked_at)",
1966
+ ExpressionAttributeNames: {
1967
+ "#revoked_at": "revoked_at",
1968
+ "#updated_at": "updated_at"
1969
+ },
1970
+ ExpressionAttributeValues: {
1971
+ ":revoked_at": r,
1972
+ ":updated_at": (/* @__PURE__ */ new Date()).toISOString()
1973
+ }
1974
+ })), i++;
1975
+ } catch (e) {
1976
+ if (e?.name === "ConditionalCheckFailedException") continue;
1977
+ throw e;
1978
+ }
1979
+ if (o.items.length < 100) break;
1980
+ a++;
1981
+ }
1982
+ return i;
1983
+ },
1984
+ async revokeFamily(t, n, r) {
1985
+ let i = 0, a = 0;
1986
+ for (;;) {
1987
+ let o = await Y(e, k.pk(t), {
1988
+ page: a,
1989
+ per_page: 100
1990
+ }, { skPrefix: "REFRESH_TOKEN#" });
1991
+ for (let a of o.items) if (a.family_id === n && !a.revoked_at) try {
1992
+ await e.client.send(new Ae({
1993
+ TableName: e.tableName,
1994
+ Key: {
1995
+ PK: k.pk(t),
1996
+ SK: k.sk(a.id)
1997
+ },
1998
+ UpdateExpression: "SET #revoked_at = :revoked_at, #updated_at = :updated_at",
1999
+ ConditionExpression: "attribute_exists(PK) AND attribute_not_exists(#revoked_at)",
2000
+ ExpressionAttributeNames: {
2001
+ "#revoked_at": "revoked_at",
2002
+ "#updated_at": "updated_at"
2003
+ },
2004
+ ExpressionAttributeValues: {
2005
+ ":revoked_at": r,
2006
+ ":updated_at": (/* @__PURE__ */ new Date()).toISOString()
2007
+ }
2008
+ })), i++;
2009
+ } catch (e) {
2010
+ if (e?.name === "ConditionalCheckFailedException") continue;
2011
+ throw e;
2012
+ }
2013
+ if (o.items.length < 100) break;
2014
+ a++;
2015
+ }
2016
+ return i;
2017
+ }
2018
+ };
2019
+ }
2020
+ //#endregion
2021
+ //#region src/adapters/forms.ts
2022
+ function Lt(e) {
2023
+ let { tenant_id: t, ...n } = Z(e), r = Q({
2024
+ ...n,
2025
+ nodes: e.nodes ? JSON.parse(e.nodes) : void 0,
2026
+ start: e.start ? JSON.parse(e.start) : void 0,
2027
+ ending: e.ending ? JSON.parse(e.ending) : void 0,
2028
+ messages: e.messages ? JSON.parse(e.messages) : void 0,
2029
+ languages: e.languages ? JSON.parse(e.languages) : void 0,
2030
+ translations: e.translations ? JSON.parse(e.translations) : void 0,
2031
+ style: e.style ? JSON.parse(e.style) : void 0
2032
+ });
2033
+ return ne.parse(r);
2034
+ }
2035
+ function Rt(e) {
2036
+ return {
2037
+ async create(t, n) {
2038
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = {
2039
+ PK: A.pk(t),
2040
+ SK: A.sk(i),
2041
+ entityType: "FORM",
2042
+ tenant_id: t,
2043
+ id: i,
2044
+ name: n.name,
2045
+ nodes: n.nodes ? JSON.stringify(n.nodes) : void 0,
2046
+ start: n.start ? JSON.stringify(n.start) : void 0,
2047
+ ending: n.ending ? JSON.stringify(n.ending) : void 0,
2048
+ messages: n.messages ? JSON.stringify(n.messages) : void 0,
2049
+ languages: n.languages ? JSON.stringify(n.languages) : void 0,
2050
+ translations: n.translations ? JSON.stringify(n.translations) : void 0,
2051
+ style: n.style ? JSON.stringify(n.style) : void 0,
2052
+ created_at: r,
2053
+ updated_at: r
2054
+ };
2055
+ return await K(e, a), Lt(a);
2056
+ },
2057
+ async get(t, n) {
2058
+ let r = await G(e, A.pk(t), A.sk(n));
2059
+ return r ? Lt(r) : null;
2060
+ },
2061
+ async list(t, n = {}) {
2062
+ let r = await Y(e, A.pk(t), n, { skPrefix: "FORM#" });
2063
+ return {
2064
+ forms: r.items.map(Lt),
2065
+ start: r.start,
2066
+ limit: r.limit,
2067
+ length: r.length
2068
+ };
2069
+ },
2070
+ async update(t, n, r) {
2071
+ let i = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
2072
+ return r.name !== void 0 && (i.name = r.name), r.nodes !== void 0 && (i.nodes = JSON.stringify(r.nodes)), r.start !== void 0 && (i.start = JSON.stringify(r.start)), r.ending !== void 0 && (i.ending = JSON.stringify(r.ending)), r.messages !== void 0 && (i.messages = JSON.stringify(r.messages)), r.languages !== void 0 && (i.languages = JSON.stringify(r.languages)), r.translations !== void 0 && (i.translations = JSON.stringify(r.translations)), r.style !== void 0 && (i.style = JSON.stringify(r.style)), X(e, A.pk(t), A.sk(n), i);
2073
+ },
2074
+ async remove(t, n) {
2075
+ return q(e, A.pk(t), A.sk(n));
2076
+ }
2077
+ };
2078
+ }
2079
+ //#endregion
2080
+ //#region src/adapters/resourceServers.ts
2081
+ function zt(e) {
2082
+ let { tenant_id: t, verification_key: n, is_system: r, metadata: i, ...a } = Z(e), o = Q({
2083
+ ...a,
2084
+ verificationKey: n,
2085
+ scopes: e.scopes ? JSON.parse(e.scopes) : void 0,
2086
+ options: e.options ? JSON.parse(e.options) : void 0,
2087
+ is_system: r ? !0 : void 0,
2088
+ metadata: i
2089
+ });
2090
+ return me.parse(o);
2091
+ }
2092
+ function Bt(e) {
2093
+ return {
2094
+ async create(t, n) {
2095
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.id || d(), a = {
2096
+ PK: M.pk(t),
2097
+ SK: M.sk(i),
2098
+ GSI1PK: M.gsi1pk(t, n.identifier),
2099
+ GSI1SK: M.gsi1sk(),
2100
+ entityType: "RESOURCE_SERVER",
2101
+ tenant_id: t,
2102
+ id: i,
2103
+ identifier: n.identifier,
2104
+ name: n.name,
2105
+ signing_alg: n.signing_alg,
2106
+ signing_secret: n.signing_secret,
2107
+ allow_offline_access: n.allow_offline_access,
2108
+ skip_consent_for_verifiable_first_party_clients: n.skip_consent_for_verifiable_first_party_clients,
2109
+ token_lifetime: n.token_lifetime,
2110
+ token_lifetime_for_web: n.token_lifetime_for_web,
2111
+ enforce_policies: n.options?.enforce_policies,
2112
+ token_dialect: n.options?.token_dialect,
2113
+ scopes: n.scopes ? JSON.stringify(n.scopes) : void 0,
2114
+ options: n.options ? JSON.stringify(n.options) : void 0,
2115
+ verification_key: n.verificationKey,
2116
+ is_system: n.is_system ?? !1,
2117
+ metadata: n.metadata,
2118
+ created_at: r,
2119
+ updated_at: r
2120
+ };
2121
+ return await K(e, a), zt(a);
2122
+ },
2123
+ async get(t, n) {
2124
+ let r = await G(e, M.pk(t), M.sk(n));
2125
+ return r ? zt(r) : null;
2126
+ },
2127
+ async list(t, n = {}) {
2128
+ let r = await Y(e, M.pk(t), n, { skPrefix: "RESOURCE_SERVER#" });
2129
+ return {
2130
+ resource_servers: r.items.map(zt),
2131
+ start: r.start,
2132
+ limit: r.limit,
2133
+ length: r.length
2134
+ };
2135
+ },
2136
+ async update(t, n, r) {
2137
+ let i = {
2138
+ ...r,
2139
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
2140
+ };
2141
+ return r.scopes !== void 0 && (i.scopes = JSON.stringify(r.scopes)), r.options !== void 0 && (i.options = JSON.stringify(r.options)), r.verificationKey !== void 0 && (i.verification_key = r.verificationKey, delete i.verificationKey), delete i.id, X(e, M.pk(t), M.sk(n), i);
2142
+ },
2143
+ async remove(t, n) {
2144
+ return q(e, M.pk(t), M.sk(n));
2145
+ }
2146
+ };
2147
+ }
2148
+ //#endregion
2149
+ //#region src/adapters/roles.ts
2150
+ function Vt(e) {
2151
+ let { tenant_id: t, is_system: n, metadata: r, ...i } = Z(e);
2152
+ return ge.parse(Q({
2153
+ ...i,
2154
+ is_system: n ? !0 : void 0,
2155
+ metadata: r
2156
+ }));
2157
+ }
2158
+ function Ht(e) {
2159
+ return {
2160
+ async create(t, n) {
2161
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = {
2162
+ PK: N.pk(t),
2163
+ SK: N.sk(i),
2164
+ entityType: "ROLE",
2165
+ tenant_id: t,
2166
+ id: i,
2167
+ name: n.name,
2168
+ description: n.description,
2169
+ is_system: n.is_system ?? !1,
2170
+ metadata: n.metadata,
2171
+ created_at: r,
2172
+ updated_at: r
2173
+ };
2174
+ return await K(e, a), Vt(a);
2175
+ },
2176
+ async get(t, n) {
2177
+ let r = await G(e, N.pk(t), N.sk(n));
2178
+ return r ? Vt(r) : null;
2179
+ },
2180
+ async list(t, n = {}) {
2181
+ let r = await Y(e, N.pk(t), n, { skPrefix: "ROLE#" });
2182
+ return {
2183
+ roles: r.items.map(Vt),
2184
+ start: r.start,
2185
+ limit: r.limit,
2186
+ length: r.length
2187
+ };
2188
+ },
2189
+ async update(t, n, r) {
2190
+ let i = {
2191
+ ...r,
2192
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
2193
+ };
2194
+ return delete i.id, X(e, N.pk(t), N.sk(n), i);
2195
+ },
2196
+ async remove(t, n) {
2197
+ return q(e, N.pk(t), N.sk(n));
2198
+ }
2199
+ };
2200
+ }
2201
+ //#endregion
2202
+ //#region src/adapters/rolePermissions.ts
2203
+ function Ut(e) {
2204
+ let { tenant_id: t, ...n } = Z(e);
2205
+ return he.parse(Q(n));
2206
+ }
2207
+ function Wt(e) {
2208
+ return {
2209
+ async assign(t, n, r) {
2210
+ let i = (/* @__PURE__ */ new Date()).toISOString();
2211
+ for (let a of r) await K(e, {
2212
+ PK: P.pk(t, n),
2213
+ SK: P.sk(a.resource_server_identifier, a.permission_name),
2214
+ entityType: "ROLE_PERMISSION",
2215
+ tenant_id: t,
2216
+ role_id: a.role_id,
2217
+ resource_server_identifier: a.resource_server_identifier,
2218
+ permission_name: a.permission_name,
2219
+ created_at: i,
2220
+ updated_at: i
2221
+ });
2222
+ return !0;
2223
+ },
2224
+ async remove(t, n, r) {
2225
+ for (let i of r) await q(e, P.pk(t, n), P.sk(i.resource_server_identifier, i.permission_name));
2226
+ return !0;
2227
+ },
2228
+ async list(t, n, r = {}) {
2229
+ return (await Y(e, P.pk(t, n), r, { skPrefix: P.skPrefix() })).items.map(Ut);
2230
+ }
2231
+ };
2232
+ }
2233
+ //#endregion
2234
+ //#region src/adapters/userPermissions.ts
2235
+ function Gt(e) {
2236
+ let { tenant_id: t, sources: n, ...r } = Z(e), i = Q({
2237
+ ...r,
2238
+ resource_server_name: e.resource_server_name || e.resource_server_identifier,
2239
+ sources: n ? JSON.parse(n) : void 0
2240
+ });
2241
+ return Se.parse(i);
2242
+ }
2243
+ function Kt(e) {
2244
+ return {
2245
+ async create(t, n, r, i) {
2246
+ let a = (/* @__PURE__ */ new Date()).toISOString();
2247
+ return await K(e, {
2248
+ PK: F.pk(t, n, i),
2249
+ SK: F.sk(r.resource_server_identifier, r.permission_name),
2250
+ entityType: "USER_PERMISSION",
2251
+ tenant_id: t,
2252
+ user_id: n,
2253
+ organization_id: i,
2254
+ resource_server_identifier: r.resource_server_identifier,
2255
+ permission_name: r.permission_name,
2256
+ created_at: a,
2257
+ updated_at: a
2258
+ }), !0;
2259
+ },
2260
+ async remove(t, n, r, i) {
2261
+ return q(e, F.pk(t, n, i), F.sk(r.resource_server_identifier, r.permission_name));
2262
+ },
2263
+ async list(t, n, r = {}, i) {
2264
+ return (await Y(e, F.pk(t, n, i), r, { skPrefix: F.skPrefix() })).items.map(Gt);
2265
+ }
2266
+ };
2267
+ }
2268
+ //#endregion
2269
+ //#region src/adapters/userRoles.ts
2270
+ function qt(e) {
2271
+ let { tenant_id: t, ...n } = Z(e);
2272
+ return ge.parse(Q(n));
2273
+ }
2274
+ function Jt(e) {
2275
+ return {
2276
+ async create(t, n, r, i) {
2277
+ let a = (/* @__PURE__ */ new Date()).toISOString();
2278
+ return await K(e, {
2279
+ PK: I.pk(t, n, i),
2280
+ SK: I.sk(r),
2281
+ entityType: "USER_ROLE",
2282
+ tenant_id: t,
2283
+ user_id: n,
2284
+ organization_id: i,
2285
+ role_id: r,
2286
+ created_at: a,
2287
+ updated_at: a
2288
+ }), !0;
2289
+ },
2290
+ async remove(t, n, r, i) {
2291
+ return q(e, I.pk(t, n, i), I.sk(r));
2292
+ },
2293
+ async list(t, n, r = {}, i) {
2294
+ let { items: a } = await J(e, I.pk(t, n, i), { skPrefix: I.skPrefix() }), o = [];
2295
+ for (let n of a) {
2296
+ let r = await G(e, N.pk(t), N.sk(n.role_id));
2297
+ r && o.push(qt(r));
2298
+ }
2299
+ return o;
2300
+ }
2301
+ };
2302
+ }
2303
+ //#endregion
2304
+ //#region src/adapters/organizations.ts
2305
+ function Yt(e) {
2306
+ let { tenant_id: t, ...n } = Z(e), r = Q({
2307
+ ...n,
2308
+ branding: e.branding ? JSON.parse(e.branding) : void 0,
2309
+ metadata: e.metadata ? JSON.parse(e.metadata) : void 0,
2310
+ enabled_connections: e.enabled_connections ? JSON.parse(e.enabled_connections) : void 0,
2311
+ token_quota: e.token_quota ? JSON.parse(e.token_quota) : void 0
2312
+ });
2313
+ return le.parse(r);
2314
+ }
2315
+ function Xt(e) {
2316
+ return {
2317
+ async create(t, n) {
2318
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = n.id || d(), a = {
2319
+ PK: L.pk(t),
2320
+ SK: L.sk(i),
2321
+ GSI1PK: L.gsi1pk(t, n.name),
2322
+ GSI1SK: L.gsi1sk(),
2323
+ entityType: "ORGANIZATION",
2324
+ tenant_id: t,
2325
+ id: i,
2326
+ name: n.name,
2327
+ display_name: n.display_name,
2328
+ branding: n.branding ? JSON.stringify(n.branding) : void 0,
2329
+ metadata: n.metadata ? JSON.stringify(n.metadata) : void 0,
2330
+ enabled_connections: n.enabled_connections ? JSON.stringify(n.enabled_connections) : void 0,
2331
+ token_quota: n.token_quota ? JSON.stringify(n.token_quota) : void 0,
2332
+ created_at: r,
2333
+ updated_at: r
2334
+ };
2335
+ return await K(e, a), Yt(a);
2336
+ },
2337
+ async get(t, n) {
2338
+ let r = await G(e, L.pk(t), L.sk(n));
2339
+ return r ||= (await Y(e, L.gsi1pk(t, n), {
2340
+ page: 0,
2341
+ per_page: 1
2342
+ }, {
2343
+ indexName: "GSI1",
2344
+ skPrefix: "ORGANIZATION"
2345
+ })).items[0] || null, r ? Yt(r) : null;
2346
+ },
2347
+ async list(t, n = {}) {
2348
+ let r = await Y(e, L.pk(t), n, { skPrefix: "ORGANIZATION#" });
2349
+ return {
2350
+ organizations: r.items.map(Yt),
2351
+ start: r.start,
2352
+ limit: r.limit,
2353
+ length: r.length
2354
+ };
2355
+ },
2356
+ async update(t, n, r) {
2357
+ let i = {
2358
+ ...r,
2359
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
2360
+ };
2361
+ return r.branding !== void 0 && (i.branding = JSON.stringify(r.branding)), r.metadata !== void 0 && (i.metadata = JSON.stringify(r.metadata)), r.enabled_connections !== void 0 && (i.enabled_connections = JSON.stringify(r.enabled_connections)), r.token_quota !== void 0 && (i.token_quota = JSON.stringify(r.token_quota)), delete i.id, X(e, L.pk(t), L.sk(n), i);
2362
+ },
2363
+ async remove(t, n) {
2364
+ return q(e, L.pk(t), L.sk(n));
2365
+ }
2366
+ };
2367
+ }
2368
+ //#endregion
2369
+ //#region src/adapters/organizationConnections.ts
2370
+ async function Zt(e, t, n) {
2371
+ let r = await G(e, v.pk(t), v.sk(n));
2372
+ if (r) return {
2373
+ name: r.name,
2374
+ strategy: r.strategy
2375
+ };
2376
+ }
2377
+ function Qt(e, t) {
2378
+ return {
2379
+ connection_id: e.connection_id,
2380
+ assign_membership_on_login: e.assign_membership_on_login,
2381
+ show_as_button: e.show_as_button,
2382
+ is_signup_enabled: e.is_signup_enabled,
2383
+ connection: t ? {
2384
+ name: t.name,
2385
+ strategy: t.strategy
2386
+ } : void 0,
2387
+ created_at: e.created_at,
2388
+ updated_at: e.updated_at
2389
+ };
2390
+ }
2391
+ function $t(e) {
2392
+ return {
2393
+ async create(t, n, r) {
2394
+ let i = (/* @__PURE__ */ new Date()).toISOString(), a = {
2395
+ PK: z.pk(t, n),
2396
+ SK: z.sk(r.connection_id),
2397
+ entityType: "ORGANIZATION_CONNECTION",
2398
+ tenant_id: t,
2399
+ organization_id: n,
2400
+ connection_id: r.connection_id,
2401
+ assign_membership_on_login: r.assign_membership_on_login ?? !1,
2402
+ show_as_button: r.show_as_button ?? !0,
2403
+ is_signup_enabled: r.is_signup_enabled ?? !0,
2404
+ created_at: i,
2405
+ updated_at: i
2406
+ };
2407
+ return await K(e, a), Qt(a, await Zt(e, t, r.connection_id));
2408
+ },
2409
+ async list(t, n) {
2410
+ let { items: r } = await J(e, z.pk(t, n), { skPrefix: z.skPrefix() }), i = [];
2411
+ for (let n of r) {
2412
+ let r = await Zt(e, t, n.connection_id);
2413
+ i.push(Qt(n, r));
2414
+ }
2415
+ return i;
2416
+ },
2417
+ async get(t, n, r) {
2418
+ let i = await G(e, z.pk(t, n), z.sk(r));
2419
+ return i ? Qt(i, await Zt(e, t, r)) : null;
2420
+ },
2421
+ async update(t, n, r, i) {
2422
+ if (!await G(e, z.pk(t, n), z.sk(r))) return null;
2423
+ let a = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
2424
+ i.assign_membership_on_login !== void 0 && (a.assign_membership_on_login = i.assign_membership_on_login), i.show_as_button !== void 0 && (a.show_as_button = i.show_as_button), i.is_signup_enabled !== void 0 && (a.is_signup_enabled = i.is_signup_enabled), await X(e, z.pk(t, n), z.sk(r), a);
2425
+ let o = await G(e, z.pk(t, n), z.sk(r));
2426
+ return o ? Qt(o, await Zt(e, t, r)) : null;
2427
+ },
2428
+ async remove(t, n, r) {
2429
+ return await G(e, z.pk(t, n), z.sk(r)) ? q(e, z.pk(t, n), z.sk(r)) : !1;
2430
+ }
2431
+ };
2432
+ }
2433
+ //#endregion
2434
+ //#region src/adapters/userOrganizations.ts
2435
+ function en(e) {
2436
+ let { tenant_id: t, ...n } = Z(e);
2437
+ return xe.parse(Q(n));
2438
+ }
2439
+ function tn(e) {
2440
+ let { tenant_id: t, ...n } = Z(e), r = Q({
2441
+ ...n,
2442
+ branding: e.branding ? JSON.parse(e.branding) : void 0,
2443
+ metadata: e.metadata ? JSON.parse(e.metadata) : void 0,
2444
+ enabled_connections: e.enabled_connections ? JSON.parse(e.enabled_connections) : void 0,
2445
+ token_quota: e.token_quota ? JSON.parse(e.token_quota) : void 0
2446
+ });
2447
+ return le.parse(r);
2448
+ }
2449
+ function nn(e) {
2450
+ return {
2451
+ async create(t, n) {
2452
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = {
2453
+ PK: R.pk(t),
2454
+ SK: R.sk(i),
2455
+ GSI1PK: R.gsi1pk(t, n.user_id),
2456
+ GSI1SK: R.gsi1sk(n.organization_id),
2457
+ GSI2PK: R.gsi2pk(t, n.organization_id),
2458
+ GSI2SK: R.gsi2sk(n.user_id),
2459
+ entityType: "USER_ORGANIZATION",
2460
+ tenant_id: t,
2461
+ id: i,
2462
+ user_id: n.user_id,
2463
+ organization_id: n.organization_id,
2464
+ created_at: r,
2465
+ updated_at: r
2466
+ };
2467
+ return await K(e, a), en(a);
2468
+ },
2469
+ async get(t, n) {
2470
+ let r = await G(e, R.pk(t), R.sk(n));
2471
+ return r ? en(r) : null;
2472
+ },
2473
+ async remove(t, n) {
2474
+ return q(e, R.pk(t), R.sk(n));
2475
+ },
2476
+ async list(t, n = {}) {
2477
+ let r = await Y(e, R.pk(t), n, { skPrefix: "USER_ORG#" });
2478
+ return {
2479
+ userOrganizations: r.items.map(en),
2480
+ start: r.start,
2481
+ limit: r.limit,
2482
+ length: r.length
2483
+ };
2484
+ },
2485
+ async listUserOrganizations(t, n, r = {}) {
2486
+ let i = await Y(e, R.gsi1pk(t, n), r, {
2487
+ indexName: "GSI1",
2488
+ skPrefix: "USER_ORG#"
2489
+ }), a = [];
2490
+ for (let n of i.items) {
2491
+ let r = await G(e, L.pk(t), L.sk(n.organization_id));
2492
+ r && a.push(tn(r));
2493
+ }
2494
+ return {
2495
+ organizations: a,
2496
+ start: i.start,
2497
+ limit: i.limit,
2498
+ length: i.length
2499
+ };
2500
+ },
2501
+ async update(t, n, r) {
2502
+ let i = {
2503
+ ...r,
2504
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
2505
+ };
2506
+ return X(e, R.pk(t), R.sk(n), i);
2507
+ }
2508
+ };
2509
+ }
2510
+ //#endregion
2511
+ //#region src/adapters/invites.ts
2512
+ function rn(e) {
2513
+ let { tenant_id: t, ...n } = Z(e), r = Q({
2514
+ ...n,
2515
+ inviter: e.inviter ? JSON.parse(e.inviter) : {},
2516
+ invitee: e.invitee ? JSON.parse(e.invitee) : {},
2517
+ app_metadata: e.app_metadata ? JSON.parse(e.app_metadata) : void 0,
2518
+ user_metadata: e.user_metadata ? JSON.parse(e.user_metadata) : void 0,
2519
+ roles: e.roles ? JSON.parse(e.roles) : void 0
2520
+ });
2521
+ return ae.parse(r);
2522
+ }
2523
+ function an(e) {
2524
+ return {
2525
+ async create(t, n) {
2526
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = n.ttl_sec || 604800, o = new Date(Date.now() + a * 1e3).toISOString(), s = {
2527
+ PK: B.pk(t),
2528
+ SK: B.sk(i),
2529
+ GSI1PK: B.gsi1pk(t, n.organization_id),
2530
+ GSI1SK: B.gsi1sk(i),
2531
+ entityType: "INVITE",
2532
+ tenant_id: t,
2533
+ id: i,
2534
+ organization_id: n.organization_id,
2535
+ inviter: JSON.stringify(n.inviter || {}),
2536
+ invitee: JSON.stringify(n.invitee || {}),
2537
+ client_id: n.client_id,
2538
+ connection_id: n.connection_id,
2539
+ invitation_url: n.invitation_url,
2540
+ expires_at: o,
2541
+ app_metadata: n.app_metadata ? JSON.stringify(n.app_metadata) : void 0,
2542
+ user_metadata: n.user_metadata ? JSON.stringify(n.user_metadata) : void 0,
2543
+ roles: n.roles ? JSON.stringify(n.roles) : void 0,
2544
+ ttl_sec: a,
2545
+ send_invitation_email: n.send_invitation_email ?? !0,
2546
+ created_at: r,
2547
+ updated_at: r
2548
+ };
2549
+ return s.ttl = Math.floor(new Date(o).getTime() / 1e3), await K(e, s), rn(s);
2550
+ },
2551
+ async get(t, n) {
2552
+ let r = await G(e, B.pk(t), B.sk(n));
2553
+ return r ? rn(r) : null;
2554
+ },
2555
+ async list(t, n = {}) {
2556
+ let r = await Y(e, B.pk(t), n, { skPrefix: "INVITE#" });
2557
+ return {
2558
+ invites: r.items.map(rn),
2559
+ start: r.start,
2560
+ limit: r.limit,
2561
+ length: r.length
2562
+ };
2563
+ },
2564
+ async update(t, n, r) {
2565
+ let i = {
2566
+ ...r,
2567
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
2568
+ };
2569
+ return r.inviter !== void 0 && (i.inviter = JSON.stringify(r.inviter)), r.invitee !== void 0 && (i.invitee = JSON.stringify(r.invitee)), r.app_metadata !== void 0 && (i.app_metadata = JSON.stringify(r.app_metadata)), r.user_metadata !== void 0 && (i.user_metadata = JSON.stringify(r.user_metadata)), r.roles !== void 0 && (i.roles = JSON.stringify(r.roles)), delete i.id, X(e, B.pk(t), B.sk(n), i);
2570
+ },
2571
+ async remove(t, n) {
2572
+ return q(e, B.pk(t), B.sk(n));
2573
+ }
2574
+ };
2575
+ }
2576
+ //#endregion
2577
+ //#region src/adapters/customText.ts
2578
+ function on(e) {
2579
+ return {
2580
+ async get(t, n, r) {
2581
+ let i = await G(e, W.pk(t), W.sk(n, r));
2582
+ if (!i) return null;
2583
+ try {
2584
+ return JSON.parse(i.custom_text);
2585
+ } catch {
2586
+ return null;
2587
+ }
2588
+ },
2589
+ async set(t, n, r, i) {
2590
+ let a = (/* @__PURE__ */ new Date()).toISOString(), o = await G(e, W.pk(t), W.sk(n, r));
2591
+ await K(e, {
2592
+ PK: W.pk(t),
2593
+ SK: W.sk(n, r),
2594
+ entityType: "CUSTOM_TEXT",
2595
+ tenant_id: t,
2596
+ prompt: n,
2597
+ language: r,
2598
+ custom_text: JSON.stringify(i),
2599
+ created_at: o?.created_at || a,
2600
+ updated_at: a
2601
+ });
2602
+ },
2603
+ async delete(t, n, r) {
2604
+ await q(e, W.pk(t), W.sk(n, r));
2605
+ },
2606
+ async list(t) {
2607
+ return (await J(e, W.pk(t), { skPrefix: W.skPrefix() })).items.map((e) => ({
2608
+ prompt: e.prompt,
2609
+ language: e.language
2610
+ }));
2611
+ }
2612
+ };
2613
+ }
2614
+ //#endregion
2615
+ //#region src/adapters/authenticationMethods.ts
2616
+ function sn(e) {
2617
+ let { tenant_id: n, ...r } = Z(e);
2618
+ return t.parse(Q(r));
2619
+ }
2620
+ function cn(e) {
2621
+ return {
2622
+ async create(t, n) {
2623
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = {
2624
+ PK: H.pk(t),
2625
+ SK: H.sk(i),
2626
+ GSI1PK: H.gsi1pk(t, n.user_id),
2627
+ GSI1SK: H.gsi1sk(i),
2628
+ entityType: "AUTHENTICATION_METHOD",
2629
+ id: i,
2630
+ tenant_id: t,
2631
+ user_id: n.user_id,
2632
+ type: n.type,
2633
+ phone_number: n.phone_number,
2634
+ totp_secret: n.totp_secret,
2635
+ credential_id: n.credential_id,
2636
+ public_key: n.public_key,
2637
+ sign_count: n.sign_count,
2638
+ credential_backed_up: n.credential_backed_up,
2639
+ transports: n.transports,
2640
+ friendly_name: n.friendly_name,
2641
+ confirmed: n.confirmed ?? !1,
2642
+ created_at: r,
2643
+ updated_at: r
2644
+ }, o = sn(a);
2645
+ return await K(e, a), o;
2646
+ },
2647
+ async get(t, n) {
2648
+ let r = await G(e, H.pk(t), H.sk(n));
2649
+ return r ? sn(r) : null;
2650
+ },
2651
+ async getByCredentialId(t, n) {
2652
+ let r = (await J(e, H.pk(t), { skPrefix: "AUTHENTICATION_METHOD#" })).items.find((e) => e.credential_id === n);
2653
+ return r ? sn(r) : null;
2654
+ },
2655
+ async list(t, n) {
2656
+ return (await J(e, H.gsi1pk(t, n), {
2657
+ skPrefix: H.gsi1skPrefix(),
2658
+ indexName: "GSI1"
2659
+ })).items.map(sn);
2660
+ },
2661
+ async update(n, r, i) {
2662
+ let a = await this.get(n, r);
2663
+ if (!a) throw Error(`Authentication method ${r} not found`);
2664
+ let o = {
2665
+ ...a,
2666
+ ...i,
2667
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
2668
+ };
2669
+ t.parse(o);
2670
+ let s = { updated_at: o.updated_at };
2671
+ return i.phone_number !== void 0 && (s.phone_number = i.phone_number), i.totp_secret !== void 0 && (s.totp_secret = i.totp_secret), i.credential_id !== void 0 && (s.credential_id = i.credential_id), i.public_key !== void 0 && (s.public_key = i.public_key), i.sign_count !== void 0 && (s.sign_count = i.sign_count), i.credential_backed_up !== void 0 && (s.credential_backed_up = i.credential_backed_up), i.transports !== void 0 && (s.transports = i.transports), i.friendly_name !== void 0 && (s.friendly_name = i.friendly_name), i.confirmed !== void 0 && (s.confirmed = i.confirmed), await X(e, H.pk(n), H.sk(r), s), t.parse(o);
2672
+ },
2673
+ async remove(t, n) {
2674
+ return q(e, H.pk(t), H.sk(n));
2675
+ }
2676
+ };
2677
+ }
2678
+ //#endregion
2679
+ //#region src/adapters/proxyRoutes.ts
2680
+ function ln(e) {
2681
+ if (!e) return { path: "/*" };
2682
+ try {
2683
+ let t = JSON.parse(e), n = ce.safeParse(t);
2684
+ if (n.success) return n.data;
2685
+ } catch {}
2686
+ return { path: "/*" };
2687
+ }
2688
+ function un(e) {
2689
+ if (!e) return [];
2690
+ try {
2691
+ let t = JSON.parse(e);
2692
+ if (!Array.isArray(t)) return [];
2693
+ let n = [];
2694
+ for (let e of t) {
2695
+ let t = re.safeParse(e);
2696
+ t.success && n.push(t.data);
2697
+ }
2698
+ return n;
2699
+ } catch {
2700
+ return [];
2701
+ }
2702
+ }
2703
+ function dn(e) {
2704
+ let { match: t, handlers: n, ...r } = Z(e);
2705
+ return Q({
2706
+ ...r,
2707
+ match: ln(t),
2708
+ handlers: un(n)
2709
+ });
2710
+ }
2711
+ function fn(e) {
2712
+ return [...e].sort((e, t) => e.priority === t.priority ? e.created_at.localeCompare(t.created_at) : e.priority - t.priority);
2713
+ }
2714
+ function pn(e) {
2715
+ return {
2716
+ async create(t, n) {
2717
+ let r = (/* @__PURE__ */ new Date()).toISOString(), i = d(), a = {
2718
+ PK: T.pk(t),
2719
+ SK: T.sk(i),
2720
+ GSI1PK: T.gsi1pk(t, n.custom_domain_id),
2721
+ GSI1SK: T.gsi1sk(i),
2722
+ entityType: "PROXY_ROUTE",
2723
+ tenant_id: t,
2724
+ id: i,
2725
+ custom_domain_id: n.custom_domain_id,
2726
+ priority: n.priority,
2727
+ match: JSON.stringify(n.match),
2728
+ handlers: JSON.stringify(n.handlers),
2729
+ created_at: r,
2730
+ updated_at: r
2731
+ };
2732
+ return await K(e, a), dn(a);
2733
+ },
2734
+ async get(t, n) {
2735
+ let r = await G(e, T.pk(t), T.sk(n));
2736
+ return r ? dn(r) : null;
2737
+ },
2738
+ async list(t, n = {}) {
2739
+ let r = n.page ?? 0, i = n.per_page ?? 50, a;
2740
+ if (n.custom_domain_id) {
2741
+ let { items: r } = await J(e, T.gsi1pk(t, n.custom_domain_id), { indexName: "GSI1" });
2742
+ a = r;
2743
+ } else {
2744
+ let { items: n } = await J(e, T.pk(t), { skPrefix: "PROXY_ROUTE#" });
2745
+ a = n;
2746
+ }
2747
+ let o = fn(a).slice(r * i, r * i + i);
2748
+ return {
2749
+ proxy_routes: o.map(dn),
2750
+ start: r * i,
2751
+ limit: i,
2752
+ length: o.length
2753
+ };
2754
+ },
2755
+ async update(t, n, r) {
2756
+ let i = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
2757
+ return r.priority !== void 0 && (i.priority = r.priority), r.match !== void 0 && (i.match = JSON.stringify(r.match)), r.handlers !== void 0 && (i.handlers = JSON.stringify(r.handlers)), await G(e, T.pk(t), T.sk(n)) ? X(e, T.pk(t), T.sk(n), i) : !1;
2758
+ },
2759
+ async remove(t, n) {
2760
+ return await G(e, T.pk(t), T.sk(n)) ? q(e, T.pk(t), T.sk(n)) : !1;
2761
+ }
2762
+ };
2763
+ }
2764
+ //#endregion
2765
+ //#region src/adapters/proxyData.ts
2766
+ function mn(e) {
2767
+ if (!e) return null;
2768
+ let t;
2769
+ try {
2770
+ t = JSON.parse(e);
2771
+ } catch {
2772
+ return null;
2773
+ }
2774
+ let n = ce.safeParse(t);
2775
+ return n.success ? n.data : null;
2776
+ }
2777
+ function hn(e) {
2778
+ if (!e) return null;
2779
+ let t;
2780
+ try {
2781
+ t = JSON.parse(e);
2782
+ } catch {
2783
+ return null;
2784
+ }
2785
+ if (!Array.isArray(t) || t.length === 0) return null;
2786
+ let n = [];
2787
+ for (let e of t) {
2788
+ let t = re.safeParse(e);
2789
+ if (!t.success) return null;
2790
+ n.push(t.data);
2791
+ }
2792
+ return n;
2793
+ }
2794
+ function gn(e) {
2795
+ let t = mn(e.match), n = hn(e.handlers);
2796
+ return t === null || n === null ? null : {
2797
+ id: e.id,
2798
+ tenant_id: e.tenant_id,
2799
+ custom_domain_id: e.custom_domain_id,
2800
+ priority: e.priority,
2801
+ match: t,
2802
+ handlers: n,
2803
+ created_at: e.created_at,
2804
+ updated_at: e.updated_at
2805
+ };
2806
+ }
2807
+ async function _n(e, t) {
2808
+ let n = t.indexOf(":"), r = n === -1 ? t : t.slice(0, n), i = (r.endsWith(".") ? r.slice(0, -1) : r).toLowerCase(), { items: a } = await J(e, w.gsi1pk(i), {
2809
+ indexName: "GSI1",
2810
+ skValue: w.gsi1sk()
2811
+ }), o = a[0];
2812
+ if (!o) return null;
2813
+ let { items: s } = await J(e, T.gsi1pk(o.tenant_id, o.custom_domain_id), { indexName: "GSI1" }), c = s.map(gn).filter((e) => e !== null).sort((e, t) => e.priority === t.priority ? e.created_at.localeCompare(t.created_at) : e.priority - t.priority);
2814
+ return {
2815
+ tenant_id: o.tenant_id,
2816
+ custom_domain_id: o.custom_domain_id,
2817
+ domain: o.domain,
2818
+ routes: c
2819
+ };
2820
+ }
2821
+ function vn(e) {
2822
+ return {
2823
+ proxyRoutes: pn(e),
2824
+ resolveHost: (t) => _n(e, t)
2825
+ };
2826
+ }
2827
+ //#endregion
2828
+ //#region src/index.ts
2829
+ function yn(e, t) {
2830
+ let n = {
2831
+ client: e,
2832
+ tableName: t.tableName
2833
+ }, r = {
2834
+ actions: je(),
2835
+ actionExecutions: Me(),
2836
+ actionVersions: Ne(),
2837
+ branding: pt(n),
2838
+ clients: tt(n),
2839
+ clientConnections: at(n),
2840
+ clientGrants: rt(n),
2841
+ clientRegistrationTokens: st(n),
2842
+ codes: Qe(n),
2843
+ connections: lt(n),
2844
+ customDomains: Ct(n),
2845
+ emailProviders: Mt(n),
2846
+ emailTemplates: Pt(n),
2847
+ flows: Ve(n),
2848
+ forms: Rt(n),
2849
+ hookCode: gt(n),
2850
+ hooks: vt(n),
2851
+ invites: an(n),
2852
+ keys: bt(n),
2853
+ loginSessions: dt(n),
2854
+ logs: Tt(n),
2855
+ authenticationMethods: cn(n),
2856
+ organizations: Xt(n),
2857
+ organizationConnections: $t(n),
2858
+ passwords: Xe(n),
2859
+ promptSettings: At(n),
2860
+ proxyRoutes: pn(n),
2861
+ refreshTokens: It(n),
2862
+ resourceServers: Bt(n),
2863
+ rolePermissions: Wt(n),
2864
+ roles: Ht(n),
2865
+ sessions: Je(n),
2866
+ tenants: Ue(n),
2867
+ themes: Dt(n),
2868
+ universalLoginTemplates: mt(n),
2869
+ customText: on(n),
2870
+ userOrganizations: nn(n),
2871
+ userPermissions: Kt(n),
2872
+ userRoles: Jt(n),
2873
+ users: Ke(n),
2874
+ async transaction(e) {
2875
+ if (r.outbox) throw Error("DynamoDB adapter does not support atomic transactions. Cannot guarantee atomicity between entity writes and outbox events. Use a SQL-backed adapter for outbox-enabled tenants.");
2876
+ return e(r);
2877
+ }
2878
+ };
2879
+ return r;
2880
+ }
2881
+ //#endregion
2882
+ export { H as authenticationMethodKeys, Fe as brandingKeys, V as clientConnectionKeys, _ as clientGrantKeys, g as clientKeys, U as clientRegistrationTokenKeys, y as codeKeys, v as connectionKeys, cn as createAuthenticationMethodsAdapter, pt as createBrandingAdapter, at as createClientConnectionsAdapter, rt as createClientGrantsAdapter, tt as createClientsAdapter, Qe as createCodesAdapter, lt as createConnectionsAdapter, Ct as createCustomDomainsAdapter, Mt as createEmailProvidersAdapter, Ve as createFlowsAdapter, Rt as createFormsAdapter, vt as createHooksAdapter, an as createInvitesAdapter, bt as createKeysAdapter, dt as createLoginSessionsAdapter, Tt as createLogsAdapter, $t as createOrganizationConnectionsAdapter, Xt as createOrganizationsAdapter, Xe as createPasswordsAdapter, At as createPromptSettingsAdapter, vn as createProxyDataAdapter, pn as createProxyRoutesAdapter, It as createRefreshTokensAdapter, Bt as createResourceServersAdapter, Wt as createRolePermissionsAdapter, Ht as createRolesAdapter, Je as createSessionsAdapter, Ue as createTenantsAdapter, Dt as createThemesAdapter, nn as createUserOrganizationsAdapter, Kt as createUserPermissionsAdapter, Jt as createUserRolesAdapter, Ke as createUsersAdapter, w as customDomainKeys, W as customTextKeys, yn as default, q as deleteItem, D as emailProviderKeys, O as emailTemplateKeys, j as flowKeys, A as formKeys, G as getItem, C as hookKeys, B as inviteKeys, Ie as keyKeys, Re as legacyClientKeys, E as logKeys, h as loginSessionKeys, z as organizationConnectionKeys, L as organizationKeys, b as passwordKeys, Le as promptSettingsKeys, T as proxyRouteKeys, K as putItem, J as queryItems, Y as queryWithPagination, k as refreshTokenKeys, Q as removeNullProperties, M as resourceServerKeys, N as roleKeys, P as rolePermissionKeys, m as sessionKeys, Z as stripDynamoDBFields, f as tenantKeys, S as themeKeys, ze as transactWriteItems, x as universalLoginTemplateKeys, X as updateItem, p as userKeys, R as userOrganizationKeys, F as userPermissionKeys, I as userRoleKeys };