@yielded/auth-persistence-drizzle 0.1.0-beta.1 → 0.1.0-beta.12
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/dist/D1.d.mts +27 -22
- package/dist/D1.mjs +10 -4
- package/dist/D1.mjs.map +1 -1
- package/dist/Libsql.d.mts +66 -61
- package/dist/Libsql.mjs +20 -15
- package/dist/Libsql.mjs.map +1 -1
- package/dist/Mysql2.d.mts +58 -46
- package/dist/Mysql2.mjs +13 -6
- package/dist/Mysql2.mjs.map +1 -1
- package/dist/Pglite.d.mts +43 -32
- package/dist/Pglite.mjs +12 -7
- package/dist/Pglite.mjs.map +1 -1
- package/dist/Postgres.d.mts +59 -48
- package/dist/Postgres.mjs +12 -7
- package/dist/Postgres.mjs.map +1 -1
- package/dist/SqliteBun.d.mts +58 -53
- package/dist/SqliteBun.mjs +20 -14
- package/dist/SqliteBun.mjs.map +1 -1
- package/dist/SqliteDo.d.mts +66 -60
- package/dist/SqliteDo.mjs +26 -14
- package/dist/SqliteDo.mjs.map +1 -1
- package/dist/SqliteNode.d.mts +58 -53
- package/dist/SqliteNode.mjs +20 -14
- package/dist/SqliteNode.mjs.map +1 -1
- package/dist/SqliteWasm.d.mts +66 -61
- package/dist/SqliteWasm.mjs +20 -14
- package/dist/SqliteWasm.mjs.map +1 -1
- package/dist/drizzle/d1-database.d.mts +11 -0
- package/dist/drizzle/d1-database.mjs +8 -0
- package/dist/drizzle/d1-database.mjs.map +1 -0
- package/dist/drizzle/d1-emails.d.mts +8 -7
- package/dist/drizzle/d1-emails.mjs +7 -4
- package/dist/drizzle/d1-emails.mjs.map +1 -1
- package/dist/drizzle/d1-identity.mjs +12 -9
- package/dist/drizzle/d1-identity.mjs.map +1 -1
- package/dist/drizzle/d1-oauth.d.mts +14 -13
- package/dist/drizzle/d1-oauth.mjs +7 -4
- package/dist/drizzle/d1-oauth.mjs.map +1 -1
- package/dist/drizzle/d1-passkey.d.mts +3 -14
- package/dist/drizzle/d1-passkey.mjs +2 -1
- package/dist/drizzle/d1-passkey.mjs.map +1 -1
- package/dist/drizzle/d1-password-prepared.d.mts +4 -3
- package/dist/drizzle/d1-password-prepared.mjs +3 -1
- package/dist/drizzle/d1-password-prepared.mjs.map +1 -1
- package/dist/drizzle/d1-passwords.d.mts +6 -5
- package/dist/drizzle/d1-passwords.mjs +5 -2
- package/dist/drizzle/d1-passwords.mjs.map +1 -1
- package/dist/drizzle/d1-phone.d.mts +3 -4
- package/dist/drizzle/d1-phone.mjs +2 -1
- package/dist/drizzle/d1-phone.mjs.map +1 -1
- package/dist/drizzle/d1-planning.d.mts +1 -1
- package/dist/drizzle/d1-proofs.d.mts +4 -3
- package/dist/drizzle/d1-proofs.mjs +3 -1
- package/dist/drizzle/d1-proofs.mjs.map +1 -1
- package/dist/drizzle/d1-sessions.d.mts +11 -10
- package/dist/drizzle/d1-sessions.mjs +15 -9
- package/dist/drizzle/d1-sessions.mjs.map +1 -1
- package/dist/drizzle/d1-totp.d.mts +3 -4
- package/dist/drizzle/d1-totp.mjs +2 -1
- package/dist/drizzle/d1-totp.mjs.map +1 -1
- package/dist/drizzle/email-registration.mjs +2 -1
- package/dist/drizzle/email-registration.mjs.map +1 -1
- package/dist/drizzle/email-target.d.mts +7 -6
- package/dist/drizzle/email-target.mjs +10 -10
- package/dist/drizzle/email-target.mjs.map +1 -1
- package/dist/drizzle/mysql-database.d.mts +8 -0
- package/dist/drizzle/mysql-database.mjs +8 -0
- package/dist/drizzle/mysql-database.mjs.map +1 -0
- package/dist/drizzle/mysql-emails.d.mts +7 -6
- package/dist/drizzle/mysql-emails.mjs +12 -8
- package/dist/drizzle/mysql-emails.mjs.map +1 -1
- package/dist/drizzle/mysql-identity.mjs +12 -9
- package/dist/drizzle/mysql-identity.mjs.map +1 -1
- package/dist/drizzle/mysql-password-prepared.d.mts +3 -2
- package/dist/drizzle/mysql-password-prepared.mjs +6 -2
- package/dist/drizzle/mysql-password-prepared.mjs.map +1 -1
- package/dist/drizzle/mysql-passwords.d.mts +6 -4
- package/dist/drizzle/mysql-passwords.mjs +11 -7
- package/dist/drizzle/mysql-passwords.mjs.map +1 -1
- package/dist/drizzle/mysql-proofs.d.mts +3 -2
- package/dist/drizzle/mysql-proofs.mjs +8 -4
- package/dist/drizzle/mysql-proofs.mjs.map +1 -1
- package/dist/drizzle/mysql-sessions.d.mts +11 -10
- package/dist/drizzle/mysql-sessions.mjs +16 -12
- package/dist/drizzle/mysql-sessions.mjs.map +1 -1
- package/dist/drizzle/native-database.mjs +10 -0
- package/dist/drizzle/native-database.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-drivers.mjs +7 -5
- package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -1
- package/dist/drizzle/oauth-connected-target.d.mts +6 -7
- package/dist/drizzle/oauth-connected-target.mjs +4 -5
- package/dist/drizzle/oauth-connected-target.mjs.map +1 -1
- package/dist/drizzle/oauth-drivers.mjs +8 -6
- package/dist/drizzle/oauth-drivers.mjs.map +1 -1
- package/dist/drizzle/oauth-target.d.mts +12 -11
- package/dist/drizzle/oauth-target.mjs +13 -12
- package/dist/drizzle/oauth-target.mjs.map +1 -1
- package/dist/drizzle/passkey-drivers.mjs +8 -6
- package/dist/drizzle/passkey-drivers.mjs.map +1 -1
- package/dist/drizzle/passkey-write-drivers.mjs +5 -3
- package/dist/drizzle/passkey-write-drivers.mjs.map +1 -1
- package/dist/drizzle/passkey-write-target.d.mts +1 -1
- package/dist/drizzle/password-prepared-sql.mjs +2 -1
- package/dist/drizzle/password-prepared-sql.mjs.map +1 -1
- package/dist/drizzle/password-prepared-target.d.mts +3 -2
- package/dist/drizzle/password-prepared-target.mjs +4 -3
- package/dist/drizzle/password-prepared-target.mjs.map +1 -1
- package/dist/drizzle/password-registration.mjs +2 -1
- package/dist/drizzle/password-registration.mjs.map +1 -1
- package/dist/drizzle/password-target.d.mts +5 -4
- package/dist/drizzle/password-target.mjs +8 -8
- package/dist/drizzle/password-target.mjs.map +1 -1
- package/dist/drizzle/pg-database.d.mts +9 -0
- package/dist/drizzle/pg-database.mjs +8 -0
- package/dist/drizzle/pg-database.mjs.map +1 -0
- package/dist/drizzle/pg-emails.d.mts +7 -6
- package/dist/drizzle/pg-emails.mjs +12 -8
- package/dist/drizzle/pg-emails.mjs.map +1 -1
- package/dist/drizzle/pg-identity.mjs +12 -9
- package/dist/drizzle/pg-identity.mjs.map +1 -1
- package/dist/drizzle/pg-password-prepared.d.mts +3 -2
- package/dist/drizzle/pg-password-prepared.mjs +6 -2
- package/dist/drizzle/pg-password-prepared.mjs.map +1 -1
- package/dist/drizzle/pg-passwords.d.mts +6 -4
- package/dist/drizzle/pg-passwords.mjs +11 -7
- package/dist/drizzle/pg-passwords.mjs.map +1 -1
- package/dist/drizzle/pg-proofs.d.mts +3 -2
- package/dist/drizzle/pg-proofs.mjs +8 -4
- package/dist/drizzle/pg-proofs.mjs.map +1 -1
- package/dist/drizzle/pg-sessions.d.mts +11 -10
- package/dist/drizzle/pg-sessions.mjs +16 -12
- package/dist/drizzle/pg-sessions.mjs.map +1 -1
- package/dist/drizzle/phone-target.d.mts +4 -3
- package/dist/drizzle/phone-target.mjs +12 -11
- package/dist/drizzle/phone-target.mjs.map +1 -1
- package/dist/drizzle/proof-target.d.mts +3 -2
- package/dist/drizzle/proof-target.mjs +5 -5
- package/dist/drizzle/proof-target.mjs.map +1 -1
- package/dist/drizzle/session-sql.d.mts +1 -0
- package/dist/drizzle/session-target.d.mts +10 -8
- package/dist/drizzle/session-target.mjs +11 -11
- package/dist/drizzle/session-target.mjs.map +1 -1
- package/dist/drizzle/sqlite-emails.mjs +9 -5
- package/dist/drizzle/sqlite-emails.mjs.map +1 -1
- package/dist/drizzle/sqlite-identity.mjs +14 -11
- package/dist/drizzle/sqlite-identity.mjs.map +1 -1
- package/dist/drizzle/sqlite-password-prepared.mjs +7 -3
- package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -1
- package/dist/drizzle/sqlite-passwords.mjs +10 -6
- package/dist/drizzle/sqlite-passwords.mjs.map +1 -1
- package/dist/drizzle/sqlite-proofs.mjs +7 -3
- package/dist/drizzle/sqlite-proofs.mjs.map +1 -1
- package/dist/drizzle/sqlite-sessions.mjs +16 -12
- package/dist/drizzle/sqlite-sessions.mjs.map +1 -1
- package/dist/drizzle/standalone-guard.d.mts +2 -0
- package/dist/drizzle/standalone-guard.mjs +8 -4
- package/dist/drizzle/standalone-guard.mjs.map +1 -1
- package/dist/drizzle/totp-target.d.mts +4 -3
- package/dist/drizzle/totp-target.mjs +31 -28
- package/dist/drizzle/totp-target.mjs.map +1 -1
- package/package.json +1 -1
- package/src/D1.ts +37 -10
- package/src/Libsql.ts +45 -17
- package/src/Mysql2.ts +39 -13
- package/src/Pglite.ts +47 -13
- package/src/Postgres.ts +47 -13
- package/src/SqliteBun.ts +58 -30
- package/src/SqliteDo.ts +61 -19
- package/src/SqliteNode.ts +55 -28
- package/src/SqliteWasm.ts +55 -28
- package/src/drizzle/d1-database.ts +10 -0
- package/src/drizzle/d1-emails.ts +84 -84
- package/src/drizzle/d1-identity.ts +17 -20
- package/src/drizzle/d1-oauth.ts +19 -8
- package/src/drizzle/d1-passkey.ts +5 -1
- package/src/drizzle/d1-password-prepared.ts +38 -37
- package/src/drizzle/d1-passwords.ts +74 -76
- package/src/drizzle/d1-phone.ts +5 -1
- package/src/drizzle/d1-proofs.ts +29 -30
- package/src/drizzle/d1-sessions.ts +51 -38
- package/src/drizzle/d1-totp.ts +5 -1
- package/src/drizzle/email-registration.ts +6 -2
- package/src/drizzle/email-target.ts +17 -19
- package/src/drizzle/mysql-database.ts +8 -0
- package/src/drizzle/mysql-emails.ts +28 -16
- package/src/drizzle/mysql-identity.ts +18 -21
- package/src/drizzle/mysql-password-prepared.ts +10 -8
- package/src/drizzle/mysql-passwords.ts +21 -9
- package/src/drizzle/mysql-proofs.ts +16 -5
- package/src/drizzle/mysql-sessions.ts +40 -17
- package/src/drizzle/native-database.ts +22 -0
- package/src/drizzle/oauth-connected-drivers.ts +18 -6
- package/src/drizzle/oauth-connected-target.ts +16 -17
- package/src/drizzle/oauth-drivers.ts +26 -10
- package/src/drizzle/oauth-target.ts +30 -42
- package/src/drizzle/passkey-drivers.ts +21 -13
- package/src/drizzle/passkey-write-drivers.ts +11 -6
- package/src/drizzle/password-prepared-sql.ts +2 -4
- package/src/drizzle/password-prepared-target.ts +9 -6
- package/src/drizzle/password-registration.ts +7 -8
- package/src/drizzle/password-target.ts +19 -18
- package/src/drizzle/pg-database.ts +10 -0
- package/src/drizzle/pg-emails.ts +28 -16
- package/src/drizzle/pg-identity.ts +18 -22
- package/src/drizzle/pg-password-prepared.ts +10 -8
- package/src/drizzle/pg-passwords.ts +21 -9
- package/src/drizzle/pg-proofs.ts +16 -5
- package/src/drizzle/pg-sessions.ts +40 -17
- package/src/drizzle/phone-target.ts +22 -17
- package/src/drizzle/proof-target.ts +9 -12
- package/src/drizzle/session-target.ts +32 -50
- package/src/drizzle/sqlite-emails.ts +30 -13
- package/src/drizzle/sqlite-identity.ts +22 -42
- package/src/drizzle/sqlite-password-prepared.ts +23 -9
- package/src/drizzle/sqlite-passwords.ts +29 -15
- package/src/drizzle/sqlite-proofs.ts +28 -5
- package/src/drizzle/sqlite-sessions.ts +49 -23
- package/src/drizzle/standalone-guard.ts +18 -6
- package/src/drizzle/totp-target.ts +61 -60
- package/dist/drizzle/d1-identity.d.mts +0 -30
- package/dist/drizzle/mysql-identity.d.mts +0 -21
- package/dist/drizzle/pg-identity.d.mts +0 -22
package/src/Libsql.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { requireStandalone as standalone } from "@yielded/auth-persistence/Adapter";
|
|
1
|
+
import { NativeDatabase, requireStandalone as standalone } from "@yielded/auth-persistence/Adapter";
|
|
2
2
|
import { EmailUnavailable } from "@yielded/auth/Email";
|
|
3
3
|
import { PasswordUnavailable } from "@yielded/auth/Password";
|
|
4
4
|
import { ProofUnavailable } from "@yielded/auth/Proofs";
|
|
@@ -6,7 +6,17 @@ import { SessionUnavailable } from "@yielded/auth/Sessions";
|
|
|
6
6
|
import type { AnyRelations } from "drizzle-orm";
|
|
7
7
|
import { type EffectLibsqlDatabase, makeWithDefaults } from "drizzle-orm/effect-libsql";
|
|
8
8
|
import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
|
|
9
|
-
import { Effect } from "effect";
|
|
9
|
+
import { Context, Effect, Layer } from "effect";
|
|
10
|
+
|
|
11
|
+
import { nativeDatabase } from "./drizzle/native-database";
|
|
12
|
+
|
|
13
|
+
/** The application-owned Drizzle database used to construct persistence services. */
|
|
14
|
+
export class Database extends Context.Service<Database, EffectLibsqlDatabase<AnyRelations>>()(
|
|
15
|
+
"effect-auth/persistence-drizzle/Libsql/Database",
|
|
16
|
+
) {}
|
|
17
|
+
|
|
18
|
+
/** Construct Drizzle from the driver's SQL-client Layer. */
|
|
19
|
+
export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
|
|
10
20
|
|
|
11
21
|
import type {
|
|
12
22
|
ExternalIdentityTables,
|
|
@@ -28,19 +38,23 @@ const requireStandaloneProof = standalone(() => ProofUnavailable.make({}));
|
|
|
28
38
|
const requireStandalonePassword = standalone(() => PasswordUnavailable.make({}));
|
|
29
39
|
const requireStandaloneEmail = standalone(() => EmailUnavailable.make({}));
|
|
30
40
|
|
|
31
|
-
const sessionTarget = makeSqliteSessionTarget<EffectLibsqlDatabase<AnyRelations>>(
|
|
41
|
+
const sessionTarget = makeSqliteSessionTarget<Database, EffectLibsqlDatabase<AnyRelations>>(
|
|
42
|
+
Database,
|
|
32
43
|
sqliteSessionConfiguration("interactive", requireStandaloneSession),
|
|
33
44
|
);
|
|
34
45
|
|
|
35
|
-
const proofTarget = makeSqliteProofTarget<EffectLibsqlDatabase<AnyRelations>>(
|
|
46
|
+
const proofTarget = makeSqliteProofTarget<Database, EffectLibsqlDatabase<AnyRelations>>(
|
|
47
|
+
Database,
|
|
36
48
|
sqliteProofConfiguration("interactive", requireStandaloneProof),
|
|
37
49
|
);
|
|
38
50
|
|
|
39
|
-
const passwordTarget = makeSqlitePasswordTarget<EffectLibsqlDatabase<AnyRelations>>(
|
|
51
|
+
const passwordTarget = makeSqlitePasswordTarget<Database, EffectLibsqlDatabase<AnyRelations>>(
|
|
52
|
+
Database,
|
|
40
53
|
sqlitePasswordConfiguration("interactive", requireStandalonePassword, requireStandaloneProof),
|
|
41
54
|
);
|
|
42
55
|
|
|
43
|
-
const emailTarget = makeSqliteEmailTarget<EffectLibsqlDatabase<AnyRelations>>(
|
|
56
|
+
const emailTarget = makeSqliteEmailTarget<Database, EffectLibsqlDatabase<AnyRelations>>(
|
|
57
|
+
Database,
|
|
44
58
|
sqliteEmailConfiguration("interactive", requireStandaloneEmail, requireStandaloneProof),
|
|
45
59
|
);
|
|
46
60
|
|
|
@@ -83,9 +97,11 @@ export const makeIdentityServices = <
|
|
|
83
97
|
Request extends AnySQLiteTable,
|
|
84
98
|
NativeId,
|
|
85
99
|
>(
|
|
86
|
-
database: EffectLibsqlDatabase<AnyRelations>,
|
|
87
100
|
mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
|
|
88
|
-
) =>
|
|
101
|
+
) =>
|
|
102
|
+
makeSqliteIdentityServices(mapping, "interactive").pipe(
|
|
103
|
+
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
|
|
104
|
+
);
|
|
89
105
|
|
|
90
106
|
export const makeSubjectProvisioningServices = <
|
|
91
107
|
Subject extends AnySQLiteTable,
|
|
@@ -93,22 +109,30 @@ export const makeSubjectProvisioningServices = <
|
|
|
93
109
|
Request extends AnySQLiteTable,
|
|
94
110
|
NativeId,
|
|
95
111
|
>(
|
|
96
|
-
database: EffectLibsqlDatabase<AnyRelations>,
|
|
97
112
|
mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
|
|
98
|
-
) =>
|
|
113
|
+
) =>
|
|
114
|
+
makeSqliteSubjectProvisioningServices(mapping, "interactive").pipe(
|
|
115
|
+
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
|
|
116
|
+
);
|
|
99
117
|
|
|
100
118
|
export const makeExternalIdentityServices = <
|
|
101
119
|
Subject extends AnySQLiteTable,
|
|
102
120
|
External extends AnySQLiteTable,
|
|
103
121
|
NativeId,
|
|
104
122
|
>(
|
|
105
|
-
database: EffectLibsqlDatabase<AnyRelations>,
|
|
106
123
|
mapping: ExternalIdentityTables<Subject, External, NativeId>,
|
|
107
|
-
) =>
|
|
124
|
+
) =>
|
|
125
|
+
makeSqliteExternalIdentityServices(mapping).pipe(
|
|
126
|
+
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
|
|
127
|
+
);
|
|
108
128
|
|
|
109
129
|
import { makeSqlitePasswordPreparedTarget } from "./drizzle/sqlite-password-prepared";
|
|
110
130
|
|
|
111
|
-
const passwordPreparedTarget = makeSqlitePasswordPreparedTarget<
|
|
131
|
+
const passwordPreparedTarget = makeSqlitePasswordPreparedTarget<
|
|
132
|
+
Database,
|
|
133
|
+
EffectLibsqlDatabase<AnyRelations>
|
|
134
|
+
>(
|
|
135
|
+
Database,
|
|
112
136
|
sqlitePasswordConfiguration("interactive", requireStandalonePassword, requireStandaloneProof),
|
|
113
137
|
);
|
|
114
138
|
|
|
@@ -121,9 +145,10 @@ import { makeOAuthTarget } from "./drizzle/oauth-drivers";
|
|
|
121
145
|
import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
|
|
122
146
|
|
|
123
147
|
const oauthTarget = makeOAuthTarget<
|
|
148
|
+
Database,
|
|
124
149
|
EffectLibsqlDatabase<AnyRelations>,
|
|
125
150
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
126
|
-
>({
|
|
151
|
+
>(Database, {
|
|
127
152
|
mode: "interactive",
|
|
128
153
|
dialect: "sqlite",
|
|
129
154
|
locking: false,
|
|
@@ -149,9 +174,10 @@ import { makePasskeyTarget } from "./drizzle/passkey-drivers";
|
|
|
149
174
|
import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
|
|
150
175
|
|
|
151
176
|
const passkeyTarget = makePasskeyTarget<
|
|
177
|
+
Database,
|
|
152
178
|
EffectLibsqlDatabase<AnyRelations>,
|
|
153
179
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
154
|
-
>({
|
|
180
|
+
>(Database, {
|
|
155
181
|
mode: "interactive",
|
|
156
182
|
dialect: "sqlite",
|
|
157
183
|
locking: false,
|
|
@@ -174,9 +200,10 @@ export const {
|
|
|
174
200
|
import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
|
|
175
201
|
|
|
176
202
|
const totpTarget = makeTotpTarget<
|
|
203
|
+
Database,
|
|
177
204
|
EffectLibsqlDatabase<AnyRelations>,
|
|
178
205
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
179
|
-
>({
|
|
206
|
+
>(Database, {
|
|
180
207
|
mode: "interactive",
|
|
181
208
|
dialect: "sqlite",
|
|
182
209
|
locking: false,
|
|
@@ -188,9 +215,10 @@ export const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTa
|
|
|
188
215
|
import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
|
|
189
216
|
|
|
190
217
|
const phoneTarget = makePhoneTarget<
|
|
218
|
+
Database,
|
|
191
219
|
EffectLibsqlDatabase<AnyRelations>,
|
|
192
220
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
193
|
-
>({
|
|
221
|
+
>(Database, {
|
|
194
222
|
mode: "interactive",
|
|
195
223
|
dialect: "sqlite",
|
|
196
224
|
locking: false,
|
package/src/Mysql2.ts
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import type { AnyRelations } from "drizzle-orm";
|
|
2
|
-
import type
|
|
2
|
+
import { type EffectMysql2Database, makeWithDefaults } from "drizzle-orm/effect-mysql2";
|
|
3
3
|
import type { AnyMySqlTable } from "drizzle-orm/mysql-core";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { Layer } from "effect";
|
|
5
|
+
|
|
6
|
+
import type {
|
|
7
|
+
IdentityTables,
|
|
8
|
+
SubjectProvisioningTables,
|
|
9
|
+
ExternalIdentityTables,
|
|
10
|
+
} from "./drizzle/model";
|
|
11
|
+
import { Database } from "./drizzle/mysql-database";
|
|
6
12
|
import {
|
|
7
13
|
makeMysqlExternalIdentityServices,
|
|
8
14
|
makeMysqlIdentityServices,
|
|
9
15
|
makeMysqlSubjectProvisioningServices,
|
|
10
16
|
} from "./drizzle/mysql-identity";
|
|
11
17
|
|
|
18
|
+
export { Database } from "./drizzle/mysql-database";
|
|
19
|
+
|
|
12
20
|
export {
|
|
13
21
|
coordinateMysqlAuthenticationAuthority as coordinateAuthenticationAuthority,
|
|
14
22
|
coordinateMysqlPendingAuthentication as coordinatePendingAuthentication,
|
|
@@ -40,10 +48,22 @@ export {
|
|
|
40
48
|
makeMysqlEmailSignInServices as makeEmailSignInServices,
|
|
41
49
|
} from "./drizzle/mysql-emails";
|
|
42
50
|
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
export const makeSubjectProvisioningServices = <
|
|
52
|
+
Subject extends AnyMySqlTable,
|
|
53
|
+
Identifier extends AnyMySqlTable,
|
|
54
|
+
Request extends AnyMySqlTable,
|
|
55
|
+
NativeId,
|
|
56
|
+
>(
|
|
57
|
+
mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
|
|
58
|
+
) => makeMysqlSubjectProvisioningServices(mapping);
|
|
59
|
+
|
|
60
|
+
export const makeExternalIdentityServices = <
|
|
61
|
+
Subject extends AnyMySqlTable,
|
|
62
|
+
External extends AnyMySqlTable,
|
|
63
|
+
NativeId,
|
|
64
|
+
>(
|
|
65
|
+
mapping: ExternalIdentityTables<Subject, External, NativeId>,
|
|
66
|
+
) => makeMysqlExternalIdentityServices(mapping);
|
|
47
67
|
|
|
48
68
|
export const commitMode = "interactive" as const;
|
|
49
69
|
|
|
@@ -54,9 +74,8 @@ export const makeIdentityServices = <
|
|
|
54
74
|
Request extends AnyMySqlTable,
|
|
55
75
|
NativeId,
|
|
56
76
|
>(
|
|
57
|
-
database: EffectMysql2Database<AnyRelations>,
|
|
58
77
|
mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
|
|
59
|
-
) => makeMysqlIdentityServices(
|
|
78
|
+
) => makeMysqlIdentityServices(mapping);
|
|
60
79
|
|
|
61
80
|
export {
|
|
62
81
|
makeMysqlSessionStepUpServices as makeSessionStepUpServices,
|
|
@@ -75,9 +94,10 @@ import { mysqlOAuthTransaction } from "./drizzle/oauth-mysql";
|
|
|
75
94
|
import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
|
|
76
95
|
|
|
77
96
|
const oauthTarget = makeOAuthTarget<
|
|
97
|
+
Database,
|
|
78
98
|
EffectMysql2Database<AnyRelations>,
|
|
79
99
|
AnyMySqlTable<{ dialect: "mysql" }>
|
|
80
|
-
>({
|
|
100
|
+
>(Database, {
|
|
81
101
|
mode: "interactive",
|
|
82
102
|
dialect: "mysql",
|
|
83
103
|
locking: true,
|
|
@@ -106,9 +126,10 @@ import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
|
|
|
106
126
|
import { mysqlTransaction } from "./drizzle/transaction-mysql";
|
|
107
127
|
|
|
108
128
|
const passkeyTarget = makePasskeyTarget<
|
|
129
|
+
Database,
|
|
109
130
|
EffectMysql2Database<AnyRelations>,
|
|
110
131
|
AnyMySqlTable<{ dialect: "mysql" }>
|
|
111
|
-
>({
|
|
132
|
+
>(Database, {
|
|
112
133
|
mode: "interactive",
|
|
113
134
|
dialect: "mysql",
|
|
114
135
|
locking: true,
|
|
@@ -133,9 +154,10 @@ import { unavailable as totpUnavailable } from "./drizzle/totp-state";
|
|
|
133
154
|
import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
|
|
134
155
|
|
|
135
156
|
const totpTarget = makeTotpTarget<
|
|
157
|
+
Database,
|
|
136
158
|
EffectMysql2Database<AnyRelations>,
|
|
137
159
|
AnyMySqlTable<{ dialect: "mysql" }>
|
|
138
|
-
>({
|
|
160
|
+
>(Database, {
|
|
139
161
|
mode: "interactive",
|
|
140
162
|
dialect: "mysql",
|
|
141
163
|
locking: true,
|
|
@@ -149,9 +171,10 @@ import { unavailable as phoneUnavailable } from "./drizzle/phone-state";
|
|
|
149
171
|
import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
|
|
150
172
|
|
|
151
173
|
const phoneTarget = makePhoneTarget<
|
|
174
|
+
Database,
|
|
152
175
|
EffectMysql2Database<AnyRelations>,
|
|
153
176
|
AnyMySqlTable<{ dialect: "mysql" }>
|
|
154
|
-
>({
|
|
177
|
+
>(Database, {
|
|
155
178
|
mode: "interactive",
|
|
156
179
|
dialect: "mysql",
|
|
157
180
|
locking: true,
|
|
@@ -160,3 +183,6 @@ const phoneTarget = makePhoneTarget<
|
|
|
160
183
|
});
|
|
161
184
|
|
|
162
185
|
export const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;
|
|
186
|
+
|
|
187
|
+
/** Construct Drizzle from the driver's SQL-client Layer. */
|
|
188
|
+
export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
|
package/src/Pglite.ts
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import type { AnyRelations } from "drizzle-orm";
|
|
2
2
|
import { type EffectPgDatabase, makeWithDefaults } from "drizzle-orm/effect-pglite";
|
|
3
3
|
import type { AnyPgTable } from "drizzle-orm/pg-core";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
-
|
|
6
|
-
import type {
|
|
4
|
+
import { Effect, Layer } from "effect";
|
|
5
|
+
|
|
6
|
+
import type {
|
|
7
|
+
IdentityTables,
|
|
8
|
+
SubjectProvisioningTables,
|
|
9
|
+
ExternalIdentityTables,
|
|
10
|
+
} from "./drizzle/model";
|
|
11
|
+
import { Database } from "./drizzle/pg-database";
|
|
7
12
|
import {
|
|
8
13
|
makePgExternalIdentityServices,
|
|
9
14
|
makePgIdentityServices,
|
|
10
15
|
makePgSubjectProvisioningServices,
|
|
11
16
|
} from "./drizzle/pg-identity";
|
|
12
17
|
|
|
18
|
+
export { Database } from "./drizzle/pg-database";
|
|
19
|
+
|
|
13
20
|
export {
|
|
14
21
|
coordinatePgAuthenticationAuthority as coordinateAuthenticationAuthority,
|
|
15
22
|
coordinatePgPendingAuthentication as coordinatePendingAuthentication,
|
|
@@ -41,10 +48,22 @@ export {
|
|
|
41
48
|
makePgEmailSignInServices as makeEmailSignInServices,
|
|
42
49
|
} from "./drizzle/pg-emails";
|
|
43
50
|
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
export const makeSubjectProvisioningServices = <
|
|
52
|
+
Subject extends AnyPgTable,
|
|
53
|
+
Identifier extends AnyPgTable,
|
|
54
|
+
Request extends AnyPgTable,
|
|
55
|
+
NativeId,
|
|
56
|
+
>(
|
|
57
|
+
mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
|
|
58
|
+
) => makePgSubjectProvisioningServices(mapping);
|
|
59
|
+
|
|
60
|
+
export const makeExternalIdentityServices = <
|
|
61
|
+
Subject extends AnyPgTable,
|
|
62
|
+
External extends AnyPgTable,
|
|
63
|
+
NativeId,
|
|
64
|
+
>(
|
|
65
|
+
mapping: ExternalIdentityTables<Subject, External, NativeId>,
|
|
66
|
+
) => makePgExternalIdentityServices(mapping);
|
|
48
67
|
|
|
49
68
|
export const commitMode = "interactive" as const;
|
|
50
69
|
|
|
@@ -55,9 +74,8 @@ export const makeIdentityServices = <
|
|
|
55
74
|
Request extends AnyPgTable,
|
|
56
75
|
NativeId,
|
|
57
76
|
>(
|
|
58
|
-
database: EffectPgDatabase<AnyRelations>,
|
|
59
77
|
mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
|
|
60
|
-
) => makePgIdentityServices(
|
|
78
|
+
) => makePgIdentityServices(mapping);
|
|
61
79
|
|
|
62
80
|
export {
|
|
63
81
|
makePgSessionStepUpServices as makeSessionStepUpServices,
|
|
@@ -74,7 +92,11 @@ export { passwordPreparedPersistenceLayer } from "./drizzle/password-prepared-ta
|
|
|
74
92
|
import { makeOAuthTarget } from "./drizzle/oauth-drivers";
|
|
75
93
|
import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
|
|
76
94
|
|
|
77
|
-
const oauthTarget = makeOAuthTarget<
|
|
95
|
+
const oauthTarget = makeOAuthTarget<
|
|
96
|
+
Database,
|
|
97
|
+
EffectPgDatabase<AnyRelations>,
|
|
98
|
+
AnyPgTable<{ dialect: "pg" }>
|
|
99
|
+
>(Database, {
|
|
78
100
|
mode: "interactive",
|
|
79
101
|
dialect: "pg",
|
|
80
102
|
locking: true,
|
|
@@ -100,9 +122,10 @@ import { makePasskeyTarget } from "./drizzle/passkey-drivers";
|
|
|
100
122
|
import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
|
|
101
123
|
|
|
102
124
|
const passkeyTarget = makePasskeyTarget<
|
|
125
|
+
Database,
|
|
103
126
|
EffectPgDatabase<AnyRelations>,
|
|
104
127
|
AnyPgTable<{ dialect: "pg" }>
|
|
105
|
-
>({
|
|
128
|
+
>(Database, {
|
|
106
129
|
mode: "interactive",
|
|
107
130
|
dialect: "pg",
|
|
108
131
|
locking: true,
|
|
@@ -124,7 +147,11 @@ export const {
|
|
|
124
147
|
|
|
125
148
|
import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
|
|
126
149
|
|
|
127
|
-
const totpTarget = makeTotpTarget<
|
|
150
|
+
const totpTarget = makeTotpTarget<
|
|
151
|
+
Database,
|
|
152
|
+
EffectPgDatabase<AnyRelations>,
|
|
153
|
+
AnyPgTable<{ dialect: "pg" }>
|
|
154
|
+
>(Database, {
|
|
128
155
|
mode: "interactive",
|
|
129
156
|
dialect: "pg",
|
|
130
157
|
locking: true,
|
|
@@ -135,7 +162,11 @@ export const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTa
|
|
|
135
162
|
|
|
136
163
|
import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
|
|
137
164
|
|
|
138
|
-
const phoneTarget = makePhoneTarget<
|
|
165
|
+
const phoneTarget = makePhoneTarget<
|
|
166
|
+
Database,
|
|
167
|
+
EffectPgDatabase<AnyRelations>,
|
|
168
|
+
AnyPgTable<{ dialect: "pg" }>
|
|
169
|
+
>(Database, {
|
|
139
170
|
mode: "interactive",
|
|
140
171
|
dialect: "pg",
|
|
141
172
|
locking: true,
|
|
@@ -156,3 +187,6 @@ export const AuthPersistence = {
|
|
|
156
187
|
),
|
|
157
188
|
),
|
|
158
189
|
};
|
|
190
|
+
|
|
191
|
+
/** Construct Drizzle from the driver's SQL-client Layer. */
|
|
192
|
+
export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
|
package/src/Postgres.ts
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import type { AnyRelations } from "drizzle-orm";
|
|
2
2
|
import { type EffectPgDatabase, makeWithDefaults } from "drizzle-orm/effect-postgres";
|
|
3
3
|
import type { AnyPgTable } from "drizzle-orm/pg-core";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
-
|
|
6
|
-
import type {
|
|
4
|
+
import { Effect, Layer } from "effect";
|
|
5
|
+
|
|
6
|
+
import type {
|
|
7
|
+
IdentityTables,
|
|
8
|
+
SubjectProvisioningTables,
|
|
9
|
+
ExternalIdentityTables,
|
|
10
|
+
} from "./drizzle/model";
|
|
11
|
+
import { Database } from "./drizzle/pg-database";
|
|
7
12
|
import {
|
|
8
13
|
makePgExternalIdentityServices,
|
|
9
14
|
makePgIdentityServices,
|
|
10
15
|
makePgSubjectProvisioningServices,
|
|
11
16
|
} from "./drizzle/pg-identity";
|
|
12
17
|
|
|
18
|
+
export { Database } from "./drizzle/pg-database";
|
|
19
|
+
|
|
13
20
|
export {
|
|
14
21
|
coordinatePgAuthenticationAuthority as coordinateAuthenticationAuthority,
|
|
15
22
|
coordinatePgPendingAuthentication as coordinatePendingAuthentication,
|
|
@@ -41,10 +48,22 @@ export {
|
|
|
41
48
|
makePgEmailSignInServices as makeEmailSignInServices,
|
|
42
49
|
} from "./drizzle/pg-emails";
|
|
43
50
|
|
|
44
|
-
export
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
export const makeSubjectProvisioningServices = <
|
|
52
|
+
Subject extends AnyPgTable,
|
|
53
|
+
Identifier extends AnyPgTable,
|
|
54
|
+
Request extends AnyPgTable,
|
|
55
|
+
NativeId,
|
|
56
|
+
>(
|
|
57
|
+
mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
|
|
58
|
+
) => makePgSubjectProvisioningServices(mapping);
|
|
59
|
+
|
|
60
|
+
export const makeExternalIdentityServices = <
|
|
61
|
+
Subject extends AnyPgTable,
|
|
62
|
+
External extends AnyPgTable,
|
|
63
|
+
NativeId,
|
|
64
|
+
>(
|
|
65
|
+
mapping: ExternalIdentityTables<Subject, External, NativeId>,
|
|
66
|
+
) => makePgExternalIdentityServices(mapping);
|
|
48
67
|
|
|
49
68
|
export const commitMode = "interactive" as const;
|
|
50
69
|
|
|
@@ -55,9 +74,8 @@ export const makeIdentityServices = <
|
|
|
55
74
|
Request extends AnyPgTable,
|
|
56
75
|
NativeId,
|
|
57
76
|
>(
|
|
58
|
-
database: EffectPgDatabase<AnyRelations>,
|
|
59
77
|
mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
|
|
60
|
-
) => makePgIdentityServices(
|
|
78
|
+
) => makePgIdentityServices(mapping);
|
|
61
79
|
|
|
62
80
|
export {
|
|
63
81
|
makePgSessionStepUpServices as makeSessionStepUpServices,
|
|
@@ -74,7 +92,11 @@ export { passwordPreparedPersistenceLayer } from "./drizzle/password-prepared-ta
|
|
|
74
92
|
import { makeOAuthTarget } from "./drizzle/oauth-drivers";
|
|
75
93
|
import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
|
|
76
94
|
|
|
77
|
-
const oauthTarget = makeOAuthTarget<
|
|
95
|
+
const oauthTarget = makeOAuthTarget<
|
|
96
|
+
Database,
|
|
97
|
+
EffectPgDatabase<AnyRelations>,
|
|
98
|
+
AnyPgTable<{ dialect: "pg" }>
|
|
99
|
+
>(Database, {
|
|
78
100
|
mode: "interactive",
|
|
79
101
|
dialect: "pg",
|
|
80
102
|
locking: true,
|
|
@@ -100,9 +122,10 @@ import { makePasskeyTarget } from "./drizzle/passkey-drivers";
|
|
|
100
122
|
import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
|
|
101
123
|
|
|
102
124
|
const passkeyTarget = makePasskeyTarget<
|
|
125
|
+
Database,
|
|
103
126
|
EffectPgDatabase<AnyRelations>,
|
|
104
127
|
AnyPgTable<{ dialect: "pg" }>
|
|
105
|
-
>({
|
|
128
|
+
>(Database, {
|
|
106
129
|
mode: "interactive",
|
|
107
130
|
dialect: "pg",
|
|
108
131
|
locking: true,
|
|
@@ -124,7 +147,11 @@ export const {
|
|
|
124
147
|
|
|
125
148
|
import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
|
|
126
149
|
|
|
127
|
-
const totpTarget = makeTotpTarget<
|
|
150
|
+
const totpTarget = makeTotpTarget<
|
|
151
|
+
Database,
|
|
152
|
+
EffectPgDatabase<AnyRelations>,
|
|
153
|
+
AnyPgTable<{ dialect: "pg" }>
|
|
154
|
+
>(Database, {
|
|
128
155
|
mode: "interactive",
|
|
129
156
|
dialect: "pg",
|
|
130
157
|
locking: true,
|
|
@@ -135,7 +162,11 @@ export const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTa
|
|
|
135
162
|
|
|
136
163
|
import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
|
|
137
164
|
|
|
138
|
-
const phoneTarget = makePhoneTarget<
|
|
165
|
+
const phoneTarget = makePhoneTarget<
|
|
166
|
+
Database,
|
|
167
|
+
EffectPgDatabase<AnyRelations>,
|
|
168
|
+
AnyPgTable<{ dialect: "pg" }>
|
|
169
|
+
>(Database, {
|
|
139
170
|
mode: "interactive",
|
|
140
171
|
dialect: "pg",
|
|
141
172
|
locking: true,
|
|
@@ -156,3 +187,6 @@ export const AuthPersistence = {
|
|
|
156
187
|
),
|
|
157
188
|
),
|
|
158
189
|
};
|
|
190
|
+
|
|
191
|
+
/** Construct Drizzle from the driver's SQL-client Layer. */
|
|
192
|
+
export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
|
package/src/SqliteBun.ts
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
|
|
1
2
|
import type { AnyRelations } from "drizzle-orm";
|
|
2
3
|
import { type EffectSQLiteBunDatabase, makeWithDefaults } from "drizzle-orm/effect-sqlite-bun";
|
|
3
4
|
import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
+
import { Context, Effect, Layer } from "effect";
|
|
6
|
+
|
|
7
|
+
import { nativeDatabase } from "./drizzle/native-database";
|
|
8
|
+
|
|
9
|
+
/** The application-owned Drizzle database used to construct persistence services. */
|
|
10
|
+
export class Database extends Context.Service<Database, EffectSQLiteBunDatabase<AnyRelations>>()(
|
|
11
|
+
"effect-auth/persistence-drizzle/SqliteBun/Database",
|
|
12
|
+
) {}
|
|
13
|
+
|
|
14
|
+
/** Construct Drizzle from the driver's SQL-client Layer. */
|
|
15
|
+
export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
|
|
5
16
|
|
|
6
17
|
import { sqlClientEmailStandaloneGuard } from "./drizzle/email-target";
|
|
7
18
|
import type {
|
|
@@ -22,28 +33,34 @@ import { makeSqlitePasswordTarget, sqlitePasswordConfiguration } from "./drizzle
|
|
|
22
33
|
import { makeSqliteProofTarget, sqliteProofConfiguration } from "./drizzle/sqlite-proofs";
|
|
23
34
|
import { makeSqliteSessionTarget, sqliteSessionConfiguration } from "./drizzle/sqlite-sessions";
|
|
24
35
|
|
|
25
|
-
const sessionTarget = makeSqliteSessionTarget<EffectSQLiteBunDatabase<AnyRelations>>(
|
|
26
|
-
|
|
36
|
+
const sessionTarget = makeSqliteSessionTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
|
|
37
|
+
Database,
|
|
38
|
+
(service) => sqliteSessionConfiguration("interactive", sqlClientSessionStandaloneGuard(service)),
|
|
27
39
|
);
|
|
28
40
|
|
|
29
|
-
const proofTarget = makeSqliteProofTarget<EffectSQLiteBunDatabase<AnyRelations>>(
|
|
30
|
-
|
|
41
|
+
const proofTarget = makeSqliteProofTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
|
|
42
|
+
Database,
|
|
43
|
+
(service) => sqliteProofConfiguration("interactive", sqlClientProofStandaloneGuard(service)),
|
|
31
44
|
);
|
|
32
45
|
|
|
33
|
-
const passwordTarget = makeSqlitePasswordTarget<EffectSQLiteBunDatabase<AnyRelations>>(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
const passwordTarget = makeSqlitePasswordTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
|
|
47
|
+
Database,
|
|
48
|
+
(service) =>
|
|
49
|
+
sqlitePasswordConfiguration(
|
|
50
|
+
"interactive",
|
|
51
|
+
sqlClientPasswordStandaloneGuard(service),
|
|
52
|
+
sqlClientProofStandaloneGuard(service),
|
|
53
|
+
),
|
|
39
54
|
);
|
|
40
55
|
|
|
41
|
-
const emailTarget = makeSqliteEmailTarget<EffectSQLiteBunDatabase<AnyRelations>>(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
const emailTarget = makeSqliteEmailTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
|
|
57
|
+
Database,
|
|
58
|
+
(service) =>
|
|
59
|
+
sqliteEmailConfiguration(
|
|
60
|
+
"interactive",
|
|
61
|
+
sqlClientEmailStandaloneGuard(service),
|
|
62
|
+
sqlClientProofStandaloneGuard(service),
|
|
63
|
+
),
|
|
47
64
|
);
|
|
48
65
|
|
|
49
66
|
export const {
|
|
@@ -85,9 +102,11 @@ export const makeIdentityServices = <
|
|
|
85
102
|
Request extends AnySQLiteTable,
|
|
86
103
|
NativeId,
|
|
87
104
|
>(
|
|
88
|
-
database: EffectSQLiteBunDatabase<AnyRelations>,
|
|
89
105
|
mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
|
|
90
|
-
) =>
|
|
106
|
+
) =>
|
|
107
|
+
makeSqliteIdentityServices(mapping, "interactive").pipe(
|
|
108
|
+
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
|
|
109
|
+
);
|
|
91
110
|
|
|
92
111
|
export const makeSubjectProvisioningServices = <
|
|
93
112
|
Subject extends AnySQLiteTable,
|
|
@@ -95,28 +114,33 @@ export const makeSubjectProvisioningServices = <
|
|
|
95
114
|
Request extends AnySQLiteTable,
|
|
96
115
|
NativeId,
|
|
97
116
|
>(
|
|
98
|
-
database: EffectSQLiteBunDatabase<AnyRelations>,
|
|
99
117
|
mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
|
|
100
|
-
) =>
|
|
118
|
+
) =>
|
|
119
|
+
makeSqliteSubjectProvisioningServices(mapping, "interactive").pipe(
|
|
120
|
+
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
|
|
121
|
+
);
|
|
101
122
|
|
|
102
123
|
export const makeExternalIdentityServices = <
|
|
103
124
|
Subject extends AnySQLiteTable,
|
|
104
125
|
External extends AnySQLiteTable,
|
|
105
126
|
NativeId,
|
|
106
127
|
>(
|
|
107
|
-
database: EffectSQLiteBunDatabase<AnyRelations>,
|
|
108
128
|
mapping: ExternalIdentityTables<Subject, External, NativeId>,
|
|
109
|
-
) =>
|
|
129
|
+
) =>
|
|
130
|
+
makeSqliteExternalIdentityServices(mapping).pipe(
|
|
131
|
+
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
|
|
132
|
+
);
|
|
110
133
|
|
|
111
134
|
import { makeSqlitePasswordPreparedTarget } from "./drizzle/sqlite-password-prepared";
|
|
112
135
|
|
|
113
136
|
const passwordPreparedTarget = makeSqlitePasswordPreparedTarget<
|
|
137
|
+
Database,
|
|
114
138
|
EffectSQLiteBunDatabase<AnyRelations>
|
|
115
|
-
>((
|
|
139
|
+
>(Database, (service) =>
|
|
116
140
|
sqlitePasswordConfiguration(
|
|
117
141
|
"interactive",
|
|
118
|
-
sqlClientPasswordStandaloneGuard(
|
|
119
|
-
sqlClientProofStandaloneGuard(
|
|
142
|
+
sqlClientPasswordStandaloneGuard(service),
|
|
143
|
+
sqlClientProofStandaloneGuard(service),
|
|
120
144
|
),
|
|
121
145
|
);
|
|
122
146
|
|
|
@@ -129,9 +153,10 @@ import { makeOAuthTarget } from "./drizzle/oauth-drivers";
|
|
|
129
153
|
import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
|
|
130
154
|
|
|
131
155
|
const oauthTarget = makeOAuthTarget<
|
|
156
|
+
Database,
|
|
132
157
|
EffectSQLiteBunDatabase<AnyRelations>,
|
|
133
158
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
134
|
-
>({
|
|
159
|
+
>(Database, {
|
|
135
160
|
mode: "interactive",
|
|
136
161
|
dialect: "sqlite",
|
|
137
162
|
locking: false,
|
|
@@ -157,9 +182,10 @@ import { makePasskeyTarget } from "./drizzle/passkey-drivers";
|
|
|
157
182
|
import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
|
|
158
183
|
|
|
159
184
|
const passkeyTarget = makePasskeyTarget<
|
|
185
|
+
Database,
|
|
160
186
|
EffectSQLiteBunDatabase<AnyRelations>,
|
|
161
187
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
162
|
-
>({
|
|
188
|
+
>(Database, {
|
|
163
189
|
mode: "interactive",
|
|
164
190
|
dialect: "sqlite",
|
|
165
191
|
locking: false,
|
|
@@ -182,9 +208,10 @@ export const {
|
|
|
182
208
|
import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
|
|
183
209
|
|
|
184
210
|
const totpTarget = makeTotpTarget<
|
|
211
|
+
Database,
|
|
185
212
|
EffectSQLiteBunDatabase<AnyRelations>,
|
|
186
213
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
187
|
-
>({
|
|
214
|
+
>(Database, {
|
|
188
215
|
mode: "interactive",
|
|
189
216
|
dialect: "sqlite",
|
|
190
217
|
locking: false,
|
|
@@ -196,9 +223,10 @@ export const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTa
|
|
|
196
223
|
import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
|
|
197
224
|
|
|
198
225
|
const phoneTarget = makePhoneTarget<
|
|
226
|
+
Database,
|
|
199
227
|
EffectSQLiteBunDatabase<AnyRelations>,
|
|
200
228
|
AnySQLiteTable<{ dialect: "sqlite" }>
|
|
201
|
-
>({
|
|
229
|
+
>(Database, {
|
|
202
230
|
mode: "interactive",
|
|
203
231
|
dialect: "sqlite",
|
|
204
232
|
locking: false,
|