@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.
- package/README.md +4 -0
- package/dist/DrizzleD1.d.mts +7 -7
- package/dist/DrizzleLibsql.d.mts +31 -31
- package/dist/DrizzleLibsql.mjs +7 -22
- package/dist/DrizzleLibsql.mjs.map +1 -1
- package/dist/DrizzleMysql2.d.mts +8 -8
- package/dist/DrizzlePglite.d.mts +15 -15
- package/dist/DrizzlePostgres.d.mts +13 -13
- package/dist/DrizzleSqliteBun.d.mts +24 -24
- package/dist/DrizzleSqliteDo.d.mts +29 -29
- package/dist/DrizzleSqliteNode.d.mts +22 -22
- package/dist/DrizzleSqliteWasm.d.mts +24 -24
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/drizzle/D1BatchStatements.d.mts +1 -2
- package/dist/drizzle/SuppliedService.d.mts +1 -2
- package/dist/drizzle/d1-emails.d.mts +5 -6
- package/dist/drizzle/d1-identity.d.mts +2 -3
- package/dist/drizzle/d1-oauth.d.mts +10 -11
- package/dist/drizzle/d1-passkey.d.mts +5 -6
- package/dist/drizzle/d1-password-prepared.d.mts +2 -3
- package/dist/drizzle/d1-passwords.d.mts +4 -5
- package/dist/drizzle/d1-phone.d.mts +2 -3
- package/dist/drizzle/d1-planning.d.mts +1 -2
- package/dist/drizzle/d1-proofs.d.mts +2 -3
- package/dist/drizzle/d1-sessions.d.mts +10 -11
- package/dist/drizzle/d1-totp.d.mts +2 -3
- package/dist/drizzle/email-model.d.mts +30 -31
- package/dist/drizzle/email-registration.d.mts +1 -2
- package/dist/drizzle/email-target.d.mts +3 -4
- package/dist/drizzle/model.d.mts +41 -41
- package/dist/drizzle/model.mjs +3 -5
- package/dist/drizzle/model.mjs.map +1 -1
- package/dist/drizzle/mysql-emails.d.mts +7 -8
- package/dist/drizzle/mysql-identity.d.mts +2 -3
- package/dist/drizzle/mysql-password-prepared.d.mts +3 -4
- package/dist/drizzle/mysql-passwords.d.mts +6 -7
- package/dist/drizzle/mysql-proofs.d.mts +3 -4
- package/dist/drizzle/mysql-sessions.d.mts +15 -16
- package/dist/drizzle/mysql.d.mts +8 -9
- package/dist/drizzle/oauth-connected-model.d.mts +21 -22
- package/dist/drizzle/oauth-connected-reference.d.mts +1 -2
- package/dist/drizzle/oauth-connected-state.d.mts +1950 -7
- package/dist/drizzle/oauth-connected-target.d.mts +7 -8
- package/dist/drizzle/oauth-flow.d.mts +22 -2
- package/dist/drizzle/oauth-model.d.mts +45 -46
- package/dist/drizzle/oauth-owner.d.mts +10 -2
- package/dist/drizzle/oauth-target.d.mts +9 -10
- package/dist/drizzle/passkey-model.d.mts +34 -35
- package/dist/drizzle/passkey-registration-ceremony-model.d.mts +5 -6
- package/dist/drizzle/passkey-write-model.d.mts +13 -14
- package/dist/drizzle/password-model.d.mts +29 -30
- package/dist/drizzle/password-prepared-model.d.mts +10 -11
- package/dist/drizzle/password-prepared-target.d.mts +1 -2
- package/dist/drizzle/password-registration.d.mts +1 -2
- package/dist/drizzle/password-target.d.mts +2 -3
- package/dist/drizzle/pg-emails.d.mts +7 -8
- package/dist/drizzle/pg-password-prepared.d.mts +3 -4
- package/dist/drizzle/pg-passwords.d.mts +6 -7
- package/dist/drizzle/pg-proofs.d.mts +3 -4
- package/dist/drizzle/pg-sessions.d.mts +15 -16
- package/dist/drizzle/pg.d.mts +10 -11
- package/dist/drizzle/phone-model.d.mts +9 -10
- package/dist/drizzle/phone-target.d.mts +1 -2
- package/dist/drizzle/proof-model.d.mts +25 -26
- package/dist/drizzle/proof-target.d.mts +1 -2
- package/dist/drizzle/session-model.d.mts +25 -26
- package/dist/drizzle/session-target.d.mts +4 -5
- package/dist/drizzle/sqlite.d.mts +8 -9
- package/dist/drizzle/standalone-guard.mjs +3 -5
- package/dist/drizzle/standalone-guard.mjs.map +1 -1
- package/dist/drizzle/step-up-model.d.mts +6 -7
- package/dist/drizzle/totp-model.d.mts +7 -8
- package/dist/drizzle/totp-state.d.mts +2 -3
- package/dist/drizzle/totp-target.d.mts +1 -2
- package/dist/drizzle/transaction-mysql.mjs +1 -0
- package/dist/drizzle/transaction-mysql.mjs.map +1 -1
- package/dist/drizzle/transaction-owner.d.mts +3 -2
- package/dist/index.d.mts +2 -1
- package/dist/index.mjs +2 -1
- package/dist/internal/configuration.d.mts +19 -19
- package/dist/internal/mapping-error.d.mts +2 -3
- package/dist/internal/oauth-app.d.mts +1 -2
- package/dist/internal/oauth-app.mjs +3 -4
- package/dist/internal/oauth-app.mjs.map +1 -1
- package/dist/internal/oauth-server.d.mts +10 -0
- package/dist/internal/oauth-server.mjs +66 -0
- package/dist/internal/oauth-server.mjs.map +1 -0
- package/dist/internal/passkey/target.d.mts +2 -3
- package/dist/internal/passkeys.mjs +2 -1
- package/dist/internal/passkeys.mjs.map +1 -1
- package/dist/internal/persistence.mjs +3 -2
- package/dist/internal/persistence.mjs.map +1 -1
- package/dist/internal/sql-persistence.d.mts +1 -2
- package/dist/internal/sql-table.d.mts +6 -7
- package/dist/internal/sql-table.mjs +12 -2
- package/dist/internal/sql-table.mjs.map +1 -1
- package/dist/internal/standalone.mjs +13 -0
- package/dist/internal/standalone.mjs.map +1 -0
- package/dist/internal/storage-tables.d.mts +5 -6
- package/dist/internal/transaction-execution-kernel.d.mts +2 -3
- package/dist/internal/transaction-execution-kernel.mjs +3 -5
- package/dist/internal/transaction-execution-kernel.mjs.map +1 -1
- package/dist/internal/transaction-kernel.d.mts +49 -2
- package/package.json +1 -1
- package/src/DrizzleLibsql.ts +10 -54
- package/src/drizzle/model.ts +8 -10
- package/src/drizzle/standalone-guard.ts +4 -9
- package/src/drizzle/transaction-mysql.ts +2 -0
- package/src/index.ts +1 -0
- package/src/internal/oauth-app.ts +4 -5
- package/src/internal/oauth-server.ts +89 -0
- package/src/internal/passkeys.ts +2 -6
- package/src/internal/persistence.ts +3 -5
- package/src/internal/sql-table.ts +17 -2
- package/src/internal/standalone.ts +30 -0
- 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
|