@yielded/auth-persistence-drizzle 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/dist/D1.d.mts +963 -0
- package/dist/D1.mjs +29 -0
- package/dist/D1.mjs.map +1 -0
- package/dist/Libsql.d.mts +2134 -0
- package/dist/Libsql.mjs +77 -0
- package/dist/Libsql.mjs.map +1 -0
- package/dist/Mysql2.d.mts +1817 -0
- package/dist/Mysql2.mjs +55 -0
- package/dist/Mysql2.mjs.map +1 -0
- package/dist/Pglite.d.mts +1821 -0
- package/dist/Pglite.mjs +53 -0
- package/dist/Pglite.mjs.map +1 -0
- package/dist/Postgres.d.mts +1821 -0
- package/dist/Postgres.mjs +53 -0
- package/dist/Postgres.mjs.map +1 -0
- package/dist/SqliteBun.d.mts +2129 -0
- package/dist/SqliteBun.mjs +70 -0
- package/dist/SqliteBun.mjs.map +1 -0
- package/dist/SqliteDo.d.mts +2181 -0
- package/dist/SqliteDo.mjs +105 -0
- package/dist/SqliteDo.mjs.map +1 -0
- package/dist/SqliteNode.d.mts +2129 -0
- package/dist/SqliteNode.mjs +70 -0
- package/dist/SqliteNode.mjs.map +1 -0
- package/dist/SqliteWasm.d.mts +2132 -0
- package/dist/SqliteWasm.mjs +70 -0
- package/dist/SqliteWasm.mjs.map +1 -0
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/drizzle/D1BatchStatements.d.mts +10 -0
- package/dist/drizzle/D1BatchStatements.mjs +8 -0
- package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
- package/dist/drizzle/SuppliedService.d.mts +9 -0
- package/dist/drizzle/d1-emails.d.mts +61 -0
- package/dist/drizzle/d1-emails.mjs +578 -0
- package/dist/drizzle/d1-emails.mjs.map +1 -0
- package/dist/drizzle/d1-generated-statement.mjs +79 -0
- package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
- package/dist/drizzle/d1-identity.d.mts +30 -0
- package/dist/drizzle/d1-identity.mjs +118 -0
- package/dist/drizzle/d1-identity.mjs.map +1 -0
- package/dist/drizzle/d1-oauth.d.mts +300 -0
- package/dist/drizzle/d1-oauth.mjs +76 -0
- package/dist/drizzle/d1-oauth.mjs.map +1 -0
- package/dist/drizzle/d1-passkey.d.mts +47 -0
- package/dist/drizzle/d1-passkey.mjs +95 -0
- package/dist/drizzle/d1-passkey.mjs.map +1 -0
- package/dist/drizzle/d1-password-prepared.d.mts +24 -0
- package/dist/drizzle/d1-password-prepared.mjs +460 -0
- package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
- package/dist/drizzle/d1-passwords.d.mts +86 -0
- package/dist/drizzle/d1-passwords.mjs +1003 -0
- package/dist/drizzle/d1-passwords.mjs.map +1 -0
- package/dist/drizzle/d1-phone.d.mts +23 -0
- package/dist/drizzle/d1-phone.mjs +30 -0
- package/dist/drizzle/d1-phone.mjs.map +1 -0
- package/dist/drizzle/d1-planning.d.mts +11 -0
- package/dist/drizzle/d1-planning.mjs +43 -0
- package/dist/drizzle/d1-planning.mjs.map +1 -0
- package/dist/drizzle/d1-proofs.d.mts +79 -0
- package/dist/drizzle/d1-proofs.mjs +829 -0
- package/dist/drizzle/d1-proofs.mjs.map +1 -0
- package/dist/drizzle/d1-sessions.d.mts +66 -0
- package/dist/drizzle/d1-sessions.mjs +965 -0
- package/dist/drizzle/d1-sessions.mjs.map +1 -0
- package/dist/drizzle/d1-totp.d.mts +23 -0
- package/dist/drizzle/d1-totp.mjs +27 -0
- package/dist/drizzle/d1-totp.mjs.map +1 -0
- package/dist/drizzle/email-model.d.mts +30 -0
- package/dist/drizzle/email-model.mjs +2 -0
- package/dist/drizzle/email-registration.d.mts +29 -0
- package/dist/drizzle/email-registration.mjs +236 -0
- package/dist/drizzle/email-registration.mjs.map +1 -0
- package/dist/drizzle/email-sql.d.mts +1 -0
- package/dist/drizzle/email-sql.mjs +9 -0
- package/dist/drizzle/email-sql.mjs.map +1 -0
- package/dist/drizzle/email-target.d.mts +19 -0
- package/dist/drizzle/email-target.mjs +72 -0
- package/dist/drizzle/email-target.mjs.map +1 -0
- package/dist/drizzle/model.d.mts +245 -0
- package/dist/drizzle/model.mjs +55 -0
- package/dist/drizzle/model.mjs.map +1 -0
- package/dist/drizzle/mysql-emails.d.mts +70 -0
- package/dist/drizzle/mysql-emails.mjs +38 -0
- package/dist/drizzle/mysql-emails.mjs.map +1 -0
- package/dist/drizzle/mysql-identity.d.mts +21 -0
- package/dist/drizzle/mysql-identity.mjs +93 -0
- package/dist/drizzle/mysql-identity.mjs.map +1 -0
- package/dist/drizzle/mysql-password-prepared.d.mts +29 -0
- package/dist/drizzle/mysql-password-prepared.mjs +16 -0
- package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
- package/dist/drizzle/mysql-passwords.d.mts +85 -0
- package/dist/drizzle/mysql-passwords.mjs +38 -0
- package/dist/drizzle/mysql-passwords.mjs.map +1 -0
- package/dist/drizzle/mysql-proofs.d.mts +74 -0
- package/dist/drizzle/mysql-proofs.mjs +23 -0
- package/dist/drizzle/mysql-proofs.mjs.map +1 -0
- package/dist/drizzle/mysql-sessions.d.mts +91 -0
- package/dist/drizzle/mysql-sessions.mjs +53 -0
- package/dist/drizzle/mysql-sessions.mjs.map +1 -0
- package/dist/drizzle/mysql.d.mts +69 -0
- package/dist/drizzle/mysql.mjs +218 -0
- package/dist/drizzle/mysql.mjs.map +1 -0
- package/dist/drizzle/oauth-accounts.mjs +358 -0
- package/dist/drizzle/oauth-accounts.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-access.mjs +210 -0
- package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-collection.mjs +202 -0
- package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-custody.mjs +146 -0
- package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-drivers.mjs +76 -0
- package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-flow.mjs +247 -0
- package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-input.mjs +103 -0
- package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-maintenance.mjs +214 -0
- package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-management.mjs +228 -0
- package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-model.d.mts +277 -0
- package/dist/drizzle/oauth-connected-model.mjs +22 -0
- package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-reference.d.mts +16 -0
- package/dist/drizzle/oauth-connected-reference.mjs +53 -0
- package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
- package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-state.d.mts +1954 -0
- package/dist/drizzle/oauth-connected-state.mjs +422 -0
- package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-target.d.mts +752 -0
- package/dist/drizzle/oauth-connected-target.mjs +91 -0
- package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
- package/dist/drizzle/oauth-drivers.mjs +51 -0
- package/dist/drizzle/oauth-drivers.mjs.map +1 -0
- package/dist/drizzle/oauth-flow.d.mts +22 -0
- package/dist/drizzle/oauth-flow.mjs +253 -0
- package/dist/drizzle/oauth-flow.mjs.map +1 -0
- package/dist/drizzle/oauth-input.mjs +127 -0
- package/dist/drizzle/oauth-input.mjs.map +1 -0
- package/dist/drizzle/oauth-model.d.mts +461 -0
- package/dist/drizzle/oauth-model.mjs +49 -0
- package/dist/drizzle/oauth-model.mjs.map +1 -0
- package/dist/drizzle/oauth-mysql.mjs +8 -0
- package/dist/drizzle/oauth-mysql.mjs.map +1 -0
- package/dist/drizzle/oauth-owner.d.mts +10 -0
- package/dist/drizzle/oauth-owner.mjs +10 -0
- package/dist/drizzle/oauth-owner.mjs.map +1 -0
- package/dist/drizzle/oauth-registration.d.mts +5 -0
- package/dist/drizzle/oauth-registration.mjs +374 -0
- package/dist/drizzle/oauth-registration.mjs.map +1 -0
- package/dist/drizzle/oauth-state.mjs +107 -0
- package/dist/drizzle/oauth-state.mjs.map +1 -0
- package/dist/drizzle/oauth-target.d.mts +109 -0
- package/dist/drizzle/oauth-target.mjs +246 -0
- package/dist/drizzle/oauth-target.mjs.map +1 -0
- package/dist/drizzle/passkey-drivers.mjs +34 -0
- package/dist/drizzle/passkey-drivers.mjs.map +1 -0
- package/dist/drizzle/passkey-kernel.mjs +8 -0
- package/dist/drizzle/passkey-kernel.mjs.map +1 -0
- package/dist/drizzle/passkey-model.d.mts +43 -0
- package/dist/drizzle/passkey-model.mjs +8 -0
- package/dist/drizzle/passkey-model.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-ceremony-model.d.mts +12 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs +2 -0
- package/dist/drizzle/passkey-state.mjs +7 -0
- package/dist/drizzle/passkey-state.mjs.map +1 -0
- package/dist/drizzle/passkey-target.d.mts +2 -0
- package/dist/drizzle/passkey-target.mjs +7 -0
- package/dist/drizzle/passkey-target.mjs.map +1 -0
- package/dist/drizzle/passkey-write-drivers.mjs +32 -0
- package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
- package/dist/drizzle/passkey-write-model.d.mts +20 -0
- package/dist/drizzle/passkey-write-model.mjs +9 -0
- package/dist/drizzle/passkey-write-model.mjs.map +1 -0
- package/dist/drizzle/passkey-write-target.d.mts +5 -0
- package/dist/drizzle/passkey-write-target.mjs +7 -0
- package/dist/drizzle/passkey-write-target.mjs.map +1 -0
- package/dist/drizzle/password-model.d.mts +24 -0
- package/dist/drizzle/password-model.mjs +2 -0
- package/dist/drizzle/password-prepared-model.d.mts +92 -0
- package/dist/drizzle/password-prepared-model.mjs +11 -0
- package/dist/drizzle/password-prepared-model.mjs.map +1 -0
- package/dist/drizzle/password-prepared-sql.mjs +389 -0
- package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
- package/dist/drizzle/password-prepared-state.mjs +104 -0
- package/dist/drizzle/password-prepared-state.mjs.map +1 -0
- package/dist/drizzle/password-prepared-target.d.mts +11 -0
- package/dist/drizzle/password-prepared-target.mjs +56 -0
- package/dist/drizzle/password-prepared-target.mjs.map +1 -0
- package/dist/drizzle/password-registration.d.mts +7 -0
- package/dist/drizzle/password-registration.mjs +134 -0
- package/dist/drizzle/password-registration.mjs.map +1 -0
- package/dist/drizzle/password-sql.d.mts +1 -0
- package/dist/drizzle/password-sql.mjs +9 -0
- package/dist/drizzle/password-sql.mjs.map +1 -0
- package/dist/drizzle/password-target.d.mts +16 -0
- package/dist/drizzle/password-target.mjs +61 -0
- package/dist/drizzle/password-target.mjs.map +1 -0
- package/dist/drizzle/pg-emails.d.mts +71 -0
- package/dist/drizzle/pg-emails.mjs +38 -0
- package/dist/drizzle/pg-emails.mjs.map +1 -0
- package/dist/drizzle/pg-password-prepared.d.mts +30 -0
- package/dist/drizzle/pg-password-prepared.mjs +16 -0
- package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
- package/dist/drizzle/pg-passwords.d.mts +86 -0
- package/dist/drizzle/pg-passwords.mjs +38 -0
- package/dist/drizzle/pg-passwords.mjs.map +1 -0
- package/dist/drizzle/pg-proofs.d.mts +75 -0
- package/dist/drizzle/pg-proofs.mjs +22 -0
- package/dist/drizzle/pg-proofs.mjs.map +1 -0
- package/dist/drizzle/pg-sessions.d.mts +92 -0
- package/dist/drizzle/pg-sessions.mjs +53 -0
- package/dist/drizzle/pg-sessions.mjs.map +1 -0
- package/dist/drizzle/pg.d.mts +80 -0
- package/dist/drizzle/pg.mjs +289 -0
- package/dist/drizzle/pg.mjs.map +1 -0
- package/dist/drizzle/phone-model.d.mts +113 -0
- package/dist/drizzle/phone-model.mjs +39 -0
- package/dist/drizzle/phone-model.mjs.map +1 -0
- package/dist/drizzle/phone-state.mjs +14 -0
- package/dist/drizzle/phone-state.mjs.map +1 -0
- package/dist/drizzle/phone-target.d.mts +14 -0
- package/dist/drizzle/phone-target.mjs +168 -0
- package/dist/drizzle/phone-target.mjs.map +1 -0
- package/dist/drizzle/proof-model.d.mts +21 -0
- package/dist/drizzle/proof-model.mjs +2 -0
- package/dist/drizzle/proof-sql.d.mts +1 -0
- package/dist/drizzle/proof-sql.mjs +8 -0
- package/dist/drizzle/proof-sql.mjs.map +1 -0
- package/dist/drizzle/proof-target.d.mts +11 -0
- package/dist/drizzle/proof-target.mjs +36 -0
- package/dist/drizzle/proof-target.mjs.map +1 -0
- package/dist/drizzle/query-operations.mjs +27 -0
- package/dist/drizzle/query-operations.mjs.map +1 -0
- package/dist/drizzle/session-model.d.mts +31 -0
- package/dist/drizzle/session-model.mjs +2 -0
- package/dist/drizzle/session-sql.mjs +8 -0
- package/dist/drizzle/session-sql.mjs.map +1 -0
- package/dist/drizzle/session-target.d.mts +27 -0
- package/dist/drizzle/session-target.mjs +46 -0
- package/dist/drizzle/session-target.mjs.map +1 -0
- package/dist/drizzle/sqlite-emails.mjs +45 -0
- package/dist/drizzle/sqlite-emails.mjs.map +1 -0
- package/dist/drizzle/sqlite-identity.mjs +90 -0
- package/dist/drizzle/sqlite-identity.mjs.map +1 -0
- package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
- package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
- package/dist/drizzle/sqlite-passwords.mjs +49 -0
- package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
- package/dist/drizzle/sqlite-proofs.mjs +29 -0
- package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
- package/dist/drizzle/sqlite-sessions.mjs +74 -0
- package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
- package/dist/drizzle/sqlite.d.mts +77 -0
- package/dist/drizzle/sqlite.mjs +217 -0
- package/dist/drizzle/sqlite.mjs.map +1 -0
- package/dist/drizzle/standalone-guard.mjs +17 -0
- package/dist/drizzle/standalone-guard.mjs.map +1 -0
- package/dist/drizzle/step-up-model.d.mts +16 -0
- package/dist/drizzle/step-up-model.mjs +2 -0
- package/dist/drizzle/table-model.d.mts +11 -0
- package/dist/drizzle/totp-model.d.mts +82 -0
- package/dist/drizzle/totp-model.mjs +13 -0
- package/dist/drizzle/totp-model.mjs.map +1 -0
- package/dist/drizzle/totp-state.d.mts +37 -0
- package/dist/drizzle/totp-state.mjs +287 -0
- package/dist/drizzle/totp-state.mjs.map +1 -0
- package/dist/drizzle/totp-target.d.mts +14 -0
- package/dist/drizzle/totp-target.mjs +81 -0
- package/dist/drizzle/totp-target.mjs.map +1 -0
- package/dist/drizzle/transaction-execution.d.mts +2 -0
- package/dist/drizzle/transaction-execution.mjs +11 -0
- package/dist/drizzle/transaction-execution.mjs.map +1 -0
- package/dist/drizzle/transaction-mysql.mjs +47 -0
- package/dist/drizzle/transaction-mysql.mjs.map +1 -0
- package/dist/drizzle/transaction-owner.d.mts +2 -0
- package/dist/drizzle/transaction-owner.mjs +8 -0
- package/dist/drizzle/transaction-owner.mjs.map +1 -0
- package/dist/index.d.mts +27 -0
- package/dist/index.mjs +27 -0
- package/dist/internal/drizzle-migrations.mjs +19 -0
- package/dist/internal/drizzle-migrations.mjs.map +1 -0
- package/dist/internal/drizzle-postgres.mjs +37 -0
- package/dist/internal/drizzle-postgres.mjs.map +1 -0
- package/dist/internal/drizzle-sqlite.mjs +35 -0
- package/dist/internal/drizzle-sqlite.mjs.map +1 -0
- package/package.json +1 -0
- package/src/D1.ts +136 -0
- package/src/Libsql.ts +257 -0
- package/src/Mysql2.ts +184 -0
- package/src/Pglite.ts +174 -0
- package/src/Postgres.ts +174 -0
- package/src/SqliteBun.ts +258 -0
- package/src/SqliteDo.ts +473 -0
- package/src/SqliteNode.ts +259 -0
- package/src/SqliteWasm.ts +263 -0
- package/src/drizzle/D1BatchStatements.ts +10 -0
- package/src/drizzle/SuppliedService.ts +10 -0
- package/src/drizzle/d1-emails.ts +1829 -0
- package/src/drizzle/d1-generated-statement.ts +129 -0
- package/src/drizzle/d1-identity.ts +375 -0
- package/src/drizzle/d1-oauth.ts +340 -0
- package/src/drizzle/d1-passkey.ts +373 -0
- package/src/drizzle/d1-password-prepared.ts +1270 -0
- package/src/drizzle/d1-passwords.ts +2656 -0
- package/src/drizzle/d1-phone.ts +96 -0
- package/src/drizzle/d1-planning.ts +104 -0
- package/src/drizzle/d1-proofs.ts +2305 -0
- package/src/drizzle/d1-sessions.ts +2857 -0
- package/src/drizzle/d1-totp.ts +78 -0
- package/src/drizzle/email-model.ts +202 -0
- package/src/drizzle/email-registration.ts +698 -0
- package/src/drizzle/email-sql.ts +25 -0
- package/src/drizzle/email-target.ts +243 -0
- package/src/drizzle/model.ts +459 -0
- package/src/drizzle/mysql-emails.ts +321 -0
- package/src/drizzle/mysql-identity.ts +324 -0
- package/src/drizzle/mysql-password-prepared.ts +204 -0
- package/src/drizzle/mysql-passwords.ts +339 -0
- package/src/drizzle/mysql-proofs.ts +181 -0
- package/src/drizzle/mysql-sessions.ts +741 -0
- package/src/drizzle/mysql.ts +687 -0
- package/src/drizzle/oauth-accounts.ts +804 -0
- package/src/drizzle/oauth-connected-access.ts +354 -0
- package/src/drizzle/oauth-connected-collection.ts +324 -0
- package/src/drizzle/oauth-connected-custody.ts +277 -0
- package/src/drizzle/oauth-connected-drivers.ts +465 -0
- package/src/drizzle/oauth-connected-flow.ts +441 -0
- package/src/drizzle/oauth-connected-input.ts +127 -0
- package/src/drizzle/oauth-connected-maintenance.ts +345 -0
- package/src/drizzle/oauth-connected-management.ts +365 -0
- package/src/drizzle/oauth-connected-model.ts +347 -0
- package/src/drizzle/oauth-connected-reference.ts +112 -0
- package/src/drizzle/oauth-connected-settlement.ts +226 -0
- package/src/drizzle/oauth-connected-state.ts +845 -0
- package/src/drizzle/oauth-connected-target.ts +264 -0
- package/src/drizzle/oauth-drivers.ts +569 -0
- package/src/drizzle/oauth-flow.ts +462 -0
- package/src/drizzle/oauth-input.ts +201 -0
- package/src/drizzle/oauth-model.ts +617 -0
- package/src/drizzle/oauth-mysql.ts +10 -0
- package/src/drizzle/oauth-owner.ts +29 -0
- package/src/drizzle/oauth-registration.ts +640 -0
- package/src/drizzle/oauth-state.ts +215 -0
- package/src/drizzle/oauth-target.ts +750 -0
- package/src/drizzle/passkey-drivers.ts +385 -0
- package/src/drizzle/passkey-kernel.ts +4 -0
- package/src/drizzle/passkey-model.ts +153 -0
- package/src/drizzle/passkey-registration-ceremony-model.ts +32 -0
- package/src/drizzle/passkey-state.ts +3 -0
- package/src/drizzle/passkey-target.ts +23 -0
- package/src/drizzle/passkey-write-drivers.ts +395 -0
- package/src/drizzle/passkey-write-model.ts +103 -0
- package/src/drizzle/passkey-write-target.ts +9 -0
- package/src/drizzle/password-model.ts +169 -0
- package/src/drizzle/password-prepared-model.ts +259 -0
- package/src/drizzle/password-prepared-sql.ts +1191 -0
- package/src/drizzle/password-prepared-state.ts +231 -0
- package/src/drizzle/password-prepared-target.ts +160 -0
- package/src/drizzle/password-registration.ts +363 -0
- package/src/drizzle/password-sql.ts +13 -0
- package/src/drizzle/password-target.ts +224 -0
- package/src/drizzle/pg-emails.ts +321 -0
- package/src/drizzle/pg-password-prepared.ts +205 -0
- package/src/drizzle/pg-passwords.ts +338 -0
- package/src/drizzle/pg-proofs.ts +191 -0
- package/src/drizzle/pg-sessions.ts +750 -0
- package/src/drizzle/pg.ts +984 -0
- package/src/drizzle/phone-model.ts +190 -0
- package/src/drizzle/phone-state.ts +21 -0
- package/src/drizzle/phone-target.ts +472 -0
- package/src/drizzle/proof-model.ts +139 -0
- package/src/drizzle/proof-sql.ts +10 -0
- package/src/drizzle/proof-target.ts +122 -0
- package/src/drizzle/query-operations.ts +43 -0
- package/src/drizzle/session-model.ts +215 -0
- package/src/drizzle/session-sql.ts +14 -0
- package/src/drizzle/session-target.ts +338 -0
- package/src/drizzle/sqlite-emails.ts +366 -0
- package/src/drizzle/sqlite-identity.ts +344 -0
- package/src/drizzle/sqlite-password-prepared.ts +260 -0
- package/src/drizzle/sqlite-passwords.ts +497 -0
- package/src/drizzle/sqlite-proofs.ts +202 -0
- package/src/drizzle/sqlite-sessions.ts +971 -0
- package/src/drizzle/sqlite.ts +705 -0
- package/src/drizzle/standalone-guard.ts +32 -0
- package/src/drizzle/step-up-model.ts +73 -0
- package/src/drizzle/table-model.ts +9 -0
- package/src/drizzle/totp-model.ts +92 -0
- package/src/drizzle/totp-state.ts +525 -0
- package/src/drizzle/totp-target.ts +308 -0
- package/src/drizzle/transaction-execution.ts +13 -0
- package/src/drizzle/transaction-mysql.ts +106 -0
- package/src/drizzle/transaction-owner.ts +11 -0
- package/src/index.ts +378 -0
- package/src/internal/drizzle-migrations.ts +29 -0
- package/src/internal/drizzle-postgres.ts +83 -0
- package/src/internal/drizzle-sqlite.ts +81 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { EmailAddressPersistence, type EmailUnavailable } from "@yielded/auth/Email";
|
|
2
|
+
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
3
|
+
/* oxlint-disable no-explicit-any -- proof mapping tables are independently typed by the proof owner; this driver forwards them unchanged to the shared target. */
|
|
4
|
+
import type { AnyRelations } from "drizzle-orm";
|
|
5
|
+
import type { EffectPgDatabase as PgliteDatabase } from "drizzle-orm/effect-pglite";
|
|
6
|
+
import type { EffectPgDatabase as PostgresDatabase } from "drizzle-orm/effect-postgres";
|
|
7
|
+
import type { AnyPgTable } from "drizzle-orm/pg-core";
|
|
8
|
+
import { Effect, Context } from "effect";
|
|
9
|
+
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
10
|
+
|
|
11
|
+
import type {
|
|
12
|
+
EmailAddressMapping,
|
|
13
|
+
EmailRegistrationMapping,
|
|
14
|
+
EmailSignInMapping,
|
|
15
|
+
} from "./email-model";
|
|
16
|
+
import type { EmailRegistrationAuthority } from "./email-registration";
|
|
17
|
+
import type { EmailSqlQuery } from "./email-sql";
|
|
18
|
+
import {
|
|
19
|
+
coordinateTargetEmailAddress,
|
|
20
|
+
coordinateTargetEmailRegistration,
|
|
21
|
+
makeTargetEmailAddressServices,
|
|
22
|
+
makeTargetEmailRegistrationServices,
|
|
23
|
+
makeTargetEmailSignInServices,
|
|
24
|
+
sqlClientEmailStandaloneGuard,
|
|
25
|
+
} from "./email-target";
|
|
26
|
+
import type { ProofPersistenceMapping } from "./proof-model";
|
|
27
|
+
import type { ProofSqlQuery } from "./proof-sql";
|
|
28
|
+
import { sqlClientProofStandaloneGuard } from "./proof-target";
|
|
29
|
+
import type { SuppliedService } from "./SuppliedService";
|
|
30
|
+
|
|
31
|
+
type Database = PostgresDatabase<AnyRelations> | PgliteDatabase<AnyRelations>;
|
|
32
|
+
type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
|
|
33
|
+
type ProofMapping = ProofPersistenceMapping<
|
|
34
|
+
any,
|
|
35
|
+
any,
|
|
36
|
+
any,
|
|
37
|
+
any,
|
|
38
|
+
any,
|
|
39
|
+
any,
|
|
40
|
+
any,
|
|
41
|
+
any,
|
|
42
|
+
any,
|
|
43
|
+
any,
|
|
44
|
+
any,
|
|
45
|
+
any
|
|
46
|
+
>;
|
|
47
|
+
|
|
48
|
+
const configuration = (database: Database) => ({
|
|
49
|
+
mode: "interactive" as const,
|
|
50
|
+
locking: true,
|
|
51
|
+
standaloneGuard: sqlClientEmailStandaloneGuard(database),
|
|
52
|
+
generatedSubjectRows: (query: EmailSqlQuery) => query.returning(),
|
|
53
|
+
proof: {
|
|
54
|
+
mode: "interactive" as const,
|
|
55
|
+
locking: true,
|
|
56
|
+
standaloneGuard: sqlClientProofStandaloneGuard(database),
|
|
57
|
+
insertIfAbsent: (query: ProofSqlQuery) => query.onConflictDoNothing(),
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
export const makePgEmailSignInServices = <
|
|
62
|
+
S extends AnyPgTable,
|
|
63
|
+
I extends AnyPgTable,
|
|
64
|
+
C extends AnyPgTable,
|
|
65
|
+
NativeId,
|
|
66
|
+
>(
|
|
67
|
+
database: Database,
|
|
68
|
+
mapping: EmailSignInMapping<S, I, C, NativeId>,
|
|
69
|
+
) => makeTargetEmailSignInServices(database, mapping, configuration(database));
|
|
70
|
+
|
|
71
|
+
export const makePgEmailAddressServices = <
|
|
72
|
+
S extends AnyPgTable,
|
|
73
|
+
I extends AnyPgTable,
|
|
74
|
+
C extends AnyPgTable,
|
|
75
|
+
AC extends AnyPgTable,
|
|
76
|
+
M extends AnyPgTable,
|
|
77
|
+
NativeId,
|
|
78
|
+
>(
|
|
79
|
+
database: Database,
|
|
80
|
+
mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>,
|
|
81
|
+
proofMapping: ProofMapping,
|
|
82
|
+
) => makeTargetEmailAddressServices(database, mapping, proofMapping, configuration(database));
|
|
83
|
+
|
|
84
|
+
export function coordinatePgEmailAddress<
|
|
85
|
+
D extends Database,
|
|
86
|
+
S extends AnyPgTable,
|
|
87
|
+
I extends AnyPgTable,
|
|
88
|
+
C extends AnyPgTable,
|
|
89
|
+
AC extends AnyPgTable,
|
|
90
|
+
M extends AnyPgTable,
|
|
91
|
+
NativeId,
|
|
92
|
+
Out,
|
|
93
|
+
E,
|
|
94
|
+
R,
|
|
95
|
+
DatabaseError,
|
|
96
|
+
DatabaseRequirements,
|
|
97
|
+
>(
|
|
98
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
99
|
+
options: {
|
|
100
|
+
readonly mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>;
|
|
101
|
+
readonly proofMapping: ProofMapping;
|
|
102
|
+
readonly transaction?: never;
|
|
103
|
+
},
|
|
104
|
+
body: Effect.Effect<Out, E, R>,
|
|
105
|
+
): Effect.Effect<
|
|
106
|
+
Out,
|
|
107
|
+
E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
108
|
+
Exclude<R, EmailAddressPersistence> | LifecycleHooks | DatabaseRequirements
|
|
109
|
+
>;
|
|
110
|
+
|
|
111
|
+
export function coordinatePgEmailAddress<
|
|
112
|
+
D extends Database,
|
|
113
|
+
S extends AnyPgTable,
|
|
114
|
+
I extends AnyPgTable,
|
|
115
|
+
C extends AnyPgTable,
|
|
116
|
+
AC extends AnyPgTable,
|
|
117
|
+
M extends AnyPgTable,
|
|
118
|
+
NativeId,
|
|
119
|
+
Out,
|
|
120
|
+
E,
|
|
121
|
+
R,
|
|
122
|
+
DatabaseError,
|
|
123
|
+
DatabaseRequirements,
|
|
124
|
+
TxId,
|
|
125
|
+
TxShape,
|
|
126
|
+
>(
|
|
127
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
128
|
+
options: {
|
|
129
|
+
readonly mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>;
|
|
130
|
+
readonly proofMapping: ProofMapping;
|
|
131
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
132
|
+
},
|
|
133
|
+
body: Effect.Effect<Out, E, R>,
|
|
134
|
+
): Effect.Effect<
|
|
135
|
+
Out,
|
|
136
|
+
E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
137
|
+
Exclude<R, EmailAddressPersistence | TxId> | LifecycleHooks | DatabaseRequirements
|
|
138
|
+
>;
|
|
139
|
+
|
|
140
|
+
export function coordinatePgEmailAddress<
|
|
141
|
+
D extends Database,
|
|
142
|
+
S extends AnyPgTable,
|
|
143
|
+
I extends AnyPgTable,
|
|
144
|
+
C extends AnyPgTable,
|
|
145
|
+
AC extends AnyPgTable,
|
|
146
|
+
M extends AnyPgTable,
|
|
147
|
+
NativeId,
|
|
148
|
+
Out,
|
|
149
|
+
E,
|
|
150
|
+
R,
|
|
151
|
+
DatabaseError,
|
|
152
|
+
DatabaseRequirements,
|
|
153
|
+
TxId,
|
|
154
|
+
TxShape,
|
|
155
|
+
>(
|
|
156
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
157
|
+
options: {
|
|
158
|
+
readonly mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>;
|
|
159
|
+
readonly proofMapping: ProofMapping;
|
|
160
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
161
|
+
},
|
|
162
|
+
body: Effect.Effect<Out, E, R>,
|
|
163
|
+
): Effect.Effect<
|
|
164
|
+
Out,
|
|
165
|
+
E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
166
|
+
Exclude<R, EmailAddressPersistence> | LifecycleHooks | DatabaseRequirements
|
|
167
|
+
> {
|
|
168
|
+
return Effect.flatMap(acquire, (database) =>
|
|
169
|
+
coordinateTargetEmailAddress<TransactionOf<D>, Out, E, Exclude<R, EmailAddressPersistence>>(
|
|
170
|
+
database,
|
|
171
|
+
options.mapping,
|
|
172
|
+
options.proofMapping,
|
|
173
|
+
configuration(database),
|
|
174
|
+
(
|
|
175
|
+
transaction: TransactionOf<D>,
|
|
176
|
+
services: { readonly emailAddressPersistence: EmailAddressPersistence["Service"] },
|
|
177
|
+
) => {
|
|
178
|
+
const provided = Context.make(EmailAddressPersistence, services.emailAddressPersistence);
|
|
179
|
+
const work = Effect.provideContext(body, provided);
|
|
180
|
+
|
|
181
|
+
return options.transaction === undefined
|
|
182
|
+
? work
|
|
183
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
184
|
+
},
|
|
185
|
+
),
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export const makePgEmailRegistrationServices = <
|
|
190
|
+
Registration,
|
|
191
|
+
S extends AnyPgTable,
|
|
192
|
+
I extends AnyPgTable,
|
|
193
|
+
C extends AnyPgTable,
|
|
194
|
+
AC extends AnyPgTable,
|
|
195
|
+
Rq extends AnyPgTable,
|
|
196
|
+
NativeId,
|
|
197
|
+
>(
|
|
198
|
+
database: Database,
|
|
199
|
+
mapping: EmailRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>,
|
|
200
|
+
proofMapping: ProofMapping,
|
|
201
|
+
) =>
|
|
202
|
+
makeTargetEmailRegistrationServices<Registration>(
|
|
203
|
+
database,
|
|
204
|
+
mapping,
|
|
205
|
+
proofMapping,
|
|
206
|
+
configuration(database),
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
export function coordinatePgEmailRegistration<
|
|
210
|
+
TargetId,
|
|
211
|
+
Registration,
|
|
212
|
+
D extends Database,
|
|
213
|
+
S extends AnyPgTable,
|
|
214
|
+
I extends AnyPgTable,
|
|
215
|
+
C extends AnyPgTable,
|
|
216
|
+
AC extends AnyPgTable,
|
|
217
|
+
Rq extends AnyPgTable,
|
|
218
|
+
NativeId,
|
|
219
|
+
Out,
|
|
220
|
+
E,
|
|
221
|
+
R,
|
|
222
|
+
DatabaseError,
|
|
223
|
+
DatabaseRequirements,
|
|
224
|
+
>(
|
|
225
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
226
|
+
options: {
|
|
227
|
+
readonly mapping: EmailRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
228
|
+
readonly proofMapping: ProofMapping;
|
|
229
|
+
readonly target: SuppliedService<TargetId, EmailRegistrationAuthority<Registration>>;
|
|
230
|
+
readonly transaction?: never;
|
|
231
|
+
},
|
|
232
|
+
body: Effect.Effect<Out, E, R>,
|
|
233
|
+
): Effect.Effect<
|
|
234
|
+
Out,
|
|
235
|
+
E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
236
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
237
|
+
>;
|
|
238
|
+
|
|
239
|
+
export function coordinatePgEmailRegistration<
|
|
240
|
+
TargetId,
|
|
241
|
+
Registration,
|
|
242
|
+
D extends Database,
|
|
243
|
+
S extends AnyPgTable,
|
|
244
|
+
I extends AnyPgTable,
|
|
245
|
+
C extends AnyPgTable,
|
|
246
|
+
AC extends AnyPgTable,
|
|
247
|
+
Rq extends AnyPgTable,
|
|
248
|
+
NativeId,
|
|
249
|
+
Out,
|
|
250
|
+
E,
|
|
251
|
+
R,
|
|
252
|
+
DatabaseError,
|
|
253
|
+
DatabaseRequirements,
|
|
254
|
+
TxId,
|
|
255
|
+
TxShape,
|
|
256
|
+
>(
|
|
257
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
258
|
+
options: {
|
|
259
|
+
readonly mapping: EmailRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
260
|
+
readonly proofMapping: ProofMapping;
|
|
261
|
+
readonly target: SuppliedService<TargetId, EmailRegistrationAuthority<Registration>>;
|
|
262
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
263
|
+
},
|
|
264
|
+
body: Effect.Effect<Out, E, R>,
|
|
265
|
+
): Effect.Effect<
|
|
266
|
+
Out,
|
|
267
|
+
E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
268
|
+
Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
|
|
269
|
+
>;
|
|
270
|
+
|
|
271
|
+
export function coordinatePgEmailRegistration<
|
|
272
|
+
TargetId,
|
|
273
|
+
Registration,
|
|
274
|
+
D extends Database,
|
|
275
|
+
S extends AnyPgTable,
|
|
276
|
+
I extends AnyPgTable,
|
|
277
|
+
C extends AnyPgTable,
|
|
278
|
+
AC extends AnyPgTable,
|
|
279
|
+
Rq extends AnyPgTable,
|
|
280
|
+
NativeId,
|
|
281
|
+
Out,
|
|
282
|
+
E,
|
|
283
|
+
R,
|
|
284
|
+
DatabaseError,
|
|
285
|
+
DatabaseRequirements,
|
|
286
|
+
TxId,
|
|
287
|
+
TxShape,
|
|
288
|
+
>(
|
|
289
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
290
|
+
options: {
|
|
291
|
+
readonly mapping: EmailRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
292
|
+
readonly proofMapping: ProofMapping;
|
|
293
|
+
readonly target: SuppliedService<TargetId, EmailRegistrationAuthority<Registration>>;
|
|
294
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
295
|
+
},
|
|
296
|
+
body: Effect.Effect<Out, E, R>,
|
|
297
|
+
): Effect.Effect<
|
|
298
|
+
Out,
|
|
299
|
+
E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
300
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
301
|
+
> {
|
|
302
|
+
return Effect.flatMap(acquire, (database) =>
|
|
303
|
+
coordinateTargetEmailRegistration<Registration, TransactionOf<D>, Out, E, Exclude<R, TargetId>>(
|
|
304
|
+
database,
|
|
305
|
+
options.mapping,
|
|
306
|
+
options.proofMapping,
|
|
307
|
+
configuration(database),
|
|
308
|
+
(
|
|
309
|
+
transaction: TransactionOf<D>,
|
|
310
|
+
services: { readonly registrationAuthority: EmailRegistrationAuthority<Registration> },
|
|
311
|
+
) => {
|
|
312
|
+
const provided = Context.make(options.target, services.registrationAuthority);
|
|
313
|
+
const work = Effect.provideContext(body, provided);
|
|
314
|
+
|
|
315
|
+
return options.transaction === undefined
|
|
316
|
+
? work
|
|
317
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
318
|
+
},
|
|
319
|
+
),
|
|
320
|
+
);
|
|
321
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
2
|
+
import type { PasswordUnavailable, PasswordPreparedPersistence } from "@yielded/auth/Password";
|
|
3
|
+
import type { AnyRelations } from "drizzle-orm";
|
|
4
|
+
import type { EffectPgDatabase as PgliteDatabase } from "drizzle-orm/effect-pglite";
|
|
5
|
+
import type { EffectPgDatabase as PostgresDatabase } from "drizzle-orm/effect-postgres";
|
|
6
|
+
import type { AnyPgTable } from "drizzle-orm/pg-core";
|
|
7
|
+
import { Effect, Context } from "effect";
|
|
8
|
+
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
|
+
|
|
10
|
+
import type {
|
|
11
|
+
PasswordPreparedPersistenceMapping,
|
|
12
|
+
PasswordPreparedProofMapping,
|
|
13
|
+
} from "./password-prepared-model";
|
|
14
|
+
import {
|
|
15
|
+
makeTargetPasswordPreparedPersistenceServices,
|
|
16
|
+
coordinateTargetPasswordPreparedPersistence,
|
|
17
|
+
} from "./password-prepared-target";
|
|
18
|
+
import { pgPasswordConfiguration as configuration } from "./pg-passwords";
|
|
19
|
+
import type { SuppliedService } from "./SuppliedService";
|
|
20
|
+
type Database = PostgresDatabase<AnyRelations> | PgliteDatabase<AnyRelations>;
|
|
21
|
+
type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
|
|
22
|
+
|
|
23
|
+
export const makePgPasswordPreparedPersistenceServices = <
|
|
24
|
+
S extends AnyPgTable,
|
|
25
|
+
I extends AnyPgTable,
|
|
26
|
+
C extends AnyPgTable,
|
|
27
|
+
AC extends AnyPgTable,
|
|
28
|
+
A extends AnyPgTable,
|
|
29
|
+
RS extends AnyPgTable,
|
|
30
|
+
CE extends AnyPgTable,
|
|
31
|
+
M extends AnyPgTable,
|
|
32
|
+
T extends AnyPgTable,
|
|
33
|
+
B extends AnyPgTable,
|
|
34
|
+
NativeId,
|
|
35
|
+
PS extends AnyPgTable = AnyPgTable,
|
|
36
|
+
PC extends AnyPgTable = AnyPgTable,
|
|
37
|
+
PM extends AnyPgTable = AnyPgTable,
|
|
38
|
+
PSub extends AnyPgTable = AnyPgTable,
|
|
39
|
+
PI extends AnyPgTable = AnyPgTable,
|
|
40
|
+
PCr extends AnyPgTable = AnyPgTable,
|
|
41
|
+
PNativeId = unknown,
|
|
42
|
+
>(
|
|
43
|
+
database: Database,
|
|
44
|
+
mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>,
|
|
45
|
+
proofMapping?: PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>,
|
|
46
|
+
) =>
|
|
47
|
+
makeTargetPasswordPreparedPersistenceServices(
|
|
48
|
+
database,
|
|
49
|
+
mapping,
|
|
50
|
+
configuration(database),
|
|
51
|
+
proofMapping,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
export function coordinatePgPasswordPreparedPersistence<
|
|
55
|
+
TargetId,
|
|
56
|
+
D extends Database,
|
|
57
|
+
S extends AnyPgTable,
|
|
58
|
+
I extends AnyPgTable,
|
|
59
|
+
C extends AnyPgTable,
|
|
60
|
+
AC extends AnyPgTable,
|
|
61
|
+
A extends AnyPgTable,
|
|
62
|
+
RS extends AnyPgTable,
|
|
63
|
+
CE extends AnyPgTable,
|
|
64
|
+
M extends AnyPgTable,
|
|
65
|
+
T extends AnyPgTable,
|
|
66
|
+
B extends AnyPgTable,
|
|
67
|
+
NativeId,
|
|
68
|
+
PS extends AnyPgTable,
|
|
69
|
+
PC extends AnyPgTable,
|
|
70
|
+
PM extends AnyPgTable,
|
|
71
|
+
PSub extends AnyPgTable,
|
|
72
|
+
PI extends AnyPgTable,
|
|
73
|
+
PCr extends AnyPgTable,
|
|
74
|
+
PNativeId,
|
|
75
|
+
Out,
|
|
76
|
+
E,
|
|
77
|
+
R,
|
|
78
|
+
DatabaseError,
|
|
79
|
+
DatabaseRequirements,
|
|
80
|
+
>(
|
|
81
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
82
|
+
options: {
|
|
83
|
+
readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>;
|
|
84
|
+
readonly proofMapping?:
|
|
85
|
+
| PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
|
|
86
|
+
| undefined;
|
|
87
|
+
readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
|
|
88
|
+
readonly transaction?: never;
|
|
89
|
+
},
|
|
90
|
+
body: Effect.Effect<Out, E, R>,
|
|
91
|
+
): Effect.Effect<
|
|
92
|
+
Out,
|
|
93
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
94
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
95
|
+
>;
|
|
96
|
+
|
|
97
|
+
export function coordinatePgPasswordPreparedPersistence<
|
|
98
|
+
TargetId,
|
|
99
|
+
D extends Database,
|
|
100
|
+
S extends AnyPgTable,
|
|
101
|
+
I extends AnyPgTable,
|
|
102
|
+
C extends AnyPgTable,
|
|
103
|
+
AC extends AnyPgTable,
|
|
104
|
+
A extends AnyPgTable,
|
|
105
|
+
RS extends AnyPgTable,
|
|
106
|
+
CE extends AnyPgTable,
|
|
107
|
+
M extends AnyPgTable,
|
|
108
|
+
T extends AnyPgTable,
|
|
109
|
+
B extends AnyPgTable,
|
|
110
|
+
NativeId,
|
|
111
|
+
PS extends AnyPgTable,
|
|
112
|
+
PC extends AnyPgTable,
|
|
113
|
+
PM extends AnyPgTable,
|
|
114
|
+
PSub extends AnyPgTable,
|
|
115
|
+
PI extends AnyPgTable,
|
|
116
|
+
PCr extends AnyPgTable,
|
|
117
|
+
PNativeId,
|
|
118
|
+
Out,
|
|
119
|
+
E,
|
|
120
|
+
R,
|
|
121
|
+
DatabaseError,
|
|
122
|
+
DatabaseRequirements,
|
|
123
|
+
TxId,
|
|
124
|
+
TxShape,
|
|
125
|
+
>(
|
|
126
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
127
|
+
options: {
|
|
128
|
+
readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>;
|
|
129
|
+
readonly proofMapping?:
|
|
130
|
+
| PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
|
|
131
|
+
| undefined;
|
|
132
|
+
readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
|
|
133
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
134
|
+
},
|
|
135
|
+
body: Effect.Effect<Out, E, R>,
|
|
136
|
+
): Effect.Effect<
|
|
137
|
+
Out,
|
|
138
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
139
|
+
Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
|
|
140
|
+
>;
|
|
141
|
+
|
|
142
|
+
export function coordinatePgPasswordPreparedPersistence<
|
|
143
|
+
TargetId,
|
|
144
|
+
D extends Database,
|
|
145
|
+
S extends AnyPgTable,
|
|
146
|
+
I extends AnyPgTable,
|
|
147
|
+
C extends AnyPgTable,
|
|
148
|
+
AC extends AnyPgTable,
|
|
149
|
+
A extends AnyPgTable,
|
|
150
|
+
RS extends AnyPgTable,
|
|
151
|
+
CE extends AnyPgTable,
|
|
152
|
+
M extends AnyPgTable,
|
|
153
|
+
T extends AnyPgTable,
|
|
154
|
+
B extends AnyPgTable,
|
|
155
|
+
NativeId,
|
|
156
|
+
PS extends AnyPgTable,
|
|
157
|
+
PC extends AnyPgTable,
|
|
158
|
+
PM extends AnyPgTable,
|
|
159
|
+
PSub extends AnyPgTable,
|
|
160
|
+
PI extends AnyPgTable,
|
|
161
|
+
PCr extends AnyPgTable,
|
|
162
|
+
PNativeId,
|
|
163
|
+
Out,
|
|
164
|
+
E,
|
|
165
|
+
R,
|
|
166
|
+
DatabaseError,
|
|
167
|
+
DatabaseRequirements,
|
|
168
|
+
TxId,
|
|
169
|
+
TxShape,
|
|
170
|
+
>(
|
|
171
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
172
|
+
options: {
|
|
173
|
+
readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>;
|
|
174
|
+
readonly proofMapping?:
|
|
175
|
+
| PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
|
|
176
|
+
| undefined;
|
|
177
|
+
readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
|
|
178
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
179
|
+
},
|
|
180
|
+
body: Effect.Effect<Out, E, R>,
|
|
181
|
+
): Effect.Effect<
|
|
182
|
+
Out,
|
|
183
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
184
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
185
|
+
> {
|
|
186
|
+
return Effect.flatMap(acquire, (database) =>
|
|
187
|
+
coordinateTargetPasswordPreparedPersistence<TransactionOf<D>, Out, E, Exclude<R, TargetId>>(
|
|
188
|
+
database,
|
|
189
|
+
options.mapping,
|
|
190
|
+
configuration(database),
|
|
191
|
+
options.proofMapping,
|
|
192
|
+
(
|
|
193
|
+
transaction: TransactionOf<D>,
|
|
194
|
+
services: { readonly passwordPreparedPersistence: PasswordPreparedPersistence },
|
|
195
|
+
) => {
|
|
196
|
+
const provided = Context.make(options.target, services.passwordPreparedPersistence);
|
|
197
|
+
const work = Effect.provideContext(body, provided);
|
|
198
|
+
|
|
199
|
+
return options.transaction === undefined
|
|
200
|
+
? work
|
|
201
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
202
|
+
},
|
|
203
|
+
),
|
|
204
|
+
);
|
|
205
|
+
}
|