@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,971 @@
|
|
|
1
|
+
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
2
|
+
import {
|
|
3
|
+
AuthenticationAuthority,
|
|
4
|
+
type SessionUnavailable,
|
|
5
|
+
type PendingAuthentication,
|
|
6
|
+
type SessionRepository,
|
|
7
|
+
type SignedSessionValidity,
|
|
8
|
+
type StatefulSessionPersistence,
|
|
9
|
+
type SessionStepUpPersistence,
|
|
10
|
+
} from "@yielded/auth/Sessions";
|
|
11
|
+
import type { AnyRelations } from "drizzle-orm";
|
|
12
|
+
import type { EffectLibsqlDatabase } from "drizzle-orm/effect-libsql";
|
|
13
|
+
import type { EffectSQLiteBunDatabase } from "drizzle-orm/effect-sqlite-bun";
|
|
14
|
+
import type { EffectSQLiteDoDatabase } from "drizzle-orm/effect-sqlite-do";
|
|
15
|
+
import type { EffectSQLiteNodeDatabase } from "drizzle-orm/effect-sqlite-node";
|
|
16
|
+
import type { EffectSQLiteWasmDatabase } from "drizzle-orm/effect-sqlite-wasm";
|
|
17
|
+
import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
|
|
18
|
+
import { Context, Effect } from "effect";
|
|
19
|
+
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
20
|
+
|
|
21
|
+
import type {
|
|
22
|
+
AuthenticationAuthorityMapping,
|
|
23
|
+
PendingAuthenticationMapping,
|
|
24
|
+
SignedSessionValidityMapping,
|
|
25
|
+
StatefulSessionMapping,
|
|
26
|
+
} from "./session-model";
|
|
27
|
+
import {
|
|
28
|
+
coordinateTargetAuthenticationAuthority,
|
|
29
|
+
coordinateTargetPendingAuthentication,
|
|
30
|
+
coordinateTargetSignedSessionValidity,
|
|
31
|
+
coordinateTargetStatefulSessions,
|
|
32
|
+
makeTargetAuthenticationAuthorityServices,
|
|
33
|
+
makeTargetPendingAuthenticationServices,
|
|
34
|
+
makeTargetSignedSessionValidityServices,
|
|
35
|
+
makeTargetStatefulSessionServices,
|
|
36
|
+
type SessionTargetConfiguration,
|
|
37
|
+
makeTargetSessionStepUpServices,
|
|
38
|
+
coordinateTargetSessionStepUp,
|
|
39
|
+
} from "./session-target";
|
|
40
|
+
import type { SuppliedService } from "./SuppliedService";
|
|
41
|
+
|
|
42
|
+
type Database =
|
|
43
|
+
| EffectLibsqlDatabase<AnyRelations>
|
|
44
|
+
| EffectSQLiteBunDatabase<AnyRelations>
|
|
45
|
+
| EffectSQLiteDoDatabase<AnyRelations>
|
|
46
|
+
| EffectSQLiteNodeDatabase<AnyRelations>
|
|
47
|
+
| EffectSQLiteWasmDatabase<AnyRelations>;
|
|
48
|
+
type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
|
|
49
|
+
|
|
50
|
+
export const sqliteSessionConfiguration = (
|
|
51
|
+
mode: "interactive" | "synchronous",
|
|
52
|
+
standaloneGuard: Effect.Effect<void, SessionUnavailable>,
|
|
53
|
+
coordinatorGuard?: Effect.Effect<void, SessionUnavailable>,
|
|
54
|
+
): SessionTargetConfiguration => ({
|
|
55
|
+
mode,
|
|
56
|
+
locking: false,
|
|
57
|
+
standaloneGuard,
|
|
58
|
+
...(coordinatorGuard === undefined ? {} : { coordinatorGuard }),
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
export const makeSqliteAuthenticationAuthorityServices = <
|
|
62
|
+
Claims,
|
|
63
|
+
S extends AnySQLiteTable,
|
|
64
|
+
C extends AnySQLiteTable,
|
|
65
|
+
F extends AnySQLiteTable,
|
|
66
|
+
P extends AnySQLiteTable,
|
|
67
|
+
NativeId,
|
|
68
|
+
>(
|
|
69
|
+
database: Database,
|
|
70
|
+
mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>,
|
|
71
|
+
configuration: SessionTargetConfiguration,
|
|
72
|
+
) => makeTargetAuthenticationAuthorityServices<Claims>(database, mapping, configuration);
|
|
73
|
+
|
|
74
|
+
export const makeSqlitePendingAuthenticationServices = <
|
|
75
|
+
Claims,
|
|
76
|
+
S extends AnySQLiteTable,
|
|
77
|
+
C extends AnySQLiteTable,
|
|
78
|
+
P extends AnySQLiteTable,
|
|
79
|
+
F extends AnySQLiteTable,
|
|
80
|
+
NativeId,
|
|
81
|
+
>(
|
|
82
|
+
database: Database,
|
|
83
|
+
mapping: PendingAuthenticationMapping<Claims, S, C, P, F, NativeId>,
|
|
84
|
+
configuration: SessionTargetConfiguration,
|
|
85
|
+
) => makeTargetPendingAuthenticationServices<Claims>(database, mapping, configuration);
|
|
86
|
+
|
|
87
|
+
export const makeSqliteStatefulSessionServices = <
|
|
88
|
+
Claims,
|
|
89
|
+
S extends AnySQLiteTable,
|
|
90
|
+
C extends AnySQLiteTable,
|
|
91
|
+
Session extends AnySQLiteTable,
|
|
92
|
+
F extends AnySQLiteTable,
|
|
93
|
+
P extends AnySQLiteTable,
|
|
94
|
+
NativeId,
|
|
95
|
+
NativeSessionId,
|
|
96
|
+
>(
|
|
97
|
+
database: Database,
|
|
98
|
+
mapping: StatefulSessionMapping<Claims, S, C, Session, F, P, NativeId, NativeSessionId>,
|
|
99
|
+
configuration: SessionTargetConfiguration,
|
|
100
|
+
) => makeTargetStatefulSessionServices<Claims>(database, mapping, configuration);
|
|
101
|
+
|
|
102
|
+
export const makeSqliteSignedSessionValidityServices = <
|
|
103
|
+
S extends AnySQLiteTable,
|
|
104
|
+
T extends AnySQLiteTable,
|
|
105
|
+
NativeId,
|
|
106
|
+
NativeSessionId,
|
|
107
|
+
>(
|
|
108
|
+
database: Database,
|
|
109
|
+
mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>,
|
|
110
|
+
configuration: SessionTargetConfiguration,
|
|
111
|
+
) => makeTargetSignedSessionValidityServices(database, mapping, configuration);
|
|
112
|
+
|
|
113
|
+
export const coordinateSqliteAuthenticationAuthority = <
|
|
114
|
+
Claims,
|
|
115
|
+
D extends Database,
|
|
116
|
+
S extends AnySQLiteTable,
|
|
117
|
+
C extends AnySQLiteTable,
|
|
118
|
+
F extends AnySQLiteTable,
|
|
119
|
+
P extends AnySQLiteTable,
|
|
120
|
+
NativeId,
|
|
121
|
+
A,
|
|
122
|
+
E,
|
|
123
|
+
R,
|
|
124
|
+
>(
|
|
125
|
+
database: D,
|
|
126
|
+
mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>,
|
|
127
|
+
configuration: SessionTargetConfiguration,
|
|
128
|
+
owner: (
|
|
129
|
+
transaction: TransactionOf<D>,
|
|
130
|
+
services: { readonly authenticationAuthority: AuthenticationAuthority["Service"] },
|
|
131
|
+
) => Effect.Effect<A, E, R>,
|
|
132
|
+
) =>
|
|
133
|
+
coordinateTargetAuthenticationAuthority<Claims, TransactionOf<D>, A, E, R>(
|
|
134
|
+
database,
|
|
135
|
+
mapping,
|
|
136
|
+
configuration,
|
|
137
|
+
owner,
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
export const coordinateSqlitePendingAuthentication = <
|
|
141
|
+
Claims,
|
|
142
|
+
D extends Database,
|
|
143
|
+
S extends AnySQLiteTable,
|
|
144
|
+
C extends AnySQLiteTable,
|
|
145
|
+
P extends AnySQLiteTable,
|
|
146
|
+
F extends AnySQLiteTable,
|
|
147
|
+
NativeId,
|
|
148
|
+
A,
|
|
149
|
+
E,
|
|
150
|
+
R,
|
|
151
|
+
>(
|
|
152
|
+
database: D,
|
|
153
|
+
mapping: PendingAuthenticationMapping<Claims, S, C, P, F, NativeId>,
|
|
154
|
+
configuration: SessionTargetConfiguration,
|
|
155
|
+
owner: (
|
|
156
|
+
transaction: TransactionOf<D>,
|
|
157
|
+
services: { readonly pendingAuthentication: PendingAuthentication<Claims> },
|
|
158
|
+
) => Effect.Effect<A, E, R>,
|
|
159
|
+
) =>
|
|
160
|
+
coordinateTargetPendingAuthentication<Claims, TransactionOf<D>, A, E, R>(
|
|
161
|
+
database,
|
|
162
|
+
mapping,
|
|
163
|
+
configuration,
|
|
164
|
+
owner,
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
export const coordinateSqliteStatefulSessions = <
|
|
168
|
+
Claims,
|
|
169
|
+
D extends Database,
|
|
170
|
+
S extends AnySQLiteTable,
|
|
171
|
+
C extends AnySQLiteTable,
|
|
172
|
+
Session extends AnySQLiteTable,
|
|
173
|
+
F extends AnySQLiteTable,
|
|
174
|
+
P extends AnySQLiteTable,
|
|
175
|
+
NativeId,
|
|
176
|
+
NativeSessionId,
|
|
177
|
+
A,
|
|
178
|
+
E,
|
|
179
|
+
R,
|
|
180
|
+
>(
|
|
181
|
+
database: D,
|
|
182
|
+
mapping: StatefulSessionMapping<Claims, S, C, Session, F, P, NativeId, NativeSessionId>,
|
|
183
|
+
configuration: SessionTargetConfiguration,
|
|
184
|
+
owner: (
|
|
185
|
+
transaction: TransactionOf<D>,
|
|
186
|
+
services: {
|
|
187
|
+
readonly statefulSessionPersistence: StatefulSessionPersistence<Claims>;
|
|
188
|
+
readonly sessionRepository: SessionRepository;
|
|
189
|
+
},
|
|
190
|
+
) => Effect.Effect<A, E, R>,
|
|
191
|
+
) =>
|
|
192
|
+
coordinateTargetStatefulSessions<Claims, TransactionOf<D>, A, E, R>(
|
|
193
|
+
database,
|
|
194
|
+
mapping,
|
|
195
|
+
configuration,
|
|
196
|
+
owner,
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
export const coordinateSqliteSignedSessionValidity = <
|
|
200
|
+
D extends Database,
|
|
201
|
+
S extends AnySQLiteTable,
|
|
202
|
+
T extends AnySQLiteTable,
|
|
203
|
+
NativeId,
|
|
204
|
+
NativeSessionId,
|
|
205
|
+
A,
|
|
206
|
+
E,
|
|
207
|
+
R,
|
|
208
|
+
>(
|
|
209
|
+
database: D,
|
|
210
|
+
mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>,
|
|
211
|
+
configuration: SessionTargetConfiguration,
|
|
212
|
+
owner: (
|
|
213
|
+
transaction: TransactionOf<D>,
|
|
214
|
+
services: { readonly signedSessionValidity: SignedSessionValidity },
|
|
215
|
+
) => Effect.Effect<A, E, R>,
|
|
216
|
+
) =>
|
|
217
|
+
coordinateTargetSignedSessionValidity<TransactionOf<D>, A, E, R>(
|
|
218
|
+
database,
|
|
219
|
+
mapping,
|
|
220
|
+
configuration,
|
|
221
|
+
owner,
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
export const makeSqliteSessionTarget = <D extends Database, Synchronous extends boolean = false>(
|
|
225
|
+
configuration: SessionTargetConfiguration | ((database: D) => SessionTargetConfiguration),
|
|
226
|
+
) => {
|
|
227
|
+
const configurationFor = (database: D) =>
|
|
228
|
+
typeof configuration === "function" ? configuration(database) : configuration;
|
|
229
|
+
|
|
230
|
+
function coordinateSessionStepUp<
|
|
231
|
+
Database extends D,
|
|
232
|
+
Claims,
|
|
233
|
+
Id,
|
|
234
|
+
S extends AnySQLiteTable,
|
|
235
|
+
C extends AnySQLiteTable,
|
|
236
|
+
I extends AnySQLiteTable,
|
|
237
|
+
Session extends AnySQLiteTable,
|
|
238
|
+
T extends AnySQLiteTable,
|
|
239
|
+
NativeId,
|
|
240
|
+
NativeSessionId,
|
|
241
|
+
A,
|
|
242
|
+
E,
|
|
243
|
+
R,
|
|
244
|
+
DatabaseError,
|
|
245
|
+
DatabaseRequirements,
|
|
246
|
+
>(
|
|
247
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
248
|
+
options: {
|
|
249
|
+
readonly mapping: SessionStepUpMapping<
|
|
250
|
+
NoInfer<Claims>,
|
|
251
|
+
S,
|
|
252
|
+
C,
|
|
253
|
+
I,
|
|
254
|
+
Session,
|
|
255
|
+
T,
|
|
256
|
+
NativeId,
|
|
257
|
+
NativeSessionId
|
|
258
|
+
>;
|
|
259
|
+
readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
|
|
260
|
+
readonly transaction?: never;
|
|
261
|
+
},
|
|
262
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<Id> : R>,
|
|
263
|
+
): Effect.Effect<
|
|
264
|
+
A,
|
|
265
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
266
|
+
(Synchronous extends true ? never : Exclude<R, Id>) | LifecycleHooks | DatabaseRequirements
|
|
267
|
+
>;
|
|
268
|
+
function coordinateSessionStepUp<
|
|
269
|
+
Database extends D,
|
|
270
|
+
Claims,
|
|
271
|
+
Id,
|
|
272
|
+
S extends AnySQLiteTable,
|
|
273
|
+
C extends AnySQLiteTable,
|
|
274
|
+
I extends AnySQLiteTable,
|
|
275
|
+
Session extends AnySQLiteTable,
|
|
276
|
+
T extends AnySQLiteTable,
|
|
277
|
+
NativeId,
|
|
278
|
+
NativeSessionId,
|
|
279
|
+
A,
|
|
280
|
+
E,
|
|
281
|
+
R,
|
|
282
|
+
DatabaseError,
|
|
283
|
+
DatabaseRequirements,
|
|
284
|
+
TxId,
|
|
285
|
+
TxShape,
|
|
286
|
+
>(
|
|
287
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
288
|
+
options: {
|
|
289
|
+
readonly mapping: SessionStepUpMapping<
|
|
290
|
+
NoInfer<Claims>,
|
|
291
|
+
S,
|
|
292
|
+
C,
|
|
293
|
+
I,
|
|
294
|
+
Session,
|
|
295
|
+
T,
|
|
296
|
+
NativeId,
|
|
297
|
+
NativeSessionId
|
|
298
|
+
>;
|
|
299
|
+
readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
|
|
300
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
301
|
+
},
|
|
302
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<Id | TxId> : R>,
|
|
303
|
+
): Effect.Effect<
|
|
304
|
+
A,
|
|
305
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
306
|
+
| (Synchronous extends true ? never : Exclude<R, Id | TxId>)
|
|
307
|
+
| LifecycleHooks
|
|
308
|
+
| DatabaseRequirements
|
|
309
|
+
>;
|
|
310
|
+
function coordinateSessionStepUp<
|
|
311
|
+
Database extends D,
|
|
312
|
+
Claims,
|
|
313
|
+
Id,
|
|
314
|
+
S extends AnySQLiteTable,
|
|
315
|
+
C extends AnySQLiteTable,
|
|
316
|
+
I extends AnySQLiteTable,
|
|
317
|
+
Session extends AnySQLiteTable,
|
|
318
|
+
T extends AnySQLiteTable,
|
|
319
|
+
NativeId,
|
|
320
|
+
NativeSessionId,
|
|
321
|
+
A,
|
|
322
|
+
E,
|
|
323
|
+
R,
|
|
324
|
+
DatabaseError,
|
|
325
|
+
DatabaseRequirements,
|
|
326
|
+
TxId,
|
|
327
|
+
TxShape,
|
|
328
|
+
>(
|
|
329
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
330
|
+
options: {
|
|
331
|
+
readonly mapping: SessionStepUpMapping<
|
|
332
|
+
NoInfer<Claims>,
|
|
333
|
+
S,
|
|
334
|
+
C,
|
|
335
|
+
I,
|
|
336
|
+
Session,
|
|
337
|
+
T,
|
|
338
|
+
NativeId,
|
|
339
|
+
NativeSessionId
|
|
340
|
+
>;
|
|
341
|
+
readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
|
|
342
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
343
|
+
},
|
|
344
|
+
body: Effect.Effect<A, E, R>,
|
|
345
|
+
): Effect.Effect<
|
|
346
|
+
A,
|
|
347
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
348
|
+
Exclude<R, Id> | LifecycleHooks | DatabaseRequirements
|
|
349
|
+
> {
|
|
350
|
+
return Effect.flatMap(acquire, (database) =>
|
|
351
|
+
coordinateSqliteSessionStepUp(
|
|
352
|
+
database,
|
|
353
|
+
options.mapping,
|
|
354
|
+
options.target,
|
|
355
|
+
configurationFor(database),
|
|
356
|
+
(
|
|
357
|
+
transaction: TransactionOf<Database>,
|
|
358
|
+
services: { readonly sessionStepUpPersistence: SessionStepUpPersistence<Claims> },
|
|
359
|
+
) => {
|
|
360
|
+
const provided = Context.make(options.target, services.sessionStepUpPersistence);
|
|
361
|
+
const work = Effect.provideContext(body, provided);
|
|
362
|
+
|
|
363
|
+
return options.transaction === undefined
|
|
364
|
+
? work
|
|
365
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
366
|
+
},
|
|
367
|
+
),
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
function coordinateAuthenticationAuthority<
|
|
371
|
+
Database extends D,
|
|
372
|
+
Claims,
|
|
373
|
+
S extends AnySQLiteTable,
|
|
374
|
+
C extends AnySQLiteTable,
|
|
375
|
+
F extends AnySQLiteTable,
|
|
376
|
+
P extends AnySQLiteTable,
|
|
377
|
+
NativeId,
|
|
378
|
+
A,
|
|
379
|
+
E,
|
|
380
|
+
R,
|
|
381
|
+
DatabaseError,
|
|
382
|
+
DatabaseRequirements,
|
|
383
|
+
>(
|
|
384
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
385
|
+
options: {
|
|
386
|
+
readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
|
|
387
|
+
readonly transaction?: never;
|
|
388
|
+
},
|
|
389
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<AuthenticationAuthority> : R>,
|
|
390
|
+
): Effect.Effect<
|
|
391
|
+
A,
|
|
392
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
393
|
+
| (Synchronous extends true ? never : Exclude<R, AuthenticationAuthority>)
|
|
394
|
+
| LifecycleHooks
|
|
395
|
+
| DatabaseRequirements
|
|
396
|
+
>;
|
|
397
|
+
function coordinateAuthenticationAuthority<
|
|
398
|
+
Database extends D,
|
|
399
|
+
Claims,
|
|
400
|
+
S extends AnySQLiteTable,
|
|
401
|
+
C extends AnySQLiteTable,
|
|
402
|
+
F extends AnySQLiteTable,
|
|
403
|
+
P extends AnySQLiteTable,
|
|
404
|
+
NativeId,
|
|
405
|
+
A,
|
|
406
|
+
E,
|
|
407
|
+
R,
|
|
408
|
+
DatabaseError,
|
|
409
|
+
DatabaseRequirements,
|
|
410
|
+
TxId,
|
|
411
|
+
TxShape,
|
|
412
|
+
>(
|
|
413
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
414
|
+
options: {
|
|
415
|
+
readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
|
|
416
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
417
|
+
},
|
|
418
|
+
body: Effect.Effect<
|
|
419
|
+
A,
|
|
420
|
+
E,
|
|
421
|
+
Synchronous extends true ? NoInfer<AuthenticationAuthority | TxId> : R
|
|
422
|
+
>,
|
|
423
|
+
): Effect.Effect<
|
|
424
|
+
A,
|
|
425
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
426
|
+
| (Synchronous extends true ? never : Exclude<R, AuthenticationAuthority | TxId>)
|
|
427
|
+
| LifecycleHooks
|
|
428
|
+
| DatabaseRequirements
|
|
429
|
+
>;
|
|
430
|
+
function coordinateAuthenticationAuthority<
|
|
431
|
+
Database extends D,
|
|
432
|
+
Claims,
|
|
433
|
+
S extends AnySQLiteTable,
|
|
434
|
+
C extends AnySQLiteTable,
|
|
435
|
+
F extends AnySQLiteTable,
|
|
436
|
+
P extends AnySQLiteTable,
|
|
437
|
+
NativeId,
|
|
438
|
+
A,
|
|
439
|
+
E,
|
|
440
|
+
R,
|
|
441
|
+
DatabaseError,
|
|
442
|
+
DatabaseRequirements,
|
|
443
|
+
TxId,
|
|
444
|
+
TxShape,
|
|
445
|
+
>(
|
|
446
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
447
|
+
options: {
|
|
448
|
+
readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
|
|
449
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
450
|
+
},
|
|
451
|
+
body: Effect.Effect<A, E, R>,
|
|
452
|
+
): Effect.Effect<
|
|
453
|
+
A,
|
|
454
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
455
|
+
Exclude<R, AuthenticationAuthority> | LifecycleHooks | DatabaseRequirements
|
|
456
|
+
> {
|
|
457
|
+
return Effect.flatMap(acquire, (database) =>
|
|
458
|
+
coordinateSqliteAuthenticationAuthority(
|
|
459
|
+
database,
|
|
460
|
+
options.mapping,
|
|
461
|
+
configurationFor(database),
|
|
462
|
+
(
|
|
463
|
+
transaction: TransactionOf<Database>,
|
|
464
|
+
services: { readonly authenticationAuthority: AuthenticationAuthority["Service"] },
|
|
465
|
+
) => {
|
|
466
|
+
const provided = Context.make(AuthenticationAuthority, services.authenticationAuthority);
|
|
467
|
+
const work = Effect.provideContext(body, provided);
|
|
468
|
+
|
|
469
|
+
return options.transaction === undefined
|
|
470
|
+
? work
|
|
471
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
472
|
+
},
|
|
473
|
+
),
|
|
474
|
+
);
|
|
475
|
+
}
|
|
476
|
+
function coordinatePendingAuthentication<
|
|
477
|
+
Database extends D,
|
|
478
|
+
TargetId,
|
|
479
|
+
Claims,
|
|
480
|
+
S extends AnySQLiteTable,
|
|
481
|
+
C extends AnySQLiteTable,
|
|
482
|
+
P extends AnySQLiteTable,
|
|
483
|
+
F extends AnySQLiteTable,
|
|
484
|
+
NativeId,
|
|
485
|
+
A,
|
|
486
|
+
E,
|
|
487
|
+
R,
|
|
488
|
+
DatabaseError,
|
|
489
|
+
DatabaseRequirements,
|
|
490
|
+
>(
|
|
491
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
492
|
+
options: {
|
|
493
|
+
readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
|
|
494
|
+
readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
|
|
495
|
+
readonly transaction?: never;
|
|
496
|
+
},
|
|
497
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId> : R>,
|
|
498
|
+
): Effect.Effect<
|
|
499
|
+
A,
|
|
500
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
501
|
+
| (Synchronous extends true ? never : Exclude<R, TargetId>)
|
|
502
|
+
| LifecycleHooks
|
|
503
|
+
| DatabaseRequirements
|
|
504
|
+
>;
|
|
505
|
+
function coordinatePendingAuthentication<
|
|
506
|
+
Database extends D,
|
|
507
|
+
TargetId,
|
|
508
|
+
Claims,
|
|
509
|
+
S extends AnySQLiteTable,
|
|
510
|
+
C extends AnySQLiteTable,
|
|
511
|
+
P extends AnySQLiteTable,
|
|
512
|
+
F extends AnySQLiteTable,
|
|
513
|
+
NativeId,
|
|
514
|
+
A,
|
|
515
|
+
E,
|
|
516
|
+
R,
|
|
517
|
+
DatabaseError,
|
|
518
|
+
DatabaseRequirements,
|
|
519
|
+
TxId,
|
|
520
|
+
TxShape,
|
|
521
|
+
>(
|
|
522
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
523
|
+
options: {
|
|
524
|
+
readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
|
|
525
|
+
readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
|
|
526
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
527
|
+
},
|
|
528
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,
|
|
529
|
+
): Effect.Effect<
|
|
530
|
+
A,
|
|
531
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
532
|
+
| (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)
|
|
533
|
+
| LifecycleHooks
|
|
534
|
+
| DatabaseRequirements
|
|
535
|
+
>;
|
|
536
|
+
function coordinatePendingAuthentication<
|
|
537
|
+
Database extends D,
|
|
538
|
+
TargetId,
|
|
539
|
+
Claims,
|
|
540
|
+
S extends AnySQLiteTable,
|
|
541
|
+
C extends AnySQLiteTable,
|
|
542
|
+
P extends AnySQLiteTable,
|
|
543
|
+
F extends AnySQLiteTable,
|
|
544
|
+
NativeId,
|
|
545
|
+
A,
|
|
546
|
+
E,
|
|
547
|
+
R,
|
|
548
|
+
DatabaseError,
|
|
549
|
+
DatabaseRequirements,
|
|
550
|
+
TxId,
|
|
551
|
+
TxShape,
|
|
552
|
+
>(
|
|
553
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
554
|
+
options: {
|
|
555
|
+
readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
|
|
556
|
+
readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
|
|
557
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
558
|
+
},
|
|
559
|
+
body: Effect.Effect<A, E, R>,
|
|
560
|
+
): Effect.Effect<
|
|
561
|
+
A,
|
|
562
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
563
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
564
|
+
> {
|
|
565
|
+
return Effect.flatMap(acquire, (database) =>
|
|
566
|
+
coordinateSqlitePendingAuthentication(
|
|
567
|
+
database,
|
|
568
|
+
options.mapping,
|
|
569
|
+
configurationFor(database),
|
|
570
|
+
(
|
|
571
|
+
transaction: TransactionOf<Database>,
|
|
572
|
+
services: { readonly pendingAuthentication: PendingAuthentication<Claims> },
|
|
573
|
+
) => {
|
|
574
|
+
const provided = Context.make(options.target, services.pendingAuthentication);
|
|
575
|
+
const work = Effect.provideContext(body, provided);
|
|
576
|
+
|
|
577
|
+
return options.transaction === undefined
|
|
578
|
+
? work
|
|
579
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
580
|
+
},
|
|
581
|
+
),
|
|
582
|
+
);
|
|
583
|
+
}
|
|
584
|
+
function coordinateStatefulSessions<
|
|
585
|
+
Database extends D,
|
|
586
|
+
PersistenceId,
|
|
587
|
+
RepositoryId,
|
|
588
|
+
Claims,
|
|
589
|
+
S extends AnySQLiteTable,
|
|
590
|
+
C extends AnySQLiteTable,
|
|
591
|
+
Session extends AnySQLiteTable,
|
|
592
|
+
F extends AnySQLiteTable,
|
|
593
|
+
P extends AnySQLiteTable,
|
|
594
|
+
NativeId,
|
|
595
|
+
NativeSessionId,
|
|
596
|
+
A,
|
|
597
|
+
E,
|
|
598
|
+
R,
|
|
599
|
+
DatabaseError,
|
|
600
|
+
DatabaseRequirements,
|
|
601
|
+
>(
|
|
602
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
603
|
+
options: {
|
|
604
|
+
readonly mapping: StatefulSessionMapping<
|
|
605
|
+
NoInfer<Claims>,
|
|
606
|
+
S,
|
|
607
|
+
C,
|
|
608
|
+
Session,
|
|
609
|
+
F,
|
|
610
|
+
P,
|
|
611
|
+
NativeId,
|
|
612
|
+
NativeSessionId
|
|
613
|
+
>;
|
|
614
|
+
readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
|
|
615
|
+
readonly repository: SuppliedService<RepositoryId, SessionRepository>;
|
|
616
|
+
readonly transaction?: never;
|
|
617
|
+
},
|
|
618
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<PersistenceId | RepositoryId> : R>,
|
|
619
|
+
): Effect.Effect<
|
|
620
|
+
A,
|
|
621
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
622
|
+
| (Synchronous extends true ? never : Exclude<R, PersistenceId | RepositoryId>)
|
|
623
|
+
| LifecycleHooks
|
|
624
|
+
| DatabaseRequirements
|
|
625
|
+
>;
|
|
626
|
+
function coordinateStatefulSessions<
|
|
627
|
+
Database extends D,
|
|
628
|
+
PersistenceId,
|
|
629
|
+
RepositoryId,
|
|
630
|
+
Claims,
|
|
631
|
+
S extends AnySQLiteTable,
|
|
632
|
+
C extends AnySQLiteTable,
|
|
633
|
+
Session extends AnySQLiteTable,
|
|
634
|
+
F extends AnySQLiteTable,
|
|
635
|
+
P extends AnySQLiteTable,
|
|
636
|
+
NativeId,
|
|
637
|
+
NativeSessionId,
|
|
638
|
+
A,
|
|
639
|
+
E,
|
|
640
|
+
R,
|
|
641
|
+
DatabaseError,
|
|
642
|
+
DatabaseRequirements,
|
|
643
|
+
TxId,
|
|
644
|
+
TxShape,
|
|
645
|
+
>(
|
|
646
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
647
|
+
options: {
|
|
648
|
+
readonly mapping: StatefulSessionMapping<
|
|
649
|
+
NoInfer<Claims>,
|
|
650
|
+
S,
|
|
651
|
+
C,
|
|
652
|
+
Session,
|
|
653
|
+
F,
|
|
654
|
+
P,
|
|
655
|
+
NativeId,
|
|
656
|
+
NativeSessionId
|
|
657
|
+
>;
|
|
658
|
+
readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
|
|
659
|
+
readonly repository: SuppliedService<RepositoryId, SessionRepository>;
|
|
660
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
661
|
+
},
|
|
662
|
+
body: Effect.Effect<
|
|
663
|
+
A,
|
|
664
|
+
E,
|
|
665
|
+
Synchronous extends true ? NoInfer<PersistenceId | RepositoryId | TxId> : R
|
|
666
|
+
>,
|
|
667
|
+
): Effect.Effect<
|
|
668
|
+
A,
|
|
669
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
670
|
+
| (Synchronous extends true ? never : Exclude<R, PersistenceId | RepositoryId | TxId>)
|
|
671
|
+
| LifecycleHooks
|
|
672
|
+
| DatabaseRequirements
|
|
673
|
+
>;
|
|
674
|
+
function coordinateStatefulSessions<
|
|
675
|
+
Database extends D,
|
|
676
|
+
PersistenceId,
|
|
677
|
+
RepositoryId,
|
|
678
|
+
Claims,
|
|
679
|
+
S extends AnySQLiteTable,
|
|
680
|
+
C extends AnySQLiteTable,
|
|
681
|
+
Session extends AnySQLiteTable,
|
|
682
|
+
F extends AnySQLiteTable,
|
|
683
|
+
P extends AnySQLiteTable,
|
|
684
|
+
NativeId,
|
|
685
|
+
NativeSessionId,
|
|
686
|
+
A,
|
|
687
|
+
E,
|
|
688
|
+
R,
|
|
689
|
+
DatabaseError,
|
|
690
|
+
DatabaseRequirements,
|
|
691
|
+
TxId,
|
|
692
|
+
TxShape,
|
|
693
|
+
>(
|
|
694
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
695
|
+
options: {
|
|
696
|
+
readonly mapping: StatefulSessionMapping<
|
|
697
|
+
NoInfer<Claims>,
|
|
698
|
+
S,
|
|
699
|
+
C,
|
|
700
|
+
Session,
|
|
701
|
+
F,
|
|
702
|
+
P,
|
|
703
|
+
NativeId,
|
|
704
|
+
NativeSessionId
|
|
705
|
+
>;
|
|
706
|
+
readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
|
|
707
|
+
readonly repository: SuppliedService<RepositoryId, SessionRepository>;
|
|
708
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
709
|
+
},
|
|
710
|
+
body: Effect.Effect<A, E, R>,
|
|
711
|
+
): Effect.Effect<
|
|
712
|
+
A,
|
|
713
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
714
|
+
Exclude<R, PersistenceId | RepositoryId> | LifecycleHooks | DatabaseRequirements
|
|
715
|
+
> {
|
|
716
|
+
return Effect.flatMap(acquire, (database) =>
|
|
717
|
+
coordinateSqliteStatefulSessions(
|
|
718
|
+
database,
|
|
719
|
+
options.mapping,
|
|
720
|
+
configurationFor(database),
|
|
721
|
+
(
|
|
722
|
+
transaction: TransactionOf<Database>,
|
|
723
|
+
services: {
|
|
724
|
+
readonly statefulSessionPersistence: StatefulSessionPersistence<Claims>;
|
|
725
|
+
readonly sessionRepository: SessionRepository;
|
|
726
|
+
},
|
|
727
|
+
) => {
|
|
728
|
+
const provided = Context.make(
|
|
729
|
+
options.persistence,
|
|
730
|
+
services.statefulSessionPersistence,
|
|
731
|
+
).pipe(Context.add(options.repository, services.sessionRepository));
|
|
732
|
+
|
|
733
|
+
const work = Effect.provideContext(body, provided);
|
|
734
|
+
|
|
735
|
+
return options.transaction === undefined
|
|
736
|
+
? work
|
|
737
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
738
|
+
},
|
|
739
|
+
),
|
|
740
|
+
);
|
|
741
|
+
}
|
|
742
|
+
function coordinateSignedSessionValidity<
|
|
743
|
+
Database extends D,
|
|
744
|
+
TargetId,
|
|
745
|
+
S extends AnySQLiteTable,
|
|
746
|
+
T extends AnySQLiteTable,
|
|
747
|
+
NativeId,
|
|
748
|
+
NativeSessionId,
|
|
749
|
+
A,
|
|
750
|
+
E,
|
|
751
|
+
R,
|
|
752
|
+
DatabaseError,
|
|
753
|
+
DatabaseRequirements,
|
|
754
|
+
>(
|
|
755
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
756
|
+
options: {
|
|
757
|
+
readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
|
|
758
|
+
readonly target: SuppliedService<TargetId, SignedSessionValidity>;
|
|
759
|
+
readonly transaction?: never;
|
|
760
|
+
},
|
|
761
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId> : R>,
|
|
762
|
+
): Effect.Effect<
|
|
763
|
+
A,
|
|
764
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
765
|
+
| (Synchronous extends true ? never : Exclude<R, TargetId>)
|
|
766
|
+
| LifecycleHooks
|
|
767
|
+
| DatabaseRequirements
|
|
768
|
+
>;
|
|
769
|
+
function coordinateSignedSessionValidity<
|
|
770
|
+
Database extends D,
|
|
771
|
+
TargetId,
|
|
772
|
+
S extends AnySQLiteTable,
|
|
773
|
+
T extends AnySQLiteTable,
|
|
774
|
+
NativeId,
|
|
775
|
+
NativeSessionId,
|
|
776
|
+
A,
|
|
777
|
+
E,
|
|
778
|
+
R,
|
|
779
|
+
DatabaseError,
|
|
780
|
+
DatabaseRequirements,
|
|
781
|
+
TxId,
|
|
782
|
+
TxShape,
|
|
783
|
+
>(
|
|
784
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
785
|
+
options: {
|
|
786
|
+
readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
|
|
787
|
+
readonly target: SuppliedService<TargetId, SignedSessionValidity>;
|
|
788
|
+
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
789
|
+
},
|
|
790
|
+
body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,
|
|
791
|
+
): Effect.Effect<
|
|
792
|
+
A,
|
|
793
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
794
|
+
| (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)
|
|
795
|
+
| LifecycleHooks
|
|
796
|
+
| DatabaseRequirements
|
|
797
|
+
>;
|
|
798
|
+
function coordinateSignedSessionValidity<
|
|
799
|
+
Database extends D,
|
|
800
|
+
TargetId,
|
|
801
|
+
S extends AnySQLiteTable,
|
|
802
|
+
T extends AnySQLiteTable,
|
|
803
|
+
NativeId,
|
|
804
|
+
NativeSessionId,
|
|
805
|
+
A,
|
|
806
|
+
E,
|
|
807
|
+
R,
|
|
808
|
+
DatabaseError,
|
|
809
|
+
DatabaseRequirements,
|
|
810
|
+
TxId,
|
|
811
|
+
TxShape,
|
|
812
|
+
>(
|
|
813
|
+
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
814
|
+
options: {
|
|
815
|
+
readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
|
|
816
|
+
readonly target: SuppliedService<TargetId, SignedSessionValidity>;
|
|
817
|
+
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
818
|
+
},
|
|
819
|
+
body: Effect.Effect<A, E, R>,
|
|
820
|
+
): Effect.Effect<
|
|
821
|
+
A,
|
|
822
|
+
E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
823
|
+
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
824
|
+
> {
|
|
825
|
+
return Effect.flatMap(acquire, (database) =>
|
|
826
|
+
coordinateSqliteSignedSessionValidity(
|
|
827
|
+
database,
|
|
828
|
+
options.mapping,
|
|
829
|
+
configurationFor(database),
|
|
830
|
+
(
|
|
831
|
+
transaction: TransactionOf<Database>,
|
|
832
|
+
services: { readonly signedSessionValidity: SignedSessionValidity },
|
|
833
|
+
) => {
|
|
834
|
+
const provided = Context.make(options.target, services.signedSessionValidity);
|
|
835
|
+
const work = Effect.provideContext(body, provided);
|
|
836
|
+
|
|
837
|
+
return options.transaction === undefined
|
|
838
|
+
? work
|
|
839
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
840
|
+
},
|
|
841
|
+
),
|
|
842
|
+
);
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
return {
|
|
846
|
+
makeSessionStepUpServices: <
|
|
847
|
+
Claims,
|
|
848
|
+
Id,
|
|
849
|
+
S extends AnySQLiteTable,
|
|
850
|
+
C extends AnySQLiteTable,
|
|
851
|
+
I extends AnySQLiteTable,
|
|
852
|
+
Session extends AnySQLiteTable,
|
|
853
|
+
T extends AnySQLiteTable,
|
|
854
|
+
NativeId,
|
|
855
|
+
NativeSessionId,
|
|
856
|
+
>(
|
|
857
|
+
database: D,
|
|
858
|
+
mapping: SessionStepUpMapping<
|
|
859
|
+
NoInfer<Claims>,
|
|
860
|
+
S,
|
|
861
|
+
C,
|
|
862
|
+
I,
|
|
863
|
+
Session,
|
|
864
|
+
T,
|
|
865
|
+
NativeId,
|
|
866
|
+
NativeSessionId
|
|
867
|
+
>,
|
|
868
|
+
target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
|
|
869
|
+
) => makeSqliteSessionStepUpServices(database, mapping, target, configurationFor(database)),
|
|
870
|
+
coordinateSessionStepUp,
|
|
871
|
+
makeAuthenticationAuthorityServices: <
|
|
872
|
+
Claims,
|
|
873
|
+
S extends AnySQLiteTable,
|
|
874
|
+
C extends AnySQLiteTable,
|
|
875
|
+
F extends AnySQLiteTable,
|
|
876
|
+
P extends AnySQLiteTable,
|
|
877
|
+
NativeId,
|
|
878
|
+
>(
|
|
879
|
+
database: D,
|
|
880
|
+
mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>,
|
|
881
|
+
) => makeSqliteAuthenticationAuthorityServices(database, mapping, configurationFor(database)),
|
|
882
|
+
makePendingAuthenticationServices: <
|
|
883
|
+
Claims,
|
|
884
|
+
S extends AnySQLiteTable,
|
|
885
|
+
C extends AnySQLiteTable,
|
|
886
|
+
P extends AnySQLiteTable,
|
|
887
|
+
F extends AnySQLiteTable,
|
|
888
|
+
NativeId,
|
|
889
|
+
>(
|
|
890
|
+
database: D,
|
|
891
|
+
mapping: PendingAuthenticationMapping<Claims, S, C, P, F, NativeId>,
|
|
892
|
+
) => makeSqlitePendingAuthenticationServices(database, mapping, configurationFor(database)),
|
|
893
|
+
makeStatefulSessionServices: <
|
|
894
|
+
Claims,
|
|
895
|
+
S extends AnySQLiteTable,
|
|
896
|
+
C extends AnySQLiteTable,
|
|
897
|
+
Session extends AnySQLiteTable,
|
|
898
|
+
F extends AnySQLiteTable,
|
|
899
|
+
P extends AnySQLiteTable,
|
|
900
|
+
NativeId,
|
|
901
|
+
NativeSessionId,
|
|
902
|
+
>(
|
|
903
|
+
database: D,
|
|
904
|
+
mapping: StatefulSessionMapping<Claims, S, C, Session, F, P, NativeId, NativeSessionId>,
|
|
905
|
+
) => makeSqliteStatefulSessionServices(database, mapping, configurationFor(database)),
|
|
906
|
+
makeSignedSessionValidityServices: <
|
|
907
|
+
S extends AnySQLiteTable,
|
|
908
|
+
T extends AnySQLiteTable,
|
|
909
|
+
NativeId,
|
|
910
|
+
NativeSessionId,
|
|
911
|
+
>(
|
|
912
|
+
database: D,
|
|
913
|
+
mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>,
|
|
914
|
+
) => makeSqliteSignedSessionValidityServices(database, mapping, configurationFor(database)),
|
|
915
|
+
coordinateAuthenticationAuthority,
|
|
916
|
+
coordinatePendingAuthentication,
|
|
917
|
+
coordinateStatefulSessions,
|
|
918
|
+
coordinateSignedSessionValidity,
|
|
919
|
+
};
|
|
920
|
+
};
|
|
921
|
+
|
|
922
|
+
import type { SessionStepUpMapping } from "./step-up-model";
|
|
923
|
+
|
|
924
|
+
export const makeSqliteSessionStepUpServices = <
|
|
925
|
+
Claims,
|
|
926
|
+
Id,
|
|
927
|
+
S extends AnySQLiteTable,
|
|
928
|
+
C extends AnySQLiteTable,
|
|
929
|
+
I extends AnySQLiteTable,
|
|
930
|
+
Session extends AnySQLiteTable,
|
|
931
|
+
T extends AnySQLiteTable,
|
|
932
|
+
NativeId,
|
|
933
|
+
NativeSessionId,
|
|
934
|
+
>(
|
|
935
|
+
database: Database,
|
|
936
|
+
mapping: SessionStepUpMapping<NoInfer<Claims>, S, C, I, Session, T, NativeId, NativeSessionId>,
|
|
937
|
+
target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
|
|
938
|
+
configuration: SessionTargetConfiguration,
|
|
939
|
+
) => makeTargetSessionStepUpServices(database, mapping, target, configuration);
|
|
940
|
+
|
|
941
|
+
export const coordinateSqliteSessionStepUp = <
|
|
942
|
+
Claims,
|
|
943
|
+
Id,
|
|
944
|
+
S extends AnySQLiteTable,
|
|
945
|
+
C extends AnySQLiteTable,
|
|
946
|
+
I extends AnySQLiteTable,
|
|
947
|
+
Session extends AnySQLiteTable,
|
|
948
|
+
T extends AnySQLiteTable,
|
|
949
|
+
NativeId,
|
|
950
|
+
NativeSessionId,
|
|
951
|
+
D extends Database,
|
|
952
|
+
A,
|
|
953
|
+
E,
|
|
954
|
+
R,
|
|
955
|
+
>(
|
|
956
|
+
database: D,
|
|
957
|
+
mapping: SessionStepUpMapping<NoInfer<Claims>, S, C, I, Session, T, NativeId, NativeSessionId>,
|
|
958
|
+
target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
|
|
959
|
+
configuration: SessionTargetConfiguration,
|
|
960
|
+
owner: (
|
|
961
|
+
transaction: TransactionOf<D>,
|
|
962
|
+
services: { readonly sessionStepUpPersistence: SessionStepUpPersistence<Claims> },
|
|
963
|
+
) => Effect.Effect<A, E, R>,
|
|
964
|
+
) =>
|
|
965
|
+
coordinateTargetSessionStepUp<Claims, Id, TransactionOf<D>, A, E, R>(
|
|
966
|
+
database,
|
|
967
|
+
mapping,
|
|
968
|
+
target,
|
|
969
|
+
configuration,
|
|
970
|
+
owner,
|
|
971
|
+
);
|