@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/dist/SqliteWasm.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target.mjs";
|
|
|
4
4
|
import { sqlClientPasswordStandaloneGuard } from "./drizzle/password-target.mjs";
|
|
5
5
|
import { passwordPreparedPersistenceLayer } from "./drizzle/password-prepared-target.mjs";
|
|
6
6
|
import { sqlClientProofStandaloneGuard } from "./drizzle/proof-target.mjs";
|
|
7
|
+
import { nativeDatabase } from "./drizzle/native-database.mjs";
|
|
7
8
|
import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target.mjs";
|
|
8
9
|
import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target.mjs";
|
|
9
10
|
import { makePasskeyTarget } from "./drizzle/passkey-drivers.mjs";
|
|
@@ -17,40 +18,45 @@ import { makeSqlitePasswordPreparedTarget } from "./drizzle/sqlite-password-prep
|
|
|
17
18
|
import { makeOAuthTarget } from "./drizzle/oauth-drivers.mjs";
|
|
18
19
|
import { drizzleMigrationsLayer } from "./internal/drizzle-migrations.mjs";
|
|
19
20
|
import { sqlitePersistence } from "./internal/drizzle-sqlite.mjs";
|
|
20
|
-
import {
|
|
21
|
+
import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
|
|
22
|
+
import { Context, Effect, Layer } from "effect";
|
|
21
23
|
import { makeWithDefaults } from "drizzle-orm/effect-sqlite-wasm";
|
|
22
24
|
//#region src/SqliteWasm.ts
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
25
|
+
/** The application-owned Drizzle database used to construct persistence services. */
|
|
26
|
+
var Database = class extends Context.Service()("effect-auth/persistence-drizzle/SqliteWasm/Database") {};
|
|
27
|
+
/** Construct Drizzle from the driver's SQL-client Layer. */
|
|
28
|
+
const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
|
|
29
|
+
const sessionTarget = makeSqliteSessionTarget(Database, (service) => sqliteSessionConfiguration("interactive", sqlClientSessionStandaloneGuard(service)));
|
|
30
|
+
const proofTarget = makeSqliteProofTarget(Database, (service) => sqliteProofConfiguration("interactive", sqlClientProofStandaloneGuard(service)));
|
|
31
|
+
const passwordTarget = makeSqlitePasswordTarget(Database, (service) => sqlitePasswordConfiguration("interactive", sqlClientPasswordStandaloneGuard(service), sqlClientProofStandaloneGuard(service)));
|
|
32
|
+
const { coordinateEmailAddress, coordinateEmailRegistration, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices } = makeSqliteEmailTarget(Database, (service) => sqliteEmailConfiguration("interactive", sqlClientEmailStandaloneGuard(service), sqlClientProofStandaloneGuard(service)));
|
|
27
33
|
const { coordinatePasswordPersistence, coordinatePasswordRegistration, makePasswordPersistenceServices, makePasswordRegistrationServices } = passwordTarget;
|
|
28
34
|
const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;
|
|
29
35
|
const { coordinateAuthenticationAuthority, coordinatePendingAuthentication, coordinateSignedSessionValidity, coordinateStatefulSessions, makeAuthenticationAuthorityServices, makePendingAuthenticationServices, makeSessionStepUpServices, coordinateSessionStepUp, makeSignedSessionValidityServices, makeStatefulSessionServices } = sessionTarget;
|
|
30
36
|
const commitMode = "interactive";
|
|
31
|
-
const makeIdentityServices = (
|
|
32
|
-
const makeSubjectProvisioningServices = (
|
|
33
|
-
const makeExternalIdentityServices = (
|
|
34
|
-
const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } = makeSqlitePasswordPreparedTarget((
|
|
35
|
-
const { makeOAuthAccountsServices, makeOAuthSignInServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, coordinateOAuthRegistration, coordinateOAuthSignIn, coordinateOAuthRegistrationIntents, coordinateOAuthAccounts, makeOAuthConnectedServices, makeOAuthConnectedRevocationServices, coordinateOAuthConnected, coordinateOAuthConnectedRevocations } = makeOAuthTarget({
|
|
37
|
+
const makeIdentityServices = (mapping) => makeSqliteIdentityServices(mapping, "interactive").pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
|
|
38
|
+
const makeSubjectProvisioningServices = (mapping) => makeSqliteSubjectProvisioningServices(mapping, "interactive").pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
|
|
39
|
+
const makeExternalIdentityServices = (mapping) => makeSqliteExternalIdentityServices(mapping).pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
|
|
40
|
+
const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } = makeSqlitePasswordPreparedTarget(Database, (service) => sqlitePasswordConfiguration("interactive", sqlClientPasswordStandaloneGuard(service), sqlClientProofStandaloneGuard(service)));
|
|
41
|
+
const { makeOAuthAccountsServices, makeOAuthSignInServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, coordinateOAuthRegistration, coordinateOAuthSignIn, coordinateOAuthRegistrationIntents, coordinateOAuthAccounts, makeOAuthConnectedServices, makeOAuthConnectedRevocationServices, coordinateOAuthConnected, coordinateOAuthConnectedRevocations } = makeOAuthTarget(Database, {
|
|
36
42
|
mode: "interactive",
|
|
37
43
|
dialect: "sqlite",
|
|
38
44
|
locking: false,
|
|
39
45
|
standaloneGuard: sqlClientOAuthStandaloneGuard
|
|
40
46
|
});
|
|
41
|
-
const { makePasskeyCredentialServices, makePasskeyPersistenceServices, makePasskeyEnrollmentContextServices, makePasskeyRegistrationCeremonyServices, coordinatePasskeyPersistence, coordinatePasskeyRegistrationCeremony, makePasskeyManagementServices, makePasskeyRegistrationServices, coordinatePasskeyManagement, coordinatePasskeyRegistration } = makePasskeyTarget({
|
|
47
|
+
const { makePasskeyCredentialServices, makePasskeyPersistenceServices, makePasskeyEnrollmentContextServices, makePasskeyRegistrationCeremonyServices, coordinatePasskeyPersistence, coordinatePasskeyRegistrationCeremony, makePasskeyManagementServices, makePasskeyRegistrationServices, coordinatePasskeyManagement, coordinatePasskeyRegistration } = makePasskeyTarget(Database, {
|
|
42
48
|
mode: "interactive",
|
|
43
49
|
dialect: "sqlite",
|
|
44
50
|
locking: false,
|
|
45
51
|
standaloneGuard: sqlClientPasskeyStandaloneGuard
|
|
46
52
|
});
|
|
47
|
-
const { makeTotpPersistenceServices, coordinateTotpPersistence } = makeTotpTarget({
|
|
53
|
+
const { makeTotpPersistenceServices, coordinateTotpPersistence } = makeTotpTarget(Database, {
|
|
48
54
|
mode: "interactive",
|
|
49
55
|
dialect: "sqlite",
|
|
50
56
|
locking: false,
|
|
51
57
|
standaloneGuard: sqlClientTotpStandaloneGuard
|
|
52
58
|
});
|
|
53
|
-
const { makePhonePersistenceServices, coordinatePhonePersistence } = makePhoneTarget({
|
|
59
|
+
const { makePhonePersistenceServices, coordinatePhonePersistence } = makePhoneTarget(Database, {
|
|
54
60
|
mode: "interactive",
|
|
55
61
|
dialect: "sqlite",
|
|
56
62
|
locking: false,
|
|
@@ -61,6 +67,6 @@ const AuthPersistence = {
|
|
|
61
67
|
migrationsLayer: (options) => drizzleMigrationsLayer(makeWithDefaults({}), Effect.promise(() => import("drizzle-orm/effect-sqlite-wasm/migrator")).pipe(Effect.map((module) => module.migrate)))(options)
|
|
62
68
|
};
|
|
63
69
|
//#endregion
|
|
64
|
-
export { AuthPersistence, commitMode, coordinateAuthenticationAuthority, coordinateEmailAddress, coordinateEmailRegistration, coordinateOAuthAccounts, coordinateOAuthConnected, coordinateOAuthConnectedRevocations, coordinateOAuthRegistration, coordinateOAuthRegistrationIntents, coordinateOAuthSignIn, coordinatePasskeyManagement, coordinatePasskeyPersistence, coordinatePasskeyRegistration, coordinatePasskeyRegistrationCeremony, coordinatePasswordPersistence, coordinatePasswordPreparedPersistence, coordinatePasswordRegistration, coordinatePendingAuthentication, coordinatePhonePersistence, coordinateProofPersistence, coordinateSessionStepUp, coordinateSignedSessionValidity, coordinateStatefulSessions, coordinateTotpPersistence, makeAuthenticationAuthorityServices, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices, makeExternalIdentityServices, makeIdentityServices, makeOAuthAccountsServices, makeOAuthConnectedRevocationServices, makeOAuthConnectedServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, makeOAuthSignInServices, makePasskeyCredentialServices, makePasskeyEnrollmentContextServices, makePasskeyManagementServices, makePasskeyPersistenceServices, makePasskeyRegistrationCeremonyServices, makePasskeyRegistrationServices, makePasswordPersistenceServices, makePasswordPreparedPersistenceServices, makePasswordRegistrationServices, makePendingAuthenticationServices, makePhonePersistenceServices, makeProofPersistenceServices, makeSessionStepUpServices, makeSignedSessionValidityServices, makeStatefulSessionServices, makeSubjectProvisioningServices, makeTotpPersistenceServices, passwordPreparedPersistenceLayer };
|
|
70
|
+
export { AuthPersistence, Database, commitMode, coordinateAuthenticationAuthority, coordinateEmailAddress, coordinateEmailRegistration, coordinateOAuthAccounts, coordinateOAuthConnected, coordinateOAuthConnectedRevocations, coordinateOAuthRegistration, coordinateOAuthRegistrationIntents, coordinateOAuthSignIn, coordinatePasskeyManagement, coordinatePasskeyPersistence, coordinatePasskeyRegistration, coordinatePasskeyRegistrationCeremony, coordinatePasswordPersistence, coordinatePasswordPreparedPersistence, coordinatePasswordRegistration, coordinatePendingAuthentication, coordinatePhonePersistence, coordinateProofPersistence, coordinateSessionStepUp, coordinateSignedSessionValidity, coordinateStatefulSessions, coordinateTotpPersistence, databaseLayer, makeAuthenticationAuthorityServices, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices, makeExternalIdentityServices, makeIdentityServices, makeOAuthAccountsServices, makeOAuthConnectedRevocationServices, makeOAuthConnectedServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, makeOAuthSignInServices, makePasskeyCredentialServices, makePasskeyEnrollmentContextServices, makePasskeyManagementServices, makePasskeyPersistenceServices, makePasskeyRegistrationCeremonyServices, makePasskeyRegistrationServices, makePasswordPersistenceServices, makePasswordPreparedPersistenceServices, makePasswordRegistrationServices, makePendingAuthenticationServices, makePhonePersistenceServices, makeProofPersistenceServices, makeSessionStepUpServices, makeSignedSessionValidityServices, makeStatefulSessionServices, makeSubjectProvisioningServices, makeTotpPersistenceServices, passwordPreparedPersistenceLayer };
|
|
65
71
|
|
|
66
72
|
//# sourceMappingURL=SqliteWasm.mjs.map
|
package/dist/SqliteWasm.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteWasm.mjs","names":[],"sources":["../src/SqliteWasm.ts"],"sourcesContent":["import type { AnyRelations } from \"drizzle-orm\";\nimport { type EffectSQLiteWasmDatabase, makeWithDefaults } from \"drizzle-orm/effect-sqlite-wasm\";\nimport type { AnySQLiteTable } from \"drizzle-orm/sqlite-core\";\nimport { Effect } from \"effect\";\n\nimport { sqlClientEmailStandaloneGuard } from \"./drizzle/email-target\";\nimport type {\n ExternalIdentityTables,\n IdentityTables,\n SubjectProvisioningTables,\n} from \"./drizzle/model\";\nimport { sqlClientPasswordStandaloneGuard } from \"./drizzle/password-target\";\nimport { sqlClientProofStandaloneGuard } from \"./drizzle/proof-target\";\nimport { sqlClientSessionStandaloneGuard } from \"./drizzle/session-target\";\nimport { makeSqliteEmailTarget, sqliteEmailConfiguration } from \"./drizzle/sqlite-emails\";\nimport {\n makeSqliteExternalIdentityServices,\n makeSqliteIdentityServices,\n makeSqliteSubjectProvisioningServices,\n} from \"./drizzle/sqlite-identity\";\nimport { makeSqlitePasswordTarget, sqlitePasswordConfiguration } from \"./drizzle/sqlite-passwords\";\nimport { makeSqliteProofTarget, sqliteProofConfiguration } from \"./drizzle/sqlite-proofs\";\nimport { makeSqliteSessionTarget, sqliteSessionConfiguration } from \"./drizzle/sqlite-sessions\";\n\nconst sessionTarget = makeSqliteSessionTarget<EffectSQLiteWasmDatabase<AnyRelations>>((database) =>\n sqliteSessionConfiguration(\"interactive\", sqlClientSessionStandaloneGuard(database)),\n);\n\nconst proofTarget = makeSqliteProofTarget<EffectSQLiteWasmDatabase<AnyRelations>>((database) =>\n sqliteProofConfiguration(\"interactive\", sqlClientProofStandaloneGuard(database)),\n);\n\nconst passwordTarget = makeSqlitePasswordTarget<EffectSQLiteWasmDatabase<AnyRelations>>(\n (database) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(database),\n sqlClientProofStandaloneGuard(database),\n ),\n);\n\nconst emailTarget = makeSqliteEmailTarget<EffectSQLiteWasmDatabase<AnyRelations>>((database) =>\n sqliteEmailConfiguration(\n \"interactive\",\n sqlClientEmailStandaloneGuard(database),\n sqlClientProofStandaloneGuard(database),\n ),\n);\n\nexport const {\n coordinateEmailAddress,\n coordinateEmailRegistration,\n makeEmailAddressServices,\n makeEmailRegistrationServices,\n makeEmailSignInServices,\n} = emailTarget;\n\nexport const {\n coordinatePasswordPersistence,\n coordinatePasswordRegistration,\n makePasswordPersistenceServices,\n makePasswordRegistrationServices,\n} = passwordTarget;\n\nexport const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;\n\nexport const {\n coordinateAuthenticationAuthority,\n coordinatePendingAuthentication,\n coordinateSignedSessionValidity,\n coordinateStatefulSessions,\n makeAuthenticationAuthorityServices,\n makePendingAuthenticationServices,\n makeSessionStepUpServices,\n coordinateSessionStepUp,\n makeSignedSessionValidityServices,\n makeStatefulSessionServices,\n} = sessionTarget;\n\nexport const commitMode = \"interactive\" as const;\n\nexport const makeIdentityServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n External extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,\n) => makeSqliteIdentityServices(database, mapping, \"interactive\");\n\nexport const makeSubjectProvisioningServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,\n) => makeSqliteSubjectProvisioningServices(database, mapping, \"interactive\");\n\nexport const makeExternalIdentityServices = <\n Subject extends AnySQLiteTable,\n External extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: ExternalIdentityTables<Subject, External, NativeId>,\n) => makeSqliteExternalIdentityServices(database, mapping);\n\nimport { makeSqlitePasswordPreparedTarget } from \"./drizzle/sqlite-password-prepared\";\n\nconst passwordPreparedTarget = makeSqlitePasswordPreparedTarget<\n EffectSQLiteWasmDatabase<AnyRelations>\n>((database) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(database),\n sqlClientProofStandaloneGuard(database),\n ),\n);\n\nexport const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } =\n passwordPreparedTarget;\n\nexport { passwordPreparedPersistenceLayer } from \"./drizzle/password-prepared-target\";\n\nimport { makeOAuthTarget } from \"./drizzle/oauth-drivers\";\nimport { sqlClientOAuthStandaloneGuard } from \"./drizzle/oauth-target\";\n\nconst oauthTarget = makeOAuthTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientOAuthStandaloneGuard,\n});\n\nexport const {\n makeOAuthAccountsServices,\n makeOAuthSignInServices,\n makeOAuthRegistrationIntentServices,\n makeOAuthRegistrationServices,\n coordinateOAuthRegistration,\n coordinateOAuthSignIn,\n coordinateOAuthRegistrationIntents,\n coordinateOAuthAccounts,\n makeOAuthConnectedServices,\n makeOAuthConnectedRevocationServices,\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n} = oauthTarget;\n\nimport { makePasskeyTarget } from \"./drizzle/passkey-drivers\";\nimport { sqlClientPasskeyStandaloneGuard } from \"./drizzle/passkey-target\";\n\nconst passkeyTarget = makePasskeyTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPasskeyStandaloneGuard,\n});\n\nexport const {\n makePasskeyCredentialServices,\n makePasskeyPersistenceServices,\n makePasskeyEnrollmentContextServices,\n makePasskeyRegistrationCeremonyServices,\n coordinatePasskeyPersistence,\n coordinatePasskeyRegistrationCeremony,\n makePasskeyManagementServices,\n makePasskeyRegistrationServices,\n coordinatePasskeyManagement,\n coordinatePasskeyRegistration,\n} = passkeyTarget;\n\nimport { makeTotpTarget, sqlClientTotpStandaloneGuard } from \"./drizzle/totp-target\";\n\nconst totpTarget = makeTotpTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientTotpStandaloneGuard,\n});\n\nexport const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTarget;\n\nimport { makePhoneTarget, sqlClientPhoneStandaloneGuard } from \"./drizzle/phone-target\";\n\nconst phoneTarget = makePhoneTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPhoneStandaloneGuard,\n});\n\nexport const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;\n\nimport { drizzleMigrationsLayer } from \"./internal/drizzle-migrations\";\nimport { sqlitePersistence } from \"./internal/drizzle-sqlite\";\n\nexport const AuthPersistence = {\n ...sqlitePersistence(makeWithDefaults({})),\n migrationsLayer: (options: {\n readonly migrations: Record<string, string>;\n readonly migrationsTable?: string;\n }) =>\n drizzleMigrationsLayer(\n makeWithDefaults({}),\n Effect.promise(() => import(\"drizzle-orm/effect-sqlite-wasm/migrator\")).pipe(\n Effect.map((module) => module.migrate),\n ),\n )(options),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAM,gBAAgB,yBAAiE,aACrF,2BAA2B,eAAe,gCAAgC,QAAQ,CAAC,CACrF;AAEA,MAAM,cAAc,uBAA+D,aACjF,yBAAyB,eAAe,8BAA8B,QAAQ,CAAC,CACjF;AAEA,MAAM,iBAAiB,0BACpB,aACC,4BACE,eACA,iCAAiC,QAAQ,GACzC,8BAA8B,QAAQ,CACxC,CACJ;AAUA,MAAa,EACX,wBACA,6BACA,0BACA,+BACA,4BAbkB,uBAA+D,aACjF,yBACE,eACA,8BAA8B,QAAQ,GACtC,8BAA8B,QAAQ,CACxC,CASE;AAEJ,MAAa,EACX,+BACA,gCACA,iCACA,qCACE;AAEJ,MAAa,EAAE,4BAA4B,iCAAiC;AAE5E,MAAa,EACX,mCACA,iCACA,iCACA,4BACA,qCACA,mCACA,2BACA,yBACA,mCACA,gCACE;AAEJ,MAAa,aAAa;AAE1B,MAAa,wBAOX,UACA,YACG,2BAA2B,UAAU,SAAS,aAAa;AAEhE,MAAa,mCAMX,UACA,YACG,sCAAsC,UAAU,SAAS,aAAa;AAE3E,MAAa,gCAKX,UACA,YACG,mCAAmC,UAAU,OAAO;AAczD,MAAa,EAAE,yCAAyC,0CAVzB,kCAE5B,aACD,4BACE,eACA,iCAAiC,QAAQ,GACzC,8BAA8B,QAAQ,CACxC,CAIA;AAiBF,MAAa,EACX,2BACA,yBACA,qCACA,+BACA,6BACA,uBACA,oCACA,yBACA,4BACA,sCACA,0BACA,wCAtBkB,gBAGlB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAeI;AAeJ,MAAa,EACX,+BACA,gCACA,sCACA,yCACA,8BACA,uCACA,+BACA,iCACA,6BACA,kCApBoB,kBAGpB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAaI;AAcJ,MAAa,EAAE,6BAA6B,8BAVzB,eAGjB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE0E;AAc1E,MAAa,EAAE,8BAA8B,+BAVzB,gBAGlB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE4E;AAK5E,MAAa,kBAAkB;CAC7B,GAAG,kBAAkB,iBAAiB,CAAC,CAAC,CAAC;CACzC,kBAAkB,YAIhB,uBACE,iBAAiB,CAAC,CAAC,GACnB,OAAO,cAAc,OAAO,0CAA0C,CAAC,CAAC,KACtE,OAAO,KAAK,WAAW,OAAO,OAAO,CACvC,CACF,CAAC,CAAC,OAAO;AACb"}
|
|
1
|
+
{"version":3,"file":"SqliteWasm.mjs","names":[],"sources":["../src/SqliteWasm.ts"],"sourcesContent":["import { NativeDatabase } from \"@yielded/auth-persistence/Adapter\";\nimport type { AnyRelations } from \"drizzle-orm\";\nimport { type EffectSQLiteWasmDatabase, makeWithDefaults } from \"drizzle-orm/effect-sqlite-wasm\";\nimport type { AnySQLiteTable } from \"drizzle-orm/sqlite-core\";\nimport { Context, Effect, Layer } from \"effect\";\n\nimport { nativeDatabase } from \"./drizzle/native-database\";\n\n/** The application-owned Drizzle database used to construct persistence services. */\nexport class Database extends Context.Service<Database, EffectSQLiteWasmDatabase<AnyRelations>>()(\n \"effect-auth/persistence-drizzle/SqliteWasm/Database\",\n) {}\n\n/** Construct Drizzle from the driver's SQL-client Layer. */\nexport const databaseLayer = Layer.effect(Database, makeWithDefaults({}));\n\nimport { sqlClientEmailStandaloneGuard } from \"./drizzle/email-target\";\nimport type {\n ExternalIdentityTables,\n IdentityTables,\n SubjectProvisioningTables,\n} from \"./drizzle/model\";\nimport { sqlClientPasswordStandaloneGuard } from \"./drizzle/password-target\";\nimport { sqlClientProofStandaloneGuard } from \"./drizzle/proof-target\";\nimport { sqlClientSessionStandaloneGuard } from \"./drizzle/session-target\";\nimport { makeSqliteEmailTarget, sqliteEmailConfiguration } from \"./drizzle/sqlite-emails\";\nimport {\n makeSqliteExternalIdentityServices,\n makeSqliteIdentityServices,\n makeSqliteSubjectProvisioningServices,\n} from \"./drizzle/sqlite-identity\";\nimport { makeSqlitePasswordTarget, sqlitePasswordConfiguration } from \"./drizzle/sqlite-passwords\";\nimport { makeSqliteProofTarget, sqliteProofConfiguration } from \"./drizzle/sqlite-proofs\";\nimport { makeSqliteSessionTarget, sqliteSessionConfiguration } from \"./drizzle/sqlite-sessions\";\n\nconst sessionTarget = makeSqliteSessionTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) => sqliteSessionConfiguration(\"interactive\", sqlClientSessionStandaloneGuard(service)),\n);\n\nconst proofTarget = makeSqliteProofTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) => sqliteProofConfiguration(\"interactive\", sqlClientProofStandaloneGuard(service)),\n);\n\nconst passwordTarget = makeSqlitePasswordTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(service),\n sqlClientProofStandaloneGuard(service),\n ),\n);\n\nconst emailTarget = makeSqliteEmailTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) =>\n sqliteEmailConfiguration(\n \"interactive\",\n sqlClientEmailStandaloneGuard(service),\n sqlClientProofStandaloneGuard(service),\n ),\n);\n\nexport const {\n coordinateEmailAddress,\n coordinateEmailRegistration,\n makeEmailAddressServices,\n makeEmailRegistrationServices,\n makeEmailSignInServices,\n} = emailTarget;\n\nexport const {\n coordinatePasswordPersistence,\n coordinatePasswordRegistration,\n makePasswordPersistenceServices,\n makePasswordRegistrationServices,\n} = passwordTarget;\n\nexport const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;\n\nexport const {\n coordinateAuthenticationAuthority,\n coordinatePendingAuthentication,\n coordinateSignedSessionValidity,\n coordinateStatefulSessions,\n makeAuthenticationAuthorityServices,\n makePendingAuthenticationServices,\n makeSessionStepUpServices,\n coordinateSessionStepUp,\n makeSignedSessionValidityServices,\n makeStatefulSessionServices,\n} = sessionTarget;\n\nexport const commitMode = \"interactive\" as const;\n\nexport const makeIdentityServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n External extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,\n) =>\n makeSqliteIdentityServices(mapping, \"interactive\").pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),\n );\n\nexport const makeSubjectProvisioningServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,\n) =>\n makeSqliteSubjectProvisioningServices(mapping, \"interactive\").pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),\n );\n\nexport const makeExternalIdentityServices = <\n Subject extends AnySQLiteTable,\n External extends AnySQLiteTable,\n NativeId,\n>(\n mapping: ExternalIdentityTables<Subject, External, NativeId>,\n) =>\n makeSqliteExternalIdentityServices(mapping).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),\n );\n\nimport { makeSqlitePasswordPreparedTarget } from \"./drizzle/sqlite-password-prepared\";\n\nconst passwordPreparedTarget = makeSqlitePasswordPreparedTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>\n>(Database, (service) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(service),\n sqlClientProofStandaloneGuard(service),\n ),\n);\n\nexport const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } =\n passwordPreparedTarget;\n\nexport { passwordPreparedPersistenceLayer } from \"./drizzle/password-prepared-target\";\n\nimport { makeOAuthTarget } from \"./drizzle/oauth-drivers\";\nimport { sqlClientOAuthStandaloneGuard } from \"./drizzle/oauth-target\";\n\nconst oauthTarget = makeOAuthTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientOAuthStandaloneGuard,\n});\n\nexport const {\n makeOAuthAccountsServices,\n makeOAuthSignInServices,\n makeOAuthRegistrationIntentServices,\n makeOAuthRegistrationServices,\n coordinateOAuthRegistration,\n coordinateOAuthSignIn,\n coordinateOAuthRegistrationIntents,\n coordinateOAuthAccounts,\n makeOAuthConnectedServices,\n makeOAuthConnectedRevocationServices,\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n} = oauthTarget;\n\nimport { makePasskeyTarget } from \"./drizzle/passkey-drivers\";\nimport { sqlClientPasskeyStandaloneGuard } from \"./drizzle/passkey-target\";\n\nconst passkeyTarget = makePasskeyTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPasskeyStandaloneGuard,\n});\n\nexport const {\n makePasskeyCredentialServices,\n makePasskeyPersistenceServices,\n makePasskeyEnrollmentContextServices,\n makePasskeyRegistrationCeremonyServices,\n coordinatePasskeyPersistence,\n coordinatePasskeyRegistrationCeremony,\n makePasskeyManagementServices,\n makePasskeyRegistrationServices,\n coordinatePasskeyManagement,\n coordinatePasskeyRegistration,\n} = passkeyTarget;\n\nimport { makeTotpTarget, sqlClientTotpStandaloneGuard } from \"./drizzle/totp-target\";\n\nconst totpTarget = makeTotpTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientTotpStandaloneGuard,\n});\n\nexport const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTarget;\n\nimport { makePhoneTarget, sqlClientPhoneStandaloneGuard } from \"./drizzle/phone-target\";\n\nconst phoneTarget = makePhoneTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPhoneStandaloneGuard,\n});\n\nexport const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;\n\nimport { drizzleMigrationsLayer } from \"./internal/drizzle-migrations\";\nimport { sqlitePersistence } from \"./internal/drizzle-sqlite\";\n\nexport const AuthPersistence = {\n ...sqlitePersistence(makeWithDefaults({})),\n migrationsLayer: (options: {\n readonly migrations: Record<string, string>;\n readonly migrationsTable?: string;\n }) =>\n drizzleMigrationsLayer(\n makeWithDefaults({}),\n Effect.promise(() => import(\"drizzle-orm/effect-sqlite-wasm/migrator\")).pipe(\n Effect.map((module) => module.migrate),\n ),\n )(options),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAa,WAAb,cAA8B,QAAQ,QAA0D,CAAC,CAC/F,qDACF,CAAC,CAAC,CAAC;;AAGH,MAAa,gBAAgB,MAAM,OAAO,UAAU,iBAAiB,CAAC,CAAC,CAAC;AAqBxE,MAAM,gBAAgB,wBACpB,WACC,YAAY,2BAA2B,eAAe,gCAAgC,OAAO,CAAC,CACjG;AAEA,MAAM,cAAc,sBAClB,WACC,YAAY,yBAAyB,eAAe,8BAA8B,OAAO,CAAC,CAC7F;AAEA,MAAM,iBAAiB,yBACrB,WACC,YACC,4BACE,eACA,iCAAiC,OAAO,GACxC,8BAA8B,OAAO,CACvC,CACJ;AAYA,MAAa,EACX,wBACA,6BACA,0BACA,+BACA,4BAfkB,sBAClB,WACC,YACC,yBACE,eACA,8BAA8B,OAAO,GACrC,8BAA8B,OAAO,CACvC,CASA;AAEJ,MAAa,EACX,+BACA,gCACA,iCACA,qCACE;AAEJ,MAAa,EAAE,4BAA4B,iCAAiC;AAE5E,MAAa,EACX,mCACA,iCACA,iCACA,4BACA,qCACA,mCACA,2BACA,yBACA,mCACA,gCACE;AAEJ,MAAa,aAAa;AAE1B,MAAa,wBAOX,YAEA,2BAA2B,SAAS,aAAa,CAAC,CAAC,KACjD,OAAO,qBAAqB,gBAAgB,eAAe,QAAQ,CAAC,CACtE;AAEF,MAAa,mCAMX,YAEA,sCAAsC,SAAS,aAAa,CAAC,CAAC,KAC5D,OAAO,qBAAqB,gBAAgB,eAAe,QAAQ,CAAC,CACtE;AAEF,MAAa,gCAKX,YAEA,mCAAmC,OAAO,CAAC,CAAC,KAC1C,OAAO,qBAAqB,gBAAgB,eAAe,QAAQ,CAAC,CACtE;AAeF,MAAa,EAAE,yCAAyC,0CAXzB,iCAG7B,WAAW,YACX,4BACE,eACA,iCAAiC,OAAO,GACxC,8BAA8B,OAAO,CACvC,CAIA;AAkBF,MAAa,EACX,2BACA,yBACA,qCACA,+BACA,6BACA,uBACA,oCACA,yBACA,4BACA,sCACA,0BACA,wCAvBkB,gBAIlB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAeI;AAgBJ,MAAa,EACX,+BACA,gCACA,sCACA,yCACA,8BACA,uCACA,+BACA,iCACA,6BACA,kCArBoB,kBAIpB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAaI;AAeJ,MAAa,EAAE,6BAA6B,8BAXzB,eAIjB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE0E;AAe1E,MAAa,EAAE,8BAA8B,+BAXzB,gBAIlB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE4E;AAK5E,MAAa,kBAAkB;CAC7B,GAAG,kBAAkB,iBAAiB,CAAC,CAAC,CAAC;CACzC,kBAAkB,YAIhB,uBACE,iBAAiB,CAAC,CAAC,GACnB,OAAO,cAAc,OAAO,0CAA0C,CAAC,CAAC,KACtE,OAAO,KAAK,WAAW,OAAO,OAAO,CACvC,CACF,CAAC,CAAC,OAAO;AACb"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
import { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
|
|
3
|
+
import { D1Client } from "@effect/sql-d1/D1Client";
|
|
4
|
+
//#region src/drizzle/d1-database.d.ts
|
|
5
|
+
declare const Database_base: Context.ServiceClass<Database, "effect-auth/persistence-drizzle/D1/Database", EffectSQLiteD1Database<import("drizzle-orm").TablesRelationalConfig> & {
|
|
6
|
+
readonly $client: D1Client;
|
|
7
|
+
}>;
|
|
8
|
+
/** Application-owned D1 database, including the client that owns native batches. */
|
|
9
|
+
export declare class Database extends Database_base {}
|
|
10
|
+
//#endregion
|
|
11
|
+
//# sourceMappingURL=d1-database.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/drizzle/d1-database.ts
|
|
3
|
+
/** Application-owned D1 database, including the client that owns native batches. */
|
|
4
|
+
var Database = class extends Context.Service()("effect-auth/persistence-drizzle/D1/Database") {};
|
|
5
|
+
//#endregion
|
|
6
|
+
export { Database };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=d1-database.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d1-database.mjs","names":[],"sources":["../../src/drizzle/d1-database.ts"],"sourcesContent":["import type { D1Client } from \"@effect/sql-d1/D1Client\";\nimport type { AnyRelations } from \"drizzle-orm\";\nimport type { EffectSQLiteD1Database } from \"drizzle-orm/effect-d1\";\nimport { Context } from \"effect\";\n\n/** Application-owned D1 database, including the client that owns native batches. */\nexport class Database extends Context.Service<\n Database,\n EffectSQLiteD1Database<AnyRelations> & { readonly $client: D1Client }\n>()(\"effect-auth/persistence-drizzle/D1/Database\") {}\n"],"mappings":";;;AAMA,IAAa,WAAb,cAA8B,QAAQ,QAGpC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { D1EmailAddressMapping, D1EmailRegistrationMapping, EmailSignInMapping } from "./email-model.mjs";
|
|
2
2
|
import { D1ProofPersistenceMapping } from "./proof-model.mjs";
|
|
3
3
|
import { EmailRegistrationAuthority } from "./email-registration.mjs";
|
|
4
|
+
import { Database as Database$1 } from "./d1-database.mjs";
|
|
4
5
|
import { D1BatchStatements } from "./D1BatchStatements.mjs";
|
|
5
6
|
import { SuppliedService } from "./SuppliedService.mjs";
|
|
6
7
|
import { LoginIdentifier } from "@yielded/auth/Identity";
|
|
@@ -9,22 +10,22 @@ import { Effect, Option } from "effect";
|
|
|
9
10
|
import { HookConfigurationError, LifecycleHooks, PreparedCommit } from "@yielded/auth/Hooks";
|
|
10
11
|
import { EmailAddressDecision, EmailAddressPersistence, EmailUnavailable } from "@yielded/auth/Email";
|
|
11
12
|
import { ProofCompletionInput } from "@yielded/auth/Proofs";
|
|
13
|
+
import { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
|
|
12
14
|
import { AnySQLiteTable } from "drizzle-orm/sqlite-core";
|
|
13
15
|
import { D1Client } from "@effect/sql-d1/D1Client";
|
|
14
|
-
import { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
|
|
15
16
|
//#region src/drizzle/d1-emails.d.ts
|
|
16
17
|
type Database = EffectSQLiteD1Database<AnyRelations> & {
|
|
17
18
|
readonly $client: D1Client;
|
|
18
19
|
};
|
|
19
|
-
export declare const makeD1EmailSignInServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, NativeId>(
|
|
20
|
+
export declare const makeD1EmailSignInServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, NativeId>(mapping: EmailSignInMapping<S, I, C, NativeId>) => Effect.Effect<{
|
|
20
21
|
emailSignInTargets: {
|
|
21
22
|
readonly lookup: (input: {
|
|
22
23
|
readonly moduleId: string;
|
|
23
24
|
readonly identifier: LoginIdentifier;
|
|
24
25
|
}) => Effect.Effect<Option.Option<import("@yielded/auth/Email").EmailCredentialSnapshot>, EmailUnavailable>;
|
|
25
26
|
};
|
|
26
|
-
}, never,
|
|
27
|
-
export declare const makeD1EmailAddressServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, M extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(
|
|
27
|
+
}, never, Database$1>;
|
|
28
|
+
export declare const makeD1EmailAddressServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, M extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(mapping: D1EmailAddressMapping<S, I, C, AC, M, NativeId>, proofMapping: D1ProofPersistenceMapping<PRq, PS, PG, PCn, PRs, PAev, PF, PC, PSub, PI, PCr, PNativeId>) => Effect.Effect<{
|
|
28
29
|
emailAddressPersistence: {
|
|
29
30
|
readonly target: (input: {
|
|
30
31
|
readonly moduleId: string;
|
|
@@ -43,10 +44,10 @@ export declare const makeD1EmailAddressServices: <S extends AnySQLiteTable, I ex
|
|
|
43
44
|
readonly hasMore: boolean;
|
|
44
45
|
}, A>) => Effect.Effect<PreparedCommit<A>, EmailUnavailable>;
|
|
45
46
|
};
|
|
46
|
-
}, never, LifecycleHooks>;
|
|
47
|
-
export declare const makeD1EmailRegistrationServices: <Registration, S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, Rq extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(
|
|
47
|
+
}, never, Database$1 | LifecycleHooks>;
|
|
48
|
+
export declare const makeD1EmailRegistrationServices: <Registration, S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, Rq extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(mapping: D1EmailRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>, proofMapping: D1ProofPersistenceMapping<PRq, PS, PG, PCn, PRs, PAev, PF, PC, PSub, PI, PCr, PNativeId>) => Effect.Effect<{
|
|
48
49
|
registrationAuthority: EmailRegistrationAuthority<Registration>;
|
|
49
|
-
}, never, LifecycleHooks>;
|
|
50
|
+
}, never, Database$1 | LifecycleHooks>;
|
|
50
51
|
type CoordinatorError<E> = E | EmailUnavailable | HookConfigurationError;
|
|
51
52
|
export declare function coordinateD1EmailAddress<S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, M extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId, A, E, R, DatabaseError, DatabaseRequirements>(acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>, options: {
|
|
52
53
|
readonly mapping: D1EmailAddressMapping<S, I, C, AC, M, NativeId>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { requiredEmailAddressConstraints, requiredEmailRegistrationConstraints } from "./email-model.mjs";
|
|
2
2
|
import { PersistenceMappingError, column, isMappedConstraintConflict, updateValues } from "./model.mjs";
|
|
3
3
|
import { CurrentEmailSql, currentAddress, decodeEmailSnapshot, emailLookupQuery, sameEmailRevision, snapshotEmailMutation, validEmailSignInConstraints, validateEmailAuthority } from "./email-sql.mjs";
|
|
4
|
+
import { Database } from "./d1-database.mjs";
|
|
4
5
|
import { D1BatchStatements } from "./D1BatchStatements.mjs";
|
|
5
6
|
import { CurrentD1PlanningDatabase, makeD1Owner } from "./d1-planning.mjs";
|
|
6
7
|
import { compileD1ProofCompletionPlan } from "./d1-proofs.mjs";
|
|
@@ -449,15 +450,16 @@ const makeRegistrationPlans = (mapping, proofMapping) => ({
|
|
|
449
450
|
}, prepare);
|
|
450
451
|
})
|
|
451
452
|
});
|
|
452
|
-
const makeD1EmailSignInServices = (
|
|
453
|
+
const makeD1EmailSignInServices = (mapping) => Effect.map(Database, (database) => ({ emailSignInTargets: EmailSignInTargets.of({ lookup: (input) => {
|
|
453
454
|
if (!validEmailSignInConstraints(mapping)) return Effect.fail(unavailable());
|
|
454
455
|
return emailLookupRows(mapping, input.moduleId, input.identifier).pipe(Effect.flatMap((rows) => {
|
|
455
456
|
const row = rows[0];
|
|
456
457
|
if (row === void 0) return Effect.succeed(Option.none());
|
|
457
458
|
return decodeEmailSnapshot(mapping, input.moduleId, input.identifier, row).pipe(Effect.map((snapshot) => snapshot === void 0 ? Option.none() : Option.some(snapshot)));
|
|
458
459
|
}), Effect.provideService(CurrentD1PlanningDatabase, database), translateFailure);
|
|
459
|
-
} }) });
|
|
460
|
-
const makeD1EmailAddressServices =
|
|
460
|
+
} }) }));
|
|
461
|
+
const makeD1EmailAddressServices = Effect.fnUntraced(function* (mapping, proofMapping) {
|
|
462
|
+
const database = yield* Database;
|
|
461
463
|
const hooks = yield* LifecycleHooks;
|
|
462
464
|
const plans = makeAddressPlans(mapping, proofMapping);
|
|
463
465
|
const run = (plan) => Effect.gen(function* () {
|
|
@@ -472,7 +474,8 @@ const makeD1EmailAddressServices = (database, mapping, proofMapping) => Effect.g
|
|
|
472
474
|
cleanup: (input, prepare) => run(plans.cleanup(input, prepare)).pipe(translateFailure)
|
|
473
475
|
} };
|
|
474
476
|
});
|
|
475
|
-
const makeD1EmailRegistrationServices =
|
|
477
|
+
const makeD1EmailRegistrationServices = Effect.fnUntraced(function* (mapping, proofMapping) {
|
|
478
|
+
const database = yield* Database;
|
|
476
479
|
const hooks = yield* LifecycleHooks;
|
|
477
480
|
const plans = makeRegistrationPlans(mapping, proofMapping);
|
|
478
481
|
const run = (plan) => Effect.gen(function* () {
|