@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,16 +1,10 @@
|
|
|
1
|
-
import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
|
|
2
1
|
import type { LifecycleHooks } from "@yielded/auth/Hooks";
|
|
3
|
-
import {
|
|
4
|
-
OAuthConnectedPersistence,
|
|
5
|
-
OAuthConnectedRevocations,
|
|
6
|
-
OAuthUnavailable,
|
|
7
|
-
} from "@yielded/auth/OAuth";
|
|
2
|
+
import { OAuthConnectedPersistence, OAuthConnectedRevocations } from "@yielded/auth/OAuth";
|
|
8
3
|
import type { Table } from "drizzle-orm";
|
|
9
4
|
import { type Crypto, Effect, Context } from "effect";
|
|
10
5
|
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { nativeDatabase } from "./native-database";
|
|
6
|
+
import type { D1BatchStatements } from "./D1BatchStatements";
|
|
7
|
+
import { NativeDatabase, nativeDatabase } from "./native-database";
|
|
14
8
|
import type {
|
|
15
9
|
OAuthConnectedMapping,
|
|
16
10
|
OAuthConnectedRevocationMapping,
|
|
@@ -20,21 +14,21 @@ import {
|
|
|
20
14
|
coordinateTargetOAuthConnectedRevocations,
|
|
21
15
|
makeTargetOAuthConnectedServices,
|
|
22
16
|
makeTargetOAuthConnectedRevocationServices,
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
type OAuthCoordinatorError,
|
|
18
|
+
type OAuthTargetConfiguration,
|
|
19
|
+
} from "./oauth-target";
|
|
25
20
|
import type { SuppliedService } from "./SuppliedService";
|
|
26
21
|
// oxlint-disable-next-line no-explicit-any -- inspect the actual installed native transaction callback without erasing it.
|
|
27
22
|
type TransactionOf<D> = D extends { readonly transaction: (...args: any[]) => any }
|
|
28
23
|
? Parameters<Parameters<D["transaction"]>[0]>[0]
|
|
29
24
|
: never;
|
|
30
|
-
const unavailable = () => OAuthUnavailable.make({});
|
|
31
25
|
|
|
32
26
|
export const makeOAuthConnectedTarget = <
|
|
33
27
|
DatabaseId,
|
|
34
28
|
Database,
|
|
35
29
|
Family extends Table,
|
|
36
30
|
Extra = {},
|
|
37
|
-
|
|
31
|
+
Provided extends D1BatchStatements = never,
|
|
38
32
|
>(
|
|
39
33
|
databaseService: Context.Service<DatabaseId, Database>,
|
|
40
34
|
configuration: OAuthTargetConfiguration,
|
|
@@ -43,14 +37,9 @@ export const makeOAuthConnectedTarget = <
|
|
|
43
37
|
D extends Database,
|
|
44
38
|
S extends Family,
|
|
45
39
|
AC extends Family,
|
|
46
|
-
T extends Family,
|
|
47
40
|
O extends Family,
|
|
48
41
|
F extends Family,
|
|
49
42
|
G extends Family,
|
|
50
|
-
C extends Family,
|
|
51
|
-
H extends Family,
|
|
52
|
-
UA extends Family,
|
|
53
|
-
DC extends Family,
|
|
54
43
|
N,
|
|
55
44
|
J extends Family,
|
|
56
45
|
A,
|
|
@@ -61,14 +50,14 @@ export const makeOAuthConnectedTarget = <
|
|
|
61
50
|
>(
|
|
62
51
|
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
63
52
|
options: {
|
|
64
|
-
readonly mapping: OAuthConnectedMapping<S, AC,
|
|
53
|
+
readonly mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra;
|
|
65
54
|
readonly transaction?: never;
|
|
66
55
|
},
|
|
67
|
-
body: Effect.Effect<A, E,
|
|
56
|
+
body: Effect.Effect<A, E, R>,
|
|
68
57
|
): Effect.Effect<
|
|
69
58
|
A,
|
|
70
59
|
OAuthCoordinatorError<E> | DatabaseError,
|
|
71
|
-
|
|
|
60
|
+
| Exclude<R, OAuthConnectedPersistence | Provided>
|
|
72
61
|
| Crypto.Crypto
|
|
73
62
|
| LifecycleHooks
|
|
74
63
|
| DatabaseRequirements
|
|
@@ -77,14 +66,9 @@ export const makeOAuthConnectedTarget = <
|
|
|
77
66
|
D extends Database,
|
|
78
67
|
S extends Family,
|
|
79
68
|
AC extends Family,
|
|
80
|
-
T extends Family,
|
|
81
69
|
O extends Family,
|
|
82
70
|
F extends Family,
|
|
83
71
|
G extends Family,
|
|
84
|
-
C extends Family,
|
|
85
|
-
H extends Family,
|
|
86
|
-
UA extends Family,
|
|
87
|
-
DC extends Family,
|
|
88
72
|
N,
|
|
89
73
|
J extends Family,
|
|
90
74
|
A,
|
|
@@ -97,18 +81,14 @@ export const makeOAuthConnectedTarget = <
|
|
|
97
81
|
>(
|
|
98
82
|
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
99
83
|
options: {
|
|
100
|
-
readonly mapping: OAuthConnectedMapping<S, AC,
|
|
84
|
+
readonly mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra;
|
|
101
85
|
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
102
86
|
},
|
|
103
|
-
body: Effect.Effect<
|
|
104
|
-
A,
|
|
105
|
-
E,
|
|
106
|
-
Synchronous extends true ? NoInfer<OAuthConnectedPersistence | TxId> : R
|
|
107
|
-
>,
|
|
87
|
+
body: Effect.Effect<A, E, R>,
|
|
108
88
|
): Effect.Effect<
|
|
109
89
|
A,
|
|
110
90
|
OAuthCoordinatorError<E> | DatabaseError,
|
|
111
|
-
|
|
|
91
|
+
| Exclude<R, OAuthConnectedPersistence | TxId | Provided>
|
|
112
92
|
| Crypto.Crypto
|
|
113
93
|
| LifecycleHooks
|
|
114
94
|
| DatabaseRequirements
|
|
@@ -117,14 +97,9 @@ export const makeOAuthConnectedTarget = <
|
|
|
117
97
|
D extends Database,
|
|
118
98
|
S extends Family,
|
|
119
99
|
AC extends Family,
|
|
120
|
-
T extends Family,
|
|
121
100
|
O extends Family,
|
|
122
101
|
F extends Family,
|
|
123
102
|
G extends Family,
|
|
124
|
-
C extends Family,
|
|
125
|
-
H extends Family,
|
|
126
|
-
UA extends Family,
|
|
127
|
-
DC extends Family,
|
|
128
103
|
N,
|
|
129
104
|
J extends Family,
|
|
130
105
|
A,
|
|
@@ -137,7 +112,7 @@ export const makeOAuthConnectedTarget = <
|
|
|
137
112
|
>(
|
|
138
113
|
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
139
114
|
options: {
|
|
140
|
-
readonly mapping: OAuthConnectedMapping<S, AC,
|
|
115
|
+
readonly mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra;
|
|
141
116
|
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
142
117
|
},
|
|
143
118
|
body: Effect.Effect<A, E, R>,
|
|
@@ -171,12 +146,8 @@ export const makeOAuthConnectedTarget = <
|
|
|
171
146
|
}
|
|
172
147
|
function coordinateOAuthConnectedRevocations<
|
|
173
148
|
D extends Database,
|
|
174
|
-
T extends Family,
|
|
175
149
|
O extends Family,
|
|
176
150
|
F extends Family,
|
|
177
|
-
G extends Family,
|
|
178
|
-
C extends Family,
|
|
179
|
-
H extends Family,
|
|
180
151
|
J extends Family,
|
|
181
152
|
N,
|
|
182
153
|
A,
|
|
@@ -187,26 +158,22 @@ export const makeOAuthConnectedTarget = <
|
|
|
187
158
|
>(
|
|
188
159
|
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
189
160
|
options: {
|
|
190
|
-
readonly mapping: OAuthConnectedRevocationMapping<
|
|
161
|
+
readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;
|
|
191
162
|
readonly transaction?: never;
|
|
192
163
|
},
|
|
193
|
-
body: Effect.Effect<A, E,
|
|
164
|
+
body: Effect.Effect<A, E, R>,
|
|
194
165
|
): Effect.Effect<
|
|
195
166
|
A,
|
|
196
167
|
OAuthCoordinatorError<E> | DatabaseError,
|
|
197
|
-
|
|
|
168
|
+
| Exclude<R, OAuthConnectedRevocations | Provided>
|
|
198
169
|
| Crypto.Crypto
|
|
199
170
|
| LifecycleHooks
|
|
200
171
|
| DatabaseRequirements
|
|
201
172
|
>;
|
|
202
173
|
function coordinateOAuthConnectedRevocations<
|
|
203
174
|
D extends Database,
|
|
204
|
-
T extends Family,
|
|
205
175
|
O extends Family,
|
|
206
176
|
F extends Family,
|
|
207
|
-
G extends Family,
|
|
208
|
-
C extends Family,
|
|
209
|
-
H extends Family,
|
|
210
177
|
J extends Family,
|
|
211
178
|
N,
|
|
212
179
|
A,
|
|
@@ -219,30 +186,22 @@ export const makeOAuthConnectedTarget = <
|
|
|
219
186
|
>(
|
|
220
187
|
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
221
188
|
options: {
|
|
222
|
-
readonly mapping: OAuthConnectedRevocationMapping<
|
|
189
|
+
readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;
|
|
223
190
|
readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
224
191
|
},
|
|
225
|
-
body: Effect.Effect<
|
|
226
|
-
A,
|
|
227
|
-
E,
|
|
228
|
-
Synchronous extends true ? NoInfer<OAuthConnectedRevocations | TxId> : R
|
|
229
|
-
>,
|
|
192
|
+
body: Effect.Effect<A, E, R>,
|
|
230
193
|
): Effect.Effect<
|
|
231
194
|
A,
|
|
232
195
|
OAuthCoordinatorError<E> | DatabaseError,
|
|
233
|
-
|
|
|
196
|
+
| Exclude<R, OAuthConnectedRevocations | TxId | Provided>
|
|
234
197
|
| Crypto.Crypto
|
|
235
198
|
| LifecycleHooks
|
|
236
199
|
| DatabaseRequirements
|
|
237
200
|
>;
|
|
238
201
|
function coordinateOAuthConnectedRevocations<
|
|
239
202
|
D extends Database,
|
|
240
|
-
T extends Family,
|
|
241
203
|
O extends Family,
|
|
242
204
|
F extends Family,
|
|
243
|
-
G extends Family,
|
|
244
|
-
C extends Family,
|
|
245
|
-
H extends Family,
|
|
246
205
|
J extends Family,
|
|
247
206
|
N,
|
|
248
207
|
A,
|
|
@@ -255,7 +214,7 @@ export const makeOAuthConnectedTarget = <
|
|
|
255
214
|
>(
|
|
256
215
|
acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
|
|
257
216
|
options: {
|
|
258
|
-
readonly mapping: OAuthConnectedRevocationMapping<
|
|
217
|
+
readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;
|
|
259
218
|
readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
|
|
260
219
|
},
|
|
261
220
|
body: Effect.Effect<A, E, R>,
|
|
@@ -297,33 +256,19 @@ export const makeOAuthConnectedTarget = <
|
|
|
297
256
|
makeOAuthConnectedServices: <
|
|
298
257
|
S extends Family,
|
|
299
258
|
AC extends Family,
|
|
300
|
-
T extends Family,
|
|
301
259
|
O extends Family,
|
|
302
260
|
F extends Family,
|
|
303
261
|
G extends Family,
|
|
304
|
-
C extends Family,
|
|
305
|
-
H extends Family,
|
|
306
|
-
UA extends Family,
|
|
307
|
-
DC extends Family,
|
|
308
262
|
N,
|
|
309
263
|
J extends Family = never,
|
|
310
264
|
>(
|
|
311
|
-
mapping: OAuthConnectedMapping<S, AC,
|
|
265
|
+
mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra,
|
|
312
266
|
) =>
|
|
313
267
|
makeTargetOAuthConnectedServices(mapping, configuration).pipe(
|
|
314
268
|
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
|
|
315
269
|
),
|
|
316
|
-
makeOAuthConnectedRevocationServices: <
|
|
317
|
-
|
|
318
|
-
O extends Family,
|
|
319
|
-
F extends Family,
|
|
320
|
-
G extends Family,
|
|
321
|
-
C extends Family,
|
|
322
|
-
H extends Family,
|
|
323
|
-
J extends Family,
|
|
324
|
-
N,
|
|
325
|
-
>(
|
|
326
|
-
mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra,
|
|
270
|
+
makeOAuthConnectedRevocationServices: <O extends Family, F extends Family, J extends Family, N>(
|
|
271
|
+
mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra,
|
|
327
272
|
) =>
|
|
328
273
|
makeTargetOAuthConnectedRevocationServices(mapping, configuration).pipe(
|
|
329
274
|
Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
|
|
@@ -332,157 +277,3 @@ export const makeOAuthConnectedTarget = <
|
|
|
332
277
|
coordinateOAuthConnectedRevocations,
|
|
333
278
|
};
|
|
334
279
|
};
|
|
335
|
-
|
|
336
|
-
export const makeD1OAuthConnectedTarget = <DatabaseId, Database, Family extends Table, Extra>(
|
|
337
|
-
databaseService: Context.Service<DatabaseId, Database>,
|
|
338
|
-
configuration: OAuthTargetConfiguration,
|
|
339
|
-
) => {
|
|
340
|
-
function coordinateOAuthConnected<
|
|
341
|
-
S extends Family,
|
|
342
|
-
AC extends Family,
|
|
343
|
-
T extends Family,
|
|
344
|
-
O extends Family,
|
|
345
|
-
F extends Family,
|
|
346
|
-
G extends Family,
|
|
347
|
-
C extends Family,
|
|
348
|
-
H extends Family,
|
|
349
|
-
UA extends Family,
|
|
350
|
-
DC extends Family,
|
|
351
|
-
N,
|
|
352
|
-
J extends Family,
|
|
353
|
-
A,
|
|
354
|
-
E,
|
|
355
|
-
R,
|
|
356
|
-
DatabaseError,
|
|
357
|
-
DatabaseRequirements,
|
|
358
|
-
>(
|
|
359
|
-
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
360
|
-
options: {
|
|
361
|
-
readonly mapping: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, UA, DC, N, J> & Extra;
|
|
362
|
-
},
|
|
363
|
-
body: Effect.Effect<A, E, R>,
|
|
364
|
-
): Effect.Effect<
|
|
365
|
-
A,
|
|
366
|
-
OAuthCoordinatorError<E> | DatabaseError,
|
|
367
|
-
| Exclude<R, OAuthConnectedPersistence | D1BatchStatements>
|
|
368
|
-
| Crypto.Crypto
|
|
369
|
-
| LifecycleHooks
|
|
370
|
-
| DatabaseRequirements
|
|
371
|
-
> {
|
|
372
|
-
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
373
|
-
coordinateTargetOAuthConnected<
|
|
374
|
-
Database,
|
|
375
|
-
A,
|
|
376
|
-
E | OAuthUnavailable,
|
|
377
|
-
Exclude<R, OAuthConnectedPersistence | D1BatchStatements>
|
|
378
|
-
>(database, options.mapping, configuration, (_tx, services, append) =>
|
|
379
|
-
Effect.gen(function* () {
|
|
380
|
-
const original = services.oauthConnectedPersistence;
|
|
381
|
-
|
|
382
|
-
const nativeCollector = D1BatchStatements.of({
|
|
383
|
-
append: (statement) => Effect.sync(() => append(statement)),
|
|
384
|
-
});
|
|
385
|
-
|
|
386
|
-
const owner = yield* makeD1Owner(unavailable()).pipe(
|
|
387
|
-
Effect.provideService(D1BatchStatements, nativeCollector),
|
|
388
|
-
);
|
|
389
|
-
|
|
390
|
-
const service: OAuthConnectedPersistence["Service"] = {
|
|
391
|
-
claimSignIn: (input, prepare) => owner.run(original.claimSignIn(input, prepare)),
|
|
392
|
-
inspectSignIn: (input) => owner.run(original.inspectSignIn(input)),
|
|
393
|
-
settleSignIn: (input, prepare) => owner.run(original.settleSignIn(input, prepare)),
|
|
394
|
-
capture: (input) => owner.run(original.capture(input)),
|
|
395
|
-
issue: (input, prepare) => owner.run(original.issue(input, prepare)),
|
|
396
|
-
prepare: (input, prepare) => owner.run(original.prepare(input, prepare)),
|
|
397
|
-
inspectPrepared: (input) => owner.run(original.inspectPrepared(input)),
|
|
398
|
-
preflight: (input) => owner.run(original.preflight(input)),
|
|
399
|
-
claim: (input, prepare) => owner.run(original.claim(input, prepare)),
|
|
400
|
-
inspectGrant: (input) => owner.run(original.inspectGrant(input)),
|
|
401
|
-
settle: (input, prepare) => owner.run(original.settle(input, prepare)),
|
|
402
|
-
list: (input) => owner.run(original.list(input)),
|
|
403
|
-
inspectDisconnect: (input) => owner.run(original.inspectDisconnect(input)),
|
|
404
|
-
disconnect: (input, prepare) => owner.run(original.disconnect(input, prepare)),
|
|
405
|
-
inspectAccess: (input) => owner.run(original.inspectAccess(input)),
|
|
406
|
-
claimRefresh: (input, prepare) => owner.run(original.claimRefresh(input, prepare)),
|
|
407
|
-
settleRefresh: (input, prepare) => owner.run(original.settleRefresh(input, prepare)),
|
|
408
|
-
admitUse: (input, prepare) => owner.run(original.admitUse(input, prepare)),
|
|
409
|
-
cleanup: (input, prepare) => owner.run(original.cleanup(input, prepare)),
|
|
410
|
-
};
|
|
411
|
-
|
|
412
|
-
const provided = Context.make(OAuthConnectedPersistence, service).pipe(
|
|
413
|
-
Context.add(D1BatchStatements, owner.collector),
|
|
414
|
-
);
|
|
415
|
-
|
|
416
|
-
return yield* owner.close(Effect.provideContext(body, provided));
|
|
417
|
-
}),
|
|
418
|
-
).pipe(Effect.provideService(NativeDatabase, database)),
|
|
419
|
-
);
|
|
420
|
-
}
|
|
421
|
-
function coordinateOAuthConnectedRevocations<
|
|
422
|
-
T extends Family,
|
|
423
|
-
O extends Family,
|
|
424
|
-
F extends Family,
|
|
425
|
-
G extends Family,
|
|
426
|
-
C extends Family,
|
|
427
|
-
H extends Family,
|
|
428
|
-
J extends Family,
|
|
429
|
-
N,
|
|
430
|
-
A,
|
|
431
|
-
E,
|
|
432
|
-
R,
|
|
433
|
-
DatabaseError,
|
|
434
|
-
DatabaseRequirements,
|
|
435
|
-
>(
|
|
436
|
-
acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
|
|
437
|
-
options: { readonly mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra },
|
|
438
|
-
body: Effect.Effect<A, E, R>,
|
|
439
|
-
): Effect.Effect<
|
|
440
|
-
A,
|
|
441
|
-
OAuthCoordinatorError<E> | DatabaseError,
|
|
442
|
-
| Exclude<R, OAuthConnectedRevocations | D1BatchStatements>
|
|
443
|
-
| Crypto.Crypto
|
|
444
|
-
| LifecycleHooks
|
|
445
|
-
| DatabaseRequirements
|
|
446
|
-
> {
|
|
447
|
-
return Effect.flatMap(nativeDatabase(acquire), (database) =>
|
|
448
|
-
coordinateTargetOAuthConnectedRevocations<
|
|
449
|
-
Database,
|
|
450
|
-
A,
|
|
451
|
-
E | OAuthUnavailable,
|
|
452
|
-
Exclude<R, OAuthConnectedRevocations | D1BatchStatements>
|
|
453
|
-
>(database, options.mapping, configuration, (_tx, services, append) =>
|
|
454
|
-
Effect.gen(function* () {
|
|
455
|
-
const original = services.oauthConnectedRevocations;
|
|
456
|
-
|
|
457
|
-
const nativeCollector = D1BatchStatements.of({
|
|
458
|
-
append: (statement) => Effect.sync(() => append(statement)),
|
|
459
|
-
});
|
|
460
|
-
|
|
461
|
-
const owner = yield* makeD1Owner(unavailable()).pipe(
|
|
462
|
-
Effect.provideService(D1BatchStatements, nativeCollector),
|
|
463
|
-
);
|
|
464
|
-
|
|
465
|
-
const service: OAuthConnectedRevocations["Service"] = {
|
|
466
|
-
claim: (input, prepare) => owner.run(original.claim(input, prepare)),
|
|
467
|
-
settle: (input, prepare) => owner.run(original.settle(input, prepare)),
|
|
468
|
-
};
|
|
469
|
-
|
|
470
|
-
const provided = Context.make(OAuthConnectedRevocations, service).pipe(
|
|
471
|
-
Context.add(D1BatchStatements, owner.collector),
|
|
472
|
-
);
|
|
473
|
-
|
|
474
|
-
return yield* owner.close(Effect.provideContext(body, provided));
|
|
475
|
-
}),
|
|
476
|
-
).pipe(Effect.provideService(NativeDatabase, database)),
|
|
477
|
-
);
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
return {
|
|
481
|
-
...makeOAuthConnectedTarget<DatabaseId, Database, Family, Extra>(
|
|
482
|
-
databaseService,
|
|
483
|
-
configuration,
|
|
484
|
-
),
|
|
485
|
-
coordinateOAuthConnected,
|
|
486
|
-
coordinateOAuthConnectedRevocations,
|
|
487
|
-
};
|
|
488
|
-
};
|
|
@@ -1,145 +1,55 @@
|
|
|
1
|
-
import * as Shared from "@yielded/auth-persistence/Adapter";
|
|
1
|
+
import type * as Shared from "@yielded/auth-persistence/Adapter";
|
|
2
2
|
import type { SQL, Table } from "drizzle-orm";
|
|
3
3
|
|
|
4
4
|
import type { DrizzleTableModel } from "./table-model";
|
|
5
5
|
|
|
6
6
|
export {
|
|
7
7
|
type OAuthConnectedAction,
|
|
8
|
-
type OAuthConnectedOrderCodec,
|
|
9
8
|
type OAuthConnectedPolicyInput,
|
|
10
9
|
requiredOAuthConnectedConstraints,
|
|
11
10
|
requiredOAuthConnectedRevocationConstraints,
|
|
12
11
|
} from "@yielded/auth-persistence/Adapter";
|
|
13
12
|
|
|
14
|
-
export type OAuthConnectedSubjectTable<S extends Table> = Shared.OAuthConnectedSubjectTable<
|
|
15
|
-
DrizzleTableModel<S>,
|
|
16
|
-
SQL
|
|
17
|
-
>;
|
|
18
|
-
|
|
19
|
-
export type OAuthConnectedFlowTable<F extends Table, N> = Shared.OAuthConnectedFlowTable<
|
|
20
|
-
DrizzleTableModel<F>,
|
|
21
|
-
N
|
|
22
|
-
>;
|
|
23
|
-
|
|
24
13
|
export type OAuthConnectedGrantTable<G extends Table, N> = Shared.OAuthConnectedGrantTable<
|
|
25
14
|
DrizzleTableModel<G>,
|
|
26
15
|
N
|
|
27
16
|
>;
|
|
28
17
|
|
|
29
|
-
/** Also stores a permanent provider/issuer scope anchor. clientKey must fit 52
|
|
30
|
-
* ASCII characters. Empty clientRegistrationId is reserved for that anchor;
|
|
31
|
-
* actual profile registrations are nonempty. Scope counter stays zero. */
|
|
32
|
-
export type OAuthConnectedClientRegistrationTable<C extends Table> =
|
|
33
|
-
Shared.OAuthConnectedClientRegistrationTable<DrizzleTableModel<C>>;
|
|
34
|
-
|
|
35
|
-
/** Remote authority: no local-subject column or subject-scoped key. Retain this
|
|
36
|
-
* anchor/cutoff when a legitimately released tuple gains a different local owner. */
|
|
37
|
-
export type OAuthConnectedCohortTable<C extends Table> = Shared.OAuthConnectedCohortTable<
|
|
38
|
-
DrizzleTableModel<C>
|
|
39
|
-
>;
|
|
40
|
-
|
|
41
|
-
export type OAuthConnectedAdmissionTable<A extends Table, N> = Shared.OAuthConnectedAdmissionTable<
|
|
42
|
-
DrizzleTableModel<A>,
|
|
43
|
-
N
|
|
44
|
-
>;
|
|
45
|
-
|
|
46
|
-
export type OAuthConnectedCommandTable<C extends Table, N> = Shared.OAuthConnectedCommandTable<
|
|
47
|
-
DrizzleTableModel<C>,
|
|
48
|
-
N
|
|
49
|
-
>;
|
|
50
|
-
|
|
51
18
|
export type OAuthConnectedRevocationJobTable<
|
|
52
19
|
J extends Table,
|
|
53
20
|
N,
|
|
54
21
|
> = Shared.OAuthConnectedRevocationJobTable<DrizzleTableModel<J>, N>;
|
|
55
22
|
|
|
56
|
-
export type
|
|
57
|
-
T extends Table,
|
|
58
|
-
N,
|
|
59
|
-
> = Shared.OAuthConnectedPolicyGuardTable<DrizzleTableModel<T>, N, SQL>;
|
|
60
|
-
|
|
61
|
-
export type OAuthConnectedPolicyGuard<N> = Shared.OAuthConnectedPolicyGuard<N, SQL, Table>;
|
|
62
|
-
|
|
63
|
-
export const oauthConnectedPolicyGuard = <T extends Table, N>(
|
|
64
|
-
input: OAuthConnectedPolicyGuardTable<T, N>,
|
|
65
|
-
): OAuthConnectedPolicyGuard<N> =>
|
|
66
|
-
Shared.oauthConnectedPolicyGuard<DrizzleTableModel<T>, N, SQL>(input);
|
|
67
|
-
|
|
68
|
-
export type OAuthConnectedSqlPolicy<N> = Shared.OAuthConnectedSqlPolicy<N, SQL, Table>;
|
|
69
|
-
|
|
70
|
-
/** Existing ownership only; workers never allocate or acquire a tuple. */
|
|
71
|
-
export type OAuthConnectedOwnershipRead<
|
|
72
|
-
T extends Table,
|
|
73
|
-
O extends Table,
|
|
74
|
-
N,
|
|
75
|
-
> = Shared.OAuthConnectedOwnershipRead<DrizzleTableModel<T>, DrizzleTableModel<O>, N, SQL>;
|
|
76
|
-
|
|
77
|
-
export type OAuthConnectedAuthorityMapping<
|
|
78
|
-
T extends Table,
|
|
79
|
-
O extends Table,
|
|
80
|
-
F extends Table,
|
|
81
|
-
G extends Table,
|
|
82
|
-
C extends Table,
|
|
83
|
-
H extends Table,
|
|
84
|
-
N,
|
|
85
|
-
> = Shared.OAuthConnectedAuthorityMapping<
|
|
86
|
-
DrizzleTableModel<T>,
|
|
87
|
-
DrizzleTableModel<O>,
|
|
88
|
-
DrizzleTableModel<F>,
|
|
89
|
-
DrizzleTableModel<G>,
|
|
90
|
-
DrizzleTableModel<C>,
|
|
91
|
-
DrizzleTableModel<H>,
|
|
92
|
-
N,
|
|
93
|
-
SQL
|
|
94
|
-
>;
|
|
23
|
+
export type OAuthConnectedSqlPolicy<N> = Shared.OAuthConnectedSqlPolicy<N, SQL>;
|
|
95
24
|
|
|
96
25
|
export type OAuthConnectedMapping<
|
|
97
26
|
S extends Table,
|
|
98
27
|
AC extends Table,
|
|
99
|
-
T extends Table,
|
|
100
28
|
O extends Table,
|
|
101
29
|
F extends Table,
|
|
102
30
|
G extends Table,
|
|
103
|
-
C extends Table,
|
|
104
|
-
H extends Table,
|
|
105
|
-
A extends Table,
|
|
106
|
-
D extends Table,
|
|
107
31
|
N,
|
|
108
|
-
J extends Table =
|
|
32
|
+
J extends Table = Table,
|
|
109
33
|
> = Shared.OAuthConnectedMapping<
|
|
110
34
|
DrizzleTableModel<S>,
|
|
111
35
|
DrizzleTableModel<AC>,
|
|
112
|
-
DrizzleTableModel<T>,
|
|
113
36
|
DrizzleTableModel<O>,
|
|
114
37
|
DrizzleTableModel<F>,
|
|
115
38
|
DrizzleTableModel<G>,
|
|
116
|
-
DrizzleTableModel<C>,
|
|
117
|
-
DrizzleTableModel<H>,
|
|
118
|
-
DrizzleTableModel<A>,
|
|
119
|
-
DrizzleTableModel<D>,
|
|
120
39
|
N,
|
|
121
40
|
DrizzleTableModel<J>,
|
|
122
41
|
SQL,
|
|
123
|
-
Table,
|
|
124
42
|
DrizzleTableModel<Table>
|
|
125
43
|
>;
|
|
126
44
|
|
|
127
45
|
export type OAuthConnectedRevocationMapping<
|
|
128
|
-
T extends Table,
|
|
129
46
|
O extends Table,
|
|
130
|
-
F extends Table,
|
|
131
47
|
G extends Table,
|
|
132
|
-
C extends Table,
|
|
133
|
-
H extends Table,
|
|
134
48
|
J extends Table,
|
|
135
49
|
N,
|
|
136
50
|
> = Shared.OAuthConnectedRevocationMapping<
|
|
137
|
-
DrizzleTableModel<T>,
|
|
138
51
|
DrizzleTableModel<O>,
|
|
139
|
-
DrizzleTableModel<F>,
|
|
140
52
|
DrizzleTableModel<G>,
|
|
141
|
-
DrizzleTableModel<C>,
|
|
142
|
-
DrizzleTableModel<H>,
|
|
143
53
|
DrizzleTableModel<J>,
|
|
144
54
|
N,
|
|
145
55
|
SQL
|
|
@@ -1,37 +1,28 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { getTableColumns, sql, type Table } from "drizzle-orm";
|
|
2
2
|
|
|
3
3
|
import type { OAuthConnectedMapping } from "./oauth-connected-model";
|
|
4
|
-
import { oauthKernel } from "./oauth-kernel";
|
|
5
|
-
import type { OAuthReferenceGuardDescriptor } from "./oauth-model";
|
|
6
4
|
|
|
7
|
-
/**
|
|
5
|
+
/** Concrete grant/job references retain ownership after unlink. */
|
|
8
6
|
export const oauthConnectedOwnershipReferences = <
|
|
9
7
|
S extends Table,
|
|
10
8
|
AC extends Table,
|
|
11
|
-
T extends Table,
|
|
12
9
|
O extends Table,
|
|
13
10
|
F extends Table,
|
|
14
11
|
G extends Table,
|
|
15
|
-
C extends Table,
|
|
16
|
-
H extends Table,
|
|
17
|
-
A extends Table,
|
|
18
|
-
D extends Table,
|
|
19
12
|
N,
|
|
20
13
|
J extends Table,
|
|
21
14
|
>(
|
|
22
|
-
|
|
23
|
-
)
|
|
24
|
-
readonly
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}) => SQL;
|
|
37
|
-
};
|
|
15
|
+
mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J>,
|
|
16
|
+
) => ({
|
|
17
|
+
connectedReference: (input: { readonly identityKey: string; readonly subjectId: N }) => {
|
|
18
|
+
const g = mapping.grant;
|
|
19
|
+
const columns = getTableColumns(g.table);
|
|
20
|
+
const grant = sql`exists(select 1 from ${g.table} where ${columns[g.identityKey]} = ${input.identityKey} and ${columns[g.subjectId]} = ${input.subjectId})`;
|
|
21
|
+
|
|
22
|
+
if (mapping.revocation.mode === "unsupported") return grant;
|
|
23
|
+
const j = mapping.revocation.job;
|
|
24
|
+
const jobs = getTableColumns(j.table);
|
|
25
|
+
|
|
26
|
+
return sql`(${grant}) or exists(select 1 from ${j.table} where ${jobs[j.identityKey]} = ${input.identityKey} and ${jobs[j.subjectId]} = ${input.subjectId})`;
|
|
27
|
+
},
|
|
28
|
+
});
|