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