@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,370 @@
|
|
|
1
|
+
import type { TokenDigest } from "@yielded/auth/Schema";
|
|
2
|
+
import {
|
|
3
|
+
type AuthenticationRequirement,
|
|
4
|
+
type AuthenticationEvidence,
|
|
5
|
+
type SecurityRevision,
|
|
6
|
+
type SessionId,
|
|
7
|
+
type PendingAuthenticationRecord,
|
|
8
|
+
type PendingAuthenticationState,
|
|
9
|
+
type StatefulSessionRecord,
|
|
10
|
+
} from "@yielded/auth/Sessions";
|
|
11
|
+
import type { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
|
|
12
|
+
import type { DateTime, Effect } from "effect";
|
|
13
|
+
|
|
14
|
+
import type { PersistenceMappingError, SubjectIdCodec } from "./model";
|
|
15
|
+
|
|
16
|
+
type ColumnKey<T extends Table> = Extract<keyof T["_"]["columns"], string>;
|
|
17
|
+
|
|
18
|
+
export interface SessionIdCodec<NativeId> {
|
|
19
|
+
readonly toNative: (id: SessionId) => Effect.Effect<NativeId, PersistenceMappingError>;
|
|
20
|
+
readonly toSession: (id: NativeId) => Effect.Effect<SessionId, PersistenceMappingError>;
|
|
21
|
+
readonly equals: (left: NativeId, right: NativeId) => boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface SessionSubjectTables<Subject extends Table, NativeId> {
|
|
25
|
+
readonly subject: {
|
|
26
|
+
readonly table: Subject;
|
|
27
|
+
readonly id: ColumnKey<Subject>;
|
|
28
|
+
readonly status: ColumnKey<Subject>;
|
|
29
|
+
readonly securityRevision: ColumnKey<Subject>;
|
|
30
|
+
readonly isActiveStatus: (value: unknown) => boolean;
|
|
31
|
+
readonly decodeRequirement: (
|
|
32
|
+
row: InferSelectModel<Subject>,
|
|
33
|
+
) => Effect.Effect<AuthenticationRequirement, PersistenceMappingError>;
|
|
34
|
+
readonly nextSecurityRevision?: (
|
|
35
|
+
current: SecurityRevision,
|
|
36
|
+
) => Effect.Effect<SecurityRevision, PersistenceMappingError>;
|
|
37
|
+
readonly nextSecurityRevisionSync?: (current: SecurityRevision) => SecurityRevision;
|
|
38
|
+
};
|
|
39
|
+
readonly subjectId: SubjectIdCodec<NativeId>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface SessionAuthorityTables<
|
|
43
|
+
Subject extends Table,
|
|
44
|
+
Credential extends Table,
|
|
45
|
+
NativeId,
|
|
46
|
+
> extends SessionSubjectTables<Subject, NativeId> {
|
|
47
|
+
readonly credential: {
|
|
48
|
+
readonly table: Credential;
|
|
49
|
+
readonly subjectId: ColumnKey<Credential>;
|
|
50
|
+
readonly credentialId: ColumnKey<Credential>;
|
|
51
|
+
readonly revision: ColumnKey<Credential>;
|
|
52
|
+
/** Optional consumer status predicate; omitted means every stored credential row is active. */
|
|
53
|
+
readonly status?: ColumnKey<Credential>;
|
|
54
|
+
readonly isActiveStatus?: (value: unknown) => boolean;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface SessionFlowTables<Flow extends Table, NativeSubjectId> {
|
|
59
|
+
readonly flow: {
|
|
60
|
+
readonly table: Flow;
|
|
61
|
+
readonly flowId: ColumnKey<Flow>;
|
|
62
|
+
readonly subjectId: ColumnKey<Flow>;
|
|
63
|
+
readonly state: ColumnKey<Flow>;
|
|
64
|
+
readonly pendingDigest: ColumnKey<Flow>;
|
|
65
|
+
readonly dedupUntil: ColumnKey<Flow>;
|
|
66
|
+
readonly pendingStateValue: unknown;
|
|
67
|
+
readonly establishedStateValue: unknown;
|
|
68
|
+
readonly encodeInstant: (instant: DateTime.Utc) => unknown;
|
|
69
|
+
readonly decodeInstant: (
|
|
70
|
+
native: unknown,
|
|
71
|
+
) => Effect.Effect<DateTime.Utc, PersistenceMappingError>;
|
|
72
|
+
readonly encodePendingInsert: (input: {
|
|
73
|
+
readonly evidence: AuthenticationEvidence;
|
|
74
|
+
readonly subjectId: NativeSubjectId;
|
|
75
|
+
readonly pendingDigest: TokenDigest;
|
|
76
|
+
readonly dedupUntil: DateTime.Utc;
|
|
77
|
+
}) => InferInsertModel<Flow>;
|
|
78
|
+
readonly encodeEstablishedInsert: (input: {
|
|
79
|
+
readonly evidence: AuthenticationEvidence;
|
|
80
|
+
readonly subjectId: NativeSubjectId;
|
|
81
|
+
readonly dedupUntil: DateTime.Utc;
|
|
82
|
+
}) => InferInsertModel<Flow>;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface StatefulSessionTables<
|
|
87
|
+
Claims,
|
|
88
|
+
Session extends Table,
|
|
89
|
+
Flow extends Table,
|
|
90
|
+
NativeSubjectId,
|
|
91
|
+
NativeSessionId,
|
|
92
|
+
> extends SessionFlowTables<Flow, NativeSubjectId> {
|
|
93
|
+
readonly session: {
|
|
94
|
+
readonly table: Session;
|
|
95
|
+
readonly sessionId: ColumnKey<Session>;
|
|
96
|
+
readonly subjectId: ColumnKey<Session>;
|
|
97
|
+
readonly digest: ColumnKey<Session>;
|
|
98
|
+
readonly version: ColumnKey<Session>;
|
|
99
|
+
readonly securityRevision: ColumnKey<Session>;
|
|
100
|
+
readonly issuedAt: ColumnKey<Session>;
|
|
101
|
+
readonly expiresAt: ColumnKey<Session>;
|
|
102
|
+
readonly absoluteExpiresAt: ColumnKey<Session>;
|
|
103
|
+
readonly encodeInstant: (instant: DateTime.Utc) => unknown;
|
|
104
|
+
readonly encodeInsert: (
|
|
105
|
+
record: StatefulSessionRecord<Claims>,
|
|
106
|
+
ids: { readonly subjectId: NativeSubjectId; readonly sessionId: NativeSessionId },
|
|
107
|
+
) => InferInsertModel<Session>;
|
|
108
|
+
/** Persist the prepared credentialVersion and retain exact private provenance. */
|
|
109
|
+
readonly encodeRotation: (
|
|
110
|
+
record: StatefulSessionRecord<Claims>,
|
|
111
|
+
) => Partial<InferInsertModel<Session>>;
|
|
112
|
+
readonly decode: (
|
|
113
|
+
row: InferSelectModel<Session>,
|
|
114
|
+
) => Effect.Effect<StatefulSessionRecord<Claims>, PersistenceMappingError>;
|
|
115
|
+
readonly allocateId?: Effect.Effect<NativeSessionId, PersistenceMappingError>;
|
|
116
|
+
readonly allocateIdSync?: () => NativeSessionId;
|
|
117
|
+
readonly allocateVersion?: Effect.Effect<SecurityRevision, PersistenceMappingError>;
|
|
118
|
+
readonly allocateVersionSync?: () => SecurityRevision;
|
|
119
|
+
};
|
|
120
|
+
readonly sessionId: SessionIdCodec<NativeSessionId>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface PendingAuthenticationTables<
|
|
124
|
+
Claims,
|
|
125
|
+
Pending extends Table,
|
|
126
|
+
Flow extends Table,
|
|
127
|
+
NativeSubjectId,
|
|
128
|
+
> extends SessionFlowTables<Flow, NativeSubjectId> {
|
|
129
|
+
readonly pending: {
|
|
130
|
+
readonly table: Pending;
|
|
131
|
+
readonly digest: ColumnKey<Pending>;
|
|
132
|
+
readonly version: ColumnKey<Pending>;
|
|
133
|
+
readonly flowId: ColumnKey<Pending>;
|
|
134
|
+
readonly subjectId: ColumnKey<Pending>;
|
|
135
|
+
readonly bindingDigest: ColumnKey<Pending>;
|
|
136
|
+
readonly expiresAt: ColumnKey<Pending>;
|
|
137
|
+
readonly attemptLimit: ColumnKey<Pending>;
|
|
138
|
+
readonly failedAttempts: ColumnKey<Pending>;
|
|
139
|
+
readonly consumed: ColumnKey<Pending>;
|
|
140
|
+
readonly encodeInstant: (instant: DateTime.Utc) => unknown;
|
|
141
|
+
readonly encodeInsert: (
|
|
142
|
+
record: PendingAuthenticationRecord<Claims>,
|
|
143
|
+
input: {
|
|
144
|
+
readonly subjectId: NativeSubjectId;
|
|
145
|
+
readonly failedAttempts: 0;
|
|
146
|
+
readonly consumed: false;
|
|
147
|
+
},
|
|
148
|
+
) => InferInsertModel<Pending>;
|
|
149
|
+
readonly decode: (
|
|
150
|
+
row: InferSelectModel<Pending>,
|
|
151
|
+
) => Effect.Effect<PendingAuthenticationRecord<Claims>, PersistenceMappingError>;
|
|
152
|
+
/** Decodes original evidence and storage guards only. The internal pending
|
|
153
|
+
* context lookup must not execute unrelated consumer Claims transforms. */
|
|
154
|
+
readonly decodeContext: (
|
|
155
|
+
row: InferSelectModel<Pending>,
|
|
156
|
+
) => Effect.Effect<PendingAuthenticationState, PersistenceMappingError>;
|
|
157
|
+
readonly allocateVersion?: Effect.Effect<SecurityRevision, PersistenceMappingError>;
|
|
158
|
+
readonly allocateVersionSync?: () => SecurityRevision;
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export interface SignedSessionValidityTables<
|
|
163
|
+
Tombstone extends Table,
|
|
164
|
+
NativeSubjectId,
|
|
165
|
+
NativeSessionId,
|
|
166
|
+
> {
|
|
167
|
+
readonly tombstone: {
|
|
168
|
+
readonly table: Tombstone;
|
|
169
|
+
readonly subjectId: ColumnKey<Tombstone>;
|
|
170
|
+
readonly sessionId: ColumnKey<Tombstone>;
|
|
171
|
+
readonly absoluteExpiresAt: ColumnKey<Tombstone>;
|
|
172
|
+
readonly encodeInstant: (instant: DateTime.Utc) => unknown;
|
|
173
|
+
readonly decodeInstant: (
|
|
174
|
+
native: unknown,
|
|
175
|
+
) => Effect.Effect<DateTime.Utc, PersistenceMappingError>;
|
|
176
|
+
readonly encodeInsert: (input: {
|
|
177
|
+
readonly subjectId: NativeSubjectId;
|
|
178
|
+
readonly sessionId: NativeSessionId;
|
|
179
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
180
|
+
}) => InferInsertModel<Tombstone>;
|
|
181
|
+
};
|
|
182
|
+
readonly sessionId: SessionIdCodec<NativeSessionId>;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export interface RequiredSessionConstraints {
|
|
186
|
+
readonly sessionDigest: "unique(session.digest)";
|
|
187
|
+
readonly flowId: "unique(flow.flowId)";
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface RequiredPendingAuthenticationConstraints {
|
|
191
|
+
readonly pendingDigest: "unique(pending.digest)";
|
|
192
|
+
readonly pendingFlow: "unique(pending.flowId)";
|
|
193
|
+
readonly flowId: "unique(flow.flowId)";
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface RequiredStatefulPendingConstraints
|
|
197
|
+
extends RequiredSessionConstraints, RequiredPendingAuthenticationConstraints {}
|
|
198
|
+
|
|
199
|
+
export interface RequiredSignedValidityConstraints {
|
|
200
|
+
readonly tombstoneOwner: "unique(tombstone.subjectId,tombstone.sessionId)";
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export const requiredSessionConstraints: RequiredSessionConstraints = {
|
|
204
|
+
sessionDigest: "unique(session.digest)",
|
|
205
|
+
flowId: "unique(flow.flowId)",
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
export const requiredPendingAuthenticationConstraints: RequiredPendingAuthenticationConstraints = {
|
|
209
|
+
pendingDigest: "unique(pending.digest)",
|
|
210
|
+
pendingFlow: "unique(pending.flowId)",
|
|
211
|
+
flowId: "unique(flow.flowId)",
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
export const requiredStatefulPendingConstraints: RequiredStatefulPendingConstraints = {
|
|
215
|
+
...requiredSessionConstraints,
|
|
216
|
+
...requiredPendingAuthenticationConstraints,
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export const requiredSignedValidityConstraints: RequiredSignedValidityConstraints = {
|
|
220
|
+
tombstoneOwner: "unique(tombstone.subjectId,tombstone.sessionId)",
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
export interface SessionConstraintClassifier {
|
|
224
|
+
/**
|
|
225
|
+
* Match only the named unique constraints declared by this mapping. Broad
|
|
226
|
+
* SQL/constraint classifiers can relabel application or NOT NULL failures as
|
|
227
|
+
* a domain conflict.
|
|
228
|
+
*/
|
|
229
|
+
readonly isConstraintConflict: (cause: unknown) => boolean;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export type AuthenticationAuthorityMapping<
|
|
233
|
+
Claims,
|
|
234
|
+
Subject extends Table,
|
|
235
|
+
Credential extends Table,
|
|
236
|
+
Flow extends Table,
|
|
237
|
+
Pending extends Table,
|
|
238
|
+
NativeSubjectId,
|
|
239
|
+
> = SessionAuthorityTables<Subject, Credential, NativeSubjectId> &
|
|
240
|
+
SessionConstraintClassifier &
|
|
241
|
+
(
|
|
242
|
+
| {
|
|
243
|
+
/** Omit for single-factor authority installations. Pending input then fails closed. */
|
|
244
|
+
readonly pending?: undefined;
|
|
245
|
+
}
|
|
246
|
+
| {
|
|
247
|
+
readonly pending: PendingAuthenticationTables<Claims, Pending, Flow, NativeSubjectId>;
|
|
248
|
+
readonly constraints: RequiredPendingAuthenticationConstraints;
|
|
249
|
+
}
|
|
250
|
+
);
|
|
251
|
+
|
|
252
|
+
export type StatefulSessionMapping<
|
|
253
|
+
Claims,
|
|
254
|
+
Subject extends Table,
|
|
255
|
+
Credential extends Table,
|
|
256
|
+
Session extends Table,
|
|
257
|
+
Flow extends Table,
|
|
258
|
+
Pending extends Table,
|
|
259
|
+
NativeSubjectId,
|
|
260
|
+
NativeSessionId,
|
|
261
|
+
> = SessionAuthorityTables<Subject, Credential, NativeSubjectId> &
|
|
262
|
+
StatefulSessionTables<Claims, Session, Flow, NativeSubjectId, NativeSessionId> &
|
|
263
|
+
SessionConstraintClassifier &
|
|
264
|
+
(
|
|
265
|
+
| {
|
|
266
|
+
/** Omit when this session module does not support pending MFA completion. */
|
|
267
|
+
readonly pending?: undefined;
|
|
268
|
+
readonly constraints: RequiredSessionConstraints;
|
|
269
|
+
}
|
|
270
|
+
| {
|
|
271
|
+
readonly pending: PendingAuthenticationTables<
|
|
272
|
+
Claims,
|
|
273
|
+
Pending,
|
|
274
|
+
Flow,
|
|
275
|
+
NativeSubjectId
|
|
276
|
+
>["pending"];
|
|
277
|
+
readonly constraints: RequiredStatefulPendingConstraints;
|
|
278
|
+
}
|
|
279
|
+
);
|
|
280
|
+
|
|
281
|
+
export type PendingAuthenticationMapping<
|
|
282
|
+
Claims,
|
|
283
|
+
Subject extends Table,
|
|
284
|
+
Credential extends Table,
|
|
285
|
+
Pending extends Table,
|
|
286
|
+
Flow extends Table,
|
|
287
|
+
NativeSubjectId,
|
|
288
|
+
> = SessionAuthorityTables<Subject, Credential, NativeSubjectId> &
|
|
289
|
+
PendingAuthenticationTables<Claims, Pending, Flow, NativeSubjectId> &
|
|
290
|
+
SessionConstraintClassifier & {
|
|
291
|
+
readonly constraints: RequiredPendingAuthenticationConstraints;
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
export type SignedSessionValidityMapping<
|
|
295
|
+
Subject extends Table,
|
|
296
|
+
Tombstone extends Table,
|
|
297
|
+
NativeSubjectId,
|
|
298
|
+
NativeSessionId,
|
|
299
|
+
> = SessionSubjectTables<Subject, NativeSubjectId> &
|
|
300
|
+
SignedSessionValidityTables<Tombstone, NativeSubjectId, NativeSessionId> &
|
|
301
|
+
SessionConstraintClassifier & {
|
|
302
|
+
readonly constraints: RequiredSignedValidityConstraints;
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
/** D1 evaluates these expressions inside the atomic batch, after queueing delay.
|
|
306
|
+
* `engineNow` must use the exact native representation of every mapped instant
|
|
307
|
+
* column. `engineNowMillis` is Unix epoch milliseconds for proof freshness.
|
|
308
|
+
* Changes to the consumer's factor policy MUST bump subject.securityRevision.
|
|
309
|
+
* Supply the authoritative primary D1 database, never a replica-affined
|
|
310
|
+
* `withSession` handle, because verification and security revision reads must
|
|
311
|
+
* observe completed revocation writes across clients.
|
|
312
|
+
*/
|
|
313
|
+
export interface D1SessionClockMapping {
|
|
314
|
+
readonly d1: {
|
|
315
|
+
readonly engineNow: SQL;
|
|
316
|
+
readonly engineNowMillis: SQL;
|
|
317
|
+
readonly activeSubjectStatusValue: unknown;
|
|
318
|
+
/** Required when `credential.status` is mapped. */
|
|
319
|
+
readonly activeCredentialStatusValue?: unknown;
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
export type D1AuthenticationAuthorityMapping<
|
|
324
|
+
Claims,
|
|
325
|
+
Subject extends Table,
|
|
326
|
+
Credential extends Table,
|
|
327
|
+
Flow extends Table,
|
|
328
|
+
Pending extends Table,
|
|
329
|
+
NativeSubjectId,
|
|
330
|
+
> = AuthenticationAuthorityMapping<Claims, Subject, Credential, Flow, Pending, NativeSubjectId> &
|
|
331
|
+
D1SessionClockMapping;
|
|
332
|
+
|
|
333
|
+
export type D1PendingAuthenticationMapping<
|
|
334
|
+
Claims,
|
|
335
|
+
Subject extends Table,
|
|
336
|
+
Credential extends Table,
|
|
337
|
+
Pending extends Table,
|
|
338
|
+
Flow extends Table,
|
|
339
|
+
NativeSubjectId,
|
|
340
|
+
> = PendingAuthenticationMapping<Claims, Subject, Credential, Pending, Flow, NativeSubjectId> &
|
|
341
|
+
D1SessionClockMapping;
|
|
342
|
+
|
|
343
|
+
export type D1StatefulSessionMapping<
|
|
344
|
+
Claims,
|
|
345
|
+
Subject extends Table,
|
|
346
|
+
Credential extends Table,
|
|
347
|
+
Session extends Table,
|
|
348
|
+
Flow extends Table,
|
|
349
|
+
Pending extends Table,
|
|
350
|
+
NativeSubjectId,
|
|
351
|
+
NativeSessionId,
|
|
352
|
+
> = StatefulSessionMapping<
|
|
353
|
+
Claims,
|
|
354
|
+
Subject,
|
|
355
|
+
Credential,
|
|
356
|
+
Session,
|
|
357
|
+
Flow,
|
|
358
|
+
Pending,
|
|
359
|
+
NativeSubjectId,
|
|
360
|
+
NativeSessionId
|
|
361
|
+
> &
|
|
362
|
+
D1SessionClockMapping;
|
|
363
|
+
|
|
364
|
+
export type D1SignedSessionValidityMapping<
|
|
365
|
+
Subject extends Table,
|
|
366
|
+
Tombstone extends Table,
|
|
367
|
+
NativeSubjectId,
|
|
368
|
+
NativeSessionId,
|
|
369
|
+
> = SignedSessionValidityMapping<Subject, Tombstone, NativeSubjectId, NativeSessionId> &
|
|
370
|
+
D1SessionClockMapping;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { makeSessionKernel } from "../internal/session-kernel";
|
|
2
|
+
import { drizzleQueryOperations } from "./query-operations";
|
|
3
|
+
export type { SessionSqlDatabase } from "../internal/session-kernel";
|
|
4
|
+
export { CurrentSessionSql } from "../internal/session-kernel";
|
|
5
|
+
export type { SessionSqlOptions } from "../internal/session-kernel";
|
|
6
|
+
|
|
7
|
+
export const {
|
|
8
|
+
makeSqlAuthenticationAuthority,
|
|
9
|
+
makeSqlPendingAuthentication,
|
|
10
|
+
makeSqlStatefulSessions,
|
|
11
|
+
makeSqlSignedValidity,
|
|
12
|
+
makeSqlSessionStepUp,
|
|
13
|
+
} = makeSessionKernel(drizzleQueryOperations);
|