@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.
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 -1266
  340. package/src/drizzle/d1-passwords.ts +0 -2061
  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 -1202
  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,12 +1,8 @@
1
- import { coordinateTargetOAuthConnected, coordinateTargetOAuthConnectedRevocations, makeTargetOAuthConnectedRevocationServices, makeTargetOAuthConnectedServices } from "./oauth-connected-target.mjs";
2
- import { D1BatchStatements } from "./D1BatchStatements.mjs";
3
- import { makeD1Owner } from "./d1-planning.mjs";
4
- import { nativeDatabase } from "./native-database.mjs";
5
- import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
1
+ import { NativeDatabase, nativeDatabase } from "./native-database.mjs";
2
+ import { coordinateTargetOAuthConnected, coordinateTargetOAuthConnectedRevocations, makeTargetOAuthConnectedRevocationServices, makeTargetOAuthConnectedServices } from "./oauth-target.mjs";
6
3
  import { Context, Effect } from "effect";
7
- import { OAuthConnectedPersistence, OAuthConnectedRevocations, OAuthUnavailable } from "@yielded/auth/OAuth";
4
+ import { OAuthConnectedPersistence, OAuthConnectedRevocations } from "@yielded/auth/OAuth";
8
5
  //#region src/drizzle/oauth-connected-drivers.ts
9
- const unavailable = () => OAuthUnavailable.make({});
10
6
  const makeOAuthConnectedTarget = (databaseService, configuration) => {
11
7
  function coordinateOAuthConnected(acquire, options, body) {
12
8
  return Effect.flatMap(nativeDatabase(acquire), (database) => coordinateTargetOAuthConnected(database, options.mapping, configuration, (transaction, services) => {
@@ -29,55 +25,7 @@ const makeOAuthConnectedTarget = (databaseService, configuration) => {
29
25
  coordinateOAuthConnectedRevocations
30
26
  };
31
27
  };
32
- const makeD1OAuthConnectedTarget = (databaseService, configuration) => {
33
- function coordinateOAuthConnected(acquire, options, body) {
34
- return Effect.flatMap(nativeDatabase(acquire), (database) => coordinateTargetOAuthConnected(database, options.mapping, configuration, (_tx, services, append) => Effect.gen(function* () {
35
- const original = services.oauthConnectedPersistence;
36
- const nativeCollector = D1BatchStatements.of({ append: (statement) => Effect.sync(() => append(statement)) });
37
- const owner = yield* makeD1Owner(unavailable()).pipe(Effect.provideService(D1BatchStatements, nativeCollector));
38
- const provided = Context.make(OAuthConnectedPersistence, {
39
- claimSignIn: (input, prepare) => owner.run(original.claimSignIn(input, prepare)),
40
- inspectSignIn: (input) => owner.run(original.inspectSignIn(input)),
41
- settleSignIn: (input, prepare) => owner.run(original.settleSignIn(input, prepare)),
42
- capture: (input) => owner.run(original.capture(input)),
43
- issue: (input, prepare) => owner.run(original.issue(input, prepare)),
44
- prepare: (input, prepare) => owner.run(original.prepare(input, prepare)),
45
- inspectPrepared: (input) => owner.run(original.inspectPrepared(input)),
46
- preflight: (input) => owner.run(original.preflight(input)),
47
- claim: (input, prepare) => owner.run(original.claim(input, prepare)),
48
- inspectGrant: (input) => owner.run(original.inspectGrant(input)),
49
- settle: (input, prepare) => owner.run(original.settle(input, prepare)),
50
- list: (input) => owner.run(original.list(input)),
51
- inspectDisconnect: (input) => owner.run(original.inspectDisconnect(input)),
52
- disconnect: (input, prepare) => owner.run(original.disconnect(input, prepare)),
53
- inspectAccess: (input) => owner.run(original.inspectAccess(input)),
54
- claimRefresh: (input, prepare) => owner.run(original.claimRefresh(input, prepare)),
55
- settleRefresh: (input, prepare) => owner.run(original.settleRefresh(input, prepare)),
56
- admitUse: (input, prepare) => owner.run(original.admitUse(input, prepare)),
57
- cleanup: (input, prepare) => owner.run(original.cleanup(input, prepare))
58
- }).pipe(Context.add(D1BatchStatements, owner.collector));
59
- return yield* owner.close(Effect.provideContext(body, provided));
60
- })).pipe(Effect.provideService(NativeDatabase, database)));
61
- }
62
- function coordinateOAuthConnectedRevocations(acquire, options, body) {
63
- return Effect.flatMap(nativeDatabase(acquire), (database) => coordinateTargetOAuthConnectedRevocations(database, options.mapping, configuration, (_tx, services, append) => Effect.gen(function* () {
64
- const original = services.oauthConnectedRevocations;
65
- const nativeCollector = D1BatchStatements.of({ append: (statement) => Effect.sync(() => append(statement)) });
66
- const owner = yield* makeD1Owner(unavailable()).pipe(Effect.provideService(D1BatchStatements, nativeCollector));
67
- const provided = Context.make(OAuthConnectedRevocations, {
68
- claim: (input, prepare) => owner.run(original.claim(input, prepare)),
69
- settle: (input, prepare) => owner.run(original.settle(input, prepare))
70
- }).pipe(Context.add(D1BatchStatements, owner.collector));
71
- return yield* owner.close(Effect.provideContext(body, provided));
72
- })).pipe(Effect.provideService(NativeDatabase, database)));
73
- }
74
- return {
75
- ...makeOAuthConnectedTarget(databaseService, configuration),
76
- coordinateOAuthConnected,
77
- coordinateOAuthConnectedRevocations
78
- };
79
- };
80
28
  //#endregion
81
- export { makeD1OAuthConnectedTarget, makeOAuthConnectedTarget };
29
+ export { makeOAuthConnectedTarget };
82
30
 
83
31
  //# sourceMappingURL=oauth-connected-drivers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-connected-drivers.mjs","names":[],"sources":["../../src/drizzle/oauth-connected-drivers.ts"],"sourcesContent":["import { NativeDatabase } from \"@yielded/auth-persistence/Adapter\";\nimport type { LifecycleHooks } from \"@yielded/auth/Hooks\";\nimport {\n OAuthConnectedPersistence,\n OAuthConnectedRevocations,\n OAuthUnavailable,\n} from \"@yielded/auth/OAuth\";\nimport type { Table } from \"drizzle-orm\";\nimport { type Crypto, Effect, Context } from \"effect\";\n\nimport { makeD1Owner } from \"./d1-planning\";\nimport { D1BatchStatements } from \"./D1BatchStatements\";\nimport { nativeDatabase } from \"./native-database\";\nimport type {\n OAuthConnectedMapping,\n OAuthConnectedRevocationMapping,\n} from \"./oauth-connected-model\";\nimport {\n coordinateTargetOAuthConnected,\n coordinateTargetOAuthConnectedRevocations,\n makeTargetOAuthConnectedServices,\n makeTargetOAuthConnectedRevocationServices,\n} from \"./oauth-connected-target\";\nimport { type OAuthCoordinatorError, type OAuthTargetConfiguration } from \"./oauth-target\";\nimport type { SuppliedService } from \"./SuppliedService\";\n// oxlint-disable-next-line no-explicit-any -- inspect the actual installed native transaction callback without erasing it.\ntype TransactionOf<D> = D extends { readonly transaction: (...args: any[]) => any }\n ? Parameters<Parameters<D[\"transaction\"]>[0]>[0]\n : never;\nconst unavailable = () => OAuthUnavailable.make({});\n\nexport const makeOAuthConnectedTarget = <\n DatabaseId,\n Database,\n Family extends Table,\n Extra = {},\n Synchronous extends boolean = false,\n>(\n databaseService: Context.Service<DatabaseId, Database>,\n configuration: OAuthTargetConfiguration,\n) => {\n function coordinateOAuthConnected<\n D extends Database,\n S extends Family,\n AC extends Family,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n UA extends Family,\n DC extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, UA, DC, N, J> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<OAuthConnectedPersistence> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthConnectedPersistence>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnected<\n D extends Database,\n S extends Family,\n AC extends Family,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n UA extends Family,\n DC extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, UA, DC, N, J> & Extra;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<\n A,\n E,\n Synchronous extends true ? NoInfer<OAuthConnectedPersistence | TxId> : R\n >,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthConnectedPersistence | TxId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnected<\n D extends Database,\n S extends Family,\n AC extends Family,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n UA extends Family,\n DC extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, UA, DC, N, J> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthConnectedPersistence> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthConnected<TransactionOf<D>, A, E, Exclude<R, OAuthConnectedPersistence>>(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<D>,\n services: { readonly oauthConnectedPersistence: OAuthConnectedPersistence[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthConnectedPersistence,\n services.oauthConnectedPersistence,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthConnectedRevocations<\n D extends Database,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<OAuthConnectedRevocations> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthConnectedRevocations>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnectedRevocations<\n D extends Database,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<\n A,\n E,\n Synchronous extends true ? NoInfer<OAuthConnectedRevocations | TxId> : R\n >,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthConnectedRevocations | TxId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnectedRevocations<\n D extends Database,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthConnectedRevocations> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthConnectedRevocations<\n TransactionOf<D>,\n A,\n E,\n Exclude<R, OAuthConnectedRevocations>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<D>,\n services: { readonly oauthConnectedRevocations: OAuthConnectedRevocations[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthConnectedRevocations,\n services.oauthConnectedRevocations,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n\n return {\n makeOAuthConnectedServices: <\n S extends Family,\n AC extends Family,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n UA extends Family,\n DC extends Family,\n N,\n J extends Family = never,\n >(\n mapping: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, UA, DC, N, J> & Extra,\n ) =>\n makeTargetOAuthConnectedServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthConnectedRevocationServices: <\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n J extends Family,\n N,\n >(\n mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra,\n ) =>\n makeTargetOAuthConnectedRevocationServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n };\n};\n\nexport const makeD1OAuthConnectedTarget = <DatabaseId, Database, Family extends Table, Extra>(\n databaseService: Context.Service<DatabaseId, Database>,\n configuration: OAuthTargetConfiguration,\n) => {\n function coordinateOAuthConnected<\n S extends Family,\n AC extends Family,\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n UA extends Family,\n DC extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, UA, DC, N, J> & Extra;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthConnectedPersistence | D1BatchStatements>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthConnected<\n Database,\n A,\n E | OAuthUnavailable,\n Exclude<R, OAuthConnectedPersistence | D1BatchStatements>\n >(database, options.mapping, configuration, (_tx, services, append) =>\n Effect.gen(function* () {\n const original = services.oauthConnectedPersistence;\n\n const nativeCollector = D1BatchStatements.of({\n append: (statement) => Effect.sync(() => append(statement)),\n });\n\n const owner = yield* makeD1Owner(unavailable()).pipe(\n Effect.provideService(D1BatchStatements, nativeCollector),\n );\n\n const service: OAuthConnectedPersistence[\"Service\"] = {\n claimSignIn: (input, prepare) => owner.run(original.claimSignIn(input, prepare)),\n inspectSignIn: (input) => owner.run(original.inspectSignIn(input)),\n settleSignIn: (input, prepare) => owner.run(original.settleSignIn(input, prepare)),\n capture: (input) => owner.run(original.capture(input)),\n issue: (input, prepare) => owner.run(original.issue(input, prepare)),\n prepare: (input, prepare) => owner.run(original.prepare(input, prepare)),\n inspectPrepared: (input) => owner.run(original.inspectPrepared(input)),\n preflight: (input) => owner.run(original.preflight(input)),\n claim: (input, prepare) => owner.run(original.claim(input, prepare)),\n inspectGrant: (input) => owner.run(original.inspectGrant(input)),\n settle: (input, prepare) => owner.run(original.settle(input, prepare)),\n list: (input) => owner.run(original.list(input)),\n inspectDisconnect: (input) => owner.run(original.inspectDisconnect(input)),\n disconnect: (input, prepare) => owner.run(original.disconnect(input, prepare)),\n inspectAccess: (input) => owner.run(original.inspectAccess(input)),\n claimRefresh: (input, prepare) => owner.run(original.claimRefresh(input, prepare)),\n settleRefresh: (input, prepare) => owner.run(original.settleRefresh(input, prepare)),\n admitUse: (input, prepare) => owner.run(original.admitUse(input, prepare)),\n cleanup: (input, prepare) => owner.run(original.cleanup(input, prepare)),\n };\n\n const provided = Context.make(OAuthConnectedPersistence, service).pipe(\n Context.add(D1BatchStatements, owner.collector),\n );\n\n return yield* owner.close(Effect.provideContext(body, provided));\n }),\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthConnectedRevocations<\n T extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n C extends Family,\n H extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: { readonly mapping: OAuthConnectedRevocationMapping<T, O, F, G, C, H, J, N> & Extra },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthConnectedRevocations | D1BatchStatements>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthConnectedRevocations<\n Database,\n A,\n E | OAuthUnavailable,\n Exclude<R, OAuthConnectedRevocations | D1BatchStatements>\n >(database, options.mapping, configuration, (_tx, services, append) =>\n Effect.gen(function* () {\n const original = services.oauthConnectedRevocations;\n\n const nativeCollector = D1BatchStatements.of({\n append: (statement) => Effect.sync(() => append(statement)),\n });\n\n const owner = yield* makeD1Owner(unavailable()).pipe(\n Effect.provideService(D1BatchStatements, nativeCollector),\n );\n\n const service: OAuthConnectedRevocations[\"Service\"] = {\n claim: (input, prepare) => owner.run(original.claim(input, prepare)),\n settle: (input, prepare) => owner.run(original.settle(input, prepare)),\n };\n\n const provided = Context.make(OAuthConnectedRevocations, service).pipe(\n Context.add(D1BatchStatements, owner.collector),\n );\n\n return yield* owner.close(Effect.provideContext(body, provided));\n }),\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n\n return {\n ...makeOAuthConnectedTarget<DatabaseId, Database, Family, Extra>(\n databaseService,\n configuration,\n ),\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n };\n};\n"],"mappings":";;;;;;;;AA6BA,MAAM,oBAAoB,iBAAiB,KAAK,CAAC,CAAC;AAElD,MAAa,4BAOX,iBACA,kBACG;CA2EH,SAAS,yBAsBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,+BACE,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,2BACA,SAAS,yBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAmEA,SAAS,oCAkBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,0CAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,2BACA,SAAS,yBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAEA,OAAO;EACL,6BAcE,YAEA,iCAAiC,SAAS,aAAa,CAAC,CAAC,KACvD,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,uCAUE,YAEA,2CAA2C,SAAS,aAAa,CAAC,CAAC,KACjE,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF;EACA;CACF;AACF;AAEA,MAAa,8BACX,iBACA,kBACG;CACH,SAAS,yBAmBP,SACA,SAGA,MAQA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,+BAKE,UAAU,QAAQ,SAAS,gBAAgB,KAAK,UAAU,WAC1D,OAAO,IAAI,aAAa;GACtB,MAAM,WAAW,SAAS;GAE1B,MAAM,kBAAkB,kBAAkB,GAAG,EAC3C,SAAS,cAAc,OAAO,WAAW,OAAO,SAAS,CAAC,EAC5D,CAAC;GAED,MAAM,QAAQ,OAAO,YAAY,YAAY,CAAC,CAAC,CAAC,KAC9C,OAAO,eAAe,mBAAmB,eAAe,CAC1D;GAwBA,MAAM,WAAW,QAAQ,KAAK,2BAA2B;IArBvD,cAAc,OAAO,YAAY,MAAM,IAAI,SAAS,YAAY,OAAO,OAAO,CAAC;IAC/E,gBAAgB,UAAU,MAAM,IAAI,SAAS,cAAc,KAAK,CAAC;IACjE,eAAe,OAAO,YAAY,MAAM,IAAI,SAAS,aAAa,OAAO,OAAO,CAAC;IACjF,UAAU,UAAU,MAAM,IAAI,SAAS,QAAQ,KAAK,CAAC;IACrD,QAAQ,OAAO,YAAY,MAAM,IAAI,SAAS,MAAM,OAAO,OAAO,CAAC;IACnE,UAAU,OAAO,YAAY,MAAM,IAAI,SAAS,QAAQ,OAAO,OAAO,CAAC;IACvE,kBAAkB,UAAU,MAAM,IAAI,SAAS,gBAAgB,KAAK,CAAC;IACrE,YAAY,UAAU,MAAM,IAAI,SAAS,UAAU,KAAK,CAAC;IACzD,QAAQ,OAAO,YAAY,MAAM,IAAI,SAAS,MAAM,OAAO,OAAO,CAAC;IACnE,eAAe,UAAU,MAAM,IAAI,SAAS,aAAa,KAAK,CAAC;IAC/D,SAAS,OAAO,YAAY,MAAM,IAAI,SAAS,OAAO,OAAO,OAAO,CAAC;IACrE,OAAO,UAAU,MAAM,IAAI,SAAS,KAAK,KAAK,CAAC;IAC/C,oBAAoB,UAAU,MAAM,IAAI,SAAS,kBAAkB,KAAK,CAAC;IACzE,aAAa,OAAO,YAAY,MAAM,IAAI,SAAS,WAAW,OAAO,OAAO,CAAC;IAC7E,gBAAgB,UAAU,MAAM,IAAI,SAAS,cAAc,KAAK,CAAC;IACjE,eAAe,OAAO,YAAY,MAAM,IAAI,SAAS,aAAa,OAAO,OAAO,CAAC;IACjF,gBAAgB,OAAO,YAAY,MAAM,IAAI,SAAS,cAAc,OAAO,OAAO,CAAC;IACnF,WAAW,OAAO,YAAY,MAAM,IAAI,SAAS,SAAS,OAAO,OAAO,CAAC;IACzE,UAAU,OAAO,YAAY,MAAM,IAAI,SAAS,QAAQ,OAAO,OAAO,CAAC;GAGV,CAAC,CAAC,CAAC,KAChE,QAAQ,IAAI,mBAAmB,MAAM,SAAS,CAChD;GAEA,OAAO,OAAO,MAAM,MAAM,OAAO,eAAe,MAAM,QAAQ,CAAC;EACjE,CAAC,CACH,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CACA,SAAS,oCAeP,SACA,SACA,MAQA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,0CAKE,UAAU,QAAQ,SAAS,gBAAgB,KAAK,UAAU,WAC1D,OAAO,IAAI,aAAa;GACtB,MAAM,WAAW,SAAS;GAE1B,MAAM,kBAAkB,kBAAkB,GAAG,EAC3C,SAAS,cAAc,OAAO,WAAW,OAAO,SAAS,CAAC,EAC5D,CAAC;GAED,MAAM,QAAQ,OAAO,YAAY,YAAY,CAAC,CAAC,CAAC,KAC9C,OAAO,eAAe,mBAAmB,eAAe,CAC1D;GAOA,MAAM,WAAW,QAAQ,KAAK,2BAA2B;IAJvD,QAAQ,OAAO,YAAY,MAAM,IAAI,SAAS,MAAM,OAAO,OAAO,CAAC;IACnE,SAAS,OAAO,YAAY,MAAM,IAAI,SAAS,OAAO,OAAO,OAAO,CAAC;GAGR,CAAC,CAAC,CAAC,KAChE,QAAQ,IAAI,mBAAmB,MAAM,SAAS,CAChD;GAEA,OAAO,OAAO,MAAM,MAAM,OAAO,eAAe,MAAM,QAAQ,CAAC;EACjE,CAAC,CACH,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAEA,OAAO;EACL,GAAG,yBACD,iBACA,aACF;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"oauth-connected-drivers.mjs","names":[],"sources":["../../src/drizzle/oauth-connected-drivers.ts"],"sourcesContent":["import type { LifecycleHooks } from \"@yielded/auth/Hooks\";\nimport { OAuthConnectedPersistence, OAuthConnectedRevocations } from \"@yielded/auth/OAuth\";\nimport type { Table } from \"drizzle-orm\";\nimport { type Crypto, Effect, Context } from \"effect\";\n\nimport type { D1BatchStatements } from \"./D1BatchStatements\";\nimport { NativeDatabase, nativeDatabase } from \"./native-database\";\nimport type {\n OAuthConnectedMapping,\n OAuthConnectedRevocationMapping,\n} from \"./oauth-connected-model\";\nimport {\n coordinateTargetOAuthConnected,\n coordinateTargetOAuthConnectedRevocations,\n makeTargetOAuthConnectedServices,\n makeTargetOAuthConnectedRevocationServices,\n type OAuthCoordinatorError,\n type OAuthTargetConfiguration,\n} from \"./oauth-target\";\nimport type { SuppliedService } from \"./SuppliedService\";\n// oxlint-disable-next-line no-explicit-any -- inspect the actual installed native transaction callback without erasing it.\ntype TransactionOf<D> = D extends { readonly transaction: (...args: any[]) => any }\n ? Parameters<Parameters<D[\"transaction\"]>[0]>[0]\n : never;\n\nexport const makeOAuthConnectedTarget = <\n DatabaseId,\n Database,\n Family extends Table,\n Extra = {},\n Provided extends D1BatchStatements = never,\n>(\n databaseService: Context.Service<DatabaseId, Database>,\n configuration: OAuthTargetConfiguration,\n) => {\n function coordinateOAuthConnected<\n D extends Database,\n S extends Family,\n AC extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthConnectedPersistence | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnected<\n D extends Database,\n S extends Family,\n AC extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthConnectedPersistence | TxId | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnected<\n D extends Database,\n S extends Family,\n AC extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n N,\n J extends Family,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthConnectedPersistence> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthConnected<TransactionOf<D>, A, E, Exclude<R, OAuthConnectedPersistence>>(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<D>,\n services: { readonly oauthConnectedPersistence: OAuthConnectedPersistence[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthConnectedPersistence,\n services.oauthConnectedPersistence,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthConnectedRevocations<\n D extends Database,\n O extends Family,\n F extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthConnectedRevocations | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnectedRevocations<\n D extends Database,\n O extends Family,\n F extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthConnectedRevocations | TxId | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthConnectedRevocations<\n D extends Database,\n O extends Family,\n F extends Family,\n J extends Family,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthConnectedRevocations> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthConnectedRevocations<\n TransactionOf<D>,\n A,\n E,\n Exclude<R, OAuthConnectedRevocations>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<D>,\n services: { readonly oauthConnectedRevocations: OAuthConnectedRevocations[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthConnectedRevocations,\n services.oauthConnectedRevocations,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n\n return {\n makeOAuthConnectedServices: <\n S extends Family,\n AC extends Family,\n O extends Family,\n F extends Family,\n G extends Family,\n N,\n J extends Family = never,\n >(\n mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J> & Extra,\n ) =>\n makeTargetOAuthConnectedServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthConnectedRevocationServices: <O extends Family, F extends Family, J extends Family, N>(\n mapping: OAuthConnectedRevocationMapping<O, F, J, N> & Extra,\n ) =>\n makeTargetOAuthConnectedRevocationServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n };\n};\n"],"mappings":";;;;;AAyBA,MAAa,4BAOX,iBACA,kBACG;CA6DH,SAAS,yBAiBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,+BACE,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,2BACA,SAAS,yBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAuDA,SAAS,oCAcP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,0CAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,2BACA,SAAS,yBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAEA,OAAO;EACL,6BASE,YAEA,iCAAiC,SAAS,aAAa,CAAC,CAAC,KACvD,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,uCACE,YAEA,2CAA2C,SAAS,aAAa,CAAC,CAAC,KACjE,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF;EACA;CACF;AACF"}
@@ -1,30 +1,13 @@
1
1
  import { DrizzleTableModel } from "./table-model.mjs";
2
2
  import * as Shared from "@yielded/auth-persistence/Adapter";
3
- import { OAuthConnectedAction, OAuthConnectedOrderCodec, OAuthConnectedPolicyInput, requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints } from "@yielded/auth-persistence/Adapter";
3
+ import { OAuthConnectedAction, OAuthConnectedPolicyInput, requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints } from "@yielded/auth-persistence/Adapter";
4
4
  import { SQL, Table } from "drizzle-orm";
5
5
  //#region src/drizzle/oauth-connected-model.d.ts
6
- export type OAuthConnectedSubjectTable<S extends Table> = Shared.OAuthConnectedSubjectTable<DrizzleTableModel<S>, SQL>;
7
- export type OAuthConnectedFlowTable<F extends Table, N> = Shared.OAuthConnectedFlowTable<DrizzleTableModel<F>, N>;
8
6
  export type OAuthConnectedGrantTable<G extends Table, N> = Shared.OAuthConnectedGrantTable<DrizzleTableModel<G>, N>;
9
- /** Also stores a permanent provider/issuer scope anchor. clientKey must fit 52
10
- * ASCII characters. Empty clientRegistrationId is reserved for that anchor;
11
- * actual profile registrations are nonempty. Scope counter stays zero. */
12
- export type OAuthConnectedClientRegistrationTable<C extends Table> = Shared.OAuthConnectedClientRegistrationTable<DrizzleTableModel<C>>;
13
- /** Remote authority: no local-subject column or subject-scoped key. Retain this
14
- * anchor/cutoff when a legitimately released tuple gains a different local owner. */
15
- export type OAuthConnectedCohortTable<C extends Table> = Shared.OAuthConnectedCohortTable<DrizzleTableModel<C>>;
16
- export type OAuthConnectedAdmissionTable<A extends Table, N> = Shared.OAuthConnectedAdmissionTable<DrizzleTableModel<A>, N>;
17
- export type OAuthConnectedCommandTable<C extends Table, N> = Shared.OAuthConnectedCommandTable<DrizzleTableModel<C>, N>;
18
7
  export type OAuthConnectedRevocationJobTable<J extends Table, N> = Shared.OAuthConnectedRevocationJobTable<DrizzleTableModel<J>, N>;
19
- export type OAuthConnectedPolicyGuardTable<T extends Table, N> = Shared.OAuthConnectedPolicyGuardTable<DrizzleTableModel<T>, N, SQL>;
20
- export type OAuthConnectedPolicyGuard<N> = Shared.OAuthConnectedPolicyGuard<N, SQL, Table>;
21
- export declare const oauthConnectedPolicyGuard: <T extends Table, N>(input: OAuthConnectedPolicyGuardTable<T, N>) => OAuthConnectedPolicyGuard<N>;
22
- export type OAuthConnectedSqlPolicy<N> = Shared.OAuthConnectedSqlPolicy<N, SQL, Table>;
23
- /** Existing ownership only; workers never allocate or acquire a tuple. */
24
- export type OAuthConnectedOwnershipRead<T extends Table, O extends Table, N> = Shared.OAuthConnectedOwnershipRead<DrizzleTableModel<T>, DrizzleTableModel<O>, N, SQL>;
25
- export type OAuthConnectedAuthorityMapping<T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, N> = Shared.OAuthConnectedAuthorityMapping<DrizzleTableModel<T>, DrizzleTableModel<O>, DrizzleTableModel<F>, DrizzleTableModel<G>, DrizzleTableModel<C>, DrizzleTableModel<H>, N, SQL>;
26
- export type OAuthConnectedMapping<S extends Table, AC extends Table, T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, A extends Table, D extends Table, N, J extends Table = never> = Shared.OAuthConnectedMapping<DrizzleTableModel<S>, DrizzleTableModel<AC>, DrizzleTableModel<T>, DrizzleTableModel<O>, DrizzleTableModel<F>, DrizzleTableModel<G>, DrizzleTableModel<C>, DrizzleTableModel<H>, DrizzleTableModel<A>, DrizzleTableModel<D>, N, DrizzleTableModel<J>, SQL, Table, DrizzleTableModel<Table>>;
27
- export type OAuthConnectedRevocationMapping<T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, J extends Table, N> = Shared.OAuthConnectedRevocationMapping<DrizzleTableModel<T>, DrizzleTableModel<O>, DrizzleTableModel<F>, DrizzleTableModel<G>, DrizzleTableModel<C>, DrizzleTableModel<H>, DrizzleTableModel<J>, N, SQL>;
8
+ export type OAuthConnectedSqlPolicy<N> = Shared.OAuthConnectedSqlPolicy<N, SQL>;
9
+ export type OAuthConnectedMapping<S extends Table, AC extends Table, O extends Table, F extends Table, G extends Table, N, J extends Table = Table> = Shared.OAuthConnectedMapping<DrizzleTableModel<S>, DrizzleTableModel<AC>, DrizzleTableModel<O>, DrizzleTableModel<F>, DrizzleTableModel<G>, N, DrizzleTableModel<J>, SQL, DrizzleTableModel<Table>>;
10
+ export type OAuthConnectedRevocationMapping<O extends Table, G extends Table, J extends Table, N> = Shared.OAuthConnectedRevocationMapping<DrizzleTableModel<O>, DrizzleTableModel<G>, DrizzleTableModel<J>, N, SQL>;
28
11
  //#endregion
29
- export { type OAuthConnectedAction, type OAuthConnectedOrderCodec, type OAuthConnectedPolicyInput, requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints };
12
+ export { type OAuthConnectedAction, type OAuthConnectedPolicyInput, requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints };
30
13
  //# sourceMappingURL=oauth-connected-model.d.mts.map
@@ -1,8 +1,2 @@
1
- import * as Shared from "@yielded/auth-persistence/Adapter";
2
1
  import { requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints } from "@yielded/auth-persistence/Adapter";
3
- //#region src/drizzle/oauth-connected-model.ts
4
- const oauthConnectedPolicyGuard = (input) => Shared.oauthConnectedPolicyGuard(input);
5
- //#endregion
6
- export { oauthConnectedPolicyGuard, requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints };
7
-
8
- //# sourceMappingURL=oauth-connected-model.mjs.map
2
+ export { requiredOAuthConnectedConstraints, requiredOAuthConnectedRevocationConstraints };
@@ -1,14 +1,12 @@
1
- import { OAuthReferenceGuardDescriptor } from "./oauth-model.mjs";
2
1
  import { OAuthConnectedMapping } from "./oauth-connected-model.mjs";
3
- import { SQL, Table } from "drizzle-orm";
2
+ import { Table } from "drizzle-orm";
4
3
  //#region src/drizzle/oauth-connected-reference.d.ts
5
- /** Compose login unlink with retained-grant ownership under this compiler. */
6
- export declare const oauthConnectedOwnershipReferences: <S extends Table, AC extends Table, T extends Table, O extends Table, F extends Table, G extends Table, C extends Table, H extends Table, A extends Table, D extends Table, N, J extends Table>(original: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, A, D, N, J>) => {
7
- readonly connectedReferenceGuards: ReadonlyArray<OAuthReferenceGuardDescriptor<N>>;
8
- readonly connectedReference: (input: {
4
+ /** Concrete grant/job references retain ownership after unlink. */
5
+ export declare const oauthConnectedOwnershipReferences: <S extends Table, AC extends Table, O extends Table, F extends Table, G extends Table, N, J extends Table>(mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J>) => {
6
+ connectedReference: (input: {
9
7
  readonly identityKey: string;
10
8
  readonly subjectId: N;
11
- }) => SQL;
9
+ }) => import("drizzle-orm").SQL<unknown>;
12
10
  };
13
11
  //#endregion
14
12
  //# sourceMappingURL=oauth-connected-reference.d.mts.map
@@ -1,7 +1,15 @@
1
- import { oauthKernel } from "./oauth-kernel.mjs";
1
+ import { getTableColumns, sql } from "drizzle-orm";
2
2
  //#region src/drizzle/oauth-connected-reference.ts
3
- /** Compose login unlink with retained-grant ownership under this compiler. */
4
- const oauthConnectedOwnershipReferences = (original) => oauthKernel.connectedReference.oauthConnectedOwnershipReferences(original);
3
+ /** Concrete grant/job references retain ownership after unlink. */
4
+ const oauthConnectedOwnershipReferences = (mapping) => ({ connectedReference: (input) => {
5
+ const g = mapping.grant;
6
+ const columns = getTableColumns(g.table);
7
+ const grant = sql`exists(select 1 from ${g.table} where ${columns[g.identityKey]} = ${input.identityKey} and ${columns[g.subjectId]} = ${input.subjectId})`;
8
+ if (mapping.revocation.mode === "unsupported") return grant;
9
+ const j = mapping.revocation.job;
10
+ const jobs = getTableColumns(j.table);
11
+ return sql`(${grant}) or exists(select 1 from ${j.table} where ${jobs[j.identityKey]} = ${input.identityKey} and ${jobs[j.subjectId]} = ${input.subjectId})`;
12
+ } });
5
13
  //#endregion
6
14
  export { oauthConnectedOwnershipReferences };
7
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-connected-reference.mjs","names":[],"sources":["../../src/drizzle/oauth-connected-reference.ts"],"sourcesContent":["import type { SQL, Table } from \"drizzle-orm\";\n\nimport type { OAuthConnectedMapping } from \"./oauth-connected-model\";\nimport { oauthKernel } from \"./oauth-kernel\";\nimport type { OAuthReferenceGuardDescriptor } from \"./oauth-model\";\n\n/** Compose login unlink with retained-grant ownership under this compiler. */\nexport const oauthConnectedOwnershipReferences = <\n S extends Table,\n AC extends Table,\n T extends Table,\n O extends Table,\n F extends Table,\n G extends Table,\n C extends Table,\n H extends Table,\n A extends Table,\n D extends Table,\n N,\n J extends Table,\n>(\n original: OAuthConnectedMapping<S, AC, T, O, F, G, C, H, A, D, N, J>,\n): {\n readonly connectedReferenceGuards: ReadonlyArray<OAuthReferenceGuardDescriptor<N>>;\n readonly connectedReference: (input: {\n readonly identityKey: string;\n readonly subjectId: N;\n }) => SQL;\n} =>\n // The shared kernel returns this adapter's expressions; only compiler handles are erased.\n oauthKernel.connectedReference.oauthConnectedOwnershipReferences(original) as {\n readonly connectedReferenceGuards: ReadonlyArray<OAuthReferenceGuardDescriptor<N>>;\n readonly connectedReference: (input: {\n readonly identityKey: string;\n readonly subjectId: N;\n }) => SQL;\n };\n"],"mappings":";;;AAOA,MAAa,qCAcX,aASA,YAAY,mBAAmB,kCAAkC,QAAQ"}
1
+ {"version":3,"file":"oauth-connected-reference.mjs","names":[],"sources":["../../src/drizzle/oauth-connected-reference.ts"],"sourcesContent":["import { getTableColumns, sql, type Table } from \"drizzle-orm\";\n\nimport type { OAuthConnectedMapping } from \"./oauth-connected-model\";\n\n/** Concrete grant/job references retain ownership after unlink. */\nexport const oauthConnectedOwnershipReferences = <\n S extends Table,\n AC extends Table,\n O extends Table,\n F extends Table,\n G extends Table,\n N,\n J extends Table,\n>(\n mapping: OAuthConnectedMapping<S, AC, O, F, G, N, J>,\n) => ({\n connectedReference: (input: { readonly identityKey: string; readonly subjectId: N }) => {\n const g = mapping.grant;\n const columns = getTableColumns(g.table);\n const grant = sql`exists(select 1 from ${g.table} where ${columns[g.identityKey]} = ${input.identityKey} and ${columns[g.subjectId]} = ${input.subjectId})`;\n\n if (mapping.revocation.mode === \"unsupported\") return grant;\n const j = mapping.revocation.job;\n const jobs = getTableColumns(j.table);\n\n return sql`(${grant}) or exists(select 1 from ${j.table} where ${jobs[j.identityKey]} = ${input.identityKey} and ${jobs[j.subjectId]} = ${input.subjectId})`;\n },\n});\n"],"mappings":";;;AAKA,MAAa,qCASX,aACI,EACJ,qBAAqB,UAAmE;CACtF,MAAM,IAAI,QAAQ;CAClB,MAAM,UAAU,gBAAgB,EAAE,KAAK;CACvC,MAAM,QAAQ,GAAG,wBAAwB,EAAE,MAAM,SAAS,QAAQ,EAAE,aAAa,KAAK,MAAM,YAAY,OAAO,QAAQ,EAAE,WAAW,KAAK,MAAM,UAAU;CAEzJ,IAAI,QAAQ,WAAW,SAAS,eAAe,OAAO;CACtD,MAAM,IAAI,QAAQ,WAAW;CAC7B,MAAM,OAAO,gBAAgB,EAAE,KAAK;CAEpC,OAAO,GAAG,IAAI,MAAM,4BAA4B,EAAE,MAAM,SAAS,KAAK,EAAE,aAAa,KAAK,MAAM,YAAY,OAAO,KAAK,EAAE,WAAW,KAAK,MAAM,UAAU;AAC5J,EACF"}
@@ -1,7 +1,6 @@
1
+ import { NativeDatabase, nativeDatabase } from "./native-database.mjs";
1
2
  import { coordinateTargetOAuthAccounts, coordinateTargetOAuthRegistration, coordinateTargetOAuthRegistrationIntents, coordinateTargetOAuthSignIn, makeTargetOAuthAccountsServices, makeTargetOAuthRegistrationIntentServices, makeTargetOAuthRegistrationServices, makeTargetOAuthSignInServices } from "./oauth-target.mjs";
2
- import { nativeDatabase } from "./native-database.mjs";
3
3
  import { makeOAuthConnectedTarget } from "./oauth-connected-drivers.mjs";
4
- import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
5
4
  import { Context, Effect } from "effect";
6
5
  import { OAuthAccountsPersistence, OAuthRegistrationIntents, OAuthSignInPersistence } from "@yielded/auth/OAuth";
7
6
  //#region src/drizzle/oauth-drivers.ts
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-drivers.mjs","names":[],"sources":["../../src/drizzle/oauth-drivers.ts"],"sourcesContent":["import { NativeDatabase } from \"@yielded/auth-persistence/Adapter\";\nimport type { LifecycleHooks } from \"@yielded/auth/Hooks\";\nimport {\n OAuthAccountsPersistence,\n OAuthRegistrationIntents,\n OAuthSignInPersistence,\n} from \"@yielded/auth/OAuth\";\nimport type { Table } from \"drizzle-orm\";\nimport { type Crypto, Effect, Context } from \"effect\";\n\nimport { nativeDatabase } from \"./native-database\";\nimport { makeOAuthConnectedTarget } from \"./oauth-connected-drivers\";\nimport type {\n OAuthAccountsMapping,\n OAuthRegistrationAuthority,\n OAuthRegistrationIntentMapping,\n OAuthRegistrationMapping,\n OAuthSignInMapping,\n} from \"./oauth-model\";\nimport {\n type OAuthCoordinatorError,\n coordinateTargetOAuthAccounts,\n coordinateTargetOAuthSignIn,\n coordinateTargetOAuthRegistrationIntents,\n coordinateTargetOAuthRegistration,\n makeTargetOAuthRegistrationIntentServices,\n makeTargetOAuthRegistrationServices,\n makeTargetOAuthSignInServices,\n makeTargetOAuthAccountsServices,\n type OAuthTargetConfiguration,\n} from \"./oauth-target\";\nimport type { SuppliedService } from \"./SuppliedService\";\n\n// oxlint-disable-next-line no-explicit-any -- inspect the installed generic transaction signature without erasing its callback parameter.\ntype TransactionOf<D> = D extends { readonly transaction: (...args: any[]) => any }\n ? Parameters<Parameters<D[\"transaction\"]>[0]>[0]\n : never;\n\n/** Driver-specific entry points instantiate both the database and table family. */\nexport const makeOAuthTarget = <\n DatabaseId,\n D,\n T extends Table,\n Synchronous extends boolean = false,\n>(\n databaseService: Context.Service<DatabaseId, D>,\n configuration: OAuthTargetConfiguration,\n) => {\n function coordinateOAuthSignIn<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N>;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<OAuthSignInPersistence> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthSignInPersistence>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthSignIn<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<\n A,\n E,\n Synchronous extends true ? NoInfer<OAuthSignInPersistence | TxId> : R\n >,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthSignInPersistence | TxId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthSignIn<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthSignInPersistence> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthSignIn<\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, OAuthSignInPersistence>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly oauthSignInPersistence: OAuthSignInPersistence[\"Service\"] },\n ) => {\n const provided = Context.make(OAuthSignInPersistence, services.oauthSignInPersistence);\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthRegistrationIntents<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationIntentMapping<S, O, C, AC, F, TA, I, N>;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<OAuthRegistrationIntents> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthRegistrationIntents>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthRegistrationIntents<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationIntentMapping<S, O, C, AC, F, TA, I, N>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<\n A,\n E,\n Synchronous extends true ? NoInfer<OAuthRegistrationIntents | TxId> : R\n >,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthRegistrationIntents | TxId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthRegistrationIntents<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationIntentMapping<S, O, C, AC, F, TA, I, N>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthRegistrationIntents> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthRegistrationIntents<\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, OAuthRegistrationIntents>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly oauthRegistrationIntents: OAuthRegistrationIntents[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthRegistrationIntents,\n services.oauthRegistrationIntents,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthAccounts<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n U extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, TA, U, N>;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<OAuthAccountsPersistence> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthAccountsPersistence>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthAccounts<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n U extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, TA, U, N>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<\n A,\n E,\n Synchronous extends true ? NoInfer<OAuthAccountsPersistence | TxId> : R\n >,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, OAuthAccountsPersistence | TxId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthAccounts<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n U extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, TA, U, N>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthAccountsPersistence> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthAccounts<\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, OAuthAccountsPersistence>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly oauthAccountsPersistence: OAuthAccountsPersistence[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthAccountsPersistence,\n services.oauthAccountsPersistence,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthRegistration<\n Database extends D,\n TargetId,\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n TA extends T,\n I extends T,\n Rq extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, TA, I, Rq, N>;\n readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, TargetId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthRegistration<\n Database extends D,\n TargetId,\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n TA extends T,\n I extends T,\n Rq extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, TA, I, Rq, N>;\n readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthRegistration<\n Database extends D,\n TargetId,\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n TA extends T,\n I extends T,\n Rq extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, TA, I, Rq, N>;\n readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, TargetId> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthRegistration<\n Registration,\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, TargetId>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly registrationAuthority: OAuthRegistrationAuthority<Registration> },\n ) => {\n const provided = Context.make(options.target, services.registrationAuthority);\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n\n return {\n ...makeOAuthConnectedTarget<DatabaseId, D, T, {}, Synchronous>(databaseService, configuration),\n coordinateOAuthSignIn,\n coordinateOAuthRegistrationIntents,\n coordinateOAuthAccounts,\n makeOAuthAccountsServices: <\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n U extends T,\n N,\n >(\n mapping: OAuthAccountsMapping<S, O, C, AC, F, TA, U, N>,\n ) =>\n makeTargetOAuthAccountsServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthSignInServices: <S extends T, O extends T, C extends T, AC extends T, F extends T, N>(\n mapping: OAuthSignInMapping<S, O, C, AC, F, N>,\n ) =>\n makeTargetOAuthSignInServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthRegistrationIntentServices: <\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n TA extends T,\n I extends T,\n N,\n >(\n mapping: OAuthRegistrationIntentMapping<S, O, C, AC, F, TA, I, N>,\n ) =>\n makeTargetOAuthRegistrationIntentServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthRegistrationServices: <\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n TA extends T,\n I extends T,\n R extends T,\n N,\n >(\n mapping: OAuthRegistrationMapping<Registration, S, O, C, AC, TA, I, R, N>,\n ) =>\n makeTargetOAuthRegistrationServices<Registration>(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n coordinateOAuthRegistration,\n };\n};\n"],"mappings":";;;;;;;;AAuCA,MAAa,mBAMX,iBACA,kBACG;CA+DH,SAAS,sBAgBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,4BAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KAAK,wBAAwB,SAAS,sBAAsB;GACrF,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAmEA,SAAS,mCAkBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,yCAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,0BACA,SAAS,wBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAmEA,SAAS,wBAkBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,8BAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,0BACA,SAAS,wBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAqEA,SAAS,4BAoBP,SACA,SAKA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,kCAOE,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KAAK,QAAQ,QAAQ,SAAS,qBAAqB;GAC5E,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAEA,OAAO;EACL,GAAG,yBAA4D,iBAAiB,aAAa;EAC7F;EACA;EACA;EACA,4BAUE,YAEA,gCAAgC,SAAS,aAAa,CAAC,CAAC,KACtD,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,0BACE,YAEA,8BAA8B,SAAS,aAAa,CAAC,CAAC,KACpD,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,sCAUE,YAEA,0CAA0C,SAAS,aAAa,CAAC,CAAC,KAChE,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,gCAWE,YAEA,oCAAkD,SAAS,aAAa,CAAC,CAAC,KACxE,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF;CACF;AACF"}
1
+ {"version":3,"file":"oauth-drivers.mjs","names":[],"sources":["../../src/drizzle/oauth-drivers.ts"],"sourcesContent":["import type { LifecycleHooks } from \"@yielded/auth/Hooks\";\nimport {\n OAuthAccountsPersistence,\n OAuthRegistrationIntents,\n OAuthSignInPersistence,\n} from \"@yielded/auth/OAuth\";\nimport type { Table } from \"drizzle-orm\";\nimport { type Crypto, Effect, Context } from \"effect\";\n\nimport type { D1BatchStatements } from \"./D1BatchStatements\";\nimport { NativeDatabase, nativeDatabase } from \"./native-database\";\nimport { makeOAuthConnectedTarget } from \"./oauth-connected-drivers\";\nimport type {\n OAuthAccountsMapping,\n OAuthRegistrationAuthority,\n OAuthRegistrationIntentMapping,\n OAuthRegistrationMapping,\n OAuthSignInMapping,\n} from \"./oauth-model\";\nimport {\n type OAuthCoordinatorError,\n coordinateTargetOAuthAccounts,\n coordinateTargetOAuthSignIn,\n coordinateTargetOAuthRegistrationIntents,\n coordinateTargetOAuthRegistration,\n makeTargetOAuthRegistrationIntentServices,\n makeTargetOAuthRegistrationServices,\n makeTargetOAuthSignInServices,\n makeTargetOAuthAccountsServices,\n type OAuthTargetConfiguration,\n} from \"./oauth-target\";\nimport type { SuppliedService } from \"./SuppliedService\";\n\n// oxlint-disable-next-line no-explicit-any -- inspect the installed generic transaction signature without erasing its callback parameter.\ntype TransactionOf<D> = D extends { readonly transaction: (...args: any[]) => any }\n ? Parameters<Parameters<D[\"transaction\"]>[0]>[0]\n : never;\n\n/** Driver-specific entry points instantiate both the database and table family. */\nexport const makeOAuthTarget = <\n DatabaseId,\n D,\n T extends Table,\n Extra = unknown,\n Provided extends D1BatchStatements = never,\n>(\n databaseService: Context.Service<DatabaseId, D>,\n configuration: OAuthTargetConfiguration,\n) => {\n function coordinateOAuthSignIn<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthSignInPersistence | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthSignIn<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N> & Extra;\n readonly transaction: SuppliedService<\n TxId,\n NoInfer<[Provided] extends [never] ? TransactionOf<Database> : never>,\n TxShape\n >;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthSignInPersistence | TxId | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthSignIn<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthSignInPersistence> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthSignIn<\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, OAuthSignInPersistence>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly oauthSignInPersistence: OAuthSignInPersistence[\"Service\"] },\n ) => {\n const provided = Context.make(OAuthSignInPersistence, services.oauthSignInPersistence);\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthRegistrationIntents<\n Database extends D,\n O extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationIntentMapping<O, I, N> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthRegistrationIntents | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthRegistrationIntents<\n Database extends D,\n O extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationIntentMapping<O, I, N> & Extra;\n readonly transaction: SuppliedService<\n TxId,\n NoInfer<[Provided] extends [never] ? TransactionOf<Database> : never>,\n TxShape\n >;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthRegistrationIntents | TxId | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthRegistrationIntents<\n Database extends D,\n O extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationIntentMapping<O, I, N> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthRegistrationIntents> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthRegistrationIntents<\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, OAuthRegistrationIntents>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly oauthRegistrationIntents: OAuthRegistrationIntents[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthRegistrationIntents,\n services.oauthRegistrationIntents,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthAccounts<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, N> & Extra;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthAccountsPersistence | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthAccounts<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, N> & Extra;\n readonly transaction: SuppliedService<\n TxId,\n NoInfer<[Provided] extends [never] ? TransactionOf<Database> : never>,\n TxShape\n >;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n | Exclude<R, OAuthAccountsPersistence | TxId | Provided>\n | Crypto.Crypto\n | LifecycleHooks\n | DatabaseRequirements\n >;\n function coordinateOAuthAccounts<\n Database extends D,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, N> & Extra;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, OAuthAccountsPersistence> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthAccounts<\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, OAuthAccountsPersistence>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly oauthAccountsPersistence: OAuthAccountsPersistence[\"Service\"] },\n ) => {\n const provided = Context.make(\n OAuthAccountsPersistence,\n services.oauthAccountsPersistence,\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n function coordinateOAuthRegistration<\n Database extends D,\n TargetId,\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, I, N> & Extra;\n readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;\n readonly transaction?: never;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, TargetId | Provided> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n >;\n function coordinateOAuthRegistration<\n Database extends D,\n TargetId,\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, I, N> & Extra;\n readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;\n readonly transaction: SuppliedService<\n TxId,\n NoInfer<[Provided] extends [never] ? TransactionOf<Database> : never>,\n TxShape\n >;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, TargetId | TxId | Provided> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n >;\n function coordinateOAuthRegistration<\n Database extends D,\n TargetId,\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n I extends T,\n N,\n A,\n E,\n R,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n >(\n acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, I, N> & Extra;\n readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;\n },\n body: Effect.Effect<A, E, R>,\n ): Effect.Effect<\n A,\n OAuthCoordinatorError<E> | DatabaseError,\n Exclude<R, TargetId> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements\n > {\n return Effect.flatMap(nativeDatabase(acquire), (database) =>\n coordinateTargetOAuthRegistration<\n Registration,\n TransactionOf<Database>,\n A,\n E,\n Exclude<R, TargetId>\n >(\n database,\n options.mapping,\n configuration,\n (\n transaction: TransactionOf<Database>,\n services: { readonly registrationAuthority: OAuthRegistrationAuthority<Registration> },\n ) => {\n const provided = Context.make(options.target, services.registrationAuthority);\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(work, options.transaction, options.transaction.of(transaction));\n },\n ).pipe(Effect.provideService(NativeDatabase, database)),\n );\n }\n\n return {\n ...makeOAuthConnectedTarget<DatabaseId, D, T, Extra, Provided>(databaseService, configuration),\n coordinateOAuthSignIn,\n coordinateOAuthRegistrationIntents,\n coordinateOAuthAccounts,\n makeOAuthAccountsServices: <\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n F extends T,\n N,\n >(\n mapping: OAuthAccountsMapping<S, O, C, AC, F, N> & Extra,\n ) =>\n makeTargetOAuthAccountsServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthSignInServices: <S extends T, O extends T, C extends T, AC extends T, F extends T, N>(\n mapping: OAuthSignInMapping<S, O, C, AC, F, N> & Extra,\n ) =>\n makeTargetOAuthSignInServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthRegistrationIntentServices: <O extends T, I extends T, N>(\n mapping: OAuthRegistrationIntentMapping<O, I, N> & Extra,\n ) =>\n makeTargetOAuthRegistrationIntentServices(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n makeOAuthRegistrationServices: <\n Registration,\n S extends T,\n O extends T,\n C extends T,\n AC extends T,\n I extends T,\n N,\n >(\n mapping: OAuthRegistrationMapping<Registration, S, O, C, AC, I, N> & Extra,\n ) =>\n makeTargetOAuthRegistrationServices<Registration>(mapping, configuration).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),\n ),\n coordinateOAuthRegistration,\n };\n};\n"],"mappings":";;;;;;;AAuCA,MAAa,mBAOX,iBACA,kBACG;CA+DH,SAAS,sBAgBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,4BAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KAAK,wBAAwB,SAAS,sBAAsB;GACrF,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAyDA,SAAS,mCAaP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,yCAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,0BACA,SAAS,wBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CA+DA,SAAS,wBAgBP,SACA,SAIA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,8BAME,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KACvB,0BACA,SAAS,wBACX;GAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CA+DA,SAAS,4BAkBP,SACA,SAKA,MAKA;EACA,OAAO,OAAO,QAAQ,eAAe,OAAO,IAAI,aAC9C,kCAOE,UACA,QAAQ,SACR,gBAEE,aACA,aACG;GACH,MAAM,WAAW,QAAQ,KAAK,QAAQ,QAAQ,SAAS,qBAAqB;GAC5E,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;GAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eAAe,MAAM,QAAQ,aAAa,QAAQ,YAAY,GAAG,WAAW,CAAC;EAC1F,CACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,QAAQ,CAAC,CACxD;CACF;CAEA,OAAO;EACL,GAAG,yBAA4D,iBAAiB,aAAa;EAC7F;EACA;EACA;EACA,4BAQE,YAEA,gCAAgC,SAAS,aAAa,CAAC,CAAC,KACtD,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,0BACE,YAEA,8BAA8B,SAAS,aAAa,CAAC,CAAC,KACpD,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,sCACE,YAEA,0CAA0C,SAAS,aAAa,CAAC,CAAC,KAChE,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF,gCASE,YAEA,oCAAkD,SAAS,aAAa,CAAC,CAAC,KACxE,OAAO,qBAAqB,gBAAgB,eAAe,eAAe,CAAC,CAC7E;EACF;CACF;AACF"}
@@ -1,58 +1,32 @@
1
1
  import { DrizzleTableModel } from "./table-model.mjs";
2
2
  import * as Shared from "@yielded/auth-persistence/Adapter";
3
- import { OAuthAction, OAuthD1Mapping, OAuthEligibilityFact, OAuthFlowState, OAuthRegistrationAuthority, OAuthRegistrationState, OAuthTupleState, requiredOAuthAccountsConstraints, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints, requiredOAuthTupleConstraints } from "@yielded/auth-persistence/Adapter";
3
+ import { OAuthAction, OAuthD1Mapping, OAuthEligibilityFact, OAuthRegistrationAuthority, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints } from "@yielded/auth-persistence/Adapter";
4
4
  import { SQL, Table } from "drizzle-orm";
5
5
  //#region src/drizzle/oauth-model.d.ts
6
- /** The engine writes every critical column explicitly after applying the pure
7
- * consumer encoder. Native instant values must roundtrip without precision loss. */
8
6
  export type OAuthClock = Shared.OAuthClock<SQL>;
9
7
  export type OAuthSubjectReadTable<S extends Table> = Shared.OAuthSubjectReadTable<DrizzleTableModel<S>, SQL>;
10
8
  export type OAuthSubjectTable<S extends Table> = Shared.OAuthSubjectTable<DrizzleTableModel<S>, SQL>;
11
- export type OAuthOwnershipReadTable<O extends Table, N> = Shared.OAuthOwnershipReadTable<DrizzleTableModel<O>, N, SQL>;
12
- export type OAuthOwnershipTable<O extends Table, N> = Shared.OAuthOwnershipTable<DrizzleTableModel<O>, N, SQL>;
9
+ export type OAuthOwnershipReadTable<O extends Table, N> = Shared.OAuthOwnershipReadTable<DrizzleTableModel<O>, N>;
10
+ export type OAuthOwnershipTable<O extends Table, N> = Shared.OAuthOwnershipTable<DrizzleTableModel<O>, N>;
13
11
  export type OAuthCredentialReadTable<C extends Table> = Shared.OAuthCredentialReadTable<DrizzleTableModel<C>, SQL>;
14
12
  export type OAuthCredentialTable<C extends Table, N> = Shared.OAuthCredentialTable<DrizzleTableModel<C>, N, SQL>;
15
13
  export type OAuthAuthorityReadTable<C extends Table> = Shared.OAuthAuthorityReadTable<DrizzleTableModel<C>, SQL>;
16
14
  export type OAuthAuthorityTable<C extends Table, N> = Shared.OAuthAuthorityTable<DrizzleTableModel<C>, N, SQL>;
17
- /** Both purposes may use the same physical table. Shared tables share module/flow
18
- * and module/command uniqueness. The snapshot has the exact purpose-specific core
19
- * codec; terminal writes erase it, while identity, claim and retention columns remain. */
20
15
  export type OAuthFlowTable<F extends Table> = Shared.OAuthFlowTable<DrizzleTableModel<F>>;
21
- export type OAuthTupleAuthorityTable<T extends Table, N> = Shared.OAuthTupleAuthorityTable<DrizzleTableModel<T>, N>;
22
16
  export type OAuthRegistrationIntentTable<I extends Table> = Shared.OAuthRegistrationIntentTable<DrizzleTableModel<I>>;
23
- export type OAuthRegistrationCommandTable<R extends Table, Registration> = Shared.OAuthRegistrationCommandTable<DrizzleTableModel<R>, Registration>;
24
- export type OAuthUnlinkCommandTable<U extends Table> = Shared.OAuthUnlinkCommandTable<DrizzleTableModel<U>>;
25
- /** Each descriptor reads only its own subject-scoped method rows. The native row
26
- * projector and SQL condition must express the same installed method eligibility.
27
- * All source/identifier/policy mutations advance subject securityRevision. D1 also
28
- * guards exact selected IDs/versions and absence/count assumptions, never just a
29
- * stale boolean. An over-limit graph fails closed rather than truncating. */
30
17
  export type OAuthEligibilityTable<T extends Table, N> = Shared.OAuthEligibilityTable<DrizzleTableModel<T>, N, SQL>;
31
- /** Authenticated command replay uses current subject status and this additional
32
- * nonconsuming SQL policy. It never consumes a fresh action factor. */
33
- export type OAuthMetadataPolicy<N> = Shared.OAuthMetadataPolicy<N, SQL>;
34
18
  export type OAuthCleanupTable<T extends Table, N> = Shared.OAuthCleanupTable<DrizzleTableModel<T>, N, SQL>;
35
- export type OAuthRegistrationEligibility<N> = Shared.OAuthRegistrationEligibility<N, SQL>;
36
- export type OAuthSignInMapping<S extends Table, O extends Table, C extends Table, AC extends Table, F extends Table, N> = Shared.OAuthSignInMapping<DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<F>, N, SQL>;
37
- export type OAuthOwnershipMutation<T extends Table, O extends Table, N> = Shared.OAuthOwnershipMutation<DrizzleTableModel<T>, DrizzleTableModel<O>, N, SQL>;
38
- export type OAuthRegistrationIntentMapping<S extends Table, O extends Table, C extends Table, AC extends Table, F extends Table, T extends Table, I extends Table, N> = Shared.OAuthRegistrationIntentMapping<DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<F>, DrizzleTableModel<T>, DrizzleTableModel<I>, N, SQL>;
39
- export type OAuthRegistrationBase<Registration, T extends Table, O extends Table, I extends Table, R extends Table, N> = Shared.OAuthRegistrationBase<Registration, DrizzleTableModel<T>, DrizzleTableModel<O>, DrizzleTableModel<I>, DrizzleTableModel<R>, N, SQL, Table>;
40
19
  export type OAuthRegistrationGuardTable<T extends Table, Registration, N> = Shared.OAuthRegistrationGuardTable<DrizzleTableModel<T>, Registration, N, SQL>;
41
20
  export type OAuthRegistrationGuardDescriptor<Registration, N> = Shared.OAuthRegistrationGuardDescriptor<Registration, N, SQL, Table>;
42
- export declare const oauthRegistrationGuardTable: <T extends Table, Registration, N>(input: OAuthRegistrationGuardTable<T, Registration, N>) => OAuthRegistrationGuardDescriptor<Registration, N>;
43
- export type OAuthRegistrationMapping<Registration, S extends Table, O extends Table, C extends Table, AC extends Table, T extends Table, I extends Table, R extends Table, N> = Shared.OAuthRegistrationMapping<Registration, DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<T>, DrizzleTableModel<I>, DrizzleTableModel<R>, N, SQL, Table>;
44
- /** Heterogeneous descriptors are made by typed factories and projected privately. */
45
21
  export type OAuthEligibilityDescriptor<N> = Shared.OAuthEligibilityDescriptor<N, SQL, Table>;
46
- export declare const oauthEligibilityTable: <T extends Table, N>(input: OAuthEligibilityTable<T, N>) => OAuthEligibilityDescriptor<N>;
47
22
  export type OAuthCleanupDescriptor<N> = Shared.OAuthCleanupDescriptor<N, SQL, Table>;
48
- export declare const oauthCleanupTable: <T extends Table, N>(input: OAuthCleanupTable<T, N>) => OAuthCleanupDescriptor<N>;
49
- /** A stable application/reference lock acquired before an ownership target.
50
- * Missing rows retain ownership. Conditions use detached native IDs; every
51
- * writer of the guarded reference follows the same order. */
52
- export type OAuthReferenceGuardTable<T extends Table, N> = Shared.OAuthReferenceGuardTable<DrizzleTableModel<T>, N, SQL>;
53
- export type OAuthReferenceGuardDescriptor<N> = Shared.OAuthReferenceGuardDescriptor<N, SQL, Table>;
54
- export declare const oauthReferenceGuardTable: <T extends Table, N>(input: OAuthReferenceGuardTable<T, N>) => OAuthReferenceGuardDescriptor<N>;
55
- export type OAuthAccountsMapping<S extends Table, O extends Table, C extends Table, AC extends Table, F extends Table, T extends Table, U extends Table, N> = Shared.OAuthAccountsMapping<DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<F>, DrizzleTableModel<T>, DrizzleTableModel<U>, N, SQL, Table>;
23
+ export type OAuthSignInMapping<S extends Table, O extends Table, C extends Table, AC extends Table, F extends Table, N> = Shared.OAuthSignInMapping<DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<F>, N, SQL>;
24
+ export type OAuthAccountsMapping<S extends Table, O extends Table, C extends Table, AC extends Table, F extends Table, N> = Shared.OAuthAccountsMapping<DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<F>, N, SQL, Table>;
25
+ export type OAuthRegistrationIntentMapping<O extends Table, I extends Table, N> = Shared.OAuthRegistrationIntentMapping<DrizzleTableModel<O>, DrizzleTableModel<I>, N, SQL>;
26
+ export type OAuthRegistrationMapping<Registration, S extends Table, O extends Table, C extends Table, AC extends Table, I extends Table, N> = Shared.OAuthRegistrationMapping<Registration, DrizzleTableModel<S>, DrizzleTableModel<O>, DrizzleTableModel<C>, DrizzleTableModel<AC>, DrizzleTableModel<I>, N, SQL, Table>;
27
+ export declare const oauthEligibilityTable: <T extends Table, N>(input: OAuthEligibilityTable<T, N>) => Shared.OAuthEligibilityDescriptor<N, SQL<unknown>, T>;
28
+ export declare const oauthCleanupTable: <T extends Table, N>(input: OAuthCleanupTable<T, N>) => Shared.OAuthCleanupDescriptor<N, SQL<unknown>, T>;
29
+ export declare const oauthRegistrationGuardTable: <T extends Table, Registration, N>(input: OAuthRegistrationGuardTable<T, Registration, N>) => Shared.OAuthRegistrationGuardDescriptor<Registration, N, SQL<unknown>, T>;
56
30
  //#endregion
57
- export { type OAuthAction, type OAuthD1Mapping, type OAuthEligibilityFact, type OAuthFlowState, type OAuthRegistrationAuthority, type OAuthRegistrationState, type OAuthTupleState, requiredOAuthAccountsConstraints, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints, requiredOAuthTupleConstraints };
31
+ export { type OAuthAction, type OAuthD1Mapping, type OAuthEligibilityFact, type OAuthRegistrationAuthority, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints };
58
32
  //# sourceMappingURL=oauth-model.d.mts.map
@@ -1,11 +1,10 @@
1
1
  import * as Shared from "@yielded/auth-persistence/Adapter";
2
- import { requiredOAuthAccountsConstraints, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints, requiredOAuthTupleConstraints } from "@yielded/auth-persistence/Adapter";
2
+ import { requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints } from "@yielded/auth-persistence/Adapter";
3
3
  //#region src/drizzle/oauth-model.ts
4
- const oauthRegistrationGuardTable = (input) => Shared.oauthRegistrationGuardTable(input);
5
4
  const oauthEligibilityTable = (input) => Shared.oauthEligibilityTable(input);
6
5
  const oauthCleanupTable = (input) => Shared.oauthCleanupTable(input);
7
- const oauthReferenceGuardTable = (input) => Shared.oauthReferenceGuardTable(input);
6
+ const oauthRegistrationGuardTable = (input) => Shared.oauthRegistrationGuardTable(input);
8
7
  //#endregion
9
- export { oauthCleanupTable, oauthEligibilityTable, oauthReferenceGuardTable, oauthRegistrationGuardTable, requiredOAuthAccountsConstraints, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints, requiredOAuthTupleConstraints };
8
+ export { oauthCleanupTable, oauthEligibilityTable, oauthRegistrationGuardTable, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints };
10
9
 
11
10
  //# sourceMappingURL=oauth-model.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-model.mjs","names":[],"sources":["../../src/drizzle/oauth-model.ts"],"sourcesContent":["import * as Shared from \"@yielded/auth-persistence/Adapter\";\nimport type { SQL, Table } from \"drizzle-orm\";\n\nimport type { DrizzleTableModel } from \"./table-model\";\n\nexport {\n type OAuthFlowState,\n type OAuthTupleState,\n type OAuthRegistrationState,\n type OAuthAction,\n type OAuthEligibilityFact,\n type OAuthD1Mapping,\n requiredOAuthSignInConstraints,\n requiredOAuthTupleConstraints,\n requiredOAuthRegistrationConstraints,\n requiredOAuthAccountsConstraints,\n type OAuthRegistrationAuthority,\n} from \"@yielded/auth-persistence/Adapter\";\n\n/** The engine writes every critical column explicitly after applying the pure\n * consumer encoder. Native instant values must roundtrip without precision loss. */\nexport type OAuthClock = Shared.OAuthClock<SQL>;\n\nexport type OAuthSubjectReadTable<S extends Table> = Shared.OAuthSubjectReadTable<\n DrizzleTableModel<S>,\n SQL\n>;\n\nexport type OAuthSubjectTable<S extends Table> = Shared.OAuthSubjectTable<\n DrizzleTableModel<S>,\n SQL\n>;\n\nexport type OAuthOwnershipReadTable<O extends Table, N> = Shared.OAuthOwnershipReadTable<\n DrizzleTableModel<O>,\n N,\n SQL\n>;\n\nexport type OAuthOwnershipTable<O extends Table, N> = Shared.OAuthOwnershipTable<\n DrizzleTableModel<O>,\n N,\n SQL\n>;\n\nexport type OAuthCredentialReadTable<C extends Table> = Shared.OAuthCredentialReadTable<\n DrizzleTableModel<C>,\n SQL\n>;\n\nexport type OAuthCredentialTable<C extends Table, N> = Shared.OAuthCredentialTable<\n DrizzleTableModel<C>,\n N,\n SQL\n>;\n\nexport type OAuthAuthorityReadTable<C extends Table> = Shared.OAuthAuthorityReadTable<\n DrizzleTableModel<C>,\n SQL\n>;\n\nexport type OAuthAuthorityTable<C extends Table, N> = Shared.OAuthAuthorityTable<\n DrizzleTableModel<C>,\n N,\n SQL\n>;\n\n/** Both purposes may use the same physical table. Shared tables share module/flow\n * and module/command uniqueness. The snapshot has the exact purpose-specific core\n * codec; terminal writes erase it, while identity, claim and retention columns remain. */\nexport type OAuthFlowTable<F extends Table> = Shared.OAuthFlowTable<DrizzleTableModel<F>>;\n\nexport type OAuthTupleAuthorityTable<T extends Table, N> = Shared.OAuthTupleAuthorityTable<\n DrizzleTableModel<T>,\n N\n>;\n\nexport type OAuthRegistrationIntentTable<I extends Table> = Shared.OAuthRegistrationIntentTable<\n DrizzleTableModel<I>\n>;\n\nexport type OAuthRegistrationCommandTable<\n R extends Table,\n Registration,\n> = Shared.OAuthRegistrationCommandTable<DrizzleTableModel<R>, Registration>;\n\nexport type OAuthUnlinkCommandTable<U extends Table> = Shared.OAuthUnlinkCommandTable<\n DrizzleTableModel<U>\n>;\n\n/** Each descriptor reads only its own subject-scoped method rows. The native row\n * projector and SQL condition must express the same installed method eligibility.\n * All source/identifier/policy mutations advance subject securityRevision. D1 also\n * guards exact selected IDs/versions and absence/count assumptions, never just a\n * stale boolean. An over-limit graph fails closed rather than truncating. */\nexport type OAuthEligibilityTable<T extends Table, N> = Shared.OAuthEligibilityTable<\n DrizzleTableModel<T>,\n N,\n SQL\n>;\n\n/** Authenticated command replay uses current subject status and this additional\n * nonconsuming SQL policy. It never consumes a fresh action factor. */\nexport type OAuthMetadataPolicy<N> = Shared.OAuthMetadataPolicy<N, SQL>;\n\nexport type OAuthCleanupTable<T extends Table, N> = Shared.OAuthCleanupTable<\n DrizzleTableModel<T>,\n N,\n SQL\n>;\n\nexport type OAuthRegistrationEligibility<N> = Shared.OAuthRegistrationEligibility<N, SQL>;\n\nexport type OAuthSignInMapping<\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n F extends Table,\n N,\n> = Shared.OAuthSignInMapping<\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<F>,\n N,\n SQL\n>;\n\nexport type OAuthOwnershipMutation<\n T extends Table,\n O extends Table,\n N,\n> = Shared.OAuthOwnershipMutation<DrizzleTableModel<T>, DrizzleTableModel<O>, N, SQL>;\n\nexport type OAuthRegistrationIntentMapping<\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n F extends Table,\n T extends Table,\n I extends Table,\n N,\n> = Shared.OAuthRegistrationIntentMapping<\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<F>,\n DrizzleTableModel<T>,\n DrizzleTableModel<I>,\n N,\n SQL\n>;\n\nexport type OAuthRegistrationBase<\n Registration,\n T extends Table,\n O extends Table,\n I extends Table,\n R extends Table,\n N,\n> = Shared.OAuthRegistrationBase<\n Registration,\n DrizzleTableModel<T>,\n DrizzleTableModel<O>,\n DrizzleTableModel<I>,\n DrizzleTableModel<R>,\n N,\n SQL,\n Table\n>;\n\nexport type OAuthRegistrationGuardTable<\n T extends Table,\n Registration,\n N,\n> = Shared.OAuthRegistrationGuardTable<DrizzleTableModel<T>, Registration, N, SQL>;\n\nexport type OAuthRegistrationGuardDescriptor<Registration, N> =\n Shared.OAuthRegistrationGuardDescriptor<Registration, N, SQL, Table>;\n\nexport const oauthRegistrationGuardTable = <T extends Table, Registration, N>(\n input: OAuthRegistrationGuardTable<T, Registration, N>,\n): OAuthRegistrationGuardDescriptor<Registration, N> =>\n Shared.oauthRegistrationGuardTable<DrizzleTableModel<T>, Registration, N, SQL>(input);\n\nexport type OAuthRegistrationMapping<\n Registration,\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n T extends Table,\n I extends Table,\n R extends Table,\n N,\n> = Shared.OAuthRegistrationMapping<\n Registration,\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<T>,\n DrizzleTableModel<I>,\n DrizzleTableModel<R>,\n N,\n SQL,\n Table\n>;\n\n/** Heterogeneous descriptors are made by typed factories and projected privately. */\nexport type OAuthEligibilityDescriptor<N> = Shared.OAuthEligibilityDescriptor<N, SQL, Table>;\n\nexport const oauthEligibilityTable = <T extends Table, N>(\n input: OAuthEligibilityTable<T, N>,\n): OAuthEligibilityDescriptor<N> =>\n Shared.oauthEligibilityTable<DrizzleTableModel<T>, N, SQL>(input);\n\nexport type OAuthCleanupDescriptor<N> = Shared.OAuthCleanupDescriptor<N, SQL, Table>;\n\nexport const oauthCleanupTable = <T extends Table, N>(\n input: OAuthCleanupTable<T, N>,\n): OAuthCleanupDescriptor<N> => Shared.oauthCleanupTable<DrizzleTableModel<T>, N, SQL>(input);\n\n/** A stable application/reference lock acquired before an ownership target.\n * Missing rows retain ownership. Conditions use detached native IDs; every\n * writer of the guarded reference follows the same order. */\nexport type OAuthReferenceGuardTable<T extends Table, N> = Shared.OAuthReferenceGuardTable<\n DrizzleTableModel<T>,\n N,\n SQL\n>;\n\nexport type OAuthReferenceGuardDescriptor<N> = Shared.OAuthReferenceGuardDescriptor<N, SQL, Table>;\n\nexport const oauthReferenceGuardTable = <T extends Table, N>(\n input: OAuthReferenceGuardTable<T, N>,\n): OAuthReferenceGuardDescriptor<N> =>\n Shared.oauthReferenceGuardTable<DrizzleTableModel<T>, N, SQL>(input);\n\nexport type OAuthAccountsMapping<\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n F extends Table,\n T extends Table,\n U extends Table,\n N,\n> = Shared.OAuthAccountsMapping<\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<F>,\n DrizzleTableModel<T>,\n DrizzleTableModel<U>,\n N,\n SQL,\n Table\n>;\n"],"mappings":";;;AAwLA,MAAa,+BACX,UAEA,OAAO,4BAAwE,KAAK;AA6BtF,MAAa,yBACX,UAEA,OAAO,sBAAoD,KAAK;AAIlE,MAAa,qBACX,UAC8B,OAAO,kBAAgD,KAAK;AAa5F,MAAa,4BACX,UAEA,OAAO,yBAAuD,KAAK"}
1
+ {"version":3,"file":"oauth-model.mjs","names":[],"sources":["../../src/drizzle/oauth-model.ts"],"sourcesContent":["import * as Shared from \"@yielded/auth-persistence/Adapter\";\nimport type { SQL, Table } from \"drizzle-orm\";\n\nimport type { DrizzleTableModel } from \"./table-model\";\n\nexport {\n type OAuthAction,\n type OAuthEligibilityFact,\n type OAuthD1Mapping,\n type OAuthRegistrationAuthority,\n requiredOAuthSignInConstraints,\n requiredOAuthRegistrationConstraints,\n} from \"@yielded/auth-persistence/Adapter\";\n\nexport type OAuthClock = Shared.OAuthClock<SQL>;\n\nexport type OAuthSubjectReadTable<S extends Table> = Shared.OAuthSubjectReadTable<\n DrizzleTableModel<S>,\n SQL\n>;\n\nexport type OAuthSubjectTable<S extends Table> = Shared.OAuthSubjectTable<\n DrizzleTableModel<S>,\n SQL\n>;\n\nexport type OAuthOwnershipReadTable<O extends Table, N> = Shared.OAuthOwnershipReadTable<\n DrizzleTableModel<O>,\n N\n>;\n\nexport type OAuthOwnershipTable<O extends Table, N> = Shared.OAuthOwnershipTable<\n DrizzleTableModel<O>,\n N\n>;\n\nexport type OAuthCredentialReadTable<C extends Table> = Shared.OAuthCredentialReadTable<\n DrizzleTableModel<C>,\n SQL\n>;\n\nexport type OAuthCredentialTable<C extends Table, N> = Shared.OAuthCredentialTable<\n DrizzleTableModel<C>,\n N,\n SQL\n>;\n\nexport type OAuthAuthorityReadTable<C extends Table> = Shared.OAuthAuthorityReadTable<\n DrizzleTableModel<C>,\n SQL\n>;\n\nexport type OAuthAuthorityTable<C extends Table, N> = Shared.OAuthAuthorityTable<\n DrizzleTableModel<C>,\n N,\n SQL\n>;\n\nexport type OAuthFlowTable<F extends Table> = Shared.OAuthFlowTable<DrizzleTableModel<F>>;\n\nexport type OAuthRegistrationIntentTable<I extends Table> = Shared.OAuthRegistrationIntentTable<\n DrizzleTableModel<I>\n>;\n\nexport type OAuthEligibilityTable<T extends Table, N> = Shared.OAuthEligibilityTable<\n DrizzleTableModel<T>,\n N,\n SQL\n>;\n\nexport type OAuthCleanupTable<T extends Table, N> = Shared.OAuthCleanupTable<\n DrizzleTableModel<T>,\n N,\n SQL\n>;\n\nexport type OAuthRegistrationGuardTable<\n T extends Table,\n Registration,\n N,\n> = Shared.OAuthRegistrationGuardTable<DrizzleTableModel<T>, Registration, N, SQL>;\n\nexport type OAuthRegistrationGuardDescriptor<Registration, N> =\n Shared.OAuthRegistrationGuardDescriptor<Registration, N, SQL, Table>;\n\nexport type OAuthEligibilityDescriptor<N> = Shared.OAuthEligibilityDescriptor<N, SQL, Table>;\n\nexport type OAuthCleanupDescriptor<N> = Shared.OAuthCleanupDescriptor<N, SQL, Table>;\n\nexport type OAuthSignInMapping<\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n F extends Table,\n N,\n> = Shared.OAuthSignInMapping<\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<F>,\n N,\n SQL\n>;\n\nexport type OAuthAccountsMapping<\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n F extends Table,\n N,\n> = Shared.OAuthAccountsMapping<\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<F>,\n N,\n SQL,\n Table\n>;\n\nexport type OAuthRegistrationIntentMapping<\n O extends Table,\n I extends Table,\n N,\n> = Shared.OAuthRegistrationIntentMapping<DrizzleTableModel<O>, DrizzleTableModel<I>, N, SQL>;\n\nexport type OAuthRegistrationMapping<\n Registration,\n S extends Table,\n O extends Table,\n C extends Table,\n AC extends Table,\n I extends Table,\n N,\n> = Shared.OAuthRegistrationMapping<\n Registration,\n DrizzleTableModel<S>,\n DrizzleTableModel<O>,\n DrizzleTableModel<C>,\n DrizzleTableModel<AC>,\n DrizzleTableModel<I>,\n N,\n SQL,\n Table\n>;\n\nexport const oauthEligibilityTable = <T extends Table, N>(input: OAuthEligibilityTable<T, N>) =>\n Shared.oauthEligibilityTable<DrizzleTableModel<T>, N, SQL>(input);\n\nexport const oauthCleanupTable = <T extends Table, N>(input: OAuthCleanupTable<T, N>) =>\n Shared.oauthCleanupTable<DrizzleTableModel<T>, N, SQL>(input);\n\nexport const oauthRegistrationGuardTable = <T extends Table, Registration, N>(\n input: OAuthRegistrationGuardTable<T, Registration, N>,\n) => Shared.oauthRegistrationGuardTable<DrizzleTableModel<T>, Registration, N, SQL>(input);\n"],"mappings":";;;AAsJA,MAAa,yBAA6C,UACxD,OAAO,sBAAoD,KAAK;AAElE,MAAa,qBAAyC,UACpD,OAAO,kBAAgD,KAAK;AAE9D,MAAa,+BACX,UACG,OAAO,4BAAwE,KAAK"}
@@ -1,8 +1,8 @@
1
1
  import { OAuthProxySqlTable } from "@yielded/auth-persistence/Adapter";
2
2
  import { Table } from "drizzle-orm";
3
3
  import { Layer } from "effect";
4
- import { ConfigurationError, Persistence } from "@yielded/auth/OAuthProxy";
5
4
  import { SqlClient } from "effect/sql";
5
+ import { ConfigurationError, Persistence } from "@yielded/auth/OAuthProxy";
6
6
  //#region src/drizzle/oauth-proxy.d.ts
7
7
  /** Override logical column keys when using an application-owned table. */
8
8
  export type OAuthProxyColumns<T extends Table> = Partial<{ readonly [K in keyof OAuthProxySqlTable["columns"]]: Extract<keyof T["_"]["columns"], string>; }>;
@@ -1,10 +1,10 @@
1
1
  import { makeOAuthProxyPersistence, validateStorage } from "@yielded/auth-persistence/Adapter";
2
2
  import { getTableColumns, is } from "drizzle-orm";
3
3
  import { Effect, Layer } from "effect";
4
+ import { SqlClient } from "effect/sql";
4
5
  import { PgTable, getTableConfig } from "drizzle-orm/pg-core";
5
6
  import { SQLiteTable, getTableConfig as getTableConfig$1 } from "drizzle-orm/sqlite-core";
6
7
  import { ConfigurationError, Persistence } from "@yielded/auth/OAuthProxy";
7
- import { SqlClient } from "effect/sql";
8
8
  //#region src/drizzle/oauth-proxy.ts
9
9
  /** The shared SQL kernel writes plain text and integer milliseconds directly;
10
10
  * Drizzle value codecs and write hooks do not run for these storage columns. */
@@ -1,9 +1,12 @@
1
- import { OAuthCoordinatorError, OAuthKernel } from "@yielded/auth-persistence/Adapter";
1
+ import "./native-database.mjs";
2
+ import "./D1BatchStatements.mjs";
3
+ import "./native-target.mjs";
4
+ import { oauthAccountsPersistenceLayer, oauthConnectedPersistenceLayer, oauthConnectedRevocationsLayer, oauthRegistrationAuthorityLayer, oauthRegistrationIntentsLayer, oauthSignInPersistenceLayer } from "@yielded/auth-persistence/Adapter";
5
+ import { Effect } from "effect";
6
+ import { LifecycleHooks } from "@yielded/auth/Hooks";
7
+ import { OAuthUnavailable } from "@yielded/auth/OAuth";
2
8
  //#region src/drizzle/oauth-target.d.ts
3
- export declare const oauthAccountsPersistenceLayer: OAuthKernel["target"]["oauthAccountsPersistenceLayer"];
4
- export declare const oauthSignInPersistenceLayer: OAuthKernel["target"]["oauthSignInPersistenceLayer"];
5
- export declare const oauthRegistrationIntentsLayer: OAuthKernel["target"]["oauthRegistrationIntentsLayer"];
6
- export declare const oauthRegistrationAuthorityLayer: OAuthKernel["target"]["oauthRegistrationAuthorityLayer"];
9
+ export type OAuthCoordinatorError<E> = E | OAuthUnavailable;
7
10
  //#endregion
8
- export type { OAuthCoordinatorError };
11
+ export { oauthAccountsPersistenceLayer, oauthConnectedPersistenceLayer, oauthConnectedRevocationsLayer, oauthRegistrationAuthorityLayer, oauthRegistrationIntentsLayer, oauthSignInPersistenceLayer };
9
12
  //# sourceMappingURL=oauth-target.d.mts.map