@yielded/auth-persistence 0.1.0-beta.7 → 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 (119) hide show
  1. package/README.md +9 -0
  2. package/dist/DrizzleD1.d.mts +9 -9
  3. package/dist/DrizzleLibsql.d.mts +25 -25
  4. package/dist/DrizzleLibsql.mjs +7 -22
  5. package/dist/DrizzleLibsql.mjs.map +1 -1
  6. package/dist/DrizzleMysql2.d.mts +15 -15
  7. package/dist/DrizzlePglite.d.mts +9 -9
  8. package/dist/DrizzlePostgres.d.mts +15 -15
  9. package/dist/DrizzleSqliteBun.d.mts +18 -18
  10. package/dist/DrizzleSqliteDo.d.mts +29 -29
  11. package/dist/DrizzleSqliteNode.d.mts +24 -24
  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 +42 -42
  31. package/dist/drizzle/model.mjs +4 -6
  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 +9 -10
  40. package/dist/drizzle/mysql.mjs +1 -1
  41. package/dist/drizzle/oauth-connected-model.d.mts +21 -22
  42. package/dist/drizzle/oauth-connected-reference.d.mts +1 -2
  43. package/dist/drizzle/oauth-connected-state.d.mts +1950 -7
  44. package/dist/drizzle/oauth-connected-target.d.mts +9 -10
  45. package/dist/drizzle/oauth-flow.d.mts +22 -2
  46. package/dist/drizzle/oauth-model.d.mts +45 -46
  47. package/dist/drizzle/oauth-owner.d.mts +10 -2
  48. package/dist/drizzle/oauth-target.d.mts +9 -10
  49. package/dist/drizzle/passkey-model.d.mts +34 -35
  50. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +5 -6
  51. package/dist/drizzle/passkey-write-model.d.mts +13 -14
  52. package/dist/drizzle/password-model.d.mts +29 -30
  53. package/dist/drizzle/password-prepared-model.d.mts +10 -11
  54. package/dist/drizzle/password-prepared-target.d.mts +1 -2
  55. package/dist/drizzle/password-registration.d.mts +1 -2
  56. package/dist/drizzle/password-target.d.mts +2 -3
  57. package/dist/drizzle/pg-emails.d.mts +7 -8
  58. package/dist/drizzle/pg-password-prepared.d.mts +3 -4
  59. package/dist/drizzle/pg-passwords.d.mts +6 -7
  60. package/dist/drizzle/pg-proofs.d.mts +3 -4
  61. package/dist/drizzle/pg-sessions.d.mts +15 -16
  62. package/dist/drizzle/pg.d.mts +11 -12
  63. package/dist/drizzle/pg.mjs +1 -1
  64. package/dist/drizzle/phone-model.d.mts +9 -10
  65. package/dist/drizzle/phone-target.d.mts +1 -2
  66. package/dist/drizzle/proof-model.d.mts +25 -26
  67. package/dist/drizzle/proof-target.d.mts +1 -2
  68. package/dist/drizzle/session-model.d.mts +25 -26
  69. package/dist/drizzle/session-target.d.mts +4 -5
  70. package/dist/drizzle/sqlite.d.mts +9 -10
  71. package/dist/drizzle/sqlite.mjs +1 -1
  72. package/dist/drizzle/standalone-guard.mjs +3 -5
  73. package/dist/drizzle/standalone-guard.mjs.map +1 -1
  74. package/dist/drizzle/step-up-model.d.mts +6 -7
  75. package/dist/drizzle/totp-model.d.mts +7 -8
  76. package/dist/drizzle/totp-state.d.mts +2 -3
  77. package/dist/drizzle/totp-target.d.mts +1 -2
  78. package/dist/drizzle/transaction-mysql.mjs +1 -0
  79. package/dist/drizzle/transaction-mysql.mjs.map +1 -1
  80. package/dist/drizzle/transaction-owner.d.mts +3 -2
  81. package/dist/index.d.mts +3 -1
  82. package/dist/index.mjs +3 -1
  83. package/dist/internal/configuration.d.mts +19 -19
  84. package/dist/internal/mapping-error.d.mts +2 -3
  85. package/dist/internal/oauth-app.d.mts +11 -0
  86. package/dist/internal/oauth-app.mjs +57 -0
  87. package/dist/internal/oauth-app.mjs.map +1 -0
  88. package/dist/internal/oauth-server.d.mts +10 -0
  89. package/dist/internal/oauth-server.mjs +66 -0
  90. package/dist/internal/oauth-server.mjs.map +1 -0
  91. package/dist/internal/passkey/target.d.mts +2 -3
  92. package/dist/internal/passkeys.mjs +2 -1
  93. package/dist/internal/passkeys.mjs.map +1 -1
  94. package/dist/internal/persistence.mjs +3 -2
  95. package/dist/internal/persistence.mjs.map +1 -1
  96. package/dist/internal/sql-persistence.d.mts +1 -2
  97. package/dist/internal/sql-table.d.mts +6 -7
  98. package/dist/internal/sql-table.mjs +12 -2
  99. package/dist/internal/sql-table.mjs.map +1 -1
  100. package/dist/internal/standalone.mjs +13 -0
  101. package/dist/internal/standalone.mjs.map +1 -0
  102. package/dist/internal/storage-tables.d.mts +5 -6
  103. package/dist/internal/transaction-execution-kernel.d.mts +2 -3
  104. package/dist/internal/transaction-execution-kernel.mjs +3 -5
  105. package/dist/internal/transaction-execution-kernel.mjs.map +1 -1
  106. package/dist/internal/transaction-kernel.d.mts +49 -2
  107. package/package.json +1 -1
  108. package/src/DrizzleLibsql.ts +10 -54
  109. package/src/drizzle/model.ts +8 -10
  110. package/src/drizzle/standalone-guard.ts +4 -9
  111. package/src/drizzle/transaction-mysql.ts +2 -0
  112. package/src/index.ts +2 -0
  113. package/src/internal/oauth-app.ts +82 -0
  114. package/src/internal/oauth-server.ts +89 -0
  115. package/src/internal/passkeys.ts +2 -6
  116. package/src/internal/persistence.ts +3 -5
  117. package/src/internal/sql-table.ts +17 -2
  118. package/src/internal/standalone.ts +30 -0
  119. package/src/internal/transaction-execution-kernel.ts +3 -7
@@ -6,17 +6,17 @@ import { OAuthAccountRevision } from "@yielded/auth/OAuth";
6
6
  import { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
7
7
  //#region src/drizzle/oauth-connected-model.d.ts
8
8
  type Column<T extends Table> = Extract<keyof T["_"]["columns"], string>;
9
- type OAuthConnectedAction = M.OAuthConnectedActionChallenge["action"];
10
- interface OAuthConnectedSubjectTable<S extends Table> extends OAuthSubjectReadTable<S> {
9
+ export type OAuthConnectedAction = M.OAuthConnectedActionChallenge["action"];
10
+ export interface OAuthConnectedSubjectTable<S extends Table> extends OAuthSubjectReadTable<S> {
11
11
  readonly decodeActionRequirement: (row: InferSelectModel<S>, action: OAuthConnectedAction) => AuthenticationRequirement;
12
12
  }
13
13
  /** All mapped order columns use exact SQL integer comparison through 2^53-1.
14
14
  * These codecs bridge driver representations, not alternative ordering rules. */
15
- interface OAuthConnectedOrderCodec {
15
+ export interface OAuthConnectedOrderCodec {
16
16
  readonly encode: (order: number) => unknown;
17
17
  readonly decode: (value: unknown) => number;
18
18
  }
19
- interface OAuthConnectedFlowTable<F extends Table, N> {
19
+ export interface OAuthConnectedFlowTable<F extends Table, N> {
20
20
  readonly table: F;
21
21
  readonly moduleId: Column<F>;
22
22
  readonly flowId: Column<F>;
@@ -45,7 +45,7 @@ interface OAuthConnectedFlowTable<F extends Table, N> {
45
45
  readonly subjectId: N;
46
46
  }) => InferInsertModel<F>;
47
47
  }
48
- interface OAuthConnectedGrantTable<G extends Table, N> {
48
+ export interface OAuthConnectedGrantTable<G extends Table, N> {
49
49
  readonly table: G;
50
50
  readonly moduleId: Column<G>;
51
51
  readonly grantId: Column<G>;
@@ -78,7 +78,7 @@ interface OAuthConnectedGrantTable<G extends Table, N> {
78
78
  /** Also stores a permanent provider/issuer scope anchor. clientKey must fit 52
79
79
  * ASCII characters. Empty clientRegistrationId is reserved for that anchor;
80
80
  * actual profile registrations are nonempty. Scope counter stays zero. */
81
- interface OAuthConnectedClientRegistrationTable<C extends Table> {
81
+ export interface OAuthConnectedClientRegistrationTable<C extends Table> {
82
82
  readonly table: C;
83
83
  readonly clientKey: Column<C>;
84
84
  readonly provider: Column<C>;
@@ -90,7 +90,7 @@ interface OAuthConnectedClientRegistrationTable<C extends Table> {
90
90
  }
91
91
  /** Remote authority: no local-subject column or subject-scoped key. Retain this
92
92
  * anchor/cutoff when a legitimately released tuple gains a different local owner. */
93
- interface OAuthConnectedCohortTable<C extends Table> {
93
+ export interface OAuthConnectedCohortTable<C extends Table> {
94
94
  readonly table: C;
95
95
  readonly cohortKey: Column<C>;
96
96
  readonly clientKey: Column<C>;
@@ -104,7 +104,7 @@ interface OAuthConnectedCohortTable<C extends Table> {
104
104
  readonly identityKey: string;
105
105
  }) => InferInsertModel<C>;
106
106
  }
107
- interface OAuthConnectedAdmissionTable<A extends Table, N> {
107
+ export interface OAuthConnectedAdmissionTable<A extends Table, N> {
108
108
  readonly table: A;
109
109
  readonly admissionId: Column<A>;
110
110
  readonly moduleId: Column<A>;
@@ -124,7 +124,7 @@ interface OAuthConnectedAdmissionTable<A extends Table, N> {
124
124
  readonly subjectId: N;
125
125
  }) => InferInsertModel<A>;
126
126
  }
127
- interface OAuthConnectedCommandTable<C extends Table, N> {
127
+ export interface OAuthConnectedCommandTable<C extends Table, N> {
128
128
  readonly table: C;
129
129
  readonly moduleId: Column<C>;
130
130
  readonly commandId: Column<C>;
@@ -140,7 +140,7 @@ interface OAuthConnectedCommandTable<C extends Table, N> {
140
140
  readonly subjectId: N;
141
141
  }) => InferInsertModel<C>;
142
142
  }
143
- interface OAuthConnectedRevocationJobTable<J extends Table, N> {
143
+ export interface OAuthConnectedRevocationJobTable<J extends Table, N> {
144
144
  readonly table: J;
145
145
  readonly jobId: Column<J>;
146
146
  readonly moduleId: Column<J>;
@@ -161,7 +161,7 @@ interface OAuthConnectedRevocationJobTable<J extends Table, N> {
161
161
  readonly subjectId: N;
162
162
  }) => InferInsertModel<J>;
163
163
  }
164
- type OAuthConnectedPolicyInput<N> = {
164
+ export type OAuthConnectedPolicyInput<N> = {
165
165
  readonly subjectId: N;
166
166
  readonly revision: OAuthAccountRevision;
167
167
  } & ({
@@ -175,18 +175,18 @@ type OAuthConnectedPolicyInput<N> = {
175
175
  readonly authorization: M.OAuthConnectedUseAuthorization;
176
176
  readonly grant?: M.OAuthConnectedTokenContext;
177
177
  });
178
- interface OAuthConnectedPolicyGuardTable<T extends Table, N> {
178
+ export interface OAuthConnectedPolicyGuardTable<T extends Table, N> {
179
179
  readonly table: T;
180
180
  readonly orderBy: Column<T>;
181
181
  readonly condition: (input: OAuthConnectedPolicyInput<N>) => SQL;
182
182
  }
183
- interface OAuthConnectedPolicyGuard<N> {
183
+ export interface OAuthConnectedPolicyGuard<N> {
184
184
  readonly table: Table;
185
185
  readonly orderBy: string;
186
186
  readonly condition: (input: OAuthConnectedPolicyInput<N>) => SQL;
187
187
  }
188
- declare const oauthConnectedPolicyGuard: <T extends Table, N>(input: OAuthConnectedPolicyGuardTable<T, N>) => OAuthConnectedPolicyGuard<N>;
189
- interface OAuthConnectedSqlPolicy<N> {
188
+ export declare const oauthConnectedPolicyGuard: <T extends Table, N>(input: OAuthConnectedPolicyGuardTable<T, N>) => OAuthConnectedPolicyGuard<N>;
189
+ export interface OAuthConnectedSqlPolicy<N> {
190
190
  /** Up to 32 scopes, each selecting 1..64 stable rows in global lock order.
191
191
  * Omit only when subject/shared authority locks already serialize every mutable
192
192
  * policy dependency or policy is immutable. All writers follow that order. */
@@ -196,7 +196,7 @@ interface OAuthConnectedSqlPolicy<N> {
196
196
  * The engine checks this before and after every owner/application write. */
197
197
  readonly condition: (input: OAuthConnectedPolicyInput<N>) => SQL;
198
198
  }
199
- declare const requiredOAuthConnectedConstraints: {
199
+ export declare const requiredOAuthConnectedConstraints: {
200
200
  readonly flow: "unique(connectedFlow.moduleId,connectedFlow.flowId)";
201
201
  readonly flowCommand: "unique(connectedFlow.moduleId,connectedFlow.commandId)";
202
202
  readonly stateDigest: "unique(connectedFlow.stateDigest)";
@@ -207,11 +207,11 @@ declare const requiredOAuthConnectedConstraints: {
207
207
  readonly admission: "unique(connectedAdmission.admissionId)";
208
208
  readonly command: "unique(connectedCommand.moduleId,connectedCommand.commandId)";
209
209
  };
210
- declare const requiredOAuthConnectedRevocationConstraints: {
210
+ export declare const requiredOAuthConnectedRevocationConstraints: {
211
211
  readonly job: "unique(connectedRevocation.jobId)";
212
212
  };
213
213
  /** Existing ownership only; workers never allocate or acquire a tuple. */
214
- type OAuthConnectedOwnershipRead<T extends Table, O extends Table, N> = {
214
+ export type OAuthConnectedOwnershipRead<T extends Table, O extends Table, N> = {
215
215
  readonly mode: "integrated";
216
216
  readonly tuple: Omit<OAuthOwnershipMutation<T, O, N>["tuple"], "encodeInsert">;
217
217
  } | {
@@ -221,7 +221,7 @@ type OAuthConnectedOwnershipRead<T extends Table, O extends Table, N> = {
221
221
  readonly mode: "separate";
222
222
  }>["external"], "encodeInsert">;
223
223
  };
224
- interface OAuthConnectedAuthorityMapping<T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, N> {
224
+ export interface OAuthConnectedAuthorityMapping<T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, N> {
225
225
  readonly ownership: OAuthConnectedOwnershipRead<T, O, N>;
226
226
  readonly subjectId: SubjectIdCodec<N>;
227
227
  readonly flow: Omit<OAuthConnectedFlowTable<F, N>, "encodeInsert">;
@@ -234,7 +234,7 @@ interface OAuthConnectedAuthorityMapping<T extends Table, O extends Table, F ext
234
234
  /** Safe metadata retention, never an expiry/quiescence proof for unresolved work. */
235
235
  readonly retentionMillis: number;
236
236
  }
237
- interface OAuthConnectedMapping<S extends Table, AC extends Table, T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, A extends Table, D extends Table, N, J extends Table = never> extends OAuthConnectedAuthorityMapping<T, O, F, G, C, H, N> {
237
+ export interface OAuthConnectedMapping<S extends Table, AC extends Table, T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, A extends Table, D extends Table, N, J extends Table = never> extends OAuthConnectedAuthorityMapping<T, O, F, G, C, H, N> {
238
238
  readonly ownership: OAuthOwnershipMutation<T, O, N>;
239
239
  readonly flow: OAuthConnectedFlowTable<F, N>;
240
240
  readonly grant: OAuthConnectedGrantTable<G, N>;
@@ -269,10 +269,9 @@ interface OAuthConnectedMapping<S extends Table, AC extends Table, T extends Tab
269
269
  readonly subjectId: SQL;
270
270
  }) => SQL;
271
271
  }
272
- interface OAuthConnectedRevocationMapping<T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, J extends Table, N> extends OAuthConnectedAuthorityMapping<T, O, F, G, C, H, N> {
272
+ export interface OAuthConnectedRevocationMapping<T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, J extends Table, N> extends OAuthConnectedAuthorityMapping<T, O, F, G, C, H, N> {
273
273
  readonly job: Omit<OAuthConnectedRevocationJobTable<J, N>, "encodeInsert">;
274
274
  readonly constraints: typeof requiredOAuthConnectedRevocationConstraints;
275
275
  }
276
276
  //#endregion
277
- export { OAuthConnectedAction, OAuthConnectedAdmissionTable, OAuthConnectedAuthorityMapping, OAuthConnectedClientRegistrationTable, OAuthConnectedCohortTable, OAuthConnectedCommandTable, OAuthConnectedFlowTable, OAuthConnectedGrantTable, OAuthConnectedMapping, OAuthConnectedOrderCodec, OAuthConnectedOwnershipRead, OAuthConnectedPolicyGuard, OAuthConnectedPolicyGuardTable, OAuthConnectedPolicyInput, OAuthConnectedRevocationJobTable, OAuthConnectedRevocationMapping, OAuthConnectedSqlPolicy, OAuthConnectedSubjectTable, oauthConnectedPolicyGuard, requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints };
278
277
  //# sourceMappingURL=oauth-connected-model.d.mts.map
@@ -5,7 +5,7 @@ import { SQL, Table } from "drizzle-orm";
5
5
  //#region src/drizzle/oauth-connected-reference.d.ts
6
6
  /** Compose Accounts.Unlink with this connected authority. The stable scope lock
7
7
  * serializes unknown claims across every client registration for an issuer. */
8
- declare const oauthConnectedOwnershipReferences: <S extends Table, AC extends Table, T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, A extends Table, D extends Table, N, J extends Table>(original: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, A, D, N, J>) => {
8
+ export declare const oauthConnectedOwnershipReferences: <S extends Table, AC extends Table, T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, A extends Table, D extends Table, N, J extends Table>(original: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, A, D, N, J>) => {
9
9
  readonly connectedReferenceGuards: ReadonlyArray<OAuthReferenceGuardDescriptor<N>>;
10
10
  readonly connectedReference: (input: {
11
11
  readonly identityKey: string;
@@ -13,5 +13,4 @@ declare const oauthConnectedOwnershipReferences: <S extends Table, AC extends Ta
13
13
  }) => SQL;
14
14
  };
15
15
  //#endregion
16
- export { oauthConnectedOwnershipReferences };
17
16
  //# sourceMappingURL=oauth-connected-reference.d.mts.map