@yielded/auth-persistence 0.1.0-beta.7
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 +21 -0
- package/dist/Drizzle.d.mts +28 -0
- package/dist/Drizzle.mjs +28 -0
- package/dist/DrizzleD1.d.mts +963 -0
- package/dist/DrizzleD1.mjs +29 -0
- package/dist/DrizzleD1.mjs.map +1 -0
- package/dist/DrizzleLibsql.d.mts +2284 -0
- package/dist/DrizzleLibsql.mjs +92 -0
- package/dist/DrizzleLibsql.mjs.map +1 -0
- package/dist/DrizzleMysql2.d.mts +1820 -0
- package/dist/DrizzleMysql2.mjs +55 -0
- package/dist/DrizzleMysql2.mjs.map +1 -0
- package/dist/DrizzlePglite.d.mts +1826 -0
- package/dist/DrizzlePglite.mjs +53 -0
- package/dist/DrizzlePglite.mjs.map +1 -0
- package/dist/DrizzlePostgres.d.mts +1826 -0
- package/dist/DrizzlePostgres.mjs +53 -0
- package/dist/DrizzlePostgres.mjs.map +1 -0
- package/dist/DrizzleSqliteBun.d.mts +2279 -0
- package/dist/DrizzleSqliteBun.mjs +70 -0
- package/dist/DrizzleSqliteBun.mjs.map +1 -0
- package/dist/DrizzleSqliteDo.d.mts +2329 -0
- package/dist/DrizzleSqliteDo.mjs +105 -0
- package/dist/DrizzleSqliteDo.mjs.map +1 -0
- package/dist/DrizzleSqliteNode.d.mts +2279 -0
- package/dist/DrizzleSqliteNode.mjs +70 -0
- package/dist/DrizzleSqliteNode.mjs.map +1 -0
- package/dist/DrizzleSqliteWasm.d.mts +2282 -0
- package/dist/DrizzleSqliteWasm.mjs +70 -0
- package/dist/DrizzleSqliteWasm.mjs.map +1 -0
- package/dist/drizzle/D1BatchStatements.d.mts +11 -0
- package/dist/drizzle/D1BatchStatements.mjs +8 -0
- package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
- package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
- package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
- package/dist/drizzle/SuppliedService.d.mts +10 -0
- package/dist/drizzle/d1-emails.d.mts +62 -0
- package/dist/drizzle/d1-emails.mjs +580 -0
- package/dist/drizzle/d1-emails.mjs.map +1 -0
- package/dist/drizzle/d1-generated-statement.d.mts +2 -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 +31 -0
- package/dist/drizzle/d1-identity.mjs +119 -0
- package/dist/drizzle/d1-identity.mjs.map +1 -0
- package/dist/drizzle/d1-oauth.d.mts +301 -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 +51 -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 +25 -0
- package/dist/drizzle/d1-password-prepared.mjs +461 -0
- package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
- package/dist/drizzle/d1-passwords.d.mts +87 -0
- package/dist/drizzle/d1-passwords.mjs +1004 -0
- package/dist/drizzle/d1-passwords.mjs.map +1 -0
- package/dist/drizzle/d1-phone.d.mts +26 -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 +12 -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 +80 -0
- package/dist/drizzle/d1-proofs.mjs +830 -0
- package/dist/drizzle/d1-proofs.mjs.map +1 -0
- package/dist/drizzle/d1-sessions.d.mts +67 -0
- package/dist/drizzle/d1-sessions.mjs +966 -0
- package/dist/drizzle/d1-sessions.mjs.map +1 -0
- package/dist/drizzle/d1-totp.d.mts +26 -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 +354 -0
- package/dist/drizzle/email-model.mjs +21 -0
- package/dist/drizzle/email-model.mjs.map +1 -0
- package/dist/drizzle/email-registration.d.mts +30 -0
- package/dist/drizzle/email-registration.mjs +238 -0
- package/dist/drizzle/email-registration.mjs.map +1 -0
- package/dist/drizzle/email-sql.d.mts +4 -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 +20 -0
- package/dist/drizzle/email-target.mjs +72 -0
- package/dist/drizzle/email-target.mjs.map +1 -0
- package/dist/drizzle/model.d.mts +250 -0
- package/dist/drizzle/model.mjs +58 -0
- package/dist/drizzle/model.mjs.map +1 -0
- package/dist/drizzle/mysql-emails.d.mts +71 -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 +22 -0
- package/dist/drizzle/mysql-identity.mjs +94 -0
- package/dist/drizzle/mysql-identity.mjs.map +1 -0
- package/dist/drizzle/mysql-password-prepared.d.mts +30 -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 +86 -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 +75 -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 +237 -0
- package/dist/drizzle/mysql-sessions.mjs +53 -0
- package/dist/drizzle/mysql-sessions.mjs.map +1 -0
- package/dist/drizzle/mysql.d.mts +70 -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 +278 -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 +17 -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 +14 -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 +753 -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 +5 -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 +463 -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 +4 -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 +6 -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 +111 -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 +272 -0
- package/dist/drizzle/passkey-model.mjs +34 -0
- package/dist/drizzle/passkey-model.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -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 +9 -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 +190 -0
- package/dist/drizzle/passkey-write-model.mjs +13 -0
- package/dist/drizzle/passkey-write-model.mjs.map +1 -0
- package/dist/drizzle/passkey-write-target.d.mts +11 -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 +329 -0
- package/dist/drizzle/password-model.mjs +23 -0
- package/dist/drizzle/password-model.mjs.map +1 -0
- package/dist/drizzle/password-prepared-model.d.mts +94 -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 +390 -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 +12 -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 +19 -0
- package/dist/drizzle/password-registration.mjs +135 -0
- package/dist/drizzle/password-registration.mjs.map +1 -0
- package/dist/drizzle/password-sql.d.mts +5 -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 +17 -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 +72 -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 +31 -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 +87 -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 +76 -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 +238 -0
- package/dist/drizzle/pg-sessions.mjs +53 -0
- package/dist/drizzle/pg-sessions.mjs.map +1 -0
- package/dist/drizzle/pg.d.mts +81 -0
- package/dist/drizzle/pg.mjs +290 -0
- package/dist/drizzle/pg.mjs.map +1 -0
- package/dist/drizzle/phone-model.d.mts +115 -0
- package/dist/drizzle/phone-model.mjs +39 -0
- package/dist/drizzle/phone-model.mjs.map +1 -0
- package/dist/drizzle/phone-state.mjs +16 -0
- package/dist/drizzle/phone-state.mjs.map +1 -0
- package/dist/drizzle/phone-target.d.mts +17 -0
- package/dist/drizzle/phone-target.mjs +170 -0
- package/dist/drizzle/phone-target.mjs.map +1 -0
- package/dist/drizzle/proof-model.d.mts +286 -0
- package/dist/drizzle/proof-model.mjs +17 -0
- package/dist/drizzle/proof-model.mjs.map +1 -0
- package/dist/drizzle/proof-sql.d.mts +4 -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 +12 -0
- package/dist/drizzle/proof-target.mjs +36 -0
- package/dist/drizzle/proof-target.mjs.map +1 -0
- package/dist/drizzle/query-operations.mjs +26 -0
- package/dist/drizzle/query-operations.mjs.map +1 -0
- package/dist/drizzle/session-model.d.mts +200 -0
- package/dist/drizzle/session-model.mjs +20 -0
- package/dist/drizzle/session-model.mjs.map +1 -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 +28 -0
- package/dist/drizzle/session-target.mjs +47 -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 +91 -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 +78 -0
- package/dist/drizzle/sqlite.mjs +217 -0
- package/dist/drizzle/sqlite.mjs.map +1 -0
- package/dist/drizzle/standalone-guard.mjs +19 -0
- package/dist/drizzle/standalone-guard.mjs.map +1 -0
- package/dist/drizzle/step-up-model.d.mts +65 -0
- package/dist/drizzle/step-up-model.mjs +9 -0
- package/dist/drizzle/step-up-model.mjs.map +1 -0
- package/dist/drizzle/step-up-state.mjs +32 -0
- package/dist/drizzle/step-up-state.mjs.map +1 -0
- package/dist/drizzle/totp-model.d.mts +84 -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 +38 -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 +17 -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 +4 -0
- package/dist/drizzle/transaction-execution.mjs +11 -0
- package/dist/drizzle/transaction-execution.mjs.map +1 -0
- package/dist/drizzle/transaction-mysql.mjs +46 -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 +5 -0
- package/dist/index.mjs +5 -0
- package/dist/internal/configuration.d.mts +174 -0
- package/dist/internal/configuration.mjs +7 -0
- package/dist/internal/configuration.mjs.map +1 -0
- package/dist/internal/drizzle-migrations.mjs +19 -0
- package/dist/internal/drizzle-migrations.mjs.map +1 -0
- package/dist/internal/drizzle-postgres.mjs +39 -0
- package/dist/internal/drizzle-postgres.mjs.map +1 -0
- package/dist/internal/drizzle-sqlite.mjs +37 -0
- package/dist/internal/drizzle-sqlite.mjs.map +1 -0
- package/dist/internal/email-kernel.d.mts +13 -0
- package/dist/internal/email-kernel.mjs +487 -0
- package/dist/internal/email-kernel.mjs.map +1 -0
- package/dist/internal/mapping-error.d.mts +11 -0
- package/dist/internal/mapping-error.mjs +30 -0
- package/dist/internal/mapping-error.mjs.map +1 -0
- package/dist/internal/passkey/admission.d.mts +7 -0
- package/dist/internal/passkey/admission.mjs +216 -0
- package/dist/internal/passkey/admission.mjs.map +1 -0
- package/dist/internal/passkey/credentials.d.mts +6 -0
- package/dist/internal/passkey/credentials.mjs +249 -0
- package/dist/internal/passkey/credentials.mjs.map +1 -0
- package/dist/internal/passkey/enrollment.mjs +138 -0
- package/dist/internal/passkey/enrollment.mjs.map +1 -0
- package/dist/internal/passkey/flow.d.mts +10 -0
- package/dist/internal/passkey/flow.mjs +452 -0
- package/dist/internal/passkey/flow.mjs.map +1 -0
- package/dist/internal/passkey/management.mjs +231 -0
- package/dist/internal/passkey/management.mjs.map +1 -0
- package/dist/internal/passkey/registration-ceremony.d.mts +9 -0
- package/dist/internal/passkey/registration-ceremony.mjs +129 -0
- package/dist/internal/passkey/registration-ceremony.mjs.map +1 -0
- package/dist/internal/passkey/registration-custody.d.mts +2 -0
- package/dist/internal/passkey/registration-custody.mjs +52 -0
- package/dist/internal/passkey/registration-custody.mjs.map +1 -0
- package/dist/internal/passkey/registration-write.mjs +211 -0
- package/dist/internal/passkey/registration-write.mjs.map +1 -0
- package/dist/internal/passkey/state.d.mts +5 -0
- package/dist/internal/passkey/state.mjs +234 -0
- package/dist/internal/passkey/state.mjs.map +1 -0
- package/dist/internal/passkey/target.d.mts +19 -0
- package/dist/internal/passkey/target.mjs +190 -0
- package/dist/internal/passkey/target.mjs.map +1 -0
- package/dist/internal/passkey/write-state.mjs +345 -0
- package/dist/internal/passkey/write-state.mjs.map +1 -0
- package/dist/internal/passkey/write-target.mjs +192 -0
- package/dist/internal/passkey/write-target.mjs.map +1 -0
- package/dist/internal/passkey-kernel.mjs +49 -0
- package/dist/internal/passkey-kernel.mjs.map +1 -0
- package/dist/internal/passkeys.mjs +367 -0
- package/dist/internal/passkeys.mjs.map +1 -0
- package/dist/internal/password-kernel.d.mts +13 -0
- package/dist/internal/password-kernel.mjs +704 -0
- package/dist/internal/password-kernel.mjs.map +1 -0
- package/dist/internal/persistence.mjs +289 -0
- package/dist/internal/persistence.mjs.map +1 -0
- package/dist/internal/phone-kernel.mjs +434 -0
- package/dist/internal/phone-kernel.mjs.map +1 -0
- package/dist/internal/proof-kernel.d.mts +9 -0
- package/dist/internal/proof-kernel.mjs +619 -0
- package/dist/internal/proof-kernel.mjs.map +1 -0
- package/dist/internal/query-operations.d.mts +3 -0
- package/dist/internal/registration.mjs +65 -0
- package/dist/internal/registration.mjs.map +1 -0
- package/dist/internal/session-kernel.mjs +737 -0
- package/dist/internal/session-kernel.mjs.map +1 -0
- package/dist/internal/sql-persistence.d.mts +11 -0
- package/dist/internal/sql-persistence.mjs +37 -0
- package/dist/internal/sql-persistence.mjs.map +1 -0
- package/dist/internal/sql-query.mjs +207 -0
- package/dist/internal/sql-query.mjs.map +1 -0
- package/dist/internal/sql-table.d.mts +37 -0
- package/dist/internal/sql-table.mjs +71 -0
- package/dist/internal/sql-table.mjs.map +1 -0
- package/dist/internal/storage-mapping.mjs +687 -0
- package/dist/internal/storage-mapping.mjs.map +1 -0
- package/dist/internal/storage-tables.d.mts +914 -0
- package/dist/internal/storage-tables.mjs +387 -0
- package/dist/internal/storage-tables.mjs.map +1 -0
- package/dist/internal/storage-validation.mjs +58 -0
- package/dist/internal/storage-validation.mjs.map +1 -0
- package/dist/internal/transaction-execution-kernel.d.mts +18 -0
- package/dist/internal/transaction-execution-kernel.mjs +118 -0
- package/dist/internal/transaction-execution-kernel.mjs.map +1 -0
- package/dist/internal/transaction-kernel.d.mts +7 -0
- package/dist/internal/transaction-kernel.mjs +260 -0
- package/dist/internal/transaction-kernel.mjs.map +1 -0
- package/package.json +1 -0
- package/src/Drizzle.ts +378 -0
- package/src/DrizzleD1.ts +136 -0
- package/src/DrizzleLibsql.ts +301 -0
- package/src/DrizzleMysql2.ts +184 -0
- package/src/DrizzlePglite.ts +174 -0
- package/src/DrizzlePostgres.ts +174 -0
- package/src/DrizzleSqliteBun.ts +258 -0
- package/src/DrizzleSqliteDo.ts +473 -0
- package/src/DrizzleSqliteNode.ts +259 -0
- package/src/DrizzleSqliteWasm.ts +263 -0
- package/src/drizzle/D1BatchStatements.ts +10 -0
- package/src/drizzle/PasswordPreparedPostconditions.ts +30 -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 +516 -0
- package/src/drizzle/email-registration.ts +698 -0
- package/src/drizzle/email-sql.ts +24 -0
- package/src/drizzle/email-target.ts +243 -0
- package/src/drizzle/model.ts +463 -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 +3 -0
- package/src/drizzle/passkey-model.ts +353 -0
- package/src/drizzle/passkey-registration-ceremony-model.ts +69 -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 +271 -0
- package/src/drizzle/passkey-write-target.ts +9 -0
- package/src/drizzle/password-model.ts +491 -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 +374 -0
- package/src/drizzle/password-sql.ts +12 -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 +398 -0
- package/src/drizzle/proof-sql.ts +9 -0
- package/src/drizzle/proof-target.ts +122 -0
- package/src/drizzle/query-operations.ts +37 -0
- package/src/drizzle/session-model.ts +370 -0
- package/src/drizzle/session-sql.ts +13 -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 +38 -0
- package/src/drizzle/step-up-model.ts +128 -0
- package/src/drizzle/step-up-state.ts +139 -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 +12 -0
- package/src/drizzle/transaction-mysql.ts +104 -0
- package/src/drizzle/transaction-owner.ts +10 -0
- package/src/index.ts +4 -0
- package/src/internal/configuration.ts +282 -0
- package/src/internal/drizzle-migrations.ts +30 -0
- package/src/internal/drizzle-postgres.ts +81 -0
- package/src/internal/drizzle-sqlite.ts +79 -0
- package/src/internal/email-kernel.ts +1532 -0
- package/src/internal/mapping-error.ts +36 -0
- package/src/internal/passkey/admission.ts +362 -0
- package/src/internal/passkey/credentials.ts +511 -0
- package/src/internal/passkey/enrollment.ts +326 -0
- package/src/internal/passkey/flow.ts +1062 -0
- package/src/internal/passkey/management.ts +422 -0
- package/src/internal/passkey/registration-ceremony.ts +283 -0
- package/src/internal/passkey/registration-custody.ts +91 -0
- package/src/internal/passkey/registration-write.ts +426 -0
- package/src/internal/passkey/state.ts +354 -0
- package/src/internal/passkey/target.ts +586 -0
- package/src/internal/passkey/write-state.ts +681 -0
- package/src/internal/passkey/write-target.ts +452 -0
- package/src/internal/passkey-kernel.ts +102 -0
- package/src/internal/passkeys.ts +597 -0
- package/src/internal/password-kernel.ts +2122 -0
- package/src/internal/persistence.ts +590 -0
- package/src/internal/phone-kernel.ts +843 -0
- package/src/internal/proof-kernel.ts +1949 -0
- package/src/internal/query-operations.ts +26 -0
- package/src/internal/registration.ts +160 -0
- package/src/internal/session-kernel.ts +2210 -0
- package/src/internal/sql-persistence.ts +45 -0
- package/src/internal/sql-query.ts +298 -0
- package/src/internal/sql-table.ts +89 -0
- package/src/internal/storage-mapping.ts +706 -0
- package/src/internal/storage-tables.ts +408 -0
- package/src/internal/storage-validation.ts +117 -0
- package/src/internal/transaction-execution-kernel.ts +317 -0
- package/src/internal/transaction-kernel.ts +582 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
2
|
+
import { type PasswordUnavailable, PasswordPersistence } from "@yielded/auth/Password";
|
|
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 { PasswordPersistenceMapping, PasswordRegistrationMapping } from "./password-model";
|
|
12
|
+
import type { PasswordRegistrationAuthority } from "./password-registration";
|
|
13
|
+
import type { PasswordSqlQuery } from "./password-sql";
|
|
14
|
+
import {
|
|
15
|
+
coordinateTargetPasswordPersistence,
|
|
16
|
+
coordinateTargetPasswordRegistration,
|
|
17
|
+
makeTargetPasswordPersistenceServices,
|
|
18
|
+
makeTargetPasswordRegistrationServices,
|
|
19
|
+
sqlClientPasswordStandaloneGuard,
|
|
20
|
+
} from "./password-target";
|
|
21
|
+
import type { ProofPersistenceMapping } from "./proof-model";
|
|
22
|
+
import type { ProofSqlQuery } from "./proof-sql";
|
|
23
|
+
import { sqlClientProofStandaloneGuard } from "./proof-target";
|
|
24
|
+
import type { SuppliedService } from "./SuppliedService";
|
|
25
|
+
|
|
26
|
+
type Database = PostgresDatabase<AnyRelations> | PgliteDatabase<AnyRelations>;
|
|
27
|
+
type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
|
|
28
|
+
|
|
29
|
+
const configuration = (database: Database) => ({
|
|
30
|
+
mode: "interactive" as const,
|
|
31
|
+
locking: true,
|
|
32
|
+
standaloneGuard: sqlClientPasswordStandaloneGuard(database),
|
|
33
|
+
insertIfAbsent: (query: PasswordSqlQuery) => query.onConflictDoNothing(),
|
|
34
|
+
generatedSubjectRows: (query: PasswordSqlQuery) => query.returning(),
|
|
35
|
+
proof: {
|
|
36
|
+
mode: "interactive" as const,
|
|
37
|
+
locking: true,
|
|
38
|
+
standaloneGuard: sqlClientProofStandaloneGuard(database),
|
|
39
|
+
insertIfAbsent: (query: ProofSqlQuery) => query.onConflictDoNothing(),
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
type PasswordMapping<
|
|
44
|
+
S extends AnyPgTable,
|
|
45
|
+
I extends AnyPgTable,
|
|
46
|
+
C extends AnyPgTable,
|
|
47
|
+
AC extends AnyPgTable,
|
|
48
|
+
A extends AnyPgTable,
|
|
49
|
+
RS extends AnyPgTable,
|
|
50
|
+
CE extends AnyPgTable,
|
|
51
|
+
M extends AnyPgTable,
|
|
52
|
+
NativeId,
|
|
53
|
+
> = PasswordPersistenceMapping<S, I, C, AC, A, RS, CE, M, NativeId>;
|
|
54
|
+
|
|
55
|
+
export const makePgPasswordPersistenceServices = <
|
|
56
|
+
S extends AnyPgTable,
|
|
57
|
+
I extends AnyPgTable,
|
|
58
|
+
C extends AnyPgTable,
|
|
59
|
+
AC extends AnyPgTable,
|
|
60
|
+
A extends AnyPgTable,
|
|
61
|
+
RS extends AnyPgTable,
|
|
62
|
+
CE extends AnyPgTable,
|
|
63
|
+
M extends AnyPgTable,
|
|
64
|
+
NativeId,
|
|
65
|
+
>(
|
|
66
|
+
database: Database,
|
|
67
|
+
mapping: PasswordMapping<S, I, C, AC, A, RS, CE, M, NativeId>,
|
|
68
|
+
proofMapping?: ProofPersistenceMapping<
|
|
69
|
+
any,
|
|
70
|
+
any,
|
|
71
|
+
any,
|
|
72
|
+
any,
|
|
73
|
+
any,
|
|
74
|
+
any,
|
|
75
|
+
any,
|
|
76
|
+
any,
|
|
77
|
+
any,
|
|
78
|
+
any,
|
|
79
|
+
any,
|
|
80
|
+
any
|
|
81
|
+
>,
|
|
82
|
+
) =>
|
|
83
|
+
makeTargetPasswordPersistenceServices(database, mapping, configuration(database), proofMapping);
|
|
84
|
+
|
|
85
|
+
export function coordinatePgPasswordPersistence<
|
|
86
|
+
D extends Database,
|
|
87
|
+
S extends AnyPgTable,
|
|
88
|
+
I extends AnyPgTable,
|
|
89
|
+
C extends AnyPgTable,
|
|
90
|
+
AC extends AnyPgTable,
|
|
91
|
+
A extends AnyPgTable,
|
|
92
|
+
RS extends AnyPgTable,
|
|
93
|
+
CE extends AnyPgTable,
|
|
94
|
+
M extends AnyPgTable,
|
|
95
|
+
NativeId,
|
|
96
|
+
PM extends
|
|
97
|
+
| ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
|
|
98
|
+
| undefined,
|
|
99
|
+
Out,
|
|
100
|
+
E,
|
|
101
|
+
R,
|
|
102
|
+
DatabaseError,
|
|
103
|
+
DatabaseRequirements,
|
|
104
|
+
>(
|
|
105
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
106
|
+
options: {
|
|
107
|
+
readonly mapping: PasswordMapping<S, I, C, AC, A, RS, CE, M, NativeId>;
|
|
108
|
+
readonly proofMapping?: PM;
|
|
109
|
+
readonly transaction?: never;
|
|
110
|
+
},
|
|
111
|
+
body: Effect.Effect<Out, E, R>,
|
|
112
|
+
): Effect.Effect<
|
|
113
|
+
Out,
|
|
114
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
115
|
+
Exclude<R, PasswordPersistence> | LifecycleHooks | DatabaseRequirements
|
|
116
|
+
>;
|
|
117
|
+
|
|
118
|
+
export function coordinatePgPasswordPersistence<
|
|
119
|
+
D extends Database,
|
|
120
|
+
S extends AnyPgTable,
|
|
121
|
+
I extends AnyPgTable,
|
|
122
|
+
C extends AnyPgTable,
|
|
123
|
+
AC extends AnyPgTable,
|
|
124
|
+
A extends AnyPgTable,
|
|
125
|
+
RS extends AnyPgTable,
|
|
126
|
+
CE extends AnyPgTable,
|
|
127
|
+
M extends AnyPgTable,
|
|
128
|
+
NativeId,
|
|
129
|
+
PM extends
|
|
130
|
+
| ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
|
|
131
|
+
| undefined,
|
|
132
|
+
Out,
|
|
133
|
+
E,
|
|
134
|
+
R,
|
|
135
|
+
DatabaseError,
|
|
136
|
+
DatabaseRequirements,
|
|
137
|
+
TxId,
|
|
138
|
+
TxShape,
|
|
139
|
+
>(
|
|
140
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
141
|
+
options: {
|
|
142
|
+
readonly mapping: PasswordMapping<S, I, C, AC, A, RS, CE, M, NativeId>;
|
|
143
|
+
readonly proofMapping?: PM;
|
|
144
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
145
|
+
},
|
|
146
|
+
body: Effect.Effect<Out, E, R>,
|
|
147
|
+
): Effect.Effect<
|
|
148
|
+
Out,
|
|
149
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
150
|
+
Exclude<R, PasswordPersistence | TxId> | LifecycleHooks | DatabaseRequirements
|
|
151
|
+
>;
|
|
152
|
+
|
|
153
|
+
export function coordinatePgPasswordPersistence<
|
|
154
|
+
D extends Database,
|
|
155
|
+
S extends AnyPgTable,
|
|
156
|
+
I extends AnyPgTable,
|
|
157
|
+
C extends AnyPgTable,
|
|
158
|
+
AC extends AnyPgTable,
|
|
159
|
+
A extends AnyPgTable,
|
|
160
|
+
RS extends AnyPgTable,
|
|
161
|
+
CE extends AnyPgTable,
|
|
162
|
+
M extends AnyPgTable,
|
|
163
|
+
NativeId,
|
|
164
|
+
PM extends
|
|
165
|
+
| ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
|
|
166
|
+
| undefined,
|
|
167
|
+
Out,
|
|
168
|
+
E,
|
|
169
|
+
R,
|
|
170
|
+
DatabaseError,
|
|
171
|
+
DatabaseRequirements,
|
|
172
|
+
TxId,
|
|
173
|
+
TxShape,
|
|
174
|
+
>(
|
|
175
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
176
|
+
options: {
|
|
177
|
+
readonly mapping: PasswordMapping<S, I, C, AC, A, RS, CE, M, NativeId>;
|
|
178
|
+
readonly proofMapping?: PM;
|
|
179
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
180
|
+
},
|
|
181
|
+
body: Effect.Effect<Out, E, R>,
|
|
182
|
+
): Effect.Effect<
|
|
183
|
+
Out,
|
|
184
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
185
|
+
Exclude<R, PasswordPersistence> | LifecycleHooks | DatabaseRequirements
|
|
186
|
+
> {
|
|
187
|
+
return Effect.flatMap(acquire, (database) =>
|
|
188
|
+
coordinateTargetPasswordPersistence<TransactionOf<D>, Out, E, Exclude<R, PasswordPersistence>>(
|
|
189
|
+
database,
|
|
190
|
+
options.mapping,
|
|
191
|
+
configuration(database),
|
|
192
|
+
options.proofMapping,
|
|
193
|
+
(
|
|
194
|
+
transaction: TransactionOf<D>,
|
|
195
|
+
services: { readonly passwordPersistence: PasswordPersistence["Service"] },
|
|
196
|
+
) => {
|
|
197
|
+
const provided = Context.make(PasswordPersistence, services.passwordPersistence);
|
|
198
|
+
const work = Effect.provideContext(body, provided);
|
|
199
|
+
|
|
200
|
+
return options.transaction === undefined
|
|
201
|
+
? work
|
|
202
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
203
|
+
},
|
|
204
|
+
),
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export const makePgPasswordRegistrationServices = <
|
|
209
|
+
Registration,
|
|
210
|
+
S extends AnyPgTable,
|
|
211
|
+
I extends AnyPgTable,
|
|
212
|
+
C extends AnyPgTable,
|
|
213
|
+
AC extends AnyPgTable,
|
|
214
|
+
Rq extends AnyPgTable,
|
|
215
|
+
NativeId,
|
|
216
|
+
>(
|
|
217
|
+
database: Database,
|
|
218
|
+
mapping: PasswordRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>,
|
|
219
|
+
) =>
|
|
220
|
+
makeTargetPasswordRegistrationServices<Registration>(database, mapping, configuration(database));
|
|
221
|
+
|
|
222
|
+
export function coordinatePgPasswordRegistration<
|
|
223
|
+
TargetId,
|
|
224
|
+
Registration,
|
|
225
|
+
D extends Database,
|
|
226
|
+
S extends AnyPgTable,
|
|
227
|
+
I extends AnyPgTable,
|
|
228
|
+
C extends AnyPgTable,
|
|
229
|
+
AC extends AnyPgTable,
|
|
230
|
+
Rq extends AnyPgTable,
|
|
231
|
+
NativeId,
|
|
232
|
+
Out,
|
|
233
|
+
E,
|
|
234
|
+
R,
|
|
235
|
+
DatabaseError,
|
|
236
|
+
DatabaseRequirements,
|
|
237
|
+
>(
|
|
238
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
239
|
+
options: {
|
|
240
|
+
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
241
|
+
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
242
|
+
readonly transaction?: never;
|
|
243
|
+
},
|
|
244
|
+
body: Effect.Effect<Out, E, R>,
|
|
245
|
+
): Effect.Effect<
|
|
246
|
+
Out,
|
|
247
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
248
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
249
|
+
>;
|
|
250
|
+
|
|
251
|
+
export function coordinatePgPasswordRegistration<
|
|
252
|
+
TargetId,
|
|
253
|
+
Registration,
|
|
254
|
+
D extends Database,
|
|
255
|
+
S extends AnyPgTable,
|
|
256
|
+
I extends AnyPgTable,
|
|
257
|
+
C extends AnyPgTable,
|
|
258
|
+
AC extends AnyPgTable,
|
|
259
|
+
Rq extends AnyPgTable,
|
|
260
|
+
NativeId,
|
|
261
|
+
Out,
|
|
262
|
+
E,
|
|
263
|
+
R,
|
|
264
|
+
DatabaseError,
|
|
265
|
+
DatabaseRequirements,
|
|
266
|
+
TxId,
|
|
267
|
+
TxShape,
|
|
268
|
+
>(
|
|
269
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
270
|
+
options: {
|
|
271
|
+
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
272
|
+
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
273
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
274
|
+
},
|
|
275
|
+
body: Effect.Effect<Out, E, R>,
|
|
276
|
+
): Effect.Effect<
|
|
277
|
+
Out,
|
|
278
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
279
|
+
Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
|
|
280
|
+
>;
|
|
281
|
+
|
|
282
|
+
export function coordinatePgPasswordRegistration<
|
|
283
|
+
TargetId,
|
|
284
|
+
Registration,
|
|
285
|
+
D extends Database,
|
|
286
|
+
S extends AnyPgTable,
|
|
287
|
+
I extends AnyPgTable,
|
|
288
|
+
C extends AnyPgTable,
|
|
289
|
+
AC extends AnyPgTable,
|
|
290
|
+
Rq extends AnyPgTable,
|
|
291
|
+
NativeId,
|
|
292
|
+
Out,
|
|
293
|
+
E,
|
|
294
|
+
R,
|
|
295
|
+
DatabaseError,
|
|
296
|
+
DatabaseRequirements,
|
|
297
|
+
TxId,
|
|
298
|
+
TxShape,
|
|
299
|
+
>(
|
|
300
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
301
|
+
options: {
|
|
302
|
+
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
303
|
+
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
304
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
305
|
+
},
|
|
306
|
+
body: Effect.Effect<Out, E, R>,
|
|
307
|
+
): Effect.Effect<
|
|
308
|
+
Out,
|
|
309
|
+
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
310
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
311
|
+
> {
|
|
312
|
+
return Effect.flatMap(acquire, (database) =>
|
|
313
|
+
coordinateTargetPasswordRegistration<
|
|
314
|
+
Registration,
|
|
315
|
+
TransactionOf<D>,
|
|
316
|
+
Out,
|
|
317
|
+
E,
|
|
318
|
+
Exclude<R, TargetId>
|
|
319
|
+
>(
|
|
320
|
+
database,
|
|
321
|
+
options.mapping,
|
|
322
|
+
configuration(database),
|
|
323
|
+
(
|
|
324
|
+
transaction: TransactionOf<D>,
|
|
325
|
+
services: { readonly registrationAuthority: PasswordRegistrationAuthority<Registration> },
|
|
326
|
+
) => {
|
|
327
|
+
const provided = Context.make(options.target, services.registrationAuthority);
|
|
328
|
+
const work = Effect.provideContext(body, provided);
|
|
329
|
+
|
|
330
|
+
return options.transaction === undefined
|
|
331
|
+
? work
|
|
332
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
333
|
+
},
|
|
334
|
+
),
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export { configuration as pgPasswordConfiguration };
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
2
|
+
import { type ProofUnavailable, ProofPersistence } from "@yielded/auth/Proofs";
|
|
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 { ProofPersistenceMapping } from "./proof-model";
|
|
11
|
+
import type { ProofSqlQuery } from "./proof-sql";
|
|
12
|
+
import {
|
|
13
|
+
coordinateTargetProofPersistence,
|
|
14
|
+
makeTargetProofPersistenceServices,
|
|
15
|
+
sqlClientProofStandaloneGuard,
|
|
16
|
+
} from "./proof-target";
|
|
17
|
+
import type { SuppliedService } from "./SuppliedService";
|
|
18
|
+
|
|
19
|
+
type Database = PostgresDatabase<AnyRelations> | PgliteDatabase<AnyRelations>;
|
|
20
|
+
type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
|
|
21
|
+
type Mapping<
|
|
22
|
+
Request extends AnyPgTable,
|
|
23
|
+
Series extends AnyPgTable,
|
|
24
|
+
Generation extends AnyPgTable,
|
|
25
|
+
Continuation extends AnyPgTable,
|
|
26
|
+
RateScope extends AnyPgTable,
|
|
27
|
+
AbuseEvent extends AnyPgTable,
|
|
28
|
+
FailureEvent extends AnyPgTable,
|
|
29
|
+
Command extends AnyPgTable,
|
|
30
|
+
Subject extends AnyPgTable,
|
|
31
|
+
Identifier extends AnyPgTable,
|
|
32
|
+
Credential extends AnyPgTable,
|
|
33
|
+
NativeSubjectId,
|
|
34
|
+
> = ProofPersistenceMapping<
|
|
35
|
+
Request,
|
|
36
|
+
Series,
|
|
37
|
+
Generation,
|
|
38
|
+
Continuation,
|
|
39
|
+
RateScope,
|
|
40
|
+
AbuseEvent,
|
|
41
|
+
FailureEvent,
|
|
42
|
+
Command,
|
|
43
|
+
Subject,
|
|
44
|
+
Identifier,
|
|
45
|
+
Credential,
|
|
46
|
+
NativeSubjectId
|
|
47
|
+
>;
|
|
48
|
+
|
|
49
|
+
const configuration = (database: Database) => ({
|
|
50
|
+
mode: "interactive" as const,
|
|
51
|
+
locking: true,
|
|
52
|
+
standaloneGuard: sqlClientProofStandaloneGuard(database),
|
|
53
|
+
insertIfAbsent: (query: ProofSqlQuery) => query.onConflictDoNothing(),
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export const makePgProofPersistenceServices = <
|
|
57
|
+
Rq extends AnyPgTable,
|
|
58
|
+
S extends AnyPgTable,
|
|
59
|
+
G extends AnyPgTable,
|
|
60
|
+
Cn extends AnyPgTable,
|
|
61
|
+
Rs extends AnyPgTable,
|
|
62
|
+
A extends AnyPgTable,
|
|
63
|
+
F extends AnyPgTable,
|
|
64
|
+
C extends AnyPgTable,
|
|
65
|
+
Sub extends AnyPgTable,
|
|
66
|
+
I extends AnyPgTable,
|
|
67
|
+
Cr extends AnyPgTable,
|
|
68
|
+
NativeId,
|
|
69
|
+
>(
|
|
70
|
+
database: Database,
|
|
71
|
+
mapping: Mapping<Rq, S, G, Cn, Rs, A, F, C, Sub, I, Cr, NativeId>,
|
|
72
|
+
) => makeTargetProofPersistenceServices(database, mapping, configuration(database));
|
|
73
|
+
|
|
74
|
+
export function coordinatePgProofPersistence<
|
|
75
|
+
D extends Database,
|
|
76
|
+
Rq extends AnyPgTable,
|
|
77
|
+
S extends AnyPgTable,
|
|
78
|
+
G extends AnyPgTable,
|
|
79
|
+
Cn extends AnyPgTable,
|
|
80
|
+
Rs extends AnyPgTable,
|
|
81
|
+
Aev extends AnyPgTable,
|
|
82
|
+
F extends AnyPgTable,
|
|
83
|
+
C extends AnyPgTable,
|
|
84
|
+
Sub extends AnyPgTable,
|
|
85
|
+
I extends AnyPgTable,
|
|
86
|
+
Cr extends AnyPgTable,
|
|
87
|
+
NativeId,
|
|
88
|
+
A,
|
|
89
|
+
E,
|
|
90
|
+
R,
|
|
91
|
+
DatabaseError,
|
|
92
|
+
DatabaseRequirements,
|
|
93
|
+
>(
|
|
94
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
95
|
+
options: {
|
|
96
|
+
readonly mapping: Mapping<Rq, S, G, Cn, Rs, Aev, F, C, Sub, I, Cr, NativeId>;
|
|
97
|
+
readonly transaction?: never;
|
|
98
|
+
},
|
|
99
|
+
body: Effect.Effect<A, E, R>,
|
|
100
|
+
): Effect.Effect<
|
|
101
|
+
A,
|
|
102
|
+
E | ProofUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
103
|
+
Exclude<R, ProofPersistence> | LifecycleHooks | DatabaseRequirements
|
|
104
|
+
>;
|
|
105
|
+
|
|
106
|
+
export function coordinatePgProofPersistence<
|
|
107
|
+
D extends Database,
|
|
108
|
+
Rq extends AnyPgTable,
|
|
109
|
+
S extends AnyPgTable,
|
|
110
|
+
G extends AnyPgTable,
|
|
111
|
+
Cn extends AnyPgTable,
|
|
112
|
+
Rs extends AnyPgTable,
|
|
113
|
+
Aev extends AnyPgTable,
|
|
114
|
+
F extends AnyPgTable,
|
|
115
|
+
C extends AnyPgTable,
|
|
116
|
+
Sub extends AnyPgTable,
|
|
117
|
+
I extends AnyPgTable,
|
|
118
|
+
Cr extends AnyPgTable,
|
|
119
|
+
NativeId,
|
|
120
|
+
A,
|
|
121
|
+
E,
|
|
122
|
+
R,
|
|
123
|
+
DatabaseError,
|
|
124
|
+
DatabaseRequirements,
|
|
125
|
+
TxId,
|
|
126
|
+
TxShape,
|
|
127
|
+
>(
|
|
128
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
129
|
+
options: {
|
|
130
|
+
readonly mapping: Mapping<Rq, S, G, Cn, Rs, Aev, F, C, Sub, I, Cr, NativeId>;
|
|
131
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
132
|
+
},
|
|
133
|
+
body: Effect.Effect<A, E, R>,
|
|
134
|
+
): Effect.Effect<
|
|
135
|
+
A,
|
|
136
|
+
E | ProofUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
137
|
+
Exclude<R, ProofPersistence | TxId> | LifecycleHooks | DatabaseRequirements
|
|
138
|
+
>;
|
|
139
|
+
|
|
140
|
+
export function coordinatePgProofPersistence<
|
|
141
|
+
D extends Database,
|
|
142
|
+
Rq extends AnyPgTable,
|
|
143
|
+
S extends AnyPgTable,
|
|
144
|
+
G extends AnyPgTable,
|
|
145
|
+
Cn extends AnyPgTable,
|
|
146
|
+
Rs extends AnyPgTable,
|
|
147
|
+
Aev extends AnyPgTable,
|
|
148
|
+
F extends AnyPgTable,
|
|
149
|
+
C extends AnyPgTable,
|
|
150
|
+
Sub extends AnyPgTable,
|
|
151
|
+
I extends AnyPgTable,
|
|
152
|
+
Cr extends AnyPgTable,
|
|
153
|
+
NativeId,
|
|
154
|
+
A,
|
|
155
|
+
E,
|
|
156
|
+
R,
|
|
157
|
+
DatabaseError,
|
|
158
|
+
DatabaseRequirements,
|
|
159
|
+
TxId,
|
|
160
|
+
TxShape,
|
|
161
|
+
>(
|
|
162
|
+
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
163
|
+
options: {
|
|
164
|
+
readonly mapping: Mapping<Rq, S, G, Cn, Rs, Aev, F, C, Sub, I, Cr, NativeId>;
|
|
165
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
166
|
+
},
|
|
167
|
+
body: Effect.Effect<A, E, R>,
|
|
168
|
+
): Effect.Effect<
|
|
169
|
+
A,
|
|
170
|
+
E | ProofUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
171
|
+
Exclude<R, ProofPersistence> | LifecycleHooks | DatabaseRequirements
|
|
172
|
+
> {
|
|
173
|
+
return Effect.flatMap(acquire, (database) =>
|
|
174
|
+
coordinateTargetProofPersistence<TransactionOf<D>, A, E, Exclude<R, ProofPersistence>>(
|
|
175
|
+
database,
|
|
176
|
+
options.mapping,
|
|
177
|
+
configuration(database),
|
|
178
|
+
(
|
|
179
|
+
transaction: TransactionOf<D>,
|
|
180
|
+
services: { readonly proofPersistence: ProofPersistence["Service"] },
|
|
181
|
+
) => {
|
|
182
|
+
const provided = Context.make(ProofPersistence, services.proofPersistence);
|
|
183
|
+
const work = Effect.provideContext(body, provided);
|
|
184
|
+
|
|
185
|
+
return options.transaction === undefined
|
|
186
|
+
? work
|
|
187
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
188
|
+
},
|
|
189
|
+
),
|
|
190
|
+
);
|
|
191
|
+
}
|