@yielded/auth-persistence 0.1.0-beta.8 → 0.1.0-beta.9

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 (116) hide show
  1. package/README.md +4 -0
  2. package/dist/DrizzleD1.d.mts +7 -7
  3. package/dist/DrizzleLibsql.d.mts +31 -31
  4. package/dist/DrizzleLibsql.mjs +7 -22
  5. package/dist/DrizzleLibsql.mjs.map +1 -1
  6. package/dist/DrizzleMysql2.d.mts +8 -8
  7. package/dist/DrizzlePglite.d.mts +15 -15
  8. package/dist/DrizzlePostgres.d.mts +13 -13
  9. package/dist/DrizzleSqliteBun.d.mts +24 -24
  10. package/dist/DrizzleSqliteDo.d.mts +29 -29
  11. package/dist/DrizzleSqliteNode.d.mts +22 -22
  12. package/dist/DrizzleSqliteWasm.d.mts +24 -24
  13. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  14. package/dist/drizzle/D1BatchStatements.d.mts +1 -2
  15. package/dist/drizzle/SuppliedService.d.mts +1 -2
  16. package/dist/drizzle/d1-emails.d.mts +5 -6
  17. package/dist/drizzle/d1-identity.d.mts +2 -3
  18. package/dist/drizzle/d1-oauth.d.mts +10 -11
  19. package/dist/drizzle/d1-passkey.d.mts +5 -6
  20. package/dist/drizzle/d1-password-prepared.d.mts +2 -3
  21. package/dist/drizzle/d1-passwords.d.mts +4 -5
  22. package/dist/drizzle/d1-phone.d.mts +2 -3
  23. package/dist/drizzle/d1-planning.d.mts +1 -2
  24. package/dist/drizzle/d1-proofs.d.mts +2 -3
  25. package/dist/drizzle/d1-sessions.d.mts +10 -11
  26. package/dist/drizzle/d1-totp.d.mts +2 -3
  27. package/dist/drizzle/email-model.d.mts +30 -31
  28. package/dist/drizzle/email-registration.d.mts +1 -2
  29. package/dist/drizzle/email-target.d.mts +3 -4
  30. package/dist/drizzle/model.d.mts +41 -41
  31. package/dist/drizzle/model.mjs +3 -5
  32. package/dist/drizzle/model.mjs.map +1 -1
  33. package/dist/drizzle/mysql-emails.d.mts +7 -8
  34. package/dist/drizzle/mysql-identity.d.mts +2 -3
  35. package/dist/drizzle/mysql-password-prepared.d.mts +3 -4
  36. package/dist/drizzle/mysql-passwords.d.mts +6 -7
  37. package/dist/drizzle/mysql-proofs.d.mts +3 -4
  38. package/dist/drizzle/mysql-sessions.d.mts +15 -16
  39. package/dist/drizzle/mysql.d.mts +8 -9
  40. package/dist/drizzle/oauth-connected-model.d.mts +21 -22
  41. package/dist/drizzle/oauth-connected-reference.d.mts +1 -2
  42. package/dist/drizzle/oauth-connected-state.d.mts +1950 -7
  43. package/dist/drizzle/oauth-connected-target.d.mts +7 -8
  44. package/dist/drizzle/oauth-flow.d.mts +22 -2
  45. package/dist/drizzle/oauth-model.d.mts +45 -46
  46. package/dist/drizzle/oauth-owner.d.mts +10 -2
  47. package/dist/drizzle/oauth-target.d.mts +9 -10
  48. package/dist/drizzle/passkey-model.d.mts +34 -35
  49. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +5 -6
  50. package/dist/drizzle/passkey-write-model.d.mts +13 -14
  51. package/dist/drizzle/password-model.d.mts +29 -30
  52. package/dist/drizzle/password-prepared-model.d.mts +10 -11
  53. package/dist/drizzle/password-prepared-target.d.mts +1 -2
  54. package/dist/drizzle/password-registration.d.mts +1 -2
  55. package/dist/drizzle/password-target.d.mts +2 -3
  56. package/dist/drizzle/pg-emails.d.mts +7 -8
  57. package/dist/drizzle/pg-password-prepared.d.mts +3 -4
  58. package/dist/drizzle/pg-passwords.d.mts +6 -7
  59. package/dist/drizzle/pg-proofs.d.mts +3 -4
  60. package/dist/drizzle/pg-sessions.d.mts +15 -16
  61. package/dist/drizzle/pg.d.mts +10 -11
  62. package/dist/drizzle/phone-model.d.mts +9 -10
  63. package/dist/drizzle/phone-target.d.mts +1 -2
  64. package/dist/drizzle/proof-model.d.mts +25 -26
  65. package/dist/drizzle/proof-target.d.mts +1 -2
  66. package/dist/drizzle/session-model.d.mts +25 -26
  67. package/dist/drizzle/session-target.d.mts +4 -5
  68. package/dist/drizzle/sqlite.d.mts +8 -9
  69. package/dist/drizzle/standalone-guard.mjs +3 -5
  70. package/dist/drizzle/standalone-guard.mjs.map +1 -1
  71. package/dist/drizzle/step-up-model.d.mts +6 -7
  72. package/dist/drizzle/totp-model.d.mts +7 -8
  73. package/dist/drizzle/totp-state.d.mts +2 -3
  74. package/dist/drizzle/totp-target.d.mts +1 -2
  75. package/dist/drizzle/transaction-mysql.mjs +1 -0
  76. package/dist/drizzle/transaction-mysql.mjs.map +1 -1
  77. package/dist/drizzle/transaction-owner.d.mts +3 -2
  78. package/dist/index.d.mts +2 -1
  79. package/dist/index.mjs +2 -1
  80. package/dist/internal/configuration.d.mts +19 -19
  81. package/dist/internal/mapping-error.d.mts +2 -3
  82. package/dist/internal/oauth-app.d.mts +1 -2
  83. package/dist/internal/oauth-app.mjs +3 -4
  84. package/dist/internal/oauth-app.mjs.map +1 -1
  85. package/dist/internal/oauth-server.d.mts +10 -0
  86. package/dist/internal/oauth-server.mjs +66 -0
  87. package/dist/internal/oauth-server.mjs.map +1 -0
  88. package/dist/internal/passkey/target.d.mts +2 -3
  89. package/dist/internal/passkeys.mjs +2 -1
  90. package/dist/internal/passkeys.mjs.map +1 -1
  91. package/dist/internal/persistence.mjs +3 -2
  92. package/dist/internal/persistence.mjs.map +1 -1
  93. package/dist/internal/sql-persistence.d.mts +1 -2
  94. package/dist/internal/sql-table.d.mts +6 -7
  95. package/dist/internal/sql-table.mjs +12 -2
  96. package/dist/internal/sql-table.mjs.map +1 -1
  97. package/dist/internal/standalone.mjs +13 -0
  98. package/dist/internal/standalone.mjs.map +1 -0
  99. package/dist/internal/storage-tables.d.mts +5 -6
  100. package/dist/internal/transaction-execution-kernel.d.mts +2 -3
  101. package/dist/internal/transaction-execution-kernel.mjs +3 -5
  102. package/dist/internal/transaction-execution-kernel.mjs.map +1 -1
  103. package/dist/internal/transaction-kernel.d.mts +49 -2
  104. package/package.json +1 -1
  105. package/src/DrizzleLibsql.ts +10 -54
  106. package/src/drizzle/model.ts +8 -10
  107. package/src/drizzle/standalone-guard.ts +4 -9
  108. package/src/drizzle/transaction-mysql.ts +2 -0
  109. package/src/index.ts +1 -0
  110. package/src/internal/oauth-app.ts +4 -5
  111. package/src/internal/oauth-server.ts +89 -0
  112. package/src/internal/passkeys.ts +2 -6
  113. package/src/internal/persistence.ts +3 -5
  114. package/src/internal/sql-table.ts +17 -2
  115. package/src/internal/standalone.ts +30 -0
  116. package/src/internal/transaction-execution-kernel.ts +3 -7
@@ -5,35 +5,35 @@ import { PasskeyCeremony, PasskeyCredential, PasskeyCredentials, PasskeyEnrollme
5
5
  import { SubjectId } from "@yielded/auth/Schema";
6
6
  import { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
7
7
  //#region src/drizzle/passkey-model.d.ts
8
- type PasskeyColumn<T extends Table> = Extract<keyof T["_"]["columns"], string>;
9
- type PasskeyMappingSource<M, RSetup = never> = M | Effect.Effect<M, PersistenceMappingError, RSetup>;
10
- interface PasskeyCredentialServices {
8
+ export type PasskeyColumn<T extends Table> = Extract<keyof T["_"]["columns"], string>;
9
+ export type PasskeyMappingSource<M, RSetup = never> = M | Effect.Effect<M, PersistenceMappingError, RSetup>;
10
+ export interface PasskeyCredentialServices {
11
11
  readonly passkeyCredentials: PasskeyCredentials["Service"];
12
12
  }
13
- interface PasskeyPersistenceServices {
13
+ export interface PasskeyPersistenceServices {
14
14
  readonly passkeyPersistence: PasskeyPersistence["Service"];
15
15
  }
16
- interface PasskeyEnrollmentContextServices {
16
+ export interface PasskeyEnrollmentContextServices {
17
17
  readonly passkeyEnrollmentContext: PasskeyEnrollmentContext["Service"];
18
18
  }
19
- declare const passkeyCredentialsLayer: <E, R>(services: Effect.Effect<PasskeyCredentialServices, E, R>) => Layer.Layer<PasskeyCredentials, E, R>;
20
- declare const passkeyPersistenceLayer: <E, R>(services: Effect.Effect<PasskeyPersistenceServices, E, R>) => Layer.Layer<PasskeyPersistence, E, R>;
21
- declare const passkeyEnrollmentContextLayer: <E, R>(services: Effect.Effect<PasskeyEnrollmentContextServices, E, R>) => Layer.Layer<PasskeyEnrollmentContext, E, R>;
19
+ export declare const passkeyCredentialsLayer: <E, R>(services: Effect.Effect<PasskeyCredentialServices, E, R>) => Layer.Layer<PasskeyCredentials, E, R>;
20
+ export declare const passkeyPersistenceLayer: <E, R>(services: Effect.Effect<PasskeyPersistenceServices, E, R>) => Layer.Layer<PasskeyPersistence, E, R>;
21
+ export declare const passkeyEnrollmentContextLayer: <E, R>(services: Effect.Effect<PasskeyEnrollmentContextServices, E, R>) => Layer.Layer<PasskeyEnrollmentContext, E, R>;
22
22
  /** Native IDs roundtrip exactly; protocol IDs and authentication references are
23
23
  * different identities. These callbacks never suspend inside an owner. */
24
- interface PasskeySubjectIdCodec<N> {
24
+ export interface PasskeySubjectIdCodec<N> {
25
25
  readonly toNative: (id: SubjectId) => N;
26
26
  readonly toSubject: (id: N) => SubjectId;
27
27
  readonly equals: (left: N, right: N) => boolean;
28
28
  }
29
- interface PasskeyClock {
29
+ export interface PasskeyClock {
30
30
  readonly encodeInstant: (millis: number) => unknown;
31
31
  readonly decodeInstant: (value: unknown) => number;
32
32
  readonly engineNowMillis: SQL;
33
33
  readonly toMillis: (expression: SQL) => SQL;
34
34
  readonly fromMillis: (expression: SQL) => SQL;
35
35
  }
36
- interface PasskeySubjectReadTable<T extends Table, N> {
36
+ export interface PasskeySubjectReadTable<T extends Table, N> {
37
37
  readonly table: T;
38
38
  readonly id: PasskeyColumn<T>;
39
39
  readonly status: PasskeyColumn<T>;
@@ -42,7 +42,7 @@ interface PasskeySubjectReadTable<T extends Table, N> {
42
42
  readonly isActiveStatus: (value: unknown) => boolean;
43
43
  readonly activeCondition: SQL;
44
44
  }
45
- interface PasskeyFactorReadTable<T extends Table> {
45
+ export interface PasskeyFactorReadTable<T extends Table> {
46
46
  readonly table: T;
47
47
  readonly subjectId: PasskeyColumn<T>;
48
48
  readonly credentialId: PasskeyColumn<T>;
@@ -53,7 +53,7 @@ interface PasskeyFactorReadTable<T extends Table> {
53
53
  }
54
54
  /** decode uses only these declared columns. Counter columns are native integral
55
55
  * numbers; BS may use a consumer enum. Name/creation metadata is not required. */
56
- interface PasskeyCredentialReadTable<T extends Table, N> {
56
+ export interface PasskeyCredentialReadTable<T extends Table, N> {
57
57
  readonly table: T;
58
58
  readonly credentialId: PasskeyColumn<T>;
59
59
  readonly subjectId: PasskeyColumn<T>;
@@ -78,7 +78,7 @@ interface PasskeyCredentialReadTable<T extends Table, N> {
78
78
  readonly isActiveStatus: (value: unknown) => boolean;
79
79
  readonly activeCondition: SQL;
80
80
  }
81
- interface PasskeyCredentialOwnershipTable<T extends Table, N> {
81
+ export interface PasskeyCredentialOwnershipTable<T extends Table, N> {
82
82
  readonly table: T;
83
83
  readonly credentialKey: PasskeyColumn<T>;
84
84
  readonly rpId: PasskeyColumn<T>;
@@ -93,7 +93,7 @@ interface PasskeyCredentialOwnershipTable<T extends Table, N> {
93
93
  readonly decodeSubjectId: (row: Readonly<Partial<InferSelectModel<T>>>) => N;
94
94
  }
95
95
  /** Reservations do not manufacture a subject; bound handles are RP-global. */
96
- interface PasskeyHandleReadTable<T extends Table> {
96
+ export interface PasskeyHandleReadTable<T extends Table> {
97
97
  readonly table: T;
98
98
  readonly handleKey: PasskeyColumn<T>;
99
99
  readonly rpId: PasskeyColumn<T>;
@@ -102,24 +102,24 @@ interface PasskeyHandleReadTable<T extends Table> {
102
102
  readonly version: PasskeyColumn<T>;
103
103
  readonly reservationId: PasskeyColumn<T>;
104
104
  }
105
- interface PasskeyHandleReservationTable<T extends Table> extends PasskeyHandleReadTable<T> {
105
+ export interface PasskeyHandleReservationTable<T extends Table> extends PasskeyHandleReadTable<T> {
106
106
  readonly reservedCondition: SQL;
107
107
  readonly isReservedState: (value: unknown) => boolean;
108
108
  }
109
- interface PasskeyHandleOwnershipTable<T extends Table, N> extends PasskeyHandleReadTable<T> {
109
+ export interface PasskeyHandleOwnershipTable<T extends Table, N> extends PasskeyHandleReadTable<T> {
110
110
  readonly subjectId: PasskeyColumn<T>;
111
111
  readonly ownedCondition: SQL;
112
112
  readonly isOwnedState: (value: unknown) => boolean;
113
113
  readonly decodeSubjectId: (row: Readonly<Partial<InferSelectModel<T>>>) => N;
114
114
  }
115
- declare const requiredPasskeyCredentialConstraints: {
115
+ export declare const requiredPasskeyCredentialConstraints: {
116
116
  readonly credentialId: readonly ["credentialId"];
117
117
  readonly factor: readonly ["subjectId", "credentialId"];
118
118
  readonly credentialOwnership: readonly ["credentialKey"];
119
119
  readonly handleOwnership: readonly ["handleKey"];
120
120
  readonly boundSubjectHandle: readonly ["rpId", "subjectId"];
121
121
  };
122
- interface PasskeyCredentialMapping<S extends Table, C extends Table, F extends Table, Ownership extends Table, Handle extends Table, N> {
122
+ export interface PasskeyCredentialMapping<S extends Table, C extends Table, F extends Table, Ownership extends Table, Handle extends Table, N> {
123
123
  readonly subject: PasskeySubjectReadTable<S, N>;
124
124
  readonly credential: PasskeyCredentialReadTable<C, N>;
125
125
  readonly authority: PasskeyFactorReadTable<F>;
@@ -131,7 +131,7 @@ interface PasskeyCredentialMapping<S extends Table, C extends Table, F extends T
131
131
  /** A stable additional policy row, acquired before RP/credential locks. The
132
132
  * factory checks column names without erasing the consumer table at its input. */
133
133
  declare const PasskeyPolicyGuardTypeId: unique symbol;
134
- interface PasskeyPolicyGuard {
134
+ export interface PasskeyPolicyGuard {
135
135
  readonly [PasskeyPolicyGuardTypeId]: true;
136
136
  readonly scope: string;
137
137
  readonly table: Table;
@@ -139,14 +139,14 @@ interface PasskeyPolicyGuard {
139
139
  readonly where: (moduleId: string) => SQL;
140
140
  readonly condition: (moduleId: string) => SQL;
141
141
  }
142
- declare const passkeyPolicyGuard: <T extends Table>(input: {
142
+ export declare const passkeyPolicyGuard: <T extends Table>(input: {
143
143
  readonly scope: string;
144
144
  readonly table: T;
145
145
  readonly columns: ReadonlyArray<PasskeyColumn<T>>;
146
146
  readonly where: (moduleId: string) => SQL;
147
147
  readonly condition: (moduleId: string) => SQL;
148
148
  }) => PasskeyPolicyGuard;
149
- interface PasskeyModuleTable<T extends Table> {
149
+ export interface PasskeyModuleTable<T extends Table> {
150
150
  readonly table: T;
151
151
  readonly moduleId: PasskeyColumn<T>;
152
152
  readonly status: PasskeyColumn<T>;
@@ -158,13 +158,13 @@ interface PasskeyModuleTable<T extends Table> {
158
158
  readonly decodeMethodPolicy: (row: Readonly<Partial<InferSelectModel<T>>>) => PasskeyMethodPolicy;
159
159
  readonly guards?: ReadonlyArray<PasskeyPolicyGuard>;
160
160
  }
161
- type PasskeyFlowState = "Pending" | "Claimed" | "Verified" | "Rejected" | "Ambiguous" | "RegistrationAccepted" | "ProvisioningPending";
162
- interface PasskeyFlowInsert {
161
+ export type PasskeyFlowState = "Pending" | "Claimed" | "Verified" | "Rejected" | "Ambiguous" | "RegistrationAccepted" | "ProvisioningPending";
162
+ export interface PasskeyFlowInsert {
163
163
  readonly ceremony: PasskeyCeremony;
164
164
  readonly policy: PasskeyMethodPolicy;
165
165
  readonly marker: string;
166
166
  }
167
- interface PasskeyFlowTable<T extends Table> {
167
+ export interface PasskeyFlowTable<T extends Table> {
168
168
  readonly table: T;
169
169
  readonly moduleId: PasskeyColumn<T>;
170
170
  readonly flowId: PasskeyColumn<T>;
@@ -190,7 +190,7 @@ interface PasskeyFlowTable<T extends Table> {
190
190
  readonly states: Readonly<Record<PasskeyFlowState, unknown>>;
191
191
  readonly encodeInsert: (input: PasskeyFlowInsert) => InferInsertModel<T>;
192
192
  }
193
- interface PasskeyAdmissionTable<T extends Table> {
193
+ export interface PasskeyAdmissionTable<T extends Table> {
194
194
  readonly table: T;
195
195
  readonly authorityScope: PasskeyColumn<T>;
196
196
  readonly moduleId: PasskeyColumn<T>;
@@ -199,8 +199,8 @@ interface PasskeyAdmissionTable<T extends Table> {
199
199
  /** One physical clock sample, reused by every charge of this decision. */
200
200
  readonly admittedAt: PasskeyColumn<T>;
201
201
  }
202
- type PasskeyChargeKind = "global" | "subject" | "target";
203
- interface PasskeyChargeInsert {
202
+ export type PasskeyChargeKind = "global" | "subject" | "target";
203
+ export interface PasskeyChargeInsert {
204
204
  readonly moduleId: string;
205
205
  readonly flowId: string;
206
206
  readonly purpose: PasskeyCeremony["purpose"];
@@ -211,7 +211,7 @@ interface PasskeyChargeInsert {
211
211
  }
212
212
  /** Charge scope is canonical core identity text; this subject-free descriptor
213
213
  * can count all purposes without decoding any unrelated native subject. */
214
- interface PasskeyChargeTable<T extends Table> {
214
+ export interface PasskeyChargeTable<T extends Table> {
215
215
  readonly table: T;
216
216
  readonly moduleId: PasskeyColumn<T>;
217
217
  readonly flowId: PasskeyColumn<T>;
@@ -225,13 +225,13 @@ interface PasskeyChargeTable<T extends Table> {
225
225
  readonly ownerMarker: PasskeyColumn<T>;
226
226
  readonly encodeInsert: (input: PasskeyChargeInsert) => InferInsertModel<T>;
227
227
  }
228
- declare const requiredPasskeyPersistenceConstraints: {
228
+ export declare const requiredPasskeyPersistenceConstraints: {
229
229
  readonly flow: readonly ["moduleId", "flowId"];
230
230
  readonly command: readonly ["moduleId", "commandId"];
231
231
  readonly admission: readonly ["authorityScope", "moduleId"];
232
232
  readonly charge: readonly ["moduleId", "flowId", "kind"];
233
233
  };
234
- interface PasskeyCeremonyMapping<Module extends Table, Flow extends Table, Admission extends Table, Charge extends Table> {
234
+ export interface PasskeyCeremonyMapping<Module extends Table, Flow extends Table, Admission extends Table, Charge extends Table> {
235
235
  readonly moduleId: string;
236
236
  readonly authorityScope: string;
237
237
  readonly module: PasskeyModuleTable<Module>;
@@ -246,7 +246,7 @@ type CredentialTable<Read> = Read extends {
246
246
  readonly table: infer T extends Table;
247
247
  };
248
248
  } ? T : never;
249
- interface PasskeyPersistenceMapping<Read, Module extends Table, Flow extends Table, Admission extends Table, Charge extends Table, N> extends PasskeyCeremonyMapping<Module, Flow, Admission, Charge> {
249
+ export interface PasskeyPersistenceMapping<Read, Module extends Table, Flow extends Table, Admission extends Table, Charge extends Table, N> extends PasskeyCeremonyMapping<Module, Flow, Admission, Charge> {
250
250
  readonly read: Read & {
251
251
  readonly subjectIds: PasskeySubjectIdCodec<N>;
252
252
  };
@@ -255,18 +255,17 @@ interface PasskeyPersistenceMapping<Read, Module extends Table, Flow extends Tab
255
255
  readonly encodeBackupState: (value: boolean) => unknown;
256
256
  };
257
257
  }
258
- interface PasskeyEnrollmentContextMapping<Read, Module extends Table, N> {
258
+ export interface PasskeyEnrollmentContextMapping<Read, Module extends Table, N> {
259
259
  readonly moduleId: string;
260
260
  readonly read: Read & {
261
261
  readonly subjectIds: PasskeySubjectIdCodec<N>;
262
262
  };
263
263
  readonly module: PasskeyModuleTable<Module>;
264
264
  }
265
- interface D1PasskeyMapping {
265
+ export interface D1PasskeyMapping {
266
266
  readonly d1: {
267
267
  readonly primary: true;
268
268
  };
269
269
  }
270
270
  //#endregion
271
- export { D1PasskeyMapping, PasskeyAdmissionTable, PasskeyCeremonyMapping, PasskeyChargeInsert, PasskeyChargeKind, PasskeyChargeTable, PasskeyClock, PasskeyColumn, PasskeyCredentialMapping, PasskeyCredentialOwnershipTable, PasskeyCredentialReadTable, PasskeyCredentialServices, PasskeyEnrollmentContextMapping, PasskeyEnrollmentContextServices, PasskeyFactorReadTable, PasskeyFlowInsert, PasskeyFlowState, PasskeyFlowTable, PasskeyHandleOwnershipTable, PasskeyHandleReadTable, PasskeyHandleReservationTable, PasskeyMappingSource, PasskeyModuleTable, PasskeyPersistenceMapping, PasskeyPersistenceServices, PasskeyPolicyGuard, PasskeySubjectIdCodec, PasskeySubjectReadTable, passkeyCredentialsLayer, passkeyEnrollmentContextLayer, passkeyPersistenceLayer, passkeyPolicyGuard, requiredPasskeyCredentialConstraints, requiredPasskeyPersistenceConstraints };
272
271
  //# sourceMappingURL=passkey-model.d.mts.map
@@ -1,17 +1,17 @@
1
1
  import { PasskeyCeremonyMapping, PasskeyChargeTable, PasskeyColumn, PasskeyFlowTable, PasskeyHandleReservationTable, PasskeyPersistenceServices } from "./passkey-model.mjs";
2
2
  import { SQL, Table } from "drizzle-orm";
3
3
  //#region src/drizzle/passkey-registration-ceremony-model.d.ts
4
- interface PasskeyRegistrationCeremonyCapabilities {
4
+ export interface PasskeyRegistrationCeremonyCapabilities {
5
5
  readonly purposes: readonly ["registration"];
6
6
  readonly issue: "registration-authority";
7
7
  readonly assertionSettlement: false;
8
8
  }
9
- interface PasskeyRegistrationCeremonyServices extends PasskeyPersistenceServices {
9
+ export interface PasskeyRegistrationCeremonyServices extends PasskeyPersistenceServices {
10
10
  readonly capabilities: PasskeyRegistrationCeremonyCapabilities;
11
11
  }
12
12
  /** Read-only custody supplied by a separate registration issuance authority.
13
13
  * No application payload codec, subject codec or provisioning callback runs here. */
14
- interface PasskeyRegistrationIntentReadTable<T extends Table> {
14
+ export interface PasskeyRegistrationIntentReadTable<T extends Table> {
15
15
  readonly table: T;
16
16
  readonly moduleId: PasskeyColumn<T>;
17
17
  readonly flowId: PasskeyColumn<T>;
@@ -29,7 +29,7 @@ interface PasskeyRegistrationIntentReadTable<T extends Table> {
29
29
  /** Any unresolved initial intent or provisioning job; cleanup never releases it. */
30
30
  readonly custodyCondition: SQL;
31
31
  }
32
- declare const requiredPasskeyRegistrationCeremonyConstraints: {
32
+ export declare const requiredPasskeyRegistrationCeremonyConstraints: {
33
33
  readonly flow: readonly ["moduleId", "flowId"];
34
34
  readonly command: readonly ["moduleId", "commandId"];
35
35
  readonly admission: readonly ["authorityScope", "moduleId"];
@@ -38,7 +38,7 @@ declare const requiredPasskeyRegistrationCeremonyConstraints: {
38
38
  readonly intentCommand: readonly ["moduleId", "commandId"];
39
39
  readonly handle: readonly ["handleKey"];
40
40
  };
41
- interface PasskeyRegistrationCeremonyMapping<Module extends Table, Flow extends Table, Admission extends Table, Charge extends Table, Intent extends Table, Handle extends Table> extends Omit<PasskeyCeremonyMapping<Module, Flow, Admission, Charge>, "constraints" | "flow" | "charge"> {
41
+ export interface PasskeyRegistrationCeremonyMapping<Module extends Table, Flow extends Table, Admission extends Table, Charge extends Table, Intent extends Table, Handle extends Table> extends Omit<PasskeyCeremonyMapping<Module, Flow, Admission, Charge>, "constraints" | "flow" | "charge"> {
42
42
  readonly flow: Omit<PasskeyFlowTable<Flow>, "encodeInsert">;
43
43
  readonly charge: Omit<PasskeyChargeTable<Charge>, "encodeInsert">;
44
44
  readonly intent: PasskeyRegistrationIntentReadTable<Intent>;
@@ -46,5 +46,4 @@ interface PasskeyRegistrationCeremonyMapping<Module extends Table, Flow extends
46
46
  readonly constraints: typeof requiredPasskeyRegistrationCeremonyConstraints;
47
47
  }
48
48
  //#endregion
49
- export { PasskeyRegistrationCeremonyCapabilities, PasskeyRegistrationCeremonyMapping, PasskeyRegistrationCeremonyServices, PasskeyRegistrationIntentReadTable, requiredPasskeyRegistrationCeremonyConstraints };
50
49
  //# sourceMappingURL=passkey-registration-ceremony-model.d.mts.map
@@ -9,13 +9,13 @@ import { PreparedCommit } from "@yielded/auth/Hooks";
9
9
  import { SessionInvalidationWindow } from "@yielded/auth/Sessions";
10
10
  import { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
11
11
  //#region src/drizzle/passkey-write-model.d.ts
12
- interface PasskeyCredentialInsert<N> {
12
+ export interface PasskeyCredentialInsert<N> {
13
13
  readonly subjectId: N;
14
14
  readonly credential: PasskeyCredential;
15
15
  readonly summary: PasskeyCredentialSummary;
16
16
  readonly marker: string;
17
17
  }
18
- interface PasskeyWriteTables<S extends Table, C extends Table, F extends Table, O extends Table, H extends Table, N> {
18
+ export interface PasskeyWriteTables<S extends Table, C extends Table, F extends Table, O extends Table, H extends Table, N> {
19
19
  readonly credential: {
20
20
  readonly name: PasskeyColumn<C>;
21
21
  readonly createdAt: PasskeyColumn<C>;
@@ -56,26 +56,26 @@ interface PasskeyWriteTables<S extends Table, C extends Table, F extends Table,
56
56
  readonly remainingSignIn: (subjectId: N, removedCredentialId: string, row: Readonly<Partial<InferSelectModel<S>>>) => Effect.Effect<SQL, PersistenceMappingError>;
57
57
  };
58
58
  }
59
- interface PasskeyInvalidationInput<N> {
59
+ export interface PasskeyInvalidationInput<N> {
60
60
  readonly subjectId: N;
61
61
  readonly previousRevision: typeof PasskeyRevision.Type.securityRevision;
62
62
  readonly securityRevision: typeof PasskeyRevision.Type.securityRevision;
63
63
  readonly invalidation: SessionInvalidationWindow;
64
64
  }
65
- interface PasskeyInvalidationMutation<N> {
65
+ export interface PasskeyInvalidationMutation<N> {
66
66
  readonly table: Table;
67
67
  readonly where: (input: PasskeyInvalidationInput<N>) => SQL;
68
68
  readonly values: (input: PasskeyInvalidationInput<N>) => Readonly<Record<string, unknown>>;
69
69
  readonly postcondition: (input: PasskeyInvalidationInput<N>) => SQL;
70
70
  }
71
71
  /** Same-owner updates for consumer session/pending tables. No external effects or callbacks after commit. */
72
- declare const passkeyInvalidationMutation: <T extends Table, N>(input: {
72
+ export declare const passkeyInvalidationMutation: <T extends Table, N>(input: {
73
73
  readonly table: T;
74
74
  readonly where: (input: PasskeyInvalidationInput<N>) => SQL;
75
75
  readonly values: (input: PasskeyInvalidationInput<N>) => Partial<InferInsertModel<T>>;
76
76
  readonly postcondition: (input: PasskeyInvalidationInput<N>) => SQL;
77
77
  }) => PasskeyInvalidationMutation<N>;
78
- interface PasskeyCommandTable<T extends Table, N> {
78
+ export interface PasskeyCommandTable<T extends Table, N> {
79
79
  readonly table: T;
80
80
  readonly moduleId: PasskeyColumn<T>;
81
81
  readonly commandId: PasskeyColumn<T>;
@@ -92,7 +92,7 @@ interface PasskeyCommandTable<T extends Table, N> {
92
92
  readonly credentialId: string;
93
93
  }) => InferInsertModel<T>;
94
94
  }
95
- interface PasskeyManagementMapping<S extends Table, C extends Table, F extends Table, O extends Table, H extends Table, M extends Table, Flow extends Table, A extends Table, Charge extends Table, Command extends Table, N> extends PasskeyPersistenceMapping<PasskeyCredentialMapping<S, C, F, O, H, N>, M, Flow, A, Charge, N> {
95
+ export interface PasskeyManagementMapping<S extends Table, C extends Table, F extends Table, O extends Table, H extends Table, M extends Table, Flow extends Table, A extends Table, Charge extends Table, Command extends Table, N> extends PasskeyPersistenceMapping<PasskeyCredentialMapping<S, C, F, O, H, N>, M, Flow, A, Charge, N> {
96
96
  readonly write: PasskeyWriteTables<S, C, F, O, H, N>;
97
97
  readonly command: PasskeyCommandTable<Command, N>;
98
98
  readonly managementConstraints: typeof requiredPasskeyManagementConstraints;
@@ -103,13 +103,13 @@ interface PasskeyManagementMapping<S extends Table, C extends Table, F extends T
103
103
  readonly postcondition: (input: PasskeyInvalidationInput<N>) => SQL;
104
104
  };
105
105
  }
106
- declare const requiredPasskeyManagementConstraints: {
106
+ export declare const requiredPasskeyManagementConstraints: {
107
107
  readonly command: readonly ["moduleId", "commandId"];
108
108
  };
109
- interface PasskeyManagementServices extends PasskeyPersistenceServices {
109
+ export interface PasskeyManagementServices extends PasskeyPersistenceServices {
110
110
  readonly passkeyManagementPersistence: PasskeyManagementPersistence["Service"];
111
111
  }
112
- interface PasskeyRegistrationWriter<R> {
112
+ export interface PasskeyRegistrationWriter<R> {
113
113
  readonly inspect: (registration: R) => Effect.Effect<{
114
114
  readonly fingerprint: TokenDigest;
115
115
  readonly eligible: boolean;
@@ -129,10 +129,10 @@ interface PasskeyRegistrationWriter<R> {
129
129
  readonly _tag: "Rejected";
130
130
  }, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
131
131
  }
132
- interface PasskeyRegistrationServices<R> extends PasskeyPersistenceServices {
132
+ export interface PasskeyRegistrationServices<R> extends PasskeyPersistenceServices {
133
133
  readonly passkeyRegistrationAuthority: PasskeyRegistrationWriter<R>;
134
134
  }
135
- interface PasskeyRegistrationMapping<S extends Table, C extends Table, F extends Table, O extends Table, H extends Table, M extends Table, Flow extends Table, A extends Table, Charge extends Table, Intent extends Table, N, R> extends PasskeyPersistenceMapping<PasskeyCredentialMapping<S, C, F, O, H, N>, M, Flow, A, Charge, N> {
135
+ export interface PasskeyRegistrationMapping<S extends Table, C extends Table, F extends Table, O extends Table, H extends Table, M extends Table, Flow extends Table, A extends Table, Charge extends Table, Intent extends Table, N, R> extends PasskeyPersistenceMapping<PasskeyCredentialMapping<S, C, F, O, H, N>, M, Flow, A, Charge, N> {
136
136
  readonly write: PasskeyWriteTables<S, C, F, O, H, N>;
137
137
  readonly flow: PasskeyFlowTable<Flow>;
138
138
  readonly handle: PasskeyHandleReservationTable<H> & {
@@ -180,11 +180,10 @@ interface PasskeyRegistrationMapping<S extends Table, C extends Table, F extends
180
180
  };
181
181
  readonly registrationConstraints: typeof requiredPasskeyRegistrationWriteConstraints;
182
182
  }
183
- declare const requiredPasskeyRegistrationWriteConstraints: {
183
+ export declare const requiredPasskeyRegistrationWriteConstraints: {
184
184
  readonly intentFlow: readonly ["moduleId", "flowId"];
185
185
  readonly intentCommand: readonly ["moduleId", "commandId"];
186
186
  readonly handle: readonly ["handleKey"];
187
187
  };
188
188
  //#endregion
189
- export { PasskeyCommandTable, PasskeyCredentialInsert, PasskeyInvalidationInput, PasskeyInvalidationMutation, PasskeyManagementMapping, PasskeyManagementServices, PasskeyRegistrationMapping, PasskeyRegistrationServices, PasskeyRegistrationWriter, PasskeyWriteTables, passkeyInvalidationMutation, requiredPasskeyManagementConstraints, requiredPasskeyRegistrationWriteConstraints };
190
189
  //# sourceMappingURL=passkey-write-model.d.mts.map
@@ -7,15 +7,15 @@ import { LoginIdentifier, RecoveryReference } from "@yielded/auth/Identity";
7
7
  import { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
8
8
  //#region src/drizzle/password-model.d.ts
9
9
  type ColumnKey<T extends Table> = Extract<keyof T["_"]["columns"], string>;
10
- type PasswordAttemptAction = "sign-in" | "change";
11
- type PasswordAttemptState = "pending" | "verified" | "rejected";
12
- type PasswordRateScopeKind = "action" | "identifier" | "subject";
13
- interface PasswordScopeKeys {
10
+ export type PasswordAttemptAction = "sign-in" | "change";
11
+ export type PasswordAttemptState = "pending" | "verified" | "rejected";
12
+ export type PasswordRateScopeKind = "action" | "identifier" | "subject";
13
+ export interface PasswordScopeKeys {
14
14
  readonly action: string;
15
15
  readonly identifier: string;
16
16
  readonly subject?: string;
17
17
  }
18
- interface PasswordSubjectTable<Subject extends Table, _NativeSubjectId> {
18
+ export interface PasswordSubjectTable<Subject extends Table, _NativeSubjectId> {
19
19
  readonly table: Subject;
20
20
  readonly id: ColumnKey<Subject>;
21
21
  readonly status: ColumnKey<Subject>;
@@ -29,7 +29,7 @@ interface PasswordSubjectTable<Subject extends Table, _NativeSubjectId> {
29
29
  /** Required only by D1 conditional statements. */
30
30
  readonly d1ActiveStatusValue?: unknown;
31
31
  }
32
- interface PasswordIdentifierTable<Identifier extends Table, NativeSubjectId> {
32
+ export interface PasswordIdentifierTable<Identifier extends Table, NativeSubjectId> {
33
33
  readonly table: Identifier;
34
34
  readonly namespace: ColumnKey<Identifier>;
35
35
  readonly value: ColumnKey<Identifier>;
@@ -45,7 +45,7 @@ interface PasswordIdentifierTable<Identifier extends Table, NativeSubjectId> {
45
45
  }) => SQL;
46
46
  readonly encodeInitialInsert: (identifier: LoginIdentifier, subjectId: NativeSubjectId, bindingRevision: SecurityRevision) => InferInsertModel<Identifier>;
47
47
  }
48
- interface PasswordAuthorityCredentialTable<Credential extends Table, NativeSubjectId> {
48
+ export interface PasswordAuthorityCredentialTable<Credential extends Table, NativeSubjectId> {
49
49
  readonly table: Credential;
50
50
  readonly subjectId: ColumnKey<Credential>;
51
51
  readonly credentialId: ColumnKey<Credential>;
@@ -60,7 +60,7 @@ interface PasswordAuthorityCredentialTable<Credential extends Table, NativeSubje
60
60
  }) => InferInsertModel<Credential>;
61
61
  readonly encodeRevision: (revision: SecurityRevision) => Partial<InferInsertModel<Credential>>;
62
62
  }
63
- interface PasswordCredentialTable<Subject extends Table, Identifier extends Table, Credential extends Table, NativeSubjectId> {
63
+ export interface PasswordCredentialTable<Subject extends Table, Identifier extends Table, Credential extends Table, NativeSubjectId> {
64
64
  readonly table: Credential;
65
65
  readonly moduleId: ColumnKey<Credential>;
66
66
  readonly subjectId: ColumnKey<Credential>;
@@ -90,7 +90,7 @@ interface PasswordCredentialTable<Subject extends Table, Identifier extends Tabl
90
90
  readonly credential: InferSelectModel<Credential>;
91
91
  }) => Effect.Effect<PasswordCredentialSnapshot, PersistenceMappingError>;
92
92
  }
93
- interface PasswordAttemptRecord {
93
+ export interface PasswordAttemptRecord {
94
94
  readonly moduleId: string;
95
95
  readonly action: PasswordAttemptAction;
96
96
  readonly attemptId: PasswordAttemptId;
@@ -105,7 +105,7 @@ interface PasswordAttemptRecord {
105
105
  readonly deadlineMillis: number;
106
106
  readonly retentionUntilMillis: number;
107
107
  }
108
- interface PasswordAttemptTable<Attempt extends Table, NativeSubjectId> {
108
+ export interface PasswordAttemptTable<Attempt extends Table, NativeSubjectId> {
109
109
  readonly table: Attempt;
110
110
  readonly moduleId: ColumnKey<Attempt>;
111
111
  readonly action: ColumnKey<Attempt>;
@@ -127,7 +127,7 @@ interface PasswordAttemptTable<Attempt extends Table, NativeSubjectId> {
127
127
  readonly state: "pending";
128
128
  }) => InferInsertModel<Attempt>;
129
129
  }
130
- interface PasswordRateScopeTable<RateScope extends Table> {
130
+ export interface PasswordRateScopeTable<RateScope extends Table> {
131
131
  readonly table: RateScope;
132
132
  readonly moduleId: ColumnKey<RateScope>;
133
133
  readonly action: ColumnKey<RateScope>;
@@ -140,7 +140,7 @@ interface PasswordRateScopeTable<RateScope extends Table> {
140
140
  readonly scopeKey: string;
141
141
  }) => InferInsertModel<RateScope>;
142
142
  }
143
- interface PasswordChargeTable<Charge extends Table> {
143
+ export interface PasswordChargeTable<Charge extends Table> {
144
144
  readonly table: Charge;
145
145
  readonly moduleId: ColumnKey<Charge>;
146
146
  readonly action: ColumnKey<Charge>;
@@ -159,7 +159,7 @@ interface PasswordChargeTable<Charge extends Table> {
159
159
  readonly retentionUntilMillis: number;
160
160
  }) => InferInsertModel<Charge>;
161
161
  }
162
- interface PasswordCommandTable<Command extends Table> {
162
+ export interface PasswordCommandTable<Command extends Table> {
163
163
  readonly table: Command;
164
164
  readonly moduleId: ColumnKey<Command>;
165
165
  readonly commandId: ColumnKey<Command>;
@@ -176,7 +176,7 @@ interface PasswordCommandTable<Command extends Table> {
176
176
  readonly retentionUntilMillis: number;
177
177
  }) => InferInsertModel<Command>;
178
178
  }
179
- interface RequiredPasswordConstraints {
179
+ export interface RequiredPasswordConstraints {
180
180
  readonly identifier: "unique(identifier.namespace,identifier.value)";
181
181
  readonly authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)";
182
182
  readonly credentialSubject: "unique(credential.moduleId,credential.subjectId)";
@@ -186,20 +186,20 @@ interface RequiredPasswordConstraints {
186
186
  readonly charge: "unique(charge.moduleId,charge.action,charge.scopeKind,charge.scopeKey,charge.attemptId)";
187
187
  readonly command: "unique(command.moduleId,command.commandId)";
188
188
  }
189
- declare const requiredPasswordConstraints: RequiredPasswordConstraints;
190
- interface PasswordConstraintClassifier {
189
+ export declare const requiredPasswordConstraints: RequiredPasswordConstraints;
190
+ export interface PasswordConstraintClassifier {
191
191
  /** Match only the mapped command uniqueness constraint. */
192
192
  readonly isCommandConflict: (cause: unknown) => boolean;
193
193
  /** Match only the mapped rate-scope uniqueness constraint. */
194
194
  readonly isRateScopeConflict: (cause: unknown) => boolean;
195
195
  }
196
- interface PasswordD1Clock {
196
+ export interface PasswordD1Clock {
197
197
  readonly engineNow: SQL;
198
198
  readonly engineNowMillis: SQL;
199
199
  readonly engineInstantMinus: (millis: number) => SQL;
200
200
  readonly engineInstantPlus: (millis: number) => SQL;
201
201
  }
202
- interface PasswordPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, NativeSubjectId> extends PasswordConstraintClassifier {
202
+ export interface PasswordPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, NativeSubjectId> extends PasswordConstraintClassifier {
203
203
  readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;
204
204
  readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId>;
205
205
  readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;
@@ -230,7 +230,7 @@ interface PasswordPersistenceMapping<Subject extends Table, Identifier extends T
230
230
  readonly sessionInvalidation: "same-authority-immediate" | "original-absolute-expiry";
231
231
  readonly d1?: PasswordD1Clock;
232
232
  }
233
- type D1PasswordPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, NativeSubjectId> = PasswordPersistenceMapping<Subject, Identifier, Credential, AuthorityCredential, Attempt, RateScope, Charge, Command, NativeSubjectId> & {
233
+ export type D1PasswordPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, NativeSubjectId> = PasswordPersistenceMapping<Subject, Identifier, Credential, AuthorityCredential, Attempt, RateScope, Charge, Command, NativeSubjectId> & {
234
234
  readonly d1: PasswordD1Clock;
235
235
  readonly subject: PasswordSubjectTable<Subject, NativeSubjectId> & {
236
236
  readonly d1ActiveStatusValue: unknown;
@@ -245,15 +245,15 @@ type D1PasswordPersistenceMapping<Subject extends Table, Identifier extends Tabl
245
245
  readonly d1ActiveStatusValue: unknown;
246
246
  };
247
247
  };
248
- type PasswordRegistrationState = "pending" | "created";
249
- interface PasswordRegistrationIntent<Registration> {
248
+ export type PasswordRegistrationState = "pending" | "created";
249
+ export interface PasswordRegistrationIntent<Registration> {
250
250
  readonly moduleId: string;
251
251
  readonly requestId: string;
252
252
  readonly identifier: LoginIdentifier;
253
253
  readonly registration: Registration;
254
254
  readonly replacement: PasswordReplacement;
255
255
  }
256
- interface PasswordRegistrationTable<Registration, Request extends Table, NativeSubjectId> {
256
+ export interface PasswordRegistrationTable<Registration, Request extends Table, NativeSubjectId> {
257
257
  readonly table: Request;
258
258
  readonly moduleId: ColumnKey<Request>;
259
259
  readonly requestId: ColumnKey<Request>;
@@ -270,7 +270,7 @@ interface PasswordRegistrationTable<Registration, Request extends Table, NativeS
270
270
  readonly _tag: "Created";
271
271
  }>, PersistenceMappingError>;
272
272
  }
273
- interface PasswordRegistrationProvisioning<Registration, Subject extends Table, NativeSubjectId> {
273
+ export interface PasswordRegistrationProvisioning<Registration, Subject extends Table, NativeSubjectId> {
274
274
  readonly encodeSubjectInsert: (input: PasswordRegistrationIntent<Registration>, values: {
275
275
  readonly nativeSubjectId: NativeSubjectId | undefined;
276
276
  readonly securityRevision: SecurityRevision;
@@ -280,20 +280,20 @@ interface PasswordRegistrationProvisioning<Registration, Subject extends Table,
280
280
  /** Interactive targets use this for database-generated/autoincrement keys. */
281
281
  readonly decodeGeneratedId?: (rows: ReadonlyArray<unknown>) => Effect.Effect<NativeSubjectId, PersistenceMappingError>;
282
282
  }
283
- interface RequiredPasswordRegistrationConstraints {
283
+ export interface RequiredPasswordRegistrationConstraints {
284
284
  readonly request: "unique(registration.moduleId,registration.requestId)";
285
285
  readonly recoveryReference: "unique(registration.recoveryReference)";
286
286
  readonly identifier: "unique(identifier.namespace,identifier.value)";
287
287
  readonly credentialSubject: "unique(credential.moduleId,credential.subjectId)";
288
288
  readonly authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)";
289
289
  }
290
- declare const requiredPasswordRegistrationConstraints: RequiredPasswordRegistrationConstraints;
291
- interface PasswordRegistrationConstraintClassifier {
290
+ export declare const requiredPasswordRegistrationConstraints: RequiredPasswordRegistrationConstraints;
291
+ export interface PasswordRegistrationConstraintClassifier {
292
292
  readonly isRequestConflict: (cause: unknown) => boolean;
293
293
  readonly isIdentifierConflict: (cause: unknown) => boolean;
294
294
  readonly isCredentialConflict: (cause: unknown) => boolean;
295
295
  }
296
- type PasswordRegistrationMapping<Registration, Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Request extends Table, NativeSubjectId> = PasswordRegistrationConstraintClassifier & {
296
+ export type PasswordRegistrationMapping<Registration, Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Request extends Table, NativeSubjectId> = PasswordRegistrationConstraintClassifier & {
297
297
  readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;
298
298
  readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId>;
299
299
  readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;
@@ -322,8 +322,7 @@ type PasswordRegistrationMapping<Registration, Subject extends Table, Identifier
322
322
  readonly allocateRecoveryReference?: Effect.Effect<typeof RecoveryReference.Type, PersistenceMappingError>;
323
323
  readonly allocateRecoveryReferenceSync?: () => typeof RecoveryReference.Type;
324
324
  });
325
- type AnyPasswordPersistenceMapping = PasswordPersistenceMapping<Table, Table, Table, Table, Table, Table, Table, Table, unknown>;
326
- type AnyPasswordRegistrationMapping<Registration = unknown> = PasswordRegistrationMapping<Registration, Table, Table, Table, Table, Table, unknown>;
325
+ export type AnyPasswordPersistenceMapping = PasswordPersistenceMapping<Table, Table, Table, Table, Table, Table, Table, Table, unknown>;
326
+ export type AnyPasswordRegistrationMapping<Registration = unknown> = PasswordRegistrationMapping<Registration, Table, Table, Table, Table, Table, unknown>;
327
327
  //#endregion
328
- export { AnyPasswordPersistenceMapping, AnyPasswordRegistrationMapping, D1PasswordPersistenceMapping, PasswordAttemptAction, PasswordAttemptRecord, PasswordAttemptState, PasswordAttemptTable, PasswordAuthorityCredentialTable, PasswordChargeTable, PasswordCommandTable, PasswordConstraintClassifier, PasswordCredentialTable, PasswordD1Clock, PasswordIdentifierTable, PasswordPersistenceMapping, PasswordRateScopeKind, PasswordRateScopeTable, PasswordRegistrationConstraintClassifier, PasswordRegistrationIntent, PasswordRegistrationMapping, PasswordRegistrationProvisioning, PasswordRegistrationState, PasswordRegistrationTable, PasswordScopeKeys, PasswordSubjectTable, RequiredPasswordConstraints, RequiredPasswordRegistrationConstraints, requiredPasswordConstraints, requiredPasswordRegistrationConstraints };
329
328
  //# sourceMappingURL=password-model.d.mts.map