@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.
Files changed (383) hide show
  1. package/README.md +4 -2
  2. package/dist/D1.d.mts +495 -1151
  3. package/dist/D1.mjs +41 -19
  4. package/dist/D1.mjs.map +1 -1
  5. package/dist/Libsql.d.mts +385 -1996
  6. package/dist/Libsql.mjs +43 -47
  7. package/dist/Libsql.mjs.map +1 -1
  8. package/dist/Mysql2.d.mts +397 -1743
  9. package/dist/Mysql2.mjs +35 -41
  10. package/dist/Mysql2.mjs.map +1 -1
  11. package/dist/Pglite.d.mts +397 -1743
  12. package/dist/Pglite.mjs +42 -31
  13. package/dist/Pglite.mjs.map +1 -1
  14. package/dist/Postgres.d.mts +397 -1743
  15. package/dist/Postgres.mjs +42 -31
  16. package/dist/Postgres.mjs.map +1 -1
  17. package/dist/SqliteBun.d.mts +385 -1992
  18. package/dist/SqliteBun.mjs +43 -43
  19. package/dist/SqliteBun.mjs.map +1 -1
  20. package/dist/SqliteDo.d.mts +385 -1991
  21. package/dist/SqliteDo.mjs +42 -41
  22. package/dist/SqliteDo.mjs.map +1 -1
  23. package/dist/SqliteNode.d.mts +385 -1992
  24. package/dist/SqliteNode.mjs +43 -43
  25. package/dist/SqliteNode.mjs.map +1 -1
  26. package/dist/SqliteWasm.d.mts +385 -1992
  27. package/dist/SqliteWasm.mjs +43 -43
  28. package/dist/SqliteWasm.mjs.map +1 -1
  29. package/dist/drizzle/d1-identity.mjs +2 -2
  30. package/dist/drizzle/d1-identity.mjs.map +1 -1
  31. package/dist/drizzle/driver-types.d.mts +15 -0
  32. package/dist/drizzle/email-drivers.mjs +32 -0
  33. package/dist/drizzle/email-drivers.mjs.map +1 -0
  34. package/dist/drizzle/email-model.d.mts +9 -13
  35. package/dist/drizzle/email-target.d.mts +10 -11
  36. package/dist/drizzle/email-target.mjs +33 -70
  37. package/dist/drizzle/email-target.mjs.map +1 -1
  38. package/dist/drizzle/model.d.mts +1 -10
  39. package/dist/drizzle/model.mjs +1 -2
  40. package/dist/drizzle/model.mjs.map +1 -1
  41. package/dist/drizzle/mysql-identity.mjs +3 -6
  42. package/dist/drizzle/mysql-identity.mjs.map +1 -1
  43. package/dist/drizzle/native-clock.d.mts +9 -0
  44. package/dist/drizzle/native-clock.mjs +18 -0
  45. package/dist/drizzle/native-clock.mjs.map +1 -0
  46. package/dist/drizzle/native-database.d.mts +46 -0
  47. package/dist/drizzle/native-database.mjs +6 -5
  48. package/dist/drizzle/native-database.mjs.map +1 -1
  49. package/dist/drizzle/native-sql-table.mjs +13 -5
  50. package/dist/drizzle/native-sql-table.mjs.map +1 -1
  51. package/dist/drizzle/native-target.d.mts +6 -0
  52. package/dist/drizzle/native-target.mjs +44 -0
  53. package/dist/drizzle/native-target.mjs.map +1 -0
  54. package/dist/drizzle/oauth-connected-drivers.mjs +4 -56
  55. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -1
  56. package/dist/drizzle/oauth-connected-model.d.mts +5 -22
  57. package/dist/drizzle/oauth-connected-model.mjs +1 -7
  58. package/dist/drizzle/oauth-connected-reference.d.mts +5 -7
  59. package/dist/drizzle/oauth-connected-reference.mjs +11 -3
  60. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -1
  61. package/dist/drizzle/oauth-drivers.mjs +1 -2
  62. package/dist/drizzle/oauth-drivers.mjs.map +1 -1
  63. package/dist/drizzle/oauth-model.d.mts +11 -37
  64. package/dist/drizzle/oauth-model.mjs +3 -4
  65. package/dist/drizzle/oauth-model.mjs.map +1 -1
  66. package/dist/drizzle/oauth-proxy.d.mts +1 -1
  67. package/dist/drizzle/oauth-proxy.mjs +1 -1
  68. package/dist/drizzle/oauth-target.d.mts +9 -6
  69. package/dist/drizzle/oauth-target.mjs +47 -15
  70. package/dist/drizzle/oauth-target.mjs.map +1 -1
  71. package/dist/drizzle/passkey/target.d.mts +14 -0
  72. package/dist/drizzle/passkey/target.mjs +52 -0
  73. package/dist/drizzle/passkey/target.mjs.map +1 -0
  74. package/dist/drizzle/passkey/write-target.d.mts +11 -0
  75. package/dist/drizzle/passkey/write-target.mjs +28 -0
  76. package/dist/drizzle/passkey/write-target.mjs.map +1 -0
  77. package/dist/drizzle/passkey-drivers.mjs +2 -4
  78. package/dist/drizzle/passkey-drivers.mjs.map +1 -1
  79. package/dist/drizzle/passkey-model.d.mts +5 -26
  80. package/dist/drizzle/passkey-model.mjs +2 -8
  81. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +3 -6
  82. package/dist/drizzle/passkey-write-drivers.mjs +2 -3
  83. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -1
  84. package/dist/drizzle/passkey-write-model.d.mts +7 -9
  85. package/dist/drizzle/passkey-write-model.mjs +1 -3
  86. package/dist/drizzle/passkey-write-model.mjs.map +1 -1
  87. package/dist/drizzle/password-drivers.mjs +31 -0
  88. package/dist/drizzle/password-drivers.mjs.map +1 -0
  89. package/dist/drizzle/password-model.d.mts +7 -10
  90. package/dist/drizzle/password-target.d.mts +7 -8
  91. package/dist/drizzle/password-target.mjs +23 -68
  92. package/dist/drizzle/password-target.mjs.map +1 -1
  93. package/dist/drizzle/pg-identity.mjs +3 -6
  94. package/dist/drizzle/pg-identity.mjs.map +1 -1
  95. package/dist/drizzle/phone-drivers.mjs +24 -0
  96. package/dist/drizzle/phone-drivers.mjs.map +1 -0
  97. package/dist/drizzle/phone-model.d.mts +13 -104
  98. package/dist/drizzle/phone-model.mjs +5 -33
  99. package/dist/drizzle/phone-model.mjs.map +1 -1
  100. package/dist/drizzle/phone-target.mjs +22 -171
  101. package/dist/drizzle/phone-target.mjs.map +1 -1
  102. package/dist/drizzle/proof-drivers.mjs +24 -0
  103. package/dist/drizzle/proof-drivers.mjs.map +1 -0
  104. package/dist/drizzle/proof-model.d.mts +7 -15
  105. package/dist/drizzle/proof-target.d.mts +5 -5
  106. package/dist/drizzle/proof-target.mjs +14 -28
  107. package/dist/drizzle/proof-target.mjs.map +1 -1
  108. package/dist/drizzle/session-drivers.mjs +97 -0
  109. package/dist/drizzle/session-drivers.mjs.map +1 -0
  110. package/dist/drizzle/session-model.d.mts +11 -22
  111. package/dist/drizzle/sqlite-do-database.d.mts +3 -3
  112. package/dist/drizzle/sqlite-do-database.mjs +6 -1
  113. package/dist/drizzle/sqlite-do-database.mjs.map +1 -1
  114. package/dist/drizzle/sqlite-identity.mjs +3 -5
  115. package/dist/drizzle/sqlite-identity.mjs.map +1 -1
  116. package/dist/drizzle/step-up-model.d.mts +2 -5
  117. package/dist/drizzle/storage-validation.mjs +2 -1
  118. package/dist/drizzle/storage-validation.mjs.map +1 -1
  119. package/dist/drizzle/totp-model.d.mts +7 -74
  120. package/dist/drizzle/totp-model.mjs +1 -5
  121. package/dist/drizzle/totp-model.mjs.map +1 -1
  122. package/dist/drizzle/totp-target.mjs +39 -75
  123. package/dist/drizzle/totp-target.mjs.map +1 -1
  124. package/dist/drizzle/transaction-handle.mjs +13 -0
  125. package/dist/drizzle/transaction-handle.mjs.map +1 -0
  126. package/dist/drizzle/transaction-mysql.mjs +43 -12
  127. package/dist/drizzle/transaction-mysql.mjs.map +1 -1
  128. package/dist/index.d.mts +17 -22
  129. package/dist/index.mjs +10 -16
  130. package/dist/internal/drizzle-postgres.mjs +4 -6
  131. package/dist/internal/drizzle-postgres.mjs.map +1 -1
  132. package/dist/internal/drizzle-sqlite.mjs +4 -6
  133. package/dist/internal/drizzle-sqlite.mjs.map +1 -1
  134. package/package.json +1 -1
  135. package/src/D1.ts +77 -74
  136. package/src/Libsql.ts +65 -105
  137. package/src/Mysql2.ts +52 -87
  138. package/src/Pglite.ts +74 -81
  139. package/src/Postgres.ts +74 -81
  140. package/src/SqliteBun.ts +65 -113
  141. package/src/SqliteDo.ts +58 -106
  142. package/src/SqliteNode.ts +65 -113
  143. package/src/SqliteWasm.ts +65 -113
  144. package/src/drizzle/d1-identity.ts +2 -2
  145. package/src/drizzle/driver-types.ts +26 -0
  146. package/src/drizzle/email-drivers.ts +320 -0
  147. package/src/drizzle/email-model.ts +24 -78
  148. package/src/drizzle/email-target.ts +118 -211
  149. package/src/drizzle/model.ts +0 -2
  150. package/src/drizzle/mysql-identity.ts +4 -24
  151. package/src/drizzle/native-clock.ts +21 -0
  152. package/src/drizzle/native-database.ts +59 -18
  153. package/src/drizzle/native-sql-table.ts +104 -87
  154. package/src/drizzle/native-target.ts +120 -0
  155. package/src/drizzle/oauth-connected-drivers.ts +24 -233
  156. package/src/drizzle/oauth-connected-model.ts +3 -93
  157. package/src/drizzle/oauth-connected-reference.ts +16 -25
  158. package/src/drizzle/oauth-drivers.ts +58 -99
  159. package/src/drizzle/oauth-model.ts +27 -132
  160. package/src/drizzle/oauth-target.ts +250 -33
  161. package/src/drizzle/passkey/target.ts +205 -0
  162. package/src/drizzle/passkey/write-target.ts +91 -0
  163. package/src/drizzle/passkey-drivers.ts +35 -133
  164. package/src/drizzle/passkey-model.ts +3 -81
  165. package/src/drizzle/passkey-registration-ceremony-model.ts +5 -25
  166. package/src/drizzle/passkey-write-drivers.ts +32 -102
  167. package/src/drizzle/passkey-write-model.ts +10 -44
  168. package/src/drizzle/password-drivers.ts +286 -0
  169. package/src/drizzle/password-model.ts +10 -44
  170. package/src/drizzle/password-target.ts +85 -239
  171. package/src/drizzle/pg-identity.ts +4 -19
  172. package/src/drizzle/phone-drivers.ts +142 -0
  173. package/src/drizzle/phone-model.ts +22 -162
  174. package/src/drizzle/phone-target.ts +51 -493
  175. package/src/drizzle/proof-drivers.ts +123 -0
  176. package/src/drizzle/proof-model.ts +12 -123
  177. package/src/drizzle/proof-target.ts +38 -102
  178. package/src/drizzle/session-drivers.ts +696 -0
  179. package/src/drizzle/session-model.ts +54 -118
  180. package/src/drizzle/sqlite-do-database.ts +8 -0
  181. package/src/drizzle/sqlite-identity.ts +4 -22
  182. package/src/drizzle/step-up-model.ts +13 -37
  183. package/src/drizzle/storage-validation.ts +2 -1
  184. package/src/drizzle/totp-model.ts +20 -77
  185. package/src/drizzle/totp-target.ts +121 -261
  186. package/src/drizzle/transaction-handle.ts +41 -0
  187. package/src/drizzle/transaction-mysql.ts +90 -25
  188. package/src/index.ts +7 -122
  189. package/src/internal/drizzle-postgres.ts +4 -7
  190. package/src/internal/drizzle-sqlite.ts +4 -7
  191. package/dist/drizzle/crypto.mjs +0 -11
  192. package/dist/drizzle/crypto.mjs.map +0 -1
  193. package/dist/drizzle/d1-emails.d.mts +0 -62
  194. package/dist/drizzle/d1-emails.mjs +0 -626
  195. package/dist/drizzle/d1-emails.mjs.map +0 -1
  196. package/dist/drizzle/d1-generated-statement.mjs +0 -79
  197. package/dist/drizzle/d1-generated-statement.mjs.map +0 -1
  198. package/dist/drizzle/d1-oauth.d.mts +0 -331
  199. package/dist/drizzle/d1-oauth.mjs +0 -79
  200. package/dist/drizzle/d1-oauth.mjs.map +0 -1
  201. package/dist/drizzle/d1-passkey.d.mts +0 -37
  202. package/dist/drizzle/d1-passkey.mjs +0 -98
  203. package/dist/drizzle/d1-passkey.mjs.map +0 -1
  204. package/dist/drizzle/d1-password-prepared.d.mts +0 -25
  205. package/dist/drizzle/d1-password-prepared.mjs +0 -473
  206. package/dist/drizzle/d1-password-prepared.mjs.map +0 -1
  207. package/dist/drizzle/d1-passwords.d.mts +0 -70
  208. package/dist/drizzle/d1-passwords.mjs +0 -808
  209. package/dist/drizzle/d1-passwords.mjs.map +0 -1
  210. package/dist/drizzle/d1-phone.d.mts +0 -23
  211. package/dist/drizzle/d1-phone.mjs +0 -33
  212. package/dist/drizzle/d1-phone.mjs.map +0 -1
  213. package/dist/drizzle/d1-planning.d.mts +0 -11
  214. package/dist/drizzle/d1-planning.mjs +0 -43
  215. package/dist/drizzle/d1-planning.mjs.map +0 -1
  216. package/dist/drizzle/d1-proofs.d.mts +0 -80
  217. package/dist/drizzle/d1-proofs.mjs +0 -842
  218. package/dist/drizzle/d1-proofs.mjs.map +0 -1
  219. package/dist/drizzle/d1-sessions.d.mts +0 -68
  220. package/dist/drizzle/d1-sessions.mjs +0 -987
  221. package/dist/drizzle/d1-sessions.mjs.map +0 -1
  222. package/dist/drizzle/d1-totp.d.mts +0 -23
  223. package/dist/drizzle/d1-totp.mjs +0 -30
  224. package/dist/drizzle/d1-totp.mjs.map +0 -1
  225. package/dist/drizzle/email-registration.d.mts +0 -33
  226. package/dist/drizzle/email-registration.mjs +0 -281
  227. package/dist/drizzle/email-registration.mjs.map +0 -1
  228. package/dist/drizzle/email-sql.d.mts +0 -1
  229. package/dist/drizzle/email-sql.mjs +0 -9
  230. package/dist/drizzle/email-sql.mjs.map +0 -1
  231. package/dist/drizzle/mysql-emails.d.mts +0 -71
  232. package/dist/drizzle/mysql-emails.mjs +0 -43
  233. package/dist/drizzle/mysql-emails.mjs.map +0 -1
  234. package/dist/drizzle/mysql-password-prepared.d.mts +0 -30
  235. package/dist/drizzle/mysql-password-prepared.mjs +0 -21
  236. package/dist/drizzle/mysql-password-prepared.mjs.map +0 -1
  237. package/dist/drizzle/mysql-passwords.d.mts +0 -71
  238. package/dist/drizzle/mysql-passwords.mjs +0 -43
  239. package/dist/drizzle/mysql-passwords.mjs.map +0 -1
  240. package/dist/drizzle/mysql-proofs.d.mts +0 -75
  241. package/dist/drizzle/mysql-proofs.mjs +0 -28
  242. package/dist/drizzle/mysql-proofs.mjs.map +0 -1
  243. package/dist/drizzle/mysql-sessions.d.mts +0 -92
  244. package/dist/drizzle/mysql-sessions.mjs +0 -58
  245. package/dist/drizzle/mysql-sessions.mjs.map +0 -1
  246. package/dist/drizzle/oauth-connected-model.mjs.map +0 -1
  247. package/dist/drizzle/oauth-connected-target.d.mts +0 -6
  248. package/dist/drizzle/oauth-connected-target.mjs +0 -12
  249. package/dist/drizzle/oauth-connected-target.mjs.map +0 -1
  250. package/dist/drizzle/oauth-kernel.mjs +0 -11
  251. package/dist/drizzle/oauth-kernel.mjs.map +0 -1
  252. package/dist/drizzle/oauth-mysql.mjs +0 -8
  253. package/dist/drizzle/oauth-mysql.mjs.map +0 -1
  254. package/dist/drizzle/passkey-kernel.mjs +0 -8
  255. package/dist/drizzle/passkey-kernel.mjs.map +0 -1
  256. package/dist/drizzle/passkey-model.mjs.map +0 -1
  257. package/dist/drizzle/passkey-registration-ceremony-model.mjs +0 -2
  258. package/dist/drizzle/passkey-state.mjs +0 -7
  259. package/dist/drizzle/passkey-state.mjs.map +0 -1
  260. package/dist/drizzle/passkey-target.d.mts +0 -2
  261. package/dist/drizzle/passkey-target.mjs +0 -7
  262. package/dist/drizzle/passkey-target.mjs.map +0 -1
  263. package/dist/drizzle/passkey-write-target.d.mts +0 -5
  264. package/dist/drizzle/passkey-write-target.mjs +0 -7
  265. package/dist/drizzle/passkey-write-target.mjs.map +0 -1
  266. package/dist/drizzle/password-prepared-model.d.mts +0 -92
  267. package/dist/drizzle/password-prepared-model.mjs +0 -11
  268. package/dist/drizzle/password-prepared-model.mjs.map +0 -1
  269. package/dist/drizzle/password-prepared-sql.mjs +0 -395
  270. package/dist/drizzle/password-prepared-sql.mjs.map +0 -1
  271. package/dist/drizzle/password-prepared-state.mjs +0 -104
  272. package/dist/drizzle/password-prepared-state.mjs.map +0 -1
  273. package/dist/drizzle/password-prepared-target.d.mts +0 -13
  274. package/dist/drizzle/password-prepared-target.mjs +0 -62
  275. package/dist/drizzle/password-prepared-target.mjs.map +0 -1
  276. package/dist/drizzle/password-registration.d.mts +0 -7
  277. package/dist/drizzle/password-registration.mjs +0 -137
  278. package/dist/drizzle/password-registration.mjs.map +0 -1
  279. package/dist/drizzle/password-sql.d.mts +0 -1
  280. package/dist/drizzle/password-sql.mjs +0 -10
  281. package/dist/drizzle/password-sql.mjs.map +0 -1
  282. package/dist/drizzle/pg-emails.d.mts +0 -72
  283. package/dist/drizzle/pg-emails.mjs +0 -43
  284. package/dist/drizzle/pg-emails.mjs.map +0 -1
  285. package/dist/drizzle/pg-password-prepared.d.mts +0 -31
  286. package/dist/drizzle/pg-password-prepared.mjs +0 -21
  287. package/dist/drizzle/pg-password-prepared.mjs.map +0 -1
  288. package/dist/drizzle/pg-passwords.d.mts +0 -72
  289. package/dist/drizzle/pg-passwords.mjs +0 -43
  290. package/dist/drizzle/pg-passwords.mjs.map +0 -1
  291. package/dist/drizzle/pg-proofs.d.mts +0 -76
  292. package/dist/drizzle/pg-proofs.mjs +0 -27
  293. package/dist/drizzle/pg-proofs.mjs.map +0 -1
  294. package/dist/drizzle/pg-sessions.d.mts +0 -93
  295. package/dist/drizzle/pg-sessions.mjs +0 -58
  296. package/dist/drizzle/pg-sessions.mjs.map +0 -1
  297. package/dist/drizzle/phone-state.mjs +0 -14
  298. package/dist/drizzle/phone-state.mjs.map +0 -1
  299. package/dist/drizzle/phone-target.d.mts +0 -15
  300. package/dist/drizzle/proof-sql.d.mts +0 -1
  301. package/dist/drizzle/proof-sql.mjs +0 -8
  302. package/dist/drizzle/proof-sql.mjs.map +0 -1
  303. package/dist/drizzle/query-operations.mjs +0 -31
  304. package/dist/drizzle/query-operations.mjs.map +0 -1
  305. package/dist/drizzle/session-sql.d.mts +0 -1
  306. package/dist/drizzle/session-sql.mjs +0 -9
  307. package/dist/drizzle/session-sql.mjs.map +0 -1
  308. package/dist/drizzle/session-target.d.mts +0 -30
  309. package/dist/drizzle/session-target.mjs +0 -49
  310. package/dist/drizzle/session-target.mjs.map +0 -1
  311. package/dist/drizzle/sqlite-emails.mjs +0 -50
  312. package/dist/drizzle/sqlite-emails.mjs.map +0 -1
  313. package/dist/drizzle/sqlite-password-prepared.mjs +0 -26
  314. package/dist/drizzle/sqlite-password-prepared.mjs.map +0 -1
  315. package/dist/drizzle/sqlite-passwords.mjs +0 -54
  316. package/dist/drizzle/sqlite-passwords.mjs.map +0 -1
  317. package/dist/drizzle/sqlite-proofs.mjs +0 -34
  318. package/dist/drizzle/sqlite-proofs.mjs.map +0 -1
  319. package/dist/drizzle/sqlite-sessions.mjs +0 -79
  320. package/dist/drizzle/sqlite-sessions.mjs.map +0 -1
  321. package/dist/drizzle/standalone-guard.d.mts +0 -2
  322. package/dist/drizzle/standalone-guard.mjs +0 -21
  323. package/dist/drizzle/standalone-guard.mjs.map +0 -1
  324. package/dist/drizzle/totp-state.d.mts +0 -37
  325. package/dist/drizzle/totp-state.mjs +0 -287
  326. package/dist/drizzle/totp-state.mjs.map +0 -1
  327. package/dist/drizzle/totp-target.d.mts +0 -15
  328. package/dist/drizzle/transaction-execution.d.mts +0 -2
  329. package/dist/drizzle/transaction-execution.mjs +0 -11
  330. package/dist/drizzle/transaction-execution.mjs.map +0 -1
  331. package/dist/drizzle/transaction-owner.d.mts +0 -1
  332. package/dist/drizzle/transaction-owner.mjs +0 -8
  333. package/dist/drizzle/transaction-owner.mjs.map +0 -1
  334. package/src/drizzle/crypto.ts +0 -14
  335. package/src/drizzle/d1-emails.ts +0 -1945
  336. package/src/drizzle/d1-generated-statement.ts +0 -129
  337. package/src/drizzle/d1-oauth.ts +0 -360
  338. package/src/drizzle/d1-passkey.ts +0 -383
  339. package/src/drizzle/d1-password-prepared.ts +0 -1265
  340. package/src/drizzle/d1-passwords.ts +0 -2060
  341. package/src/drizzle/d1-phone.ts +0 -103
  342. package/src/drizzle/d1-planning.ts +0 -104
  343. package/src/drizzle/d1-proofs.ts +0 -2354
  344. package/src/drizzle/d1-sessions.ts +0 -2940
  345. package/src/drizzle/d1-totp.ts +0 -88
  346. package/src/drizzle/email-registration.ts +0 -850
  347. package/src/drizzle/email-sql.ts +0 -25
  348. package/src/drizzle/mysql-emails.ts +0 -343
  349. package/src/drizzle/mysql-password-prepared.ts +0 -198
  350. package/src/drizzle/mysql-passwords.ts +0 -343
  351. package/src/drizzle/mysql-proofs.ts +0 -196
  352. package/src/drizzle/mysql-sessions.ts +0 -780
  353. package/src/drizzle/oauth-connected-target.ts +0 -21
  354. package/src/drizzle/oauth-kernel.ts +0 -10
  355. package/src/drizzle/oauth-mysql.ts +0 -10
  356. package/src/drizzle/passkey-kernel.ts +0 -4
  357. package/src/drizzle/passkey-state.ts +0 -3
  358. package/src/drizzle/passkey-target.ts +0 -23
  359. package/src/drizzle/passkey-write-target.ts +0 -9
  360. package/src/drizzle/password-prepared-model.ts +0 -241
  361. package/src/drizzle/password-prepared-sql.ts +0 -1201
  362. package/src/drizzle/password-prepared-state.ts +0 -231
  363. package/src/drizzle/password-prepared-target.ts +0 -169
  364. package/src/drizzle/password-registration.ts +0 -369
  365. package/src/drizzle/password-sql.ts +0 -16
  366. package/src/drizzle/pg-emails.ts +0 -343
  367. package/src/drizzle/pg-password-prepared.ts +0 -199
  368. package/src/drizzle/pg-passwords.ts +0 -342
  369. package/src/drizzle/pg-proofs.ts +0 -206
  370. package/src/drizzle/pg-sessions.ts +0 -789
  371. package/src/drizzle/phone-state.ts +0 -21
  372. package/src/drizzle/proof-sql.ts +0 -10
  373. package/src/drizzle/query-operations.ts +0 -49
  374. package/src/drizzle/session-sql.ts +0 -15
  375. package/src/drizzle/session-target.ts +0 -337
  376. package/src/drizzle/sqlite-emails.ts +0 -393
  377. package/src/drizzle/sqlite-password-prepared.ts +0 -230
  378. package/src/drizzle/sqlite-passwords.ts +0 -497
  379. package/src/drizzle/sqlite-proofs.ts +0 -229
  380. package/src/drizzle/sqlite-sessions.ts +0 -1013
  381. package/src/drizzle/totp-state.ts +0 -525
  382. package/src/drizzle/transaction-execution.ts +0 -13
  383. 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 { makeD1Owner } from "./d1-planning";
12
- import { D1BatchStatements } from "./D1BatchStatements";
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
- } from "./oauth-connected-target";
24
- import { type OAuthCoordinatorError, type OAuthTargetConfiguration } from "./oauth-target";
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
- Synchronous extends boolean = false,
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, T, O, F, G, C, H, UA, DC, N, J> & Extra;
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, Synchronous extends true ? NoInfer<OAuthConnectedPersistence> : R>,
56
+ body: Effect.Effect<A, E, R>,
68
57
  ): Effect.Effect<
69
58
  A,
70
59
  OAuthCoordinatorError<E> | DatabaseError,
71
- | (Synchronous extends true ? never : Exclude<R, OAuthConnectedPersistence>)
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, T, O, F, G, C, H, UA, DC, N, J> & Extra;
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
- | (Synchronous extends true ? never : Exclude<R, OAuthConnectedPersistence | TxId>)
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, T, O, F, G, C, H, UA, DC, N, J> & Extra;
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<T, O, F, G, C, H, J, N> & Extra;
161
+ readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;
191
162
  readonly transaction?: never;
192
163
  },
193
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<OAuthConnectedRevocations> : R>,
164
+ body: Effect.Effect<A, E, R>,
194
165
  ): Effect.Effect<
195
166
  A,
196
167
  OAuthCoordinatorError<E> | DatabaseError,
197
- | (Synchronous extends true ? never : Exclude<R, OAuthConnectedRevocations>)
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<T, O, F, G, C, H, J, N> & Extra;
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
- | (Synchronous extends true ? never : Exclude<R, OAuthConnectedRevocations | TxId>)
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<T, O, F, G, C, H, J, N> & Extra;
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, T, O, F, G, C, H, UA, DC, N, J> & Extra,
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
- T extends Family,
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 OAuthConnectedPolicyGuardTable<
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 = never,
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 type { SQL, Table } from "drizzle-orm";
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
- /** Compose login unlink with retained-grant ownership under this compiler. */
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
- original: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, A, D, N, J>,
23
- ): {
24
- readonly connectedReferenceGuards: ReadonlyArray<OAuthReferenceGuardDescriptor<N>>;
25
- readonly connectedReference: (input: {
26
- readonly identityKey: string;
27
- readonly subjectId: N;
28
- }) => SQL;
29
- } =>
30
- // The shared kernel returns this adapter's expressions; only compiler handles are erased.
31
- oauthKernel.connectedReference.oauthConnectedOwnershipReferences(original) as {
32
- readonly connectedReferenceGuards: ReadonlyArray<OAuthReferenceGuardDescriptor<N>>;
33
- readonly connectedReference: (input: {
34
- readonly identityKey: string;
35
- readonly subjectId: N;
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
+ });