@yielded/auth-persistence-drizzle 0.1.0-beta.24 → 0.1.0-beta.26
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 +4 -2
- package/dist/D1.d.mts +495 -1151
- package/dist/D1.mjs +41 -19
- package/dist/D1.mjs.map +1 -1
- package/dist/Libsql.d.mts +385 -1996
- package/dist/Libsql.mjs +43 -47
- package/dist/Libsql.mjs.map +1 -1
- package/dist/Mysql2.d.mts +397 -1743
- package/dist/Mysql2.mjs +35 -41
- package/dist/Mysql2.mjs.map +1 -1
- package/dist/Pglite.d.mts +397 -1743
- package/dist/Pglite.mjs +42 -31
- package/dist/Pglite.mjs.map +1 -1
- package/dist/Postgres.d.mts +397 -1743
- package/dist/Postgres.mjs +42 -31
- package/dist/Postgres.mjs.map +1 -1
- package/dist/SqliteBun.d.mts +385 -1992
- package/dist/SqliteBun.mjs +43 -43
- package/dist/SqliteBun.mjs.map +1 -1
- package/dist/SqliteDo.d.mts +385 -1991
- package/dist/SqliteDo.mjs +42 -41
- package/dist/SqliteDo.mjs.map +1 -1
- package/dist/SqliteNode.d.mts +385 -1992
- package/dist/SqliteNode.mjs +43 -43
- package/dist/SqliteNode.mjs.map +1 -1
- package/dist/SqliteWasm.d.mts +385 -1992
- package/dist/SqliteWasm.mjs +43 -43
- package/dist/SqliteWasm.mjs.map +1 -1
- package/dist/drizzle/d1-identity.mjs +2 -2
- package/dist/drizzle/d1-identity.mjs.map +1 -1
- package/dist/drizzle/driver-types.d.mts +15 -0
- package/dist/drizzle/email-drivers.mjs +32 -0
- package/dist/drizzle/email-drivers.mjs.map +1 -0
- package/dist/drizzle/email-model.d.mts +9 -13
- package/dist/drizzle/email-target.d.mts +10 -11
- package/dist/drizzle/email-target.mjs +33 -70
- package/dist/drizzle/email-target.mjs.map +1 -1
- package/dist/drizzle/model.d.mts +1 -10
- package/dist/drizzle/model.mjs +1 -2
- package/dist/drizzle/model.mjs.map +1 -1
- package/dist/drizzle/mysql-identity.mjs +3 -6
- package/dist/drizzle/mysql-identity.mjs.map +1 -1
- package/dist/drizzle/native-clock.d.mts +9 -0
- package/dist/drizzle/native-clock.mjs +18 -0
- package/dist/drizzle/native-clock.mjs.map +1 -0
- package/dist/drizzle/native-database.d.mts +46 -0
- package/dist/drizzle/native-database.mjs +6 -5
- package/dist/drizzle/native-database.mjs.map +1 -1
- package/dist/drizzle/native-sql-table.mjs +13 -5
- package/dist/drizzle/native-sql-table.mjs.map +1 -1
- package/dist/drizzle/native-target.d.mts +6 -0
- package/dist/drizzle/native-target.mjs +44 -0
- package/dist/drizzle/native-target.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-drivers.mjs +4 -56
- package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -1
- package/dist/drizzle/oauth-connected-model.d.mts +5 -22
- package/dist/drizzle/oauth-connected-model.mjs +1 -7
- package/dist/drizzle/oauth-connected-reference.d.mts +5 -7
- package/dist/drizzle/oauth-connected-reference.mjs +11 -3
- package/dist/drizzle/oauth-connected-reference.mjs.map +1 -1
- package/dist/drizzle/oauth-drivers.mjs +1 -2
- package/dist/drizzle/oauth-drivers.mjs.map +1 -1
- package/dist/drizzle/oauth-model.d.mts +11 -37
- package/dist/drizzle/oauth-model.mjs +3 -4
- package/dist/drizzle/oauth-model.mjs.map +1 -1
- package/dist/drizzle/oauth-proxy.d.mts +1 -1
- package/dist/drizzle/oauth-proxy.mjs +1 -1
- package/dist/drizzle/oauth-target.d.mts +9 -6
- package/dist/drizzle/oauth-target.mjs +47 -15
- package/dist/drizzle/oauth-target.mjs.map +1 -1
- package/dist/drizzle/passkey/target.d.mts +14 -0
- package/dist/drizzle/passkey/target.mjs +52 -0
- package/dist/drizzle/passkey/target.mjs.map +1 -0
- package/dist/drizzle/passkey/write-target.d.mts +11 -0
- package/dist/drizzle/passkey/write-target.mjs +28 -0
- package/dist/drizzle/passkey/write-target.mjs.map +1 -0
- package/dist/drizzle/passkey-drivers.mjs +2 -4
- package/dist/drizzle/passkey-drivers.mjs.map +1 -1
- package/dist/drizzle/passkey-model.d.mts +5 -26
- package/dist/drizzle/passkey-model.mjs +2 -8
- package/dist/drizzle/passkey-registration-ceremony-model.d.mts +3 -6
- package/dist/drizzle/passkey-write-drivers.mjs +2 -3
- package/dist/drizzle/passkey-write-drivers.mjs.map +1 -1
- package/dist/drizzle/passkey-write-model.d.mts +7 -9
- package/dist/drizzle/passkey-write-model.mjs +1 -3
- package/dist/drizzle/passkey-write-model.mjs.map +1 -1
- package/dist/drizzle/password-drivers.mjs +31 -0
- package/dist/drizzle/password-drivers.mjs.map +1 -0
- package/dist/drizzle/password-model.d.mts +7 -10
- package/dist/drizzle/password-target.d.mts +7 -8
- package/dist/drizzle/password-target.mjs +23 -68
- package/dist/drizzle/password-target.mjs.map +1 -1
- package/dist/drizzle/pg-identity.mjs +3 -6
- package/dist/drizzle/pg-identity.mjs.map +1 -1
- package/dist/drizzle/phone-drivers.mjs +24 -0
- package/dist/drizzle/phone-drivers.mjs.map +1 -0
- package/dist/drizzle/phone-model.d.mts +13 -104
- package/dist/drizzle/phone-model.mjs +5 -33
- package/dist/drizzle/phone-model.mjs.map +1 -1
- package/dist/drizzle/phone-target.mjs +22 -171
- package/dist/drizzle/phone-target.mjs.map +1 -1
- package/dist/drizzle/proof-drivers.mjs +24 -0
- package/dist/drizzle/proof-drivers.mjs.map +1 -0
- package/dist/drizzle/proof-model.d.mts +7 -15
- package/dist/drizzle/proof-target.d.mts +5 -5
- package/dist/drizzle/proof-target.mjs +14 -28
- package/dist/drizzle/proof-target.mjs.map +1 -1
- package/dist/drizzle/session-drivers.mjs +97 -0
- package/dist/drizzle/session-drivers.mjs.map +1 -0
- package/dist/drizzle/session-model.d.mts +11 -22
- package/dist/drizzle/sqlite-do-database.d.mts +3 -3
- package/dist/drizzle/sqlite-do-database.mjs +6 -1
- package/dist/drizzle/sqlite-do-database.mjs.map +1 -1
- package/dist/drizzle/sqlite-identity.mjs +3 -5
- package/dist/drizzle/sqlite-identity.mjs.map +1 -1
- package/dist/drizzle/step-up-model.d.mts +2 -5
- package/dist/drizzle/storage-validation.mjs +2 -1
- package/dist/drizzle/storage-validation.mjs.map +1 -1
- package/dist/drizzle/totp-model.d.mts +7 -74
- package/dist/drizzle/totp-model.mjs +1 -5
- package/dist/drizzle/totp-model.mjs.map +1 -1
- package/dist/drizzle/totp-target.mjs +39 -75
- package/dist/drizzle/totp-target.mjs.map +1 -1
- package/dist/drizzle/transaction-handle.mjs +13 -0
- package/dist/drizzle/transaction-handle.mjs.map +1 -0
- package/dist/drizzle/transaction-mysql.mjs +43 -12
- package/dist/drizzle/transaction-mysql.mjs.map +1 -1
- package/dist/index.d.mts +17 -22
- package/dist/index.mjs +10 -16
- package/dist/internal/drizzle-postgres.mjs +4 -6
- package/dist/internal/drizzle-postgres.mjs.map +1 -1
- package/dist/internal/drizzle-sqlite.mjs +4 -6
- package/dist/internal/drizzle-sqlite.mjs.map +1 -1
- package/package.json +1 -1
- package/src/D1.ts +77 -74
- package/src/Libsql.ts +65 -105
- package/src/Mysql2.ts +52 -87
- package/src/Pglite.ts +74 -81
- package/src/Postgres.ts +74 -81
- package/src/SqliteBun.ts +65 -113
- package/src/SqliteDo.ts +58 -106
- package/src/SqliteNode.ts +65 -113
- package/src/SqliteWasm.ts +65 -113
- package/src/drizzle/d1-identity.ts +2 -2
- package/src/drizzle/driver-types.ts +26 -0
- package/src/drizzle/email-drivers.ts +320 -0
- package/src/drizzle/email-model.ts +24 -78
- package/src/drizzle/email-target.ts +118 -211
- package/src/drizzle/model.ts +0 -2
- package/src/drizzle/mysql-identity.ts +4 -24
- package/src/drizzle/native-clock.ts +21 -0
- package/src/drizzle/native-database.ts +59 -18
- package/src/drizzle/native-sql-table.ts +104 -87
- package/src/drizzle/native-target.ts +120 -0
- package/src/drizzle/oauth-connected-drivers.ts +24 -233
- package/src/drizzle/oauth-connected-model.ts +3 -93
- package/src/drizzle/oauth-connected-reference.ts +16 -25
- package/src/drizzle/oauth-drivers.ts +58 -99
- package/src/drizzle/oauth-model.ts +27 -132
- package/src/drizzle/oauth-target.ts +250 -33
- package/src/drizzle/passkey/target.ts +205 -0
- package/src/drizzle/passkey/write-target.ts +91 -0
- package/src/drizzle/passkey-drivers.ts +35 -133
- package/src/drizzle/passkey-model.ts +3 -81
- package/src/drizzle/passkey-registration-ceremony-model.ts +5 -25
- package/src/drizzle/passkey-write-drivers.ts +32 -102
- package/src/drizzle/passkey-write-model.ts +10 -44
- package/src/drizzle/password-drivers.ts +286 -0
- package/src/drizzle/password-model.ts +10 -44
- package/src/drizzle/password-target.ts +85 -239
- package/src/drizzle/pg-identity.ts +4 -19
- package/src/drizzle/phone-drivers.ts +142 -0
- package/src/drizzle/phone-model.ts +22 -162
- package/src/drizzle/phone-target.ts +51 -493
- package/src/drizzle/proof-drivers.ts +123 -0
- package/src/drizzle/proof-model.ts +12 -123
- package/src/drizzle/proof-target.ts +38 -102
- package/src/drizzle/session-drivers.ts +696 -0
- package/src/drizzle/session-model.ts +54 -118
- package/src/drizzle/sqlite-do-database.ts +8 -0
- package/src/drizzle/sqlite-identity.ts +4 -22
- package/src/drizzle/step-up-model.ts +13 -37
- package/src/drizzle/storage-validation.ts +2 -1
- package/src/drizzle/totp-model.ts +20 -77
- package/src/drizzle/totp-target.ts +121 -261
- package/src/drizzle/transaction-handle.ts +41 -0
- package/src/drizzle/transaction-mysql.ts +90 -25
- package/src/index.ts +7 -122
- package/src/internal/drizzle-postgres.ts +4 -7
- package/src/internal/drizzle-sqlite.ts +4 -7
- package/dist/drizzle/crypto.mjs +0 -11
- package/dist/drizzle/crypto.mjs.map +0 -1
- package/dist/drizzle/d1-emails.d.mts +0 -62
- package/dist/drizzle/d1-emails.mjs +0 -626
- package/dist/drizzle/d1-emails.mjs.map +0 -1
- package/dist/drizzle/d1-generated-statement.mjs +0 -79
- package/dist/drizzle/d1-generated-statement.mjs.map +0 -1
- package/dist/drizzle/d1-oauth.d.mts +0 -331
- package/dist/drizzle/d1-oauth.mjs +0 -79
- package/dist/drizzle/d1-oauth.mjs.map +0 -1
- package/dist/drizzle/d1-passkey.d.mts +0 -37
- package/dist/drizzle/d1-passkey.mjs +0 -98
- package/dist/drizzle/d1-passkey.mjs.map +0 -1
- package/dist/drizzle/d1-password-prepared.d.mts +0 -25
- package/dist/drizzle/d1-password-prepared.mjs +0 -473
- package/dist/drizzle/d1-password-prepared.mjs.map +0 -1
- package/dist/drizzle/d1-passwords.d.mts +0 -70
- package/dist/drizzle/d1-passwords.mjs +0 -808
- package/dist/drizzle/d1-passwords.mjs.map +0 -1
- package/dist/drizzle/d1-phone.d.mts +0 -23
- package/dist/drizzle/d1-phone.mjs +0 -33
- package/dist/drizzle/d1-phone.mjs.map +0 -1
- package/dist/drizzle/d1-planning.d.mts +0 -11
- package/dist/drizzle/d1-planning.mjs +0 -43
- package/dist/drizzle/d1-planning.mjs.map +0 -1
- package/dist/drizzle/d1-proofs.d.mts +0 -80
- package/dist/drizzle/d1-proofs.mjs +0 -842
- package/dist/drizzle/d1-proofs.mjs.map +0 -1
- package/dist/drizzle/d1-sessions.d.mts +0 -68
- package/dist/drizzle/d1-sessions.mjs +0 -987
- package/dist/drizzle/d1-sessions.mjs.map +0 -1
- package/dist/drizzle/d1-totp.d.mts +0 -23
- package/dist/drizzle/d1-totp.mjs +0 -30
- package/dist/drizzle/d1-totp.mjs.map +0 -1
- package/dist/drizzle/email-registration.d.mts +0 -33
- package/dist/drizzle/email-registration.mjs +0 -281
- package/dist/drizzle/email-registration.mjs.map +0 -1
- package/dist/drizzle/email-sql.d.mts +0 -1
- package/dist/drizzle/email-sql.mjs +0 -9
- package/dist/drizzle/email-sql.mjs.map +0 -1
- package/dist/drizzle/mysql-emails.d.mts +0 -71
- package/dist/drizzle/mysql-emails.mjs +0 -43
- package/dist/drizzle/mysql-emails.mjs.map +0 -1
- package/dist/drizzle/mysql-password-prepared.d.mts +0 -30
- package/dist/drizzle/mysql-password-prepared.mjs +0 -21
- package/dist/drizzle/mysql-password-prepared.mjs.map +0 -1
- package/dist/drizzle/mysql-passwords.d.mts +0 -71
- package/dist/drizzle/mysql-passwords.mjs +0 -43
- package/dist/drizzle/mysql-passwords.mjs.map +0 -1
- package/dist/drizzle/mysql-proofs.d.mts +0 -75
- package/dist/drizzle/mysql-proofs.mjs +0 -28
- package/dist/drizzle/mysql-proofs.mjs.map +0 -1
- package/dist/drizzle/mysql-sessions.d.mts +0 -92
- package/dist/drizzle/mysql-sessions.mjs +0 -58
- package/dist/drizzle/mysql-sessions.mjs.map +0 -1
- package/dist/drizzle/oauth-connected-model.mjs.map +0 -1
- package/dist/drizzle/oauth-connected-target.d.mts +0 -6
- package/dist/drizzle/oauth-connected-target.mjs +0 -12
- package/dist/drizzle/oauth-connected-target.mjs.map +0 -1
- package/dist/drizzle/oauth-kernel.mjs +0 -11
- package/dist/drizzle/oauth-kernel.mjs.map +0 -1
- package/dist/drizzle/oauth-mysql.mjs +0 -8
- package/dist/drizzle/oauth-mysql.mjs.map +0 -1
- package/dist/drizzle/passkey-kernel.mjs +0 -8
- package/dist/drizzle/passkey-kernel.mjs.map +0 -1
- package/dist/drizzle/passkey-model.mjs.map +0 -1
- package/dist/drizzle/passkey-registration-ceremony-model.mjs +0 -2
- package/dist/drizzle/passkey-state.mjs +0 -7
- package/dist/drizzle/passkey-state.mjs.map +0 -1
- package/dist/drizzle/passkey-target.d.mts +0 -2
- package/dist/drizzle/passkey-target.mjs +0 -7
- package/dist/drizzle/passkey-target.mjs.map +0 -1
- package/dist/drizzle/passkey-write-target.d.mts +0 -5
- package/dist/drizzle/passkey-write-target.mjs +0 -7
- package/dist/drizzle/passkey-write-target.mjs.map +0 -1
- package/dist/drizzle/password-prepared-model.d.mts +0 -92
- package/dist/drizzle/password-prepared-model.mjs +0 -11
- package/dist/drizzle/password-prepared-model.mjs.map +0 -1
- package/dist/drizzle/password-prepared-sql.mjs +0 -395
- package/dist/drizzle/password-prepared-sql.mjs.map +0 -1
- package/dist/drizzle/password-prepared-state.mjs +0 -104
- package/dist/drizzle/password-prepared-state.mjs.map +0 -1
- package/dist/drizzle/password-prepared-target.d.mts +0 -13
- package/dist/drizzle/password-prepared-target.mjs +0 -62
- package/dist/drizzle/password-prepared-target.mjs.map +0 -1
- package/dist/drizzle/password-registration.d.mts +0 -7
- package/dist/drizzle/password-registration.mjs +0 -137
- package/dist/drizzle/password-registration.mjs.map +0 -1
- package/dist/drizzle/password-sql.d.mts +0 -1
- package/dist/drizzle/password-sql.mjs +0 -10
- package/dist/drizzle/password-sql.mjs.map +0 -1
- package/dist/drizzle/pg-emails.d.mts +0 -72
- package/dist/drizzle/pg-emails.mjs +0 -43
- package/dist/drizzle/pg-emails.mjs.map +0 -1
- package/dist/drizzle/pg-password-prepared.d.mts +0 -31
- package/dist/drizzle/pg-password-prepared.mjs +0 -21
- package/dist/drizzle/pg-password-prepared.mjs.map +0 -1
- package/dist/drizzle/pg-passwords.d.mts +0 -72
- package/dist/drizzle/pg-passwords.mjs +0 -43
- package/dist/drizzle/pg-passwords.mjs.map +0 -1
- package/dist/drizzle/pg-proofs.d.mts +0 -76
- package/dist/drizzle/pg-proofs.mjs +0 -27
- package/dist/drizzle/pg-proofs.mjs.map +0 -1
- package/dist/drizzle/pg-sessions.d.mts +0 -93
- package/dist/drizzle/pg-sessions.mjs +0 -58
- package/dist/drizzle/pg-sessions.mjs.map +0 -1
- package/dist/drizzle/phone-state.mjs +0 -14
- package/dist/drizzle/phone-state.mjs.map +0 -1
- package/dist/drizzle/phone-target.d.mts +0 -15
- package/dist/drizzle/proof-sql.d.mts +0 -1
- package/dist/drizzle/proof-sql.mjs +0 -8
- package/dist/drizzle/proof-sql.mjs.map +0 -1
- package/dist/drizzle/query-operations.mjs +0 -31
- package/dist/drizzle/query-operations.mjs.map +0 -1
- package/dist/drizzle/session-sql.d.mts +0 -1
- package/dist/drizzle/session-sql.mjs +0 -9
- package/dist/drizzle/session-sql.mjs.map +0 -1
- package/dist/drizzle/session-target.d.mts +0 -30
- package/dist/drizzle/session-target.mjs +0 -49
- package/dist/drizzle/session-target.mjs.map +0 -1
- package/dist/drizzle/sqlite-emails.mjs +0 -50
- package/dist/drizzle/sqlite-emails.mjs.map +0 -1
- package/dist/drizzle/sqlite-password-prepared.mjs +0 -26
- package/dist/drizzle/sqlite-password-prepared.mjs.map +0 -1
- package/dist/drizzle/sqlite-passwords.mjs +0 -54
- package/dist/drizzle/sqlite-passwords.mjs.map +0 -1
- package/dist/drizzle/sqlite-proofs.mjs +0 -34
- package/dist/drizzle/sqlite-proofs.mjs.map +0 -1
- package/dist/drizzle/sqlite-sessions.mjs +0 -79
- package/dist/drizzle/sqlite-sessions.mjs.map +0 -1
- package/dist/drizzle/standalone-guard.d.mts +0 -2
- package/dist/drizzle/standalone-guard.mjs +0 -21
- package/dist/drizzle/standalone-guard.mjs.map +0 -1
- package/dist/drizzle/totp-state.d.mts +0 -37
- package/dist/drizzle/totp-state.mjs +0 -287
- package/dist/drizzle/totp-state.mjs.map +0 -1
- package/dist/drizzle/totp-target.d.mts +0 -15
- package/dist/drizzle/transaction-execution.d.mts +0 -2
- package/dist/drizzle/transaction-execution.mjs +0 -11
- package/dist/drizzle/transaction-execution.mjs.map +0 -1
- package/dist/drizzle/transaction-owner.d.mts +0 -1
- package/dist/drizzle/transaction-owner.mjs +0 -8
- package/dist/drizzle/transaction-owner.mjs.map +0 -1
- package/src/drizzle/crypto.ts +0 -14
- package/src/drizzle/d1-emails.ts +0 -1945
- package/src/drizzle/d1-generated-statement.ts +0 -129
- package/src/drizzle/d1-oauth.ts +0 -360
- package/src/drizzle/d1-passkey.ts +0 -383
- package/src/drizzle/d1-password-prepared.ts +0 -1265
- package/src/drizzle/d1-passwords.ts +0 -2060
- package/src/drizzle/d1-phone.ts +0 -103
- package/src/drizzle/d1-planning.ts +0 -104
- package/src/drizzle/d1-proofs.ts +0 -2354
- package/src/drizzle/d1-sessions.ts +0 -2940
- package/src/drizzle/d1-totp.ts +0 -88
- package/src/drizzle/email-registration.ts +0 -850
- package/src/drizzle/email-sql.ts +0 -25
- package/src/drizzle/mysql-emails.ts +0 -343
- package/src/drizzle/mysql-password-prepared.ts +0 -198
- package/src/drizzle/mysql-passwords.ts +0 -343
- package/src/drizzle/mysql-proofs.ts +0 -196
- package/src/drizzle/mysql-sessions.ts +0 -780
- package/src/drizzle/oauth-connected-target.ts +0 -21
- package/src/drizzle/oauth-kernel.ts +0 -10
- package/src/drizzle/oauth-mysql.ts +0 -10
- package/src/drizzle/passkey-kernel.ts +0 -4
- package/src/drizzle/passkey-state.ts +0 -3
- package/src/drizzle/passkey-target.ts +0 -23
- package/src/drizzle/passkey-write-target.ts +0 -9
- package/src/drizzle/password-prepared-model.ts +0 -241
- package/src/drizzle/password-prepared-sql.ts +0 -1201
- package/src/drizzle/password-prepared-state.ts +0 -231
- package/src/drizzle/password-prepared-target.ts +0 -169
- package/src/drizzle/password-registration.ts +0 -369
- package/src/drizzle/password-sql.ts +0 -16
- package/src/drizzle/pg-emails.ts +0 -343
- package/src/drizzle/pg-password-prepared.ts +0 -199
- package/src/drizzle/pg-passwords.ts +0 -342
- package/src/drizzle/pg-proofs.ts +0 -206
- package/src/drizzle/pg-sessions.ts +0 -789
- package/src/drizzle/phone-state.ts +0 -21
- package/src/drizzle/proof-sql.ts +0 -10
- package/src/drizzle/query-operations.ts +0 -49
- package/src/drizzle/session-sql.ts +0 -15
- package/src/drizzle/session-target.ts +0 -337
- package/src/drizzle/sqlite-emails.ts +0 -393
- package/src/drizzle/sqlite-password-prepared.ts +0 -230
- package/src/drizzle/sqlite-passwords.ts +0 -497
- package/src/drizzle/sqlite-proofs.ts +0 -229
- package/src/drizzle/sqlite-sessions.ts +0 -1013
- package/src/drizzle/totp-state.ts +0 -525
- package/src/drizzle/transaction-execution.ts +0 -13
- package/src/drizzle/transaction-owner.ts +0 -11
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
|
|
2
1
|
import type { LifecycleHooks } from "@yielded/auth/Hooks";
|
|
3
2
|
import { PasskeyManagementPersistence, PasskeyPersistence } from "@yielded/auth/Passkey";
|
|
4
3
|
import type { Table } from "drizzle-orm";
|
|
5
4
|
import { type Crypto, Context, Effect } from "effect";
|
|
6
5
|
|
|
7
|
-
import {
|
|
6
|
+
import type { D1BatchStatements } from "./D1BatchStatements";
|
|
7
|
+
import { NativeDatabase, nativeDatabase } from "./native-database";
|
|
8
8
|
import type { PasskeyMappingSource } from "./passkey-model";
|
|
9
|
-
import type { PasskeyCoordinatorError, PasskeyTargetConfiguration } from "./passkey-target";
|
|
10
9
|
import type {
|
|
11
10
|
PasskeyManagementMapping,
|
|
12
11
|
PasskeyRegistrationMapping,
|
|
13
12
|
PasskeyRegistrationWriter,
|
|
14
13
|
} from "./passkey-write-model";
|
|
14
|
+
import type { PasskeyCoordinatorError, PasskeyTargetConfiguration } from "./passkey/target";
|
|
15
15
|
import {
|
|
16
16
|
coordinateTargetPasskeyManagement,
|
|
17
17
|
coordinateTargetPasskeyRegistrationWriter,
|
|
18
18
|
makeTargetPasskeyManagement,
|
|
19
19
|
makeTargetPasskeyRegistrationWriter,
|
|
20
|
-
} from "./passkey
|
|
20
|
+
} from "./passkey/write-target";
|
|
21
21
|
import type { SuppliedService } from "./SuppliedService";
|
|
22
22
|
// oxlint-disable-next-line no-explicit-any -- inspect the installed concrete transaction callback.
|
|
23
23
|
type TransactionOf<D> = D extends { readonly transaction: (...args: any[]) => any }
|
|
@@ -29,7 +29,7 @@ export const makePasskeyWriteTarget = <
|
|
|
29
29
|
D,
|
|
30
30
|
T extends Table,
|
|
31
31
|
Extra = unknown,
|
|
32
|
-
|
|
32
|
+
Provided extends D1BatchStatements = never,
|
|
33
33
|
>(
|
|
34
34
|
databaseService: Context.Service<DatabaseId, D>,
|
|
35
35
|
configuration: PasskeyTargetConfiguration,
|
|
@@ -39,13 +39,7 @@ export const makePasskeyWriteTarget = <
|
|
|
39
39
|
S extends T,
|
|
40
40
|
C extends T,
|
|
41
41
|
F extends T,
|
|
42
|
-
O extends T,
|
|
43
|
-
H extends T,
|
|
44
|
-
M extends T,
|
|
45
42
|
Flow extends T,
|
|
46
|
-
Admission extends T,
|
|
47
|
-
Charge extends T,
|
|
48
|
-
Command extends T,
|
|
49
43
|
N,
|
|
50
44
|
A,
|
|
51
45
|
E,
|
|
@@ -57,22 +51,16 @@ export const makePasskeyWriteTarget = <
|
|
|
57
51
|
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
58
52
|
options: {
|
|
59
53
|
readonly mapping: PasskeyMappingSource<
|
|
60
|
-
PasskeyManagementMapping<S, C, F,
|
|
54
|
+
PasskeyManagementMapping<S, C, F, Flow, N> & Extra,
|
|
61
55
|
RSetup
|
|
62
56
|
>;
|
|
63
57
|
readonly transaction?: never;
|
|
64
58
|
},
|
|
65
|
-
body: Effect.Effect<
|
|
66
|
-
A,
|
|
67
|
-
E,
|
|
68
|
-
Synchronous extends true ? NoInfer<PasskeyPersistence | PasskeyManagementPersistence> : R
|
|
69
|
-
>,
|
|
59
|
+
body: Effect.Effect<A, E, R>,
|
|
70
60
|
): Effect.Effect<
|
|
71
61
|
A,
|
|
72
62
|
PasskeyCoordinatorError<E> | DatabaseError,
|
|
73
|
-
|
|
|
74
|
-
? never
|
|
75
|
-
: Exclude<R, PasskeyPersistence | PasskeyManagementPersistence>)
|
|
63
|
+
| Exclude<R, PasskeyPersistence | PasskeyManagementPersistence | Provided>
|
|
76
64
|
| Crypto.Crypto
|
|
77
65
|
| LifecycleHooks
|
|
78
66
|
| RSetup
|
|
@@ -83,13 +71,7 @@ export const makePasskeyWriteTarget = <
|
|
|
83
71
|
S extends T,
|
|
84
72
|
C extends T,
|
|
85
73
|
F extends T,
|
|
86
|
-
O extends T,
|
|
87
|
-
H extends T,
|
|
88
|
-
M extends T,
|
|
89
74
|
Flow extends T,
|
|
90
|
-
Admission extends T,
|
|
91
|
-
Charge extends T,
|
|
92
|
-
Command extends T,
|
|
93
75
|
N,
|
|
94
76
|
A,
|
|
95
77
|
E,
|
|
@@ -103,24 +85,20 @@ export const makePasskeyWriteTarget = <
|
|
|
103
85
|
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
104
86
|
options: {
|
|
105
87
|
readonly mapping: PasskeyMappingSource<
|
|
106
|
-
PasskeyManagementMapping<S, C, F,
|
|
88
|
+
PasskeyManagementMapping<S, C, F, Flow, N> & Extra,
|
|
107
89
|
RSetup
|
|
108
90
|
>;
|
|
109
|
-
readonly transaction: SuppliedService<
|
|
91
|
+
readonly transaction: SuppliedService<
|
|
92
|
+
TxId,
|
|
93
|
+
NoInfer<[Provided] extends [never] ? TransactionOf<Database> : never>,
|
|
94
|
+
TxShape
|
|
95
|
+
>;
|
|
110
96
|
},
|
|
111
|
-
body: Effect.Effect<
|
|
112
|
-
A,
|
|
113
|
-
E,
|
|
114
|
-
Synchronous extends true
|
|
115
|
-
? NoInfer<PasskeyPersistence | PasskeyManagementPersistence | TxId>
|
|
116
|
-
: R
|
|
117
|
-
>,
|
|
97
|
+
body: Effect.Effect<A, E, R>,
|
|
118
98
|
): Effect.Effect<
|
|
119
99
|
A,
|
|
120
100
|
PasskeyCoordinatorError<E> | DatabaseError,
|
|
121
|
-
|
|
|
122
|
-
? never
|
|
123
|
-
: Exclude<R, PasskeyPersistence | PasskeyManagementPersistence | TxId>)
|
|
101
|
+
| Exclude<R, PasskeyPersistence | PasskeyManagementPersistence | TxId | Provided>
|
|
124
102
|
| Crypto.Crypto
|
|
125
103
|
| LifecycleHooks
|
|
126
104
|
| RSetup
|
|
@@ -131,13 +109,7 @@ export const makePasskeyWriteTarget = <
|
|
|
131
109
|
S extends T,
|
|
132
110
|
C extends T,
|
|
133
111
|
F extends T,
|
|
134
|
-
O extends T,
|
|
135
|
-
H extends T,
|
|
136
|
-
M extends T,
|
|
137
112
|
Flow extends T,
|
|
138
|
-
Admission extends T,
|
|
139
|
-
Charge extends T,
|
|
140
|
-
Command extends T,
|
|
141
113
|
N,
|
|
142
114
|
A,
|
|
143
115
|
E,
|
|
@@ -151,7 +123,7 @@ export const makePasskeyWriteTarget = <
|
|
|
151
123
|
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
152
124
|
options: {
|
|
153
125
|
readonly mapping: PasskeyMappingSource<
|
|
154
|
-
PasskeyManagementMapping<S, C, F,
|
|
126
|
+
PasskeyManagementMapping<S, C, F, Flow, N> & Extra,
|
|
155
127
|
RSetup
|
|
156
128
|
>;
|
|
157
129
|
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
|
|
@@ -193,20 +165,11 @@ export const makePasskeyWriteTarget = <
|
|
|
193
165
|
S extends T,
|
|
194
166
|
C extends T,
|
|
195
167
|
F extends T,
|
|
196
|
-
O extends T,
|
|
197
|
-
H extends T,
|
|
198
|
-
M extends T,
|
|
199
168
|
Flow extends T,
|
|
200
|
-
Admission extends T,
|
|
201
|
-
Charge extends T,
|
|
202
|
-
Command extends T,
|
|
203
169
|
N,
|
|
204
170
|
RSetup = never,
|
|
205
171
|
>(
|
|
206
|
-
mapping: PasskeyMappingSource<
|
|
207
|
-
PasskeyManagementMapping<S, C, F, O, H, M, Flow, Admission, Charge, Command, N> & Extra,
|
|
208
|
-
RSetup
|
|
209
|
-
>,
|
|
172
|
+
mapping: PasskeyMappingSource<PasskeyManagementMapping<S, C, F, Flow, N> & Extra, RSetup>,
|
|
210
173
|
) =>
|
|
211
174
|
makeTargetPasskeyManagement(mapping, configuration).pipe(
|
|
212
175
|
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
|
|
@@ -217,13 +180,7 @@ export const makePasskeyWriteTarget = <
|
|
|
217
180
|
S extends T,
|
|
218
181
|
C extends T,
|
|
219
182
|
F extends T,
|
|
220
|
-
O extends T,
|
|
221
|
-
H extends T,
|
|
222
|
-
M extends T,
|
|
223
183
|
Flow extends T,
|
|
224
|
-
Admission extends T,
|
|
225
|
-
Charge extends T,
|
|
226
|
-
Intent extends T,
|
|
227
184
|
N,
|
|
228
185
|
Value,
|
|
229
186
|
A,
|
|
@@ -237,22 +194,17 @@ export const makePasskeyWriteTarget = <
|
|
|
237
194
|
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
238
195
|
options: {
|
|
239
196
|
readonly mapping: PasskeyMappingSource<
|
|
240
|
-
PasskeyRegistrationMapping<S, C, F,
|
|
241
|
-
Extra,
|
|
197
|
+
PasskeyRegistrationMapping<S, C, F, Flow, N, Value> & Extra,
|
|
242
198
|
RSetup
|
|
243
199
|
>;
|
|
244
200
|
readonly authority: Context.Key<AuthorityId, PasskeyRegistrationWriter<Value>>;
|
|
245
201
|
readonly transaction?: never;
|
|
246
202
|
},
|
|
247
|
-
body: Effect.Effect<
|
|
248
|
-
A,
|
|
249
|
-
E,
|
|
250
|
-
Synchronous extends true ? NoInfer<PasskeyPersistence | AuthorityId> : R
|
|
251
|
-
>,
|
|
203
|
+
body: Effect.Effect<A, E, R>,
|
|
252
204
|
): Effect.Effect<
|
|
253
205
|
A,
|
|
254
206
|
PasskeyCoordinatorError<E> | DatabaseError,
|
|
255
|
-
|
|
|
207
|
+
| Exclude<R, PasskeyPersistence | AuthorityId | Provided>
|
|
256
208
|
| Crypto.Crypto
|
|
257
209
|
| LifecycleHooks
|
|
258
210
|
| RSetup
|
|
@@ -263,13 +215,7 @@ export const makePasskeyWriteTarget = <
|
|
|
263
215
|
S extends T,
|
|
264
216
|
C extends T,
|
|
265
217
|
F extends T,
|
|
266
|
-
O extends T,
|
|
267
|
-
H extends T,
|
|
268
|
-
M extends T,
|
|
269
218
|
Flow extends T,
|
|
270
|
-
Admission extends T,
|
|
271
|
-
Charge extends T,
|
|
272
|
-
Intent extends T,
|
|
273
219
|
N,
|
|
274
220
|
Value,
|
|
275
221
|
A,
|
|
@@ -285,22 +231,21 @@ export const makePasskeyWriteTarget = <
|
|
|
285
231
|
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
286
232
|
options: {
|
|
287
233
|
readonly mapping: PasskeyMappingSource<
|
|
288
|
-
PasskeyRegistrationMapping<S, C, F,
|
|
289
|
-
Extra,
|
|
234
|
+
PasskeyRegistrationMapping<S, C, F, Flow, N, Value> & Extra,
|
|
290
235
|
RSetup
|
|
291
236
|
>;
|
|
292
237
|
readonly authority: Context.Key<AuthorityId, PasskeyRegistrationWriter<Value>>;
|
|
293
|
-
readonly transaction: SuppliedService<
|
|
238
|
+
readonly transaction: SuppliedService<
|
|
239
|
+
TxId,
|
|
240
|
+
NoInfer<[Provided] extends [never] ? TransactionOf<Database> : never>,
|
|
241
|
+
TxShape
|
|
242
|
+
>;
|
|
294
243
|
},
|
|
295
|
-
body: Effect.Effect<
|
|
296
|
-
A,
|
|
297
|
-
E,
|
|
298
|
-
Synchronous extends true ? NoInfer<PasskeyPersistence | AuthorityId | TxId> : R
|
|
299
|
-
>,
|
|
244
|
+
body: Effect.Effect<A, E, R>,
|
|
300
245
|
): Effect.Effect<
|
|
301
246
|
A,
|
|
302
247
|
PasskeyCoordinatorError<E> | DatabaseError,
|
|
303
|
-
|
|
|
248
|
+
| Exclude<R, PasskeyPersistence | AuthorityId | TxId | Provided>
|
|
304
249
|
| Crypto.Crypto
|
|
305
250
|
| LifecycleHooks
|
|
306
251
|
| RSetup
|
|
@@ -311,13 +256,7 @@ export const makePasskeyWriteTarget = <
|
|
|
311
256
|
S extends T,
|
|
312
257
|
C extends T,
|
|
313
258
|
F extends T,
|
|
314
|
-
O extends T,
|
|
315
|
-
H extends T,
|
|
316
|
-
M extends T,
|
|
317
259
|
Flow extends T,
|
|
318
|
-
Admission extends T,
|
|
319
|
-
Charge extends T,
|
|
320
|
-
Intent extends T,
|
|
321
260
|
N,
|
|
322
261
|
Value,
|
|
323
262
|
A,
|
|
@@ -333,8 +272,7 @@ export const makePasskeyWriteTarget = <
|
|
|
333
272
|
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
334
273
|
options: {
|
|
335
274
|
readonly mapping: PasskeyMappingSource<
|
|
336
|
-
PasskeyRegistrationMapping<S, C, F,
|
|
337
|
-
Extra,
|
|
275
|
+
PasskeyRegistrationMapping<S, C, F, Flow, N, Value> & Extra,
|
|
338
276
|
RSetup
|
|
339
277
|
>;
|
|
340
278
|
readonly authority: Context.Key<AuthorityId, PasskeyRegistrationWriter<Value>>;
|
|
@@ -377,26 +315,18 @@ export const makePasskeyWriteTarget = <
|
|
|
377
315
|
S extends T,
|
|
378
316
|
C extends T,
|
|
379
317
|
F extends T,
|
|
380
|
-
O extends T,
|
|
381
|
-
H extends T,
|
|
382
|
-
M extends T,
|
|
383
318
|
Flow extends T,
|
|
384
|
-
Admission extends T,
|
|
385
|
-
Charge extends T,
|
|
386
|
-
Intent extends T,
|
|
387
319
|
N,
|
|
388
320
|
Value,
|
|
389
321
|
RSetup = never,
|
|
390
322
|
>(
|
|
391
323
|
mapping: PasskeyMappingSource<
|
|
392
|
-
PasskeyRegistrationMapping<S, C, F,
|
|
393
|
-
Extra,
|
|
324
|
+
PasskeyRegistrationMapping<S, C, F, Flow, N, Value> & Extra,
|
|
394
325
|
RSetup
|
|
395
326
|
>,
|
|
396
327
|
) =>
|
|
397
328
|
makeTargetPasskeyRegistrationWriter<
|
|
398
|
-
PasskeyRegistrationMapping<S, C, F,
|
|
399
|
-
Extra,
|
|
329
|
+
PasskeyRegistrationMapping<S, C, F, Flow, N, Value> & Extra,
|
|
400
330
|
Value,
|
|
401
331
|
RSetup
|
|
402
332
|
>(mapping, configuration).pipe(
|
|
@@ -1,74 +1,52 @@
|
|
|
1
1
|
import * as Shared from "@yielded/auth-persistence/Adapter";
|
|
2
|
-
import type {
|
|
2
|
+
import type { SQL, Table } from "drizzle-orm";
|
|
3
3
|
|
|
4
4
|
import type { DrizzleTableModel } from "./table-model";
|
|
5
5
|
|
|
6
|
-
export {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
type PasskeyRegistrationServices,
|
|
13
|
-
requiredPasskeyRegistrationWriteConstraints,
|
|
6
|
+
export type {
|
|
7
|
+
PasskeyCredentialInsert,
|
|
8
|
+
PasskeyInvalidationInput,
|
|
9
|
+
PasskeyManagementServices,
|
|
10
|
+
PasskeyRegistrationWriter,
|
|
11
|
+
PasskeyRegistrationServices,
|
|
14
12
|
} from "@yielded/auth-persistence/Adapter";
|
|
15
13
|
|
|
16
14
|
export type PasskeyWriteTables<
|
|
17
15
|
S extends Table,
|
|
18
16
|
C extends Table,
|
|
19
17
|
F extends Table,
|
|
20
|
-
O extends Table,
|
|
21
|
-
H extends Table,
|
|
22
18
|
N,
|
|
23
19
|
> = Shared.PasskeyWriteTables<
|
|
24
20
|
DrizzleTableModel<S>,
|
|
25
21
|
DrizzleTableModel<C>,
|
|
26
22
|
DrizzleTableModel<F>,
|
|
27
|
-
DrizzleTableModel<O>,
|
|
28
|
-
DrizzleTableModel<H>,
|
|
29
23
|
N,
|
|
30
24
|
SQL
|
|
31
25
|
>;
|
|
32
26
|
|
|
33
27
|
export type PasskeyInvalidationMutation<N> = Shared.PasskeyInvalidationMutation<N, SQL>;
|
|
34
28
|
|
|
35
|
-
/** Same-owner updates for consumer session/pending tables. No external effects or callbacks after commit. */
|
|
36
29
|
export const passkeyInvalidationMutation = <T extends Table, N>(input: {
|
|
37
30
|
readonly table: T;
|
|
38
31
|
readonly where: (input: Shared.PasskeyInvalidationInput<N>) => SQL;
|
|
39
|
-
readonly values: (
|
|
32
|
+
readonly values: (
|
|
33
|
+
input: Shared.PasskeyInvalidationInput<N>,
|
|
34
|
+
) => Partial<DrizzleTableModel<T>["insert"]>;
|
|
40
35
|
readonly postcondition: (input: Shared.PasskeyInvalidationInput<N>) => SQL;
|
|
41
36
|
}): PasskeyInvalidationMutation<N> =>
|
|
42
37
|
Shared.passkeyInvalidationMutation<DrizzleTableModel<T>, N, SQL>(input);
|
|
43
38
|
|
|
44
|
-
export type PasskeyCommandTable<T extends Table, N> = Shared.PasskeyCommandTable<
|
|
45
|
-
DrizzleTableModel<T>,
|
|
46
|
-
N
|
|
47
|
-
>;
|
|
48
|
-
|
|
49
39
|
export type PasskeyManagementMapping<
|
|
50
40
|
S extends Table,
|
|
51
41
|
C extends Table,
|
|
52
42
|
F extends Table,
|
|
53
|
-
O extends Table,
|
|
54
|
-
H extends Table,
|
|
55
|
-
M extends Table,
|
|
56
43
|
Flow extends Table,
|
|
57
|
-
A extends Table,
|
|
58
|
-
Charge extends Table,
|
|
59
|
-
Command extends Table,
|
|
60
44
|
N,
|
|
61
45
|
> = Shared.PasskeyManagementMapping<
|
|
62
46
|
DrizzleTableModel<S>,
|
|
63
47
|
DrizzleTableModel<C>,
|
|
64
48
|
DrizzleTableModel<F>,
|
|
65
|
-
DrizzleTableModel<O>,
|
|
66
|
-
DrizzleTableModel<H>,
|
|
67
|
-
DrizzleTableModel<M>,
|
|
68
49
|
DrizzleTableModel<Flow>,
|
|
69
|
-
DrizzleTableModel<A>,
|
|
70
|
-
DrizzleTableModel<Charge>,
|
|
71
|
-
DrizzleTableModel<Command>,
|
|
72
50
|
N,
|
|
73
51
|
SQL
|
|
74
52
|
>;
|
|
@@ -77,26 +55,14 @@ export type PasskeyRegistrationMapping<
|
|
|
77
55
|
S extends Table,
|
|
78
56
|
C extends Table,
|
|
79
57
|
F extends Table,
|
|
80
|
-
O extends Table,
|
|
81
|
-
H extends Table,
|
|
82
|
-
M extends Table,
|
|
83
58
|
Flow extends Table,
|
|
84
|
-
A extends Table,
|
|
85
|
-
Charge extends Table,
|
|
86
|
-
Intent extends Table,
|
|
87
59
|
N,
|
|
88
60
|
R,
|
|
89
61
|
> = Shared.PasskeyRegistrationMapping<
|
|
90
62
|
DrizzleTableModel<S>,
|
|
91
63
|
DrizzleTableModel<C>,
|
|
92
64
|
DrizzleTableModel<F>,
|
|
93
|
-
DrizzleTableModel<O>,
|
|
94
|
-
DrizzleTableModel<H>,
|
|
95
|
-
DrizzleTableModel<M>,
|
|
96
65
|
DrizzleTableModel<Flow>,
|
|
97
|
-
DrizzleTableModel<A>,
|
|
98
|
-
DrizzleTableModel<Charge>,
|
|
99
|
-
DrizzleTableModel<Intent>,
|
|
100
66
|
N,
|
|
101
67
|
R,
|
|
102
68
|
SQL
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import type { PasswordRegistrationAuthority } from "@yielded/auth-persistence/Adapter";
|
|
2
|
+
import type { LifecycleHooks } from "@yielded/auth/Hooks";
|
|
3
|
+
import { PasswordPersistence, type PasswordUnavailable } from "@yielded/auth/Password";
|
|
4
|
+
import type { Table } from "drizzle-orm";
|
|
5
|
+
import { type Context, Effect, type Crypto } from "effect";
|
|
6
|
+
|
|
7
|
+
import type { NativeDriverDatabase, NativeDriverTransaction } from "./driver-types";
|
|
8
|
+
import { NativeDatabase, nativeDatabase } from "./native-database";
|
|
9
|
+
import type { NativeTargetConfiguration } from "./native-target";
|
|
10
|
+
import type {
|
|
11
|
+
AnyPasswordPersistenceMapping,
|
|
12
|
+
AnyPasswordRegistrationMapping,
|
|
13
|
+
PasswordPersistenceMapping,
|
|
14
|
+
PasswordRegistrationMapping,
|
|
15
|
+
} from "./password-model";
|
|
16
|
+
import {
|
|
17
|
+
coordinateTargetPasswordPersistence,
|
|
18
|
+
coordinateTargetPasswordRegistration,
|
|
19
|
+
makeTargetPasswordPersistenceServices,
|
|
20
|
+
makeTargetPasswordRegistrationServices,
|
|
21
|
+
} from "./password-target";
|
|
22
|
+
import type { AnyProofPersistenceMapping, ProofPersistenceMapping } from "./proof-model";
|
|
23
|
+
import type { SuppliedService } from "./SuppliedService";
|
|
24
|
+
|
|
25
|
+
type ProofOption<Proof extends Table, Subject extends Table, NativeId> = {
|
|
26
|
+
readonly proofMapping?: ProofPersistenceMapping<Proof, Subject, NativeId>;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/** Foreign table callback variance is erased only after these public signatures;
|
|
30
|
+
* the target validates physical metadata and the workflow invokes row codecs. */
|
|
31
|
+
export const makePasswordTarget = <DatabaseId, D extends NativeDriverDatabase>(
|
|
32
|
+
databaseService: Context.Service<DatabaseId, D>,
|
|
33
|
+
configuration: NativeTargetConfiguration,
|
|
34
|
+
) => {
|
|
35
|
+
function coordinatePasswordPersistence<
|
|
36
|
+
Database extends D,
|
|
37
|
+
S extends Table,
|
|
38
|
+
I extends Table,
|
|
39
|
+
C extends Table,
|
|
40
|
+
AC extends Table,
|
|
41
|
+
N,
|
|
42
|
+
Proof extends Table,
|
|
43
|
+
PS extends Table,
|
|
44
|
+
PN,
|
|
45
|
+
A,
|
|
46
|
+
E,
|
|
47
|
+
R,
|
|
48
|
+
DE,
|
|
49
|
+
DR,
|
|
50
|
+
>(
|
|
51
|
+
acquire: Effect.Effect<Database, DE, DR>,
|
|
52
|
+
options: {
|
|
53
|
+
readonly mapping: PasswordPersistenceMapping<S, I, C, AC, N>;
|
|
54
|
+
readonly transaction?: never;
|
|
55
|
+
} & ProofOption<Proof, PS, PN>,
|
|
56
|
+
body: Effect.Effect<A, E, R>,
|
|
57
|
+
): Effect.Effect<
|
|
58
|
+
A,
|
|
59
|
+
E | DE | PasswordUnavailable,
|
|
60
|
+
Exclude<R, PasswordPersistence> | DR | LifecycleHooks | Crypto.Crypto
|
|
61
|
+
>;
|
|
62
|
+
function coordinatePasswordPersistence<
|
|
63
|
+
Database extends D,
|
|
64
|
+
S extends Table,
|
|
65
|
+
I extends Table,
|
|
66
|
+
C extends Table,
|
|
67
|
+
AC extends Table,
|
|
68
|
+
N,
|
|
69
|
+
Proof extends Table,
|
|
70
|
+
PS extends Table,
|
|
71
|
+
PN,
|
|
72
|
+
A,
|
|
73
|
+
E,
|
|
74
|
+
R,
|
|
75
|
+
DE,
|
|
76
|
+
DR,
|
|
77
|
+
TxId,
|
|
78
|
+
TxShape,
|
|
79
|
+
>(
|
|
80
|
+
acquire: Effect.Effect<Database, DE, DR>,
|
|
81
|
+
options: {
|
|
82
|
+
readonly mapping: PasswordPersistenceMapping<S, I, C, AC, N>;
|
|
83
|
+
readonly transaction: SuppliedService<
|
|
84
|
+
TxId,
|
|
85
|
+
NoInfer<NativeDriverTransaction<Database>>,
|
|
86
|
+
TxShape
|
|
87
|
+
>;
|
|
88
|
+
} & ProofOption<Proof, PS, PN>,
|
|
89
|
+
body: Effect.Effect<A, E, R>,
|
|
90
|
+
): Effect.Effect<
|
|
91
|
+
A,
|
|
92
|
+
E | DE | PasswordUnavailable,
|
|
93
|
+
Exclude<R, PasswordPersistence | TxId> | DR | LifecycleHooks | Crypto.Crypto
|
|
94
|
+
>;
|
|
95
|
+
function coordinatePasswordPersistence<
|
|
96
|
+
Database extends D,
|
|
97
|
+
S extends Table,
|
|
98
|
+
I extends Table,
|
|
99
|
+
C extends Table,
|
|
100
|
+
AC extends Table,
|
|
101
|
+
N,
|
|
102
|
+
Proof extends Table,
|
|
103
|
+
PS extends Table,
|
|
104
|
+
PN,
|
|
105
|
+
A,
|
|
106
|
+
E,
|
|
107
|
+
R,
|
|
108
|
+
DE,
|
|
109
|
+
DR,
|
|
110
|
+
TxId,
|
|
111
|
+
TxShape,
|
|
112
|
+
>(
|
|
113
|
+
acquire: Effect.Effect<Database, DE, DR>,
|
|
114
|
+
options: {
|
|
115
|
+
readonly mapping: PasswordPersistenceMapping<S, I, C, AC, N>;
|
|
116
|
+
readonly transaction?: SuppliedService<
|
|
117
|
+
TxId,
|
|
118
|
+
NoInfer<NativeDriverTransaction<Database>>,
|
|
119
|
+
TxShape
|
|
120
|
+
>;
|
|
121
|
+
} & ProofOption<Proof, PS, PN>,
|
|
122
|
+
body: Effect.Effect<A, E, R>,
|
|
123
|
+
) {
|
|
124
|
+
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
125
|
+
coordinateTargetPasswordPersistence(
|
|
126
|
+
database,
|
|
127
|
+
options.mapping as unknown as AnyPasswordPersistenceMapping,
|
|
128
|
+
configuration,
|
|
129
|
+
(transaction: NativeDriverTransaction<Database>, services) => {
|
|
130
|
+
const work = Effect.provideService(
|
|
131
|
+
body,
|
|
132
|
+
PasswordPersistence,
|
|
133
|
+
services.passwordPersistence,
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
return options.transaction === undefined
|
|
137
|
+
? work
|
|
138
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
139
|
+
},
|
|
140
|
+
options.proofMapping as unknown as AnyProofPersistenceMapping | undefined,
|
|
141
|
+
),
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function coordinatePasswordRegistration<
|
|
146
|
+
TargetId,
|
|
147
|
+
Registration,
|
|
148
|
+
Database extends D,
|
|
149
|
+
S extends Table,
|
|
150
|
+
I extends Table,
|
|
151
|
+
C extends Table,
|
|
152
|
+
AC extends Table,
|
|
153
|
+
N,
|
|
154
|
+
A,
|
|
155
|
+
E,
|
|
156
|
+
R,
|
|
157
|
+
DE,
|
|
158
|
+
DR,
|
|
159
|
+
>(
|
|
160
|
+
acquire: Effect.Effect<Database, DE, DR>,
|
|
161
|
+
options: {
|
|
162
|
+
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, N>;
|
|
163
|
+
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
164
|
+
readonly transaction?: never;
|
|
165
|
+
},
|
|
166
|
+
body: Effect.Effect<A, E, R>,
|
|
167
|
+
): Effect.Effect<
|
|
168
|
+
A,
|
|
169
|
+
E | DE | PasswordUnavailable,
|
|
170
|
+
Exclude<R, TargetId> | DR | LifecycleHooks | Crypto.Crypto
|
|
171
|
+
>;
|
|
172
|
+
function coordinatePasswordRegistration<
|
|
173
|
+
TargetId,
|
|
174
|
+
Registration,
|
|
175
|
+
Database extends D,
|
|
176
|
+
S extends Table,
|
|
177
|
+
I extends Table,
|
|
178
|
+
C extends Table,
|
|
179
|
+
AC extends Table,
|
|
180
|
+
N,
|
|
181
|
+
A,
|
|
182
|
+
E,
|
|
183
|
+
R,
|
|
184
|
+
DE,
|
|
185
|
+
DR,
|
|
186
|
+
TxId,
|
|
187
|
+
TxShape,
|
|
188
|
+
>(
|
|
189
|
+
acquire: Effect.Effect<Database, DE, DR>,
|
|
190
|
+
options: {
|
|
191
|
+
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, N>;
|
|
192
|
+
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
193
|
+
readonly transaction: SuppliedService<
|
|
194
|
+
TxId,
|
|
195
|
+
NoInfer<NativeDriverTransaction<Database>>,
|
|
196
|
+
TxShape
|
|
197
|
+
>;
|
|
198
|
+
},
|
|
199
|
+
body: Effect.Effect<A, E, R>,
|
|
200
|
+
): Effect.Effect<
|
|
201
|
+
A,
|
|
202
|
+
E | DE | PasswordUnavailable,
|
|
203
|
+
Exclude<R, TargetId | TxId> | DR | LifecycleHooks | Crypto.Crypto
|
|
204
|
+
>;
|
|
205
|
+
function coordinatePasswordRegistration<
|
|
206
|
+
TargetId,
|
|
207
|
+
Registration,
|
|
208
|
+
Database extends D,
|
|
209
|
+
S extends Table,
|
|
210
|
+
I extends Table,
|
|
211
|
+
C extends Table,
|
|
212
|
+
AC extends Table,
|
|
213
|
+
N,
|
|
214
|
+
A,
|
|
215
|
+
E,
|
|
216
|
+
R,
|
|
217
|
+
DE,
|
|
218
|
+
DR,
|
|
219
|
+
TxId,
|
|
220
|
+
TxShape,
|
|
221
|
+
>(
|
|
222
|
+
acquire: Effect.Effect<Database, DE, DR>,
|
|
223
|
+
options: {
|
|
224
|
+
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, N>;
|
|
225
|
+
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
226
|
+
readonly transaction?: SuppliedService<
|
|
227
|
+
TxId,
|
|
228
|
+
NoInfer<NativeDriverTransaction<Database>>,
|
|
229
|
+
TxShape
|
|
230
|
+
>;
|
|
231
|
+
},
|
|
232
|
+
body: Effect.Effect<A, E, R>,
|
|
233
|
+
) {
|
|
234
|
+
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
235
|
+
coordinateTargetPasswordRegistration(
|
|
236
|
+
database,
|
|
237
|
+
options.mapping as unknown as AnyPasswordRegistrationMapping<Registration>,
|
|
238
|
+
configuration,
|
|
239
|
+
(transaction: NativeDriverTransaction<Database>, services) => {
|
|
240
|
+
const work = Effect.provideService(body, options.target, services.registrationAuthority);
|
|
241
|
+
|
|
242
|
+
return options.transaction === undefined
|
|
243
|
+
? work
|
|
244
|
+
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
245
|
+
},
|
|
246
|
+
),
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
return {
|
|
251
|
+
makePasswordPersistenceServices: <
|
|
252
|
+
S extends Table,
|
|
253
|
+
I extends Table,
|
|
254
|
+
C extends Table,
|
|
255
|
+
AC extends Table,
|
|
256
|
+
N,
|
|
257
|
+
Proof extends Table,
|
|
258
|
+
PS extends Table,
|
|
259
|
+
PN,
|
|
260
|
+
>(
|
|
261
|
+
mapping: PasswordPersistenceMapping<S, I, C, AC, N>,
|
|
262
|
+
proofMapping?: ProofPersistenceMapping<Proof, PS, PN>,
|
|
263
|
+
) =>
|
|
264
|
+
makeTargetPasswordPersistenceServices(
|
|
265
|
+
mapping as unknown as AnyPasswordPersistenceMapping,
|
|
266
|
+
configuration,
|
|
267
|
+
proofMapping as unknown as AnyProofPersistenceMapping | undefined,
|
|
268
|
+
).pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService))),
|
|
269
|
+
makePasswordRegistrationServices: <
|
|
270
|
+
Registration,
|
|
271
|
+
S extends Table,
|
|
272
|
+
I extends Table,
|
|
273
|
+
C extends Table,
|
|
274
|
+
AC extends Table,
|
|
275
|
+
N,
|
|
276
|
+
>(
|
|
277
|
+
mapping: PasswordRegistrationMapping<Registration, S, I, C, AC, N>,
|
|
278
|
+
) =>
|
|
279
|
+
makeTargetPasswordRegistrationServices(
|
|
280
|
+
mapping as unknown as AnyPasswordRegistrationMapping<Registration>,
|
|
281
|
+
configuration,
|
|
282
|
+
).pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService))),
|
|
283
|
+
coordinatePasswordPersistence,
|
|
284
|
+
coordinatePasswordRegistration,
|
|
285
|
+
};
|
|
286
|
+
};
|