@yielded/auth-persistence-drizzle 0.1.0-beta.25 → 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 -1266
- package/src/drizzle/d1-passwords.ts +0 -2061
- 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 -1202
- 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,343 +0,0 @@
|
|
|
1
|
-
import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
|
|
2
|
-
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
3
|
-
import { type PasswordUnavailable, PasswordPersistence } from "@yielded/auth/Password";
|
|
4
|
-
/* oxlint-disable no-explicit-any -- proof mapping tables are independently typed by the proof owner; this driver forwards them unchanged to the shared target. */
|
|
5
|
-
import type { AnyRelations } from "drizzle-orm";
|
|
6
|
-
import type { EffectMysql2Database } from "drizzle-orm/effect-mysql2";
|
|
7
|
-
import type { AnyMySqlTable } from "drizzle-orm/mysql-core";
|
|
8
|
-
import { Effect, Context } from "effect";
|
|
9
|
-
import type { SqlError } from "effect/sql/SqlError";
|
|
10
|
-
|
|
11
|
-
import { Database as DatabaseService } from "./mysql-database";
|
|
12
|
-
import { nativeDatabase } from "./native-database";
|
|
13
|
-
import type { PasswordPersistenceMapping, PasswordRegistrationMapping } from "./password-model";
|
|
14
|
-
import type { PasswordRegistrationAuthority } from "./password-registration";
|
|
15
|
-
import { CurrentPasswordSql } from "./password-sql";
|
|
16
|
-
import type { PasswordSqlQuery } from "./password-sql";
|
|
17
|
-
import {
|
|
18
|
-
coordinateTargetPasswordPersistence,
|
|
19
|
-
coordinateTargetPasswordRegistration,
|
|
20
|
-
makeTargetPasswordPersistenceServices,
|
|
21
|
-
makeTargetPasswordRegistrationServices,
|
|
22
|
-
sqlClientPasswordStandaloneGuard,
|
|
23
|
-
} from "./password-target";
|
|
24
|
-
import type { ProofPersistenceMapping } from "./proof-model";
|
|
25
|
-
import type { ProofSqlQuery } from "./proof-sql";
|
|
26
|
-
import { sqlClientProofStandaloneGuard } from "./proof-target";
|
|
27
|
-
import {
|
|
28
|
-
type TransactionService,
|
|
29
|
-
acquireTransactionService,
|
|
30
|
-
transactionService,
|
|
31
|
-
} from "./standalone-guard";
|
|
32
|
-
import type { SuppliedService } from "./SuppliedService";
|
|
33
|
-
|
|
34
|
-
type Database = EffectMysql2Database<AnyRelations>;
|
|
35
|
-
type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
|
|
36
|
-
|
|
37
|
-
const configuration = (service: TransactionService | undefined) => ({
|
|
38
|
-
mode: "interactive" as const,
|
|
39
|
-
locking: true,
|
|
40
|
-
standaloneGuard: sqlClientPasswordStandaloneGuard(service),
|
|
41
|
-
insertIfAbsent: (query: PasswordSqlQuery, selfKey: string, selfValue: unknown) =>
|
|
42
|
-
query.onDuplicateKeyUpdate({ set: { [selfKey]: selfValue } }),
|
|
43
|
-
generatedSubjectRows: (query: PasswordSqlQuery) => query.$returningId(),
|
|
44
|
-
proof: {
|
|
45
|
-
mode: "interactive" as const,
|
|
46
|
-
locking: true,
|
|
47
|
-
standaloneGuard: sqlClientProofStandaloneGuard(service),
|
|
48
|
-
insertIfAbsent: (query: ProofSqlQuery, selfKey: string, selfValue: unknown) =>
|
|
49
|
-
query.onDuplicateKeyUpdate({ set: { [selfKey]: selfValue } }),
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
type Mapping<
|
|
54
|
-
S extends AnyMySqlTable,
|
|
55
|
-
I extends AnyMySqlTable,
|
|
56
|
-
C extends AnyMySqlTable,
|
|
57
|
-
AC extends AnyMySqlTable,
|
|
58
|
-
M extends AnyMySqlTable,
|
|
59
|
-
NativeId,
|
|
60
|
-
> = PasswordPersistenceMapping<S, I, C, AC, M, NativeId>;
|
|
61
|
-
|
|
62
|
-
export const makeMysqlPasswordPersistenceServices = <
|
|
63
|
-
S extends AnyMySqlTable,
|
|
64
|
-
I extends AnyMySqlTable,
|
|
65
|
-
C extends AnyMySqlTable,
|
|
66
|
-
AC extends AnyMySqlTable,
|
|
67
|
-
M extends AnyMySqlTable,
|
|
68
|
-
NativeId,
|
|
69
|
-
>(
|
|
70
|
-
mapping: Mapping<S, I, C, AC, M, NativeId>,
|
|
71
|
-
proofMapping?: ProofPersistenceMapping<
|
|
72
|
-
any,
|
|
73
|
-
any,
|
|
74
|
-
any,
|
|
75
|
-
any,
|
|
76
|
-
any,
|
|
77
|
-
any,
|
|
78
|
-
any,
|
|
79
|
-
any,
|
|
80
|
-
any,
|
|
81
|
-
any,
|
|
82
|
-
any,
|
|
83
|
-
any
|
|
84
|
-
>,
|
|
85
|
-
) =>
|
|
86
|
-
Effect.flatMap(
|
|
87
|
-
Effect.map(acquireTransactionService(DatabaseService), configuration),
|
|
88
|
-
(configuration) => makeTargetPasswordPersistenceServices(mapping, configuration, proofMapping),
|
|
89
|
-
).pipe(
|
|
90
|
-
Effect.provideServiceEffect(CurrentPasswordSql, nativeDatabase(DatabaseService)),
|
|
91
|
-
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
export function coordinateMysqlPasswordPersistence<
|
|
95
|
-
D extends Database,
|
|
96
|
-
S extends AnyMySqlTable,
|
|
97
|
-
I extends AnyMySqlTable,
|
|
98
|
-
C extends AnyMySqlTable,
|
|
99
|
-
AC extends AnyMySqlTable,
|
|
100
|
-
M extends AnyMySqlTable,
|
|
101
|
-
NativeId,
|
|
102
|
-
PM extends
|
|
103
|
-
| ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
|
|
104
|
-
| undefined,
|
|
105
|
-
Out,
|
|
106
|
-
E,
|
|
107
|
-
R,
|
|
108
|
-
DatabaseError,
|
|
109
|
-
DatabaseRequirements,
|
|
110
|
-
>(
|
|
111
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
112
|
-
options: {
|
|
113
|
-
readonly mapping: Mapping<S, I, C, AC, M, NativeId>;
|
|
114
|
-
readonly proofMapping?: PM;
|
|
115
|
-
readonly transaction?: never;
|
|
116
|
-
},
|
|
117
|
-
body: Effect.Effect<Out, E, R>,
|
|
118
|
-
): Effect.Effect<
|
|
119
|
-
Out,
|
|
120
|
-
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
121
|
-
Exclude<R, PasswordPersistence> | LifecycleHooks | DatabaseRequirements
|
|
122
|
-
>;
|
|
123
|
-
|
|
124
|
-
export function coordinateMysqlPasswordPersistence<
|
|
125
|
-
D extends Database,
|
|
126
|
-
S extends AnyMySqlTable,
|
|
127
|
-
I extends AnyMySqlTable,
|
|
128
|
-
C extends AnyMySqlTable,
|
|
129
|
-
AC extends AnyMySqlTable,
|
|
130
|
-
M extends AnyMySqlTable,
|
|
131
|
-
NativeId,
|
|
132
|
-
PM extends
|
|
133
|
-
| ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
|
|
134
|
-
| undefined,
|
|
135
|
-
Out,
|
|
136
|
-
E,
|
|
137
|
-
R,
|
|
138
|
-
DatabaseError,
|
|
139
|
-
DatabaseRequirements,
|
|
140
|
-
TxId,
|
|
141
|
-
TxShape,
|
|
142
|
-
>(
|
|
143
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
144
|
-
options: {
|
|
145
|
-
readonly mapping: Mapping<S, I, C, AC, M, NativeId>;
|
|
146
|
-
readonly proofMapping?: PM;
|
|
147
|
-
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
148
|
-
},
|
|
149
|
-
body: Effect.Effect<Out, E, R>,
|
|
150
|
-
): Effect.Effect<
|
|
151
|
-
Out,
|
|
152
|
-
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
153
|
-
Exclude<R, PasswordPersistence | TxId> | LifecycleHooks | DatabaseRequirements
|
|
154
|
-
>;
|
|
155
|
-
|
|
156
|
-
export function coordinateMysqlPasswordPersistence<
|
|
157
|
-
D extends Database,
|
|
158
|
-
S extends AnyMySqlTable,
|
|
159
|
-
I extends AnyMySqlTable,
|
|
160
|
-
C extends AnyMySqlTable,
|
|
161
|
-
AC extends AnyMySqlTable,
|
|
162
|
-
M extends AnyMySqlTable,
|
|
163
|
-
NativeId,
|
|
164
|
-
PM extends
|
|
165
|
-
| ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
|
|
166
|
-
| undefined,
|
|
167
|
-
Out,
|
|
168
|
-
E,
|
|
169
|
-
R,
|
|
170
|
-
DatabaseError,
|
|
171
|
-
DatabaseRequirements,
|
|
172
|
-
TxId,
|
|
173
|
-
TxShape,
|
|
174
|
-
>(
|
|
175
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
176
|
-
options: {
|
|
177
|
-
readonly mapping: Mapping<S, I, C, AC, M, NativeId>;
|
|
178
|
-
readonly proofMapping?: PM;
|
|
179
|
-
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
180
|
-
},
|
|
181
|
-
body: Effect.Effect<Out, E, R>,
|
|
182
|
-
): Effect.Effect<
|
|
183
|
-
Out,
|
|
184
|
-
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
185
|
-
Exclude<R, PasswordPersistence> | LifecycleHooks | DatabaseRequirements
|
|
186
|
-
> {
|
|
187
|
-
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
188
|
-
coordinateTargetPasswordPersistence<TransactionOf<D>, Out, E, Exclude<R, PasswordPersistence>>(
|
|
189
|
-
database,
|
|
190
|
-
options.mapping,
|
|
191
|
-
configuration(transactionService(database)),
|
|
192
|
-
options.proofMapping,
|
|
193
|
-
(
|
|
194
|
-
transaction: TransactionOf<D>,
|
|
195
|
-
services: { readonly passwordPersistence: PasswordPersistence["Service"] },
|
|
196
|
-
) => {
|
|
197
|
-
const provided = Context.make(PasswordPersistence, services.passwordPersistence);
|
|
198
|
-
const work = Effect.provideContext(body, provided);
|
|
199
|
-
|
|
200
|
-
return options.transaction === undefined
|
|
201
|
-
? work
|
|
202
|
-
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
203
|
-
},
|
|
204
|
-
).pipe(Effect.provideService(NativeDatabase, database)),
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export const makeMysqlPasswordRegistrationServices = <
|
|
209
|
-
Registration,
|
|
210
|
-
S extends AnyMySqlTable,
|
|
211
|
-
I extends AnyMySqlTable,
|
|
212
|
-
C extends AnyMySqlTable,
|
|
213
|
-
AC extends AnyMySqlTable,
|
|
214
|
-
Rq extends AnyMySqlTable,
|
|
215
|
-
NativeId,
|
|
216
|
-
>(
|
|
217
|
-
mapping: PasswordRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>,
|
|
218
|
-
) =>
|
|
219
|
-
Effect.flatMap(
|
|
220
|
-
Effect.map(acquireTransactionService(DatabaseService), configuration),
|
|
221
|
-
(configuration) => makeTargetPasswordRegistrationServices<Registration>(mapping, configuration),
|
|
222
|
-
).pipe(
|
|
223
|
-
Effect.provideServiceEffect(CurrentPasswordSql, nativeDatabase(DatabaseService)),
|
|
224
|
-
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
|
|
225
|
-
);
|
|
226
|
-
|
|
227
|
-
export function coordinateMysqlPasswordRegistration<
|
|
228
|
-
TargetId,
|
|
229
|
-
Registration,
|
|
230
|
-
D extends Database,
|
|
231
|
-
S extends AnyMySqlTable,
|
|
232
|
-
I extends AnyMySqlTable,
|
|
233
|
-
C extends AnyMySqlTable,
|
|
234
|
-
AC extends AnyMySqlTable,
|
|
235
|
-
Rq extends AnyMySqlTable,
|
|
236
|
-
NativeId,
|
|
237
|
-
Out,
|
|
238
|
-
E,
|
|
239
|
-
R,
|
|
240
|
-
DatabaseError,
|
|
241
|
-
DatabaseRequirements,
|
|
242
|
-
>(
|
|
243
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
244
|
-
options: {
|
|
245
|
-
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
246
|
-
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
247
|
-
readonly transaction?: never;
|
|
248
|
-
},
|
|
249
|
-
body: Effect.Effect<Out, E, R>,
|
|
250
|
-
): Effect.Effect<
|
|
251
|
-
Out,
|
|
252
|
-
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
253
|
-
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
254
|
-
>;
|
|
255
|
-
|
|
256
|
-
export function coordinateMysqlPasswordRegistration<
|
|
257
|
-
TargetId,
|
|
258
|
-
Registration,
|
|
259
|
-
D extends Database,
|
|
260
|
-
S extends AnyMySqlTable,
|
|
261
|
-
I extends AnyMySqlTable,
|
|
262
|
-
C extends AnyMySqlTable,
|
|
263
|
-
AC extends AnyMySqlTable,
|
|
264
|
-
Rq extends AnyMySqlTable,
|
|
265
|
-
NativeId,
|
|
266
|
-
Out,
|
|
267
|
-
E,
|
|
268
|
-
R,
|
|
269
|
-
DatabaseError,
|
|
270
|
-
DatabaseRequirements,
|
|
271
|
-
TxId,
|
|
272
|
-
TxShape,
|
|
273
|
-
>(
|
|
274
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
275
|
-
options: {
|
|
276
|
-
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
277
|
-
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
278
|
-
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
279
|
-
},
|
|
280
|
-
body: Effect.Effect<Out, E, R>,
|
|
281
|
-
): Effect.Effect<
|
|
282
|
-
Out,
|
|
283
|
-
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
284
|
-
Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
|
|
285
|
-
>;
|
|
286
|
-
|
|
287
|
-
export function coordinateMysqlPasswordRegistration<
|
|
288
|
-
TargetId,
|
|
289
|
-
Registration,
|
|
290
|
-
D extends Database,
|
|
291
|
-
S extends AnyMySqlTable,
|
|
292
|
-
I extends AnyMySqlTable,
|
|
293
|
-
C extends AnyMySqlTable,
|
|
294
|
-
AC extends AnyMySqlTable,
|
|
295
|
-
Rq extends AnyMySqlTable,
|
|
296
|
-
NativeId,
|
|
297
|
-
Out,
|
|
298
|
-
E,
|
|
299
|
-
R,
|
|
300
|
-
DatabaseError,
|
|
301
|
-
DatabaseRequirements,
|
|
302
|
-
TxId,
|
|
303
|
-
TxShape,
|
|
304
|
-
>(
|
|
305
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
306
|
-
options: {
|
|
307
|
-
readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
|
|
308
|
-
readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
|
|
309
|
-
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
310
|
-
},
|
|
311
|
-
body: Effect.Effect<Out, E, R>,
|
|
312
|
-
): Effect.Effect<
|
|
313
|
-
Out,
|
|
314
|
-
E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
315
|
-
Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
|
|
316
|
-
> {
|
|
317
|
-
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
318
|
-
coordinateTargetPasswordRegistration<
|
|
319
|
-
Registration,
|
|
320
|
-
TransactionOf<D>,
|
|
321
|
-
Out,
|
|
322
|
-
E,
|
|
323
|
-
Exclude<R, TargetId>
|
|
324
|
-
>(
|
|
325
|
-
database,
|
|
326
|
-
options.mapping,
|
|
327
|
-
configuration(transactionService(database)),
|
|
328
|
-
(
|
|
329
|
-
transaction: TransactionOf<D>,
|
|
330
|
-
services: { readonly registrationAuthority: PasswordRegistrationAuthority<Registration> },
|
|
331
|
-
) => {
|
|
332
|
-
const provided = Context.make(options.target, services.registrationAuthority);
|
|
333
|
-
const work = Effect.provideContext(body, provided);
|
|
334
|
-
|
|
335
|
-
return options.transaction === undefined
|
|
336
|
-
? work
|
|
337
|
-
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
338
|
-
},
|
|
339
|
-
).pipe(Effect.provideService(NativeDatabase, database)),
|
|
340
|
-
);
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
export { configuration as mysqlPasswordConfiguration };
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
|
|
2
|
-
import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
|
|
3
|
-
import { type ProofUnavailable, ProofPersistence } from "@yielded/auth/Proofs";
|
|
4
|
-
import type { AnyRelations } from "drizzle-orm";
|
|
5
|
-
import type { EffectMysql2Database } from "drizzle-orm/effect-mysql2";
|
|
6
|
-
import type { AnyMySqlTable } from "drizzle-orm/mysql-core";
|
|
7
|
-
import { Effect, Context } from "effect";
|
|
8
|
-
import type { SqlError } from "effect/sql/SqlError";
|
|
9
|
-
|
|
10
|
-
import { updateValues } from "./model";
|
|
11
|
-
import { Database as DatabaseService } from "./mysql-database";
|
|
12
|
-
import { nativeDatabase } from "./native-database";
|
|
13
|
-
import type { ProofPersistenceMapping } from "./proof-model";
|
|
14
|
-
import { CurrentProofSql } from "./proof-sql";
|
|
15
|
-
import type { ProofSqlQuery } from "./proof-sql";
|
|
16
|
-
import {
|
|
17
|
-
coordinateTargetProofPersistence,
|
|
18
|
-
makeTargetProofPersistenceServices,
|
|
19
|
-
sqlClientProofStandaloneGuard,
|
|
20
|
-
} from "./proof-target";
|
|
21
|
-
import {
|
|
22
|
-
type TransactionService,
|
|
23
|
-
acquireTransactionService,
|
|
24
|
-
transactionService,
|
|
25
|
-
} from "./standalone-guard";
|
|
26
|
-
import type { SuppliedService } from "./SuppliedService";
|
|
27
|
-
|
|
28
|
-
type Database = EffectMysql2Database<AnyRelations>;
|
|
29
|
-
type Transaction = Parameters<Parameters<Database["transaction"]>[0]>[0];
|
|
30
|
-
type Mapping<
|
|
31
|
-
Rq extends AnyMySqlTable,
|
|
32
|
-
S extends AnyMySqlTable,
|
|
33
|
-
G extends AnyMySqlTable,
|
|
34
|
-
Cn extends AnyMySqlTable,
|
|
35
|
-
Rs extends AnyMySqlTable,
|
|
36
|
-
A extends AnyMySqlTable,
|
|
37
|
-
F extends AnyMySqlTable,
|
|
38
|
-
C extends AnyMySqlTable,
|
|
39
|
-
Sub extends AnyMySqlTable,
|
|
40
|
-
I extends AnyMySqlTable,
|
|
41
|
-
Cr extends AnyMySqlTable,
|
|
42
|
-
NativeId,
|
|
43
|
-
> = ProofPersistenceMapping<Rq, S, G, Cn, Rs, A, F, C, Sub, I, Cr, NativeId>;
|
|
44
|
-
|
|
45
|
-
const configuration = (service: TransactionService | undefined) => ({
|
|
46
|
-
mode: "interactive" as const,
|
|
47
|
-
locking: true,
|
|
48
|
-
standaloneGuard: sqlClientProofStandaloneGuard(service),
|
|
49
|
-
insertIfAbsent: (query: ProofSqlQuery, selfKey: string, selfValue: unknown) =>
|
|
50
|
-
query.onDuplicateKeyUpdate({
|
|
51
|
-
set: updateValues([[selfKey, selfValue]]),
|
|
52
|
-
}),
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
export const makeMysqlProofPersistenceServices = <
|
|
56
|
-
Rq extends AnyMySqlTable,
|
|
57
|
-
S extends AnyMySqlTable,
|
|
58
|
-
G extends AnyMySqlTable,
|
|
59
|
-
Cn extends AnyMySqlTable,
|
|
60
|
-
Rs extends AnyMySqlTable,
|
|
61
|
-
A extends AnyMySqlTable,
|
|
62
|
-
F extends AnyMySqlTable,
|
|
63
|
-
C extends AnyMySqlTable,
|
|
64
|
-
Sub extends AnyMySqlTable,
|
|
65
|
-
I extends AnyMySqlTable,
|
|
66
|
-
Cr extends AnyMySqlTable,
|
|
67
|
-
NativeId,
|
|
68
|
-
>(
|
|
69
|
-
mapping: Mapping<Rq, S, G, Cn, Rs, A, F, C, Sub, I, Cr, NativeId>,
|
|
70
|
-
) =>
|
|
71
|
-
Effect.flatMap(
|
|
72
|
-
Effect.map(acquireTransactionService(DatabaseService), configuration),
|
|
73
|
-
(configuration) => makeTargetProofPersistenceServices(mapping, configuration),
|
|
74
|
-
).pipe(
|
|
75
|
-
Effect.provideServiceEffect(CurrentProofSql, nativeDatabase(DatabaseService)),
|
|
76
|
-
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
export function coordinateMysqlProofPersistence<
|
|
80
|
-
D extends Database,
|
|
81
|
-
Rq extends AnyMySqlTable,
|
|
82
|
-
S extends AnyMySqlTable,
|
|
83
|
-
G extends AnyMySqlTable,
|
|
84
|
-
Cn extends AnyMySqlTable,
|
|
85
|
-
Rs extends AnyMySqlTable,
|
|
86
|
-
Aev extends AnyMySqlTable,
|
|
87
|
-
F extends AnyMySqlTable,
|
|
88
|
-
C extends AnyMySqlTable,
|
|
89
|
-
Sub extends AnyMySqlTable,
|
|
90
|
-
I extends AnyMySqlTable,
|
|
91
|
-
Cr extends AnyMySqlTable,
|
|
92
|
-
NativeId,
|
|
93
|
-
A,
|
|
94
|
-
E,
|
|
95
|
-
R,
|
|
96
|
-
DatabaseError,
|
|
97
|
-
DatabaseRequirements,
|
|
98
|
-
>(
|
|
99
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
100
|
-
options: {
|
|
101
|
-
readonly mapping: Mapping<Rq, S, G, Cn, Rs, Aev, F, C, Sub, I, Cr, NativeId>;
|
|
102
|
-
readonly transaction?: never;
|
|
103
|
-
},
|
|
104
|
-
body: Effect.Effect<A, E, R>,
|
|
105
|
-
): Effect.Effect<
|
|
106
|
-
A,
|
|
107
|
-
E | ProofUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
108
|
-
Exclude<R, ProofPersistence> | LifecycleHooks | DatabaseRequirements
|
|
109
|
-
>;
|
|
110
|
-
|
|
111
|
-
export function coordinateMysqlProofPersistence<
|
|
112
|
-
D extends Database,
|
|
113
|
-
Rq extends AnyMySqlTable,
|
|
114
|
-
S extends AnyMySqlTable,
|
|
115
|
-
G extends AnyMySqlTable,
|
|
116
|
-
Cn extends AnyMySqlTable,
|
|
117
|
-
Rs extends AnyMySqlTable,
|
|
118
|
-
Aev extends AnyMySqlTable,
|
|
119
|
-
F extends AnyMySqlTable,
|
|
120
|
-
C extends AnyMySqlTable,
|
|
121
|
-
Sub extends AnyMySqlTable,
|
|
122
|
-
I extends AnyMySqlTable,
|
|
123
|
-
Cr extends AnyMySqlTable,
|
|
124
|
-
NativeId,
|
|
125
|
-
A,
|
|
126
|
-
E,
|
|
127
|
-
R,
|
|
128
|
-
DatabaseError,
|
|
129
|
-
DatabaseRequirements,
|
|
130
|
-
TxId,
|
|
131
|
-
TxShape,
|
|
132
|
-
>(
|
|
133
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
134
|
-
options: {
|
|
135
|
-
readonly mapping: Mapping<Rq, S, G, Cn, Rs, Aev, F, C, Sub, I, Cr, NativeId>;
|
|
136
|
-
readonly transaction: SuppliedService<TxId, NoInfer<Transaction>, TxShape>;
|
|
137
|
-
},
|
|
138
|
-
body: Effect.Effect<A, E, R>,
|
|
139
|
-
): Effect.Effect<
|
|
140
|
-
A,
|
|
141
|
-
E | ProofUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
142
|
-
Exclude<R, ProofPersistence | TxId> | LifecycleHooks | DatabaseRequirements
|
|
143
|
-
>;
|
|
144
|
-
|
|
145
|
-
export function coordinateMysqlProofPersistence<
|
|
146
|
-
D extends Database,
|
|
147
|
-
Rq extends AnyMySqlTable,
|
|
148
|
-
S extends AnyMySqlTable,
|
|
149
|
-
G extends AnyMySqlTable,
|
|
150
|
-
Cn extends AnyMySqlTable,
|
|
151
|
-
Rs extends AnyMySqlTable,
|
|
152
|
-
Aev extends AnyMySqlTable,
|
|
153
|
-
F extends AnyMySqlTable,
|
|
154
|
-
C extends AnyMySqlTable,
|
|
155
|
-
Sub extends AnyMySqlTable,
|
|
156
|
-
I extends AnyMySqlTable,
|
|
157
|
-
Cr extends AnyMySqlTable,
|
|
158
|
-
NativeId,
|
|
159
|
-
A,
|
|
160
|
-
E,
|
|
161
|
-
R,
|
|
162
|
-
DatabaseError,
|
|
163
|
-
DatabaseRequirements,
|
|
164
|
-
TxId,
|
|
165
|
-
TxShape,
|
|
166
|
-
>(
|
|
167
|
-
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
168
|
-
options: {
|
|
169
|
-
readonly mapping: Mapping<Rq, S, G, Cn, Rs, Aev, F, C, Sub, I, Cr, NativeId>;
|
|
170
|
-
readonly transaction?: SuppliedService<TxId, NoInfer<Transaction>, TxShape>;
|
|
171
|
-
},
|
|
172
|
-
body: Effect.Effect<A, E, R>,
|
|
173
|
-
): Effect.Effect<
|
|
174
|
-
A,
|
|
175
|
-
E | ProofUnavailable | HookConfigurationError | SqlError | DatabaseError,
|
|
176
|
-
Exclude<R, ProofPersistence> | LifecycleHooks | DatabaseRequirements
|
|
177
|
-
> {
|
|
178
|
-
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
179
|
-
coordinateTargetProofPersistence<Transaction, A, E, Exclude<R, ProofPersistence>>(
|
|
180
|
-
database,
|
|
181
|
-
options.mapping,
|
|
182
|
-
configuration(transactionService(database)),
|
|
183
|
-
(
|
|
184
|
-
transaction: Transaction,
|
|
185
|
-
services: { readonly proofPersistence: ProofPersistence["Service"] },
|
|
186
|
-
) => {
|
|
187
|
-
const provided = Context.make(ProofPersistence, services.proofPersistence);
|
|
188
|
-
const work = Effect.provideContext(body, provided);
|
|
189
|
-
|
|
190
|
-
return options.transaction === undefined
|
|
191
|
-
? work
|
|
192
|
-
: Effect.provideService(work, options.transaction, options.transaction.of(transaction));
|
|
193
|
-
},
|
|
194
|
-
).pipe(Effect.provideService(NativeDatabase, database)),
|
|
195
|
-
);
|
|
196
|
-
}
|