@yielded/auth-persistence-drizzle 0.1.0-beta.24 → 0.1.0-beta.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +4 -2
  2. package/dist/D1.d.mts +495 -1151
  3. package/dist/D1.mjs +41 -19
  4. package/dist/D1.mjs.map +1 -1
  5. package/dist/Libsql.d.mts +385 -1996
  6. package/dist/Libsql.mjs +43 -47
  7. package/dist/Libsql.mjs.map +1 -1
  8. package/dist/Mysql2.d.mts +397 -1743
  9. package/dist/Mysql2.mjs +35 -41
  10. package/dist/Mysql2.mjs.map +1 -1
  11. package/dist/Pglite.d.mts +397 -1743
  12. package/dist/Pglite.mjs +42 -31
  13. package/dist/Pglite.mjs.map +1 -1
  14. package/dist/Postgres.d.mts +397 -1743
  15. package/dist/Postgres.mjs +42 -31
  16. package/dist/Postgres.mjs.map +1 -1
  17. package/dist/SqliteBun.d.mts +385 -1992
  18. package/dist/SqliteBun.mjs +43 -43
  19. package/dist/SqliteBun.mjs.map +1 -1
  20. package/dist/SqliteDo.d.mts +385 -1991
  21. package/dist/SqliteDo.mjs +42 -41
  22. package/dist/SqliteDo.mjs.map +1 -1
  23. package/dist/SqliteNode.d.mts +385 -1992
  24. package/dist/SqliteNode.mjs +43 -43
  25. package/dist/SqliteNode.mjs.map +1 -1
  26. package/dist/SqliteWasm.d.mts +385 -1992
  27. package/dist/SqliteWasm.mjs +43 -43
  28. package/dist/SqliteWasm.mjs.map +1 -1
  29. package/dist/drizzle/d1-identity.mjs +2 -2
  30. package/dist/drizzle/d1-identity.mjs.map +1 -1
  31. package/dist/drizzle/driver-types.d.mts +15 -0
  32. package/dist/drizzle/email-drivers.mjs +32 -0
  33. package/dist/drizzle/email-drivers.mjs.map +1 -0
  34. package/dist/drizzle/email-model.d.mts +9 -13
  35. package/dist/drizzle/email-target.d.mts +10 -11
  36. package/dist/drizzle/email-target.mjs +33 -70
  37. package/dist/drizzle/email-target.mjs.map +1 -1
  38. package/dist/drizzle/model.d.mts +1 -10
  39. package/dist/drizzle/model.mjs +1 -2
  40. package/dist/drizzle/model.mjs.map +1 -1
  41. package/dist/drizzle/mysql-identity.mjs +3 -6
  42. package/dist/drizzle/mysql-identity.mjs.map +1 -1
  43. package/dist/drizzle/native-clock.d.mts +9 -0
  44. package/dist/drizzle/native-clock.mjs +18 -0
  45. package/dist/drizzle/native-clock.mjs.map +1 -0
  46. package/dist/drizzle/native-database.d.mts +46 -0
  47. package/dist/drizzle/native-database.mjs +6 -5
  48. package/dist/drizzle/native-database.mjs.map +1 -1
  49. package/dist/drizzle/native-sql-table.mjs +13 -5
  50. package/dist/drizzle/native-sql-table.mjs.map +1 -1
  51. package/dist/drizzle/native-target.d.mts +6 -0
  52. package/dist/drizzle/native-target.mjs +44 -0
  53. package/dist/drizzle/native-target.mjs.map +1 -0
  54. package/dist/drizzle/oauth-connected-drivers.mjs +4 -56
  55. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -1
  56. package/dist/drizzle/oauth-connected-model.d.mts +5 -22
  57. package/dist/drizzle/oauth-connected-model.mjs +1 -7
  58. package/dist/drizzle/oauth-connected-reference.d.mts +5 -7
  59. package/dist/drizzle/oauth-connected-reference.mjs +11 -3
  60. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -1
  61. package/dist/drizzle/oauth-drivers.mjs +1 -2
  62. package/dist/drizzle/oauth-drivers.mjs.map +1 -1
  63. package/dist/drizzle/oauth-model.d.mts +11 -37
  64. package/dist/drizzle/oauth-model.mjs +3 -4
  65. package/dist/drizzle/oauth-model.mjs.map +1 -1
  66. package/dist/drizzle/oauth-proxy.d.mts +1 -1
  67. package/dist/drizzle/oauth-proxy.mjs +1 -1
  68. package/dist/drizzle/oauth-target.d.mts +9 -6
  69. package/dist/drizzle/oauth-target.mjs +47 -15
  70. package/dist/drizzle/oauth-target.mjs.map +1 -1
  71. package/dist/drizzle/passkey/target.d.mts +14 -0
  72. package/dist/drizzle/passkey/target.mjs +52 -0
  73. package/dist/drizzle/passkey/target.mjs.map +1 -0
  74. package/dist/drizzle/passkey/write-target.d.mts +11 -0
  75. package/dist/drizzle/passkey/write-target.mjs +28 -0
  76. package/dist/drizzle/passkey/write-target.mjs.map +1 -0
  77. package/dist/drizzle/passkey-drivers.mjs +2 -4
  78. package/dist/drizzle/passkey-drivers.mjs.map +1 -1
  79. package/dist/drizzle/passkey-model.d.mts +5 -26
  80. package/dist/drizzle/passkey-model.mjs +2 -8
  81. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +3 -6
  82. package/dist/drizzle/passkey-write-drivers.mjs +2 -3
  83. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -1
  84. package/dist/drizzle/passkey-write-model.d.mts +7 -9
  85. package/dist/drizzle/passkey-write-model.mjs +1 -3
  86. package/dist/drizzle/passkey-write-model.mjs.map +1 -1
  87. package/dist/drizzle/password-drivers.mjs +31 -0
  88. package/dist/drizzle/password-drivers.mjs.map +1 -0
  89. package/dist/drizzle/password-model.d.mts +7 -10
  90. package/dist/drizzle/password-target.d.mts +7 -8
  91. package/dist/drizzle/password-target.mjs +23 -68
  92. package/dist/drizzle/password-target.mjs.map +1 -1
  93. package/dist/drizzle/pg-identity.mjs +3 -6
  94. package/dist/drizzle/pg-identity.mjs.map +1 -1
  95. package/dist/drizzle/phone-drivers.mjs +24 -0
  96. package/dist/drizzle/phone-drivers.mjs.map +1 -0
  97. package/dist/drizzle/phone-model.d.mts +13 -104
  98. package/dist/drizzle/phone-model.mjs +5 -33
  99. package/dist/drizzle/phone-model.mjs.map +1 -1
  100. package/dist/drizzle/phone-target.mjs +22 -171
  101. package/dist/drizzle/phone-target.mjs.map +1 -1
  102. package/dist/drizzle/proof-drivers.mjs +24 -0
  103. package/dist/drizzle/proof-drivers.mjs.map +1 -0
  104. package/dist/drizzle/proof-model.d.mts +7 -15
  105. package/dist/drizzle/proof-target.d.mts +5 -5
  106. package/dist/drizzle/proof-target.mjs +14 -28
  107. package/dist/drizzle/proof-target.mjs.map +1 -1
  108. package/dist/drizzle/session-drivers.mjs +97 -0
  109. package/dist/drizzle/session-drivers.mjs.map +1 -0
  110. package/dist/drizzle/session-model.d.mts +11 -22
  111. package/dist/drizzle/sqlite-do-database.d.mts +3 -3
  112. package/dist/drizzle/sqlite-do-database.mjs +6 -1
  113. package/dist/drizzle/sqlite-do-database.mjs.map +1 -1
  114. package/dist/drizzle/sqlite-identity.mjs +3 -5
  115. package/dist/drizzle/sqlite-identity.mjs.map +1 -1
  116. package/dist/drizzle/step-up-model.d.mts +2 -5
  117. package/dist/drizzle/storage-validation.mjs +2 -1
  118. package/dist/drizzle/storage-validation.mjs.map +1 -1
  119. package/dist/drizzle/totp-model.d.mts +7 -74
  120. package/dist/drizzle/totp-model.mjs +1 -5
  121. package/dist/drizzle/totp-model.mjs.map +1 -1
  122. package/dist/drizzle/totp-target.mjs +39 -75
  123. package/dist/drizzle/totp-target.mjs.map +1 -1
  124. package/dist/drizzle/transaction-handle.mjs +13 -0
  125. package/dist/drizzle/transaction-handle.mjs.map +1 -0
  126. package/dist/drizzle/transaction-mysql.mjs +43 -12
  127. package/dist/drizzle/transaction-mysql.mjs.map +1 -1
  128. package/dist/index.d.mts +17 -22
  129. package/dist/index.mjs +10 -16
  130. package/dist/internal/drizzle-postgres.mjs +4 -6
  131. package/dist/internal/drizzle-postgres.mjs.map +1 -1
  132. package/dist/internal/drizzle-sqlite.mjs +4 -6
  133. package/dist/internal/drizzle-sqlite.mjs.map +1 -1
  134. package/package.json +1 -1
  135. package/src/D1.ts +77 -74
  136. package/src/Libsql.ts +65 -105
  137. package/src/Mysql2.ts +52 -87
  138. package/src/Pglite.ts +74 -81
  139. package/src/Postgres.ts +74 -81
  140. package/src/SqliteBun.ts +65 -113
  141. package/src/SqliteDo.ts +58 -106
  142. package/src/SqliteNode.ts +65 -113
  143. package/src/SqliteWasm.ts +65 -113
  144. package/src/drizzle/d1-identity.ts +2 -2
  145. package/src/drizzle/driver-types.ts +26 -0
  146. package/src/drizzle/email-drivers.ts +320 -0
  147. package/src/drizzle/email-model.ts +24 -78
  148. package/src/drizzle/email-target.ts +118 -211
  149. package/src/drizzle/model.ts +0 -2
  150. package/src/drizzle/mysql-identity.ts +4 -24
  151. package/src/drizzle/native-clock.ts +21 -0
  152. package/src/drizzle/native-database.ts +59 -18
  153. package/src/drizzle/native-sql-table.ts +104 -87
  154. package/src/drizzle/native-target.ts +120 -0
  155. package/src/drizzle/oauth-connected-drivers.ts +24 -233
  156. package/src/drizzle/oauth-connected-model.ts +3 -93
  157. package/src/drizzle/oauth-connected-reference.ts +16 -25
  158. package/src/drizzle/oauth-drivers.ts +58 -99
  159. package/src/drizzle/oauth-model.ts +27 -132
  160. package/src/drizzle/oauth-target.ts +250 -33
  161. package/src/drizzle/passkey/target.ts +205 -0
  162. package/src/drizzle/passkey/write-target.ts +91 -0
  163. package/src/drizzle/passkey-drivers.ts +35 -133
  164. package/src/drizzle/passkey-model.ts +3 -81
  165. package/src/drizzle/passkey-registration-ceremony-model.ts +5 -25
  166. package/src/drizzle/passkey-write-drivers.ts +32 -102
  167. package/src/drizzle/passkey-write-model.ts +10 -44
  168. package/src/drizzle/password-drivers.ts +286 -0
  169. package/src/drizzle/password-model.ts +10 -44
  170. package/src/drizzle/password-target.ts +85 -239
  171. package/src/drizzle/pg-identity.ts +4 -19
  172. package/src/drizzle/phone-drivers.ts +142 -0
  173. package/src/drizzle/phone-model.ts +22 -162
  174. package/src/drizzle/phone-target.ts +51 -493
  175. package/src/drizzle/proof-drivers.ts +123 -0
  176. package/src/drizzle/proof-model.ts +12 -123
  177. package/src/drizzle/proof-target.ts +38 -102
  178. package/src/drizzle/session-drivers.ts +696 -0
  179. package/src/drizzle/session-model.ts +54 -118
  180. package/src/drizzle/sqlite-do-database.ts +8 -0
  181. package/src/drizzle/sqlite-identity.ts +4 -22
  182. package/src/drizzle/step-up-model.ts +13 -37
  183. package/src/drizzle/storage-validation.ts +2 -1
  184. package/src/drizzle/totp-model.ts +20 -77
  185. package/src/drizzle/totp-target.ts +121 -261
  186. package/src/drizzle/transaction-handle.ts +41 -0
  187. package/src/drizzle/transaction-mysql.ts +90 -25
  188. package/src/index.ts +7 -122
  189. package/src/internal/drizzle-postgres.ts +4 -7
  190. package/src/internal/drizzle-sqlite.ts +4 -7
  191. package/dist/drizzle/crypto.mjs +0 -11
  192. package/dist/drizzle/crypto.mjs.map +0 -1
  193. package/dist/drizzle/d1-emails.d.mts +0 -62
  194. package/dist/drizzle/d1-emails.mjs +0 -626
  195. package/dist/drizzle/d1-emails.mjs.map +0 -1
  196. package/dist/drizzle/d1-generated-statement.mjs +0 -79
  197. package/dist/drizzle/d1-generated-statement.mjs.map +0 -1
  198. package/dist/drizzle/d1-oauth.d.mts +0 -331
  199. package/dist/drizzle/d1-oauth.mjs +0 -79
  200. package/dist/drizzle/d1-oauth.mjs.map +0 -1
  201. package/dist/drizzle/d1-passkey.d.mts +0 -37
  202. package/dist/drizzle/d1-passkey.mjs +0 -98
  203. package/dist/drizzle/d1-passkey.mjs.map +0 -1
  204. package/dist/drizzle/d1-password-prepared.d.mts +0 -25
  205. package/dist/drizzle/d1-password-prepared.mjs +0 -473
  206. package/dist/drizzle/d1-password-prepared.mjs.map +0 -1
  207. package/dist/drizzle/d1-passwords.d.mts +0 -70
  208. package/dist/drizzle/d1-passwords.mjs +0 -808
  209. package/dist/drizzle/d1-passwords.mjs.map +0 -1
  210. package/dist/drizzle/d1-phone.d.mts +0 -23
  211. package/dist/drizzle/d1-phone.mjs +0 -33
  212. package/dist/drizzle/d1-phone.mjs.map +0 -1
  213. package/dist/drizzle/d1-planning.d.mts +0 -11
  214. package/dist/drizzle/d1-planning.mjs +0 -43
  215. package/dist/drizzle/d1-planning.mjs.map +0 -1
  216. package/dist/drizzle/d1-proofs.d.mts +0 -80
  217. package/dist/drizzle/d1-proofs.mjs +0 -842
  218. package/dist/drizzle/d1-proofs.mjs.map +0 -1
  219. package/dist/drizzle/d1-sessions.d.mts +0 -68
  220. package/dist/drizzle/d1-sessions.mjs +0 -987
  221. package/dist/drizzle/d1-sessions.mjs.map +0 -1
  222. package/dist/drizzle/d1-totp.d.mts +0 -23
  223. package/dist/drizzle/d1-totp.mjs +0 -30
  224. package/dist/drizzle/d1-totp.mjs.map +0 -1
  225. package/dist/drizzle/email-registration.d.mts +0 -33
  226. package/dist/drizzle/email-registration.mjs +0 -281
  227. package/dist/drizzle/email-registration.mjs.map +0 -1
  228. package/dist/drizzle/email-sql.d.mts +0 -1
  229. package/dist/drizzle/email-sql.mjs +0 -9
  230. package/dist/drizzle/email-sql.mjs.map +0 -1
  231. package/dist/drizzle/mysql-emails.d.mts +0 -71
  232. package/dist/drizzle/mysql-emails.mjs +0 -43
  233. package/dist/drizzle/mysql-emails.mjs.map +0 -1
  234. package/dist/drizzle/mysql-password-prepared.d.mts +0 -30
  235. package/dist/drizzle/mysql-password-prepared.mjs +0 -21
  236. package/dist/drizzle/mysql-password-prepared.mjs.map +0 -1
  237. package/dist/drizzle/mysql-passwords.d.mts +0 -71
  238. package/dist/drizzle/mysql-passwords.mjs +0 -43
  239. package/dist/drizzle/mysql-passwords.mjs.map +0 -1
  240. package/dist/drizzle/mysql-proofs.d.mts +0 -75
  241. package/dist/drizzle/mysql-proofs.mjs +0 -28
  242. package/dist/drizzle/mysql-proofs.mjs.map +0 -1
  243. package/dist/drizzle/mysql-sessions.d.mts +0 -92
  244. package/dist/drizzle/mysql-sessions.mjs +0 -58
  245. package/dist/drizzle/mysql-sessions.mjs.map +0 -1
  246. package/dist/drizzle/oauth-connected-model.mjs.map +0 -1
  247. package/dist/drizzle/oauth-connected-target.d.mts +0 -6
  248. package/dist/drizzle/oauth-connected-target.mjs +0 -12
  249. package/dist/drizzle/oauth-connected-target.mjs.map +0 -1
  250. package/dist/drizzle/oauth-kernel.mjs +0 -11
  251. package/dist/drizzle/oauth-kernel.mjs.map +0 -1
  252. package/dist/drizzle/oauth-mysql.mjs +0 -8
  253. package/dist/drizzle/oauth-mysql.mjs.map +0 -1
  254. package/dist/drizzle/passkey-kernel.mjs +0 -8
  255. package/dist/drizzle/passkey-kernel.mjs.map +0 -1
  256. package/dist/drizzle/passkey-model.mjs.map +0 -1
  257. package/dist/drizzle/passkey-registration-ceremony-model.mjs +0 -2
  258. package/dist/drizzle/passkey-state.mjs +0 -7
  259. package/dist/drizzle/passkey-state.mjs.map +0 -1
  260. package/dist/drizzle/passkey-target.d.mts +0 -2
  261. package/dist/drizzle/passkey-target.mjs +0 -7
  262. package/dist/drizzle/passkey-target.mjs.map +0 -1
  263. package/dist/drizzle/passkey-write-target.d.mts +0 -5
  264. package/dist/drizzle/passkey-write-target.mjs +0 -7
  265. package/dist/drizzle/passkey-write-target.mjs.map +0 -1
  266. package/dist/drizzle/password-prepared-model.d.mts +0 -92
  267. package/dist/drizzle/password-prepared-model.mjs +0 -11
  268. package/dist/drizzle/password-prepared-model.mjs.map +0 -1
  269. package/dist/drizzle/password-prepared-sql.mjs +0 -395
  270. package/dist/drizzle/password-prepared-sql.mjs.map +0 -1
  271. package/dist/drizzle/password-prepared-state.mjs +0 -104
  272. package/dist/drizzle/password-prepared-state.mjs.map +0 -1
  273. package/dist/drizzle/password-prepared-target.d.mts +0 -13
  274. package/dist/drizzle/password-prepared-target.mjs +0 -62
  275. package/dist/drizzle/password-prepared-target.mjs.map +0 -1
  276. package/dist/drizzle/password-registration.d.mts +0 -7
  277. package/dist/drizzle/password-registration.mjs +0 -137
  278. package/dist/drizzle/password-registration.mjs.map +0 -1
  279. package/dist/drizzle/password-sql.d.mts +0 -1
  280. package/dist/drizzle/password-sql.mjs +0 -10
  281. package/dist/drizzle/password-sql.mjs.map +0 -1
  282. package/dist/drizzle/pg-emails.d.mts +0 -72
  283. package/dist/drizzle/pg-emails.mjs +0 -43
  284. package/dist/drizzle/pg-emails.mjs.map +0 -1
  285. package/dist/drizzle/pg-password-prepared.d.mts +0 -31
  286. package/dist/drizzle/pg-password-prepared.mjs +0 -21
  287. package/dist/drizzle/pg-password-prepared.mjs.map +0 -1
  288. package/dist/drizzle/pg-passwords.d.mts +0 -72
  289. package/dist/drizzle/pg-passwords.mjs +0 -43
  290. package/dist/drizzle/pg-passwords.mjs.map +0 -1
  291. package/dist/drizzle/pg-proofs.d.mts +0 -76
  292. package/dist/drizzle/pg-proofs.mjs +0 -27
  293. package/dist/drizzle/pg-proofs.mjs.map +0 -1
  294. package/dist/drizzle/pg-sessions.d.mts +0 -93
  295. package/dist/drizzle/pg-sessions.mjs +0 -58
  296. package/dist/drizzle/pg-sessions.mjs.map +0 -1
  297. package/dist/drizzle/phone-state.mjs +0 -14
  298. package/dist/drizzle/phone-state.mjs.map +0 -1
  299. package/dist/drizzle/phone-target.d.mts +0 -15
  300. package/dist/drizzle/proof-sql.d.mts +0 -1
  301. package/dist/drizzle/proof-sql.mjs +0 -8
  302. package/dist/drizzle/proof-sql.mjs.map +0 -1
  303. package/dist/drizzle/query-operations.mjs +0 -31
  304. package/dist/drizzle/query-operations.mjs.map +0 -1
  305. package/dist/drizzle/session-sql.d.mts +0 -1
  306. package/dist/drizzle/session-sql.mjs +0 -9
  307. package/dist/drizzle/session-sql.mjs.map +0 -1
  308. package/dist/drizzle/session-target.d.mts +0 -30
  309. package/dist/drizzle/session-target.mjs +0 -49
  310. package/dist/drizzle/session-target.mjs.map +0 -1
  311. package/dist/drizzle/sqlite-emails.mjs +0 -50
  312. package/dist/drizzle/sqlite-emails.mjs.map +0 -1
  313. package/dist/drizzle/sqlite-password-prepared.mjs +0 -26
  314. package/dist/drizzle/sqlite-password-prepared.mjs.map +0 -1
  315. package/dist/drizzle/sqlite-passwords.mjs +0 -54
  316. package/dist/drizzle/sqlite-passwords.mjs.map +0 -1
  317. package/dist/drizzle/sqlite-proofs.mjs +0 -34
  318. package/dist/drizzle/sqlite-proofs.mjs.map +0 -1
  319. package/dist/drizzle/sqlite-sessions.mjs +0 -79
  320. package/dist/drizzle/sqlite-sessions.mjs.map +0 -1
  321. package/dist/drizzle/standalone-guard.d.mts +0 -2
  322. package/dist/drizzle/standalone-guard.mjs +0 -21
  323. package/dist/drizzle/standalone-guard.mjs.map +0 -1
  324. package/dist/drizzle/totp-state.d.mts +0 -37
  325. package/dist/drizzle/totp-state.mjs +0 -287
  326. package/dist/drizzle/totp-state.mjs.map +0 -1
  327. package/dist/drizzle/totp-target.d.mts +0 -15
  328. package/dist/drizzle/transaction-execution.d.mts +0 -2
  329. package/dist/drizzle/transaction-execution.mjs +0 -11
  330. package/dist/drizzle/transaction-execution.mjs.map +0 -1
  331. package/dist/drizzle/transaction-owner.d.mts +0 -1
  332. package/dist/drizzle/transaction-owner.mjs +0 -8
  333. package/dist/drizzle/transaction-owner.mjs.map +0 -1
  334. package/src/drizzle/crypto.ts +0 -14
  335. package/src/drizzle/d1-emails.ts +0 -1945
  336. package/src/drizzle/d1-generated-statement.ts +0 -129
  337. package/src/drizzle/d1-oauth.ts +0 -360
  338. package/src/drizzle/d1-passkey.ts +0 -383
  339. package/src/drizzle/d1-password-prepared.ts +0 -1265
  340. package/src/drizzle/d1-passwords.ts +0 -2060
  341. package/src/drizzle/d1-phone.ts +0 -103
  342. package/src/drizzle/d1-planning.ts +0 -104
  343. package/src/drizzle/d1-proofs.ts +0 -2354
  344. package/src/drizzle/d1-sessions.ts +0 -2940
  345. package/src/drizzle/d1-totp.ts +0 -88
  346. package/src/drizzle/email-registration.ts +0 -850
  347. package/src/drizzle/email-sql.ts +0 -25
  348. package/src/drizzle/mysql-emails.ts +0 -343
  349. package/src/drizzle/mysql-password-prepared.ts +0 -198
  350. package/src/drizzle/mysql-passwords.ts +0 -343
  351. package/src/drizzle/mysql-proofs.ts +0 -196
  352. package/src/drizzle/mysql-sessions.ts +0 -780
  353. package/src/drizzle/oauth-connected-target.ts +0 -21
  354. package/src/drizzle/oauth-kernel.ts +0 -10
  355. package/src/drizzle/oauth-mysql.ts +0 -10
  356. package/src/drizzle/passkey-kernel.ts +0 -4
  357. package/src/drizzle/passkey-state.ts +0 -3
  358. package/src/drizzle/passkey-target.ts +0 -23
  359. package/src/drizzle/passkey-write-target.ts +0 -9
  360. package/src/drizzle/password-prepared-model.ts +0 -241
  361. package/src/drizzle/password-prepared-sql.ts +0 -1201
  362. package/src/drizzle/password-prepared-state.ts +0 -231
  363. package/src/drizzle/password-prepared-target.ts +0 -169
  364. package/src/drizzle/password-registration.ts +0 -369
  365. package/src/drizzle/password-sql.ts +0 -16
  366. package/src/drizzle/pg-emails.ts +0 -343
  367. package/src/drizzle/pg-password-prepared.ts +0 -199
  368. package/src/drizzle/pg-passwords.ts +0 -342
  369. package/src/drizzle/pg-proofs.ts +0 -206
  370. package/src/drizzle/pg-sessions.ts +0 -789
  371. package/src/drizzle/phone-state.ts +0 -21
  372. package/src/drizzle/proof-sql.ts +0 -10
  373. package/src/drizzle/query-operations.ts +0 -49
  374. package/src/drizzle/session-sql.ts +0 -15
  375. package/src/drizzle/session-target.ts +0 -337
  376. package/src/drizzle/sqlite-emails.ts +0 -393
  377. package/src/drizzle/sqlite-password-prepared.ts +0 -230
  378. package/src/drizzle/sqlite-passwords.ts +0 -497
  379. package/src/drizzle/sqlite-proofs.ts +0 -229
  380. package/src/drizzle/sqlite-sessions.ts +0 -1013
  381. package/src/drizzle/totp-state.ts +0 -525
  382. package/src/drizzle/transaction-execution.ts +0 -13
  383. package/src/drizzle/transaction-owner.ts +0 -11
@@ -1,393 +0,0 @@
1
- import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
2
- import { EmailAddressPersistence, type EmailUnavailable } from "@yielded/auth/Email";
3
- import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
4
- /* oxlint-disable no-explicit-any -- proof mapping tables are independently typed by the proof owner; this driver forwards them unchanged to the shared target. */
5
- import type { AnyRelations } from "drizzle-orm";
6
- import type { EffectLibsqlDatabase } from "drizzle-orm/effect-libsql";
7
- import type { EffectSQLiteBunDatabase } from "drizzle-orm/effect-sqlite-bun";
8
- import type { EffectSQLiteNodeDatabase as NodeDatabase } from "drizzle-orm/effect-sqlite-node";
9
- import type { EffectSQLiteWasmDatabase as WasmDatabase } from "drizzle-orm/effect-sqlite-wasm";
10
- import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
11
- import { Effect, Context } from "effect";
12
- import type { SqlError } from "effect/sql/SqlError";
13
-
14
- import type {
15
- EmailAddressMapping,
16
- EmailRegistrationMapping,
17
- EmailSignInMapping,
18
- } from "./email-model";
19
- import type { EmailRegistrationAuthority } from "./email-registration";
20
- import { CurrentEmailSql } from "./email-sql";
21
- import type { EmailSqlQuery } from "./email-sql";
22
- import {
23
- coordinateTargetEmailAddress,
24
- coordinateTargetEmailRegistration,
25
- makeTargetEmailAddressServices,
26
- makeTargetEmailRegistrationServices,
27
- makeTargetEmailSignInServices,
28
- type EmailTargetConfiguration,
29
- } from "./email-target";
30
- import { nativeDatabase } from "./native-database";
31
- import type { ProofPersistenceMapping } from "./proof-model";
32
- import type { ProofSqlQuery } from "./proof-sql";
33
- import type { DatabaseValue as DODatabase } from "./sqlite-do-database";
34
- import {
35
- type TransactionService,
36
- acquireTransactionService,
37
- transactionService,
38
- } from "./standalone-guard";
39
- import type { SuppliedService } from "./SuppliedService";
40
-
41
- export type SqliteEmailDatabase =
42
- | NodeDatabase<AnyRelations>
43
- | EffectSQLiteBunDatabase<AnyRelations>
44
- | EffectLibsqlDatabase<AnyRelations>
45
- | WasmDatabase<AnyRelations>
46
- | DODatabase<AnyRelations>;
47
-
48
- type TransactionOf<D extends SqliteEmailDatabase> = Parameters<Parameters<D["transaction"]>[0]>[0];
49
- type ProofMapping = ProofPersistenceMapping<
50
- any,
51
- any,
52
- any,
53
- any,
54
- any,
55
- any,
56
- any,
57
- any,
58
- any,
59
- any,
60
- any,
61
- any
62
- >;
63
-
64
- export const sqliteEmailConfiguration = (
65
- mode: "interactive" | "synchronous",
66
- standaloneGuard: EmailTargetConfiguration["standaloneGuard"],
67
- proofStandaloneGuard: EmailTargetConfiguration["proof"]["standaloneGuard"],
68
- coordinatorGuard?: EmailTargetConfiguration["coordinatorGuard"],
69
- ): EmailTargetConfiguration => ({
70
- mode,
71
- locking: false,
72
- standaloneGuard,
73
- ...(coordinatorGuard === undefined ? {} : { coordinatorGuard }),
74
- generatedSubjectRows: (query: EmailSqlQuery) => query.returning(),
75
- proof: {
76
- mode,
77
- locking: false,
78
- standaloneGuard: proofStandaloneGuard,
79
- insertIfAbsent: (query: ProofSqlQuery) => query.onConflictDoNothing(),
80
- },
81
- });
82
-
83
- export const makeSqliteEmailTarget = <
84
- DatabaseId,
85
- D extends SqliteEmailDatabase,
86
- Synchronous extends boolean = false,
87
- >(
88
- databaseService: Context.Service<DatabaseId, D>,
89
- configuration:
90
- | EmailTargetConfiguration
91
- | ((service: TransactionService | undefined) => EmailTargetConfiguration),
92
- ) => {
93
- const configurationFor = (database: D) =>
94
- typeof configuration === "function"
95
- ? configuration(transactionService(database))
96
- : configuration;
97
-
98
- const standaloneConfiguration =
99
- typeof configuration === "function"
100
- ? Effect.map(acquireTransactionService(databaseService), configuration)
101
- : Effect.succeed(configuration);
102
-
103
- function coordinateEmailAddress<
104
- Database extends D,
105
- S extends AnySQLiteTable,
106
- I extends AnySQLiteTable,
107
- C extends AnySQLiteTable,
108
- AC extends AnySQLiteTable,
109
- M extends AnySQLiteTable,
110
- NativeId,
111
- Out,
112
- E,
113
- R,
114
- DatabaseError,
115
- DatabaseRequirements,
116
- >(
117
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
118
- options: {
119
- readonly mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>;
120
- readonly proofMapping: ProofMapping;
121
- readonly transaction?: never;
122
- },
123
- body: Effect.Effect<Out, E, Synchronous extends true ? NoInfer<EmailAddressPersistence> : R>,
124
- ): Effect.Effect<
125
- Out,
126
- E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
127
- | (Synchronous extends true ? never : Exclude<R, EmailAddressPersistence>)
128
- | LifecycleHooks
129
- | DatabaseRequirements
130
- >;
131
- function coordinateEmailAddress<
132
- Database extends D,
133
- S extends AnySQLiteTable,
134
- I extends AnySQLiteTable,
135
- C extends AnySQLiteTable,
136
- AC extends AnySQLiteTable,
137
- M extends AnySQLiteTable,
138
- NativeId,
139
- Out,
140
- E,
141
- R,
142
- DatabaseError,
143
- DatabaseRequirements,
144
- TxId,
145
- TxShape,
146
- >(
147
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
148
- options: {
149
- readonly mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>;
150
- readonly proofMapping: ProofMapping;
151
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
152
- },
153
- body: Effect.Effect<
154
- Out,
155
- E,
156
- Synchronous extends true ? NoInfer<EmailAddressPersistence | TxId> : R
157
- >,
158
- ): Effect.Effect<
159
- Out,
160
- E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
161
- | (Synchronous extends true ? never : Exclude<R, EmailAddressPersistence | TxId>)
162
- | LifecycleHooks
163
- | DatabaseRequirements
164
- >;
165
- function coordinateEmailAddress<
166
- Database extends D,
167
- S extends AnySQLiteTable,
168
- I extends AnySQLiteTable,
169
- C extends AnySQLiteTable,
170
- AC extends AnySQLiteTable,
171
- M extends AnySQLiteTable,
172
- NativeId,
173
- Out,
174
- E,
175
- R,
176
- DatabaseError,
177
- DatabaseRequirements,
178
- TxId,
179
- TxShape,
180
- >(
181
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
182
- options: {
183
- readonly mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>;
184
- readonly proofMapping: ProofMapping;
185
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
186
- },
187
- body: Effect.Effect<Out, E, R>,
188
- ): Effect.Effect<
189
- Out,
190
- E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
191
- Exclude<R, EmailAddressPersistence> | LifecycleHooks | DatabaseRequirements
192
- > {
193
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
194
- coordinateTargetEmailAddress<
195
- TransactionOf<Database>,
196
- Out,
197
- E,
198
- Exclude<R, EmailAddressPersistence>
199
- >(
200
- database,
201
- options.mapping,
202
- options.proofMapping,
203
- configurationFor(database),
204
- (
205
- transaction: TransactionOf<Database>,
206
- services: { readonly emailAddressPersistence: EmailAddressPersistence["Service"] },
207
- ) => {
208
- const provided = Context.make(EmailAddressPersistence, services.emailAddressPersistence);
209
- const work = Effect.provideContext(body, provided);
210
-
211
- return options.transaction === undefined
212
- ? work
213
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
214
- },
215
- ).pipe(Effect.provideService(NativeDatabase, database)),
216
- );
217
- }
218
- function coordinateEmailRegistration<
219
- Database extends D,
220
- TargetId,
221
- Registration,
222
- S extends AnySQLiteTable,
223
- I extends AnySQLiteTable,
224
- C extends AnySQLiteTable,
225
- AC extends AnySQLiteTable,
226
- Rq extends AnySQLiteTable,
227
- NativeId,
228
- Out,
229
- E,
230
- R,
231
- DatabaseError,
232
- DatabaseRequirements,
233
- >(
234
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
235
- options: {
236
- readonly mapping: EmailRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
237
- readonly proofMapping: ProofMapping;
238
- readonly target: SuppliedService<TargetId, EmailRegistrationAuthority<Registration>>;
239
- readonly transaction?: never;
240
- },
241
- body: Effect.Effect<Out, E, Synchronous extends true ? NoInfer<TargetId> : R>,
242
- ): Effect.Effect<
243
- Out,
244
- E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
245
- | (Synchronous extends true ? never : Exclude<R, TargetId>)
246
- | LifecycleHooks
247
- | DatabaseRequirements
248
- >;
249
- function coordinateEmailRegistration<
250
- Database extends D,
251
- TargetId,
252
- Registration,
253
- S extends AnySQLiteTable,
254
- I extends AnySQLiteTable,
255
- C extends AnySQLiteTable,
256
- AC extends AnySQLiteTable,
257
- Rq extends AnySQLiteTable,
258
- NativeId,
259
- Out,
260
- E,
261
- R,
262
- DatabaseError,
263
- DatabaseRequirements,
264
- TxId,
265
- TxShape,
266
- >(
267
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
268
- options: {
269
- readonly mapping: EmailRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
270
- readonly proofMapping: ProofMapping;
271
- readonly target: SuppliedService<TargetId, EmailRegistrationAuthority<Registration>>;
272
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
273
- },
274
- body: Effect.Effect<Out, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,
275
- ): Effect.Effect<
276
- Out,
277
- E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
278
- | (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)
279
- | LifecycleHooks
280
- | DatabaseRequirements
281
- >;
282
- function coordinateEmailRegistration<
283
- Database extends D,
284
- TargetId,
285
- Registration,
286
- S extends AnySQLiteTable,
287
- I extends AnySQLiteTable,
288
- C extends AnySQLiteTable,
289
- AC extends AnySQLiteTable,
290
- Rq extends AnySQLiteTable,
291
- NativeId,
292
- Out,
293
- E,
294
- R,
295
- DatabaseError,
296
- DatabaseRequirements,
297
- TxId,
298
- TxShape,
299
- >(
300
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
301
- options: {
302
- readonly mapping: EmailRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
303
- readonly proofMapping: ProofMapping;
304
- readonly target: SuppliedService<TargetId, EmailRegistrationAuthority<Registration>>;
305
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
306
- },
307
- body: Effect.Effect<Out, E, R>,
308
- ): Effect.Effect<
309
- Out,
310
- E | EmailUnavailable | HookConfigurationError | SqlError | DatabaseError,
311
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
312
- > {
313
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
314
- coordinateTargetEmailRegistration<
315
- Registration,
316
- TransactionOf<Database>,
317
- Out,
318
- E,
319
- Exclude<R, TargetId>
320
- >(
321
- database,
322
- options.mapping,
323
- options.proofMapping,
324
- configurationFor(database),
325
- (
326
- transaction: TransactionOf<Database>,
327
- services: { readonly registrationAuthority: EmailRegistrationAuthority<Registration> },
328
- ) => {
329
- const provided = Context.make(options.target, services.registrationAuthority);
330
- const work = Effect.provideContext(body, provided);
331
-
332
- return options.transaction === undefined
333
- ? work
334
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
335
- },
336
- ).pipe(Effect.provideService(NativeDatabase, database)),
337
- );
338
- }
339
-
340
- return {
341
- makeEmailSignInServices: <
342
- S extends AnySQLiteTable,
343
- I extends AnySQLiteTable,
344
- C extends AnySQLiteTable,
345
- NativeId,
346
- >(
347
- mapping: EmailSignInMapping<S, I, C, NativeId>,
348
- ) =>
349
- Effect.flatMap(standaloneConfiguration, (configuration) =>
350
- makeTargetEmailSignInServices(mapping, configuration),
351
- ).pipe(
352
- Effect.provideServiceEffect(CurrentEmailSql, nativeDatabase(databaseService)),
353
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
354
- ),
355
- makeEmailAddressServices: <
356
- S extends AnySQLiteTable,
357
- I extends AnySQLiteTable,
358
- C extends AnySQLiteTable,
359
- AC extends AnySQLiteTable,
360
- M extends AnySQLiteTable,
361
- NativeId,
362
- >(
363
- mapping: EmailAddressMapping<S, I, C, AC, M, NativeId>,
364
- proofMapping: ProofMapping,
365
- ) =>
366
- Effect.flatMap(standaloneConfiguration, (configuration) =>
367
- makeTargetEmailAddressServices(mapping, proofMapping, configuration),
368
- ).pipe(
369
- Effect.provideServiceEffect(CurrentEmailSql, nativeDatabase(databaseService)),
370
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
371
- ),
372
- coordinateEmailAddress,
373
- makeEmailRegistrationServices: <
374
- Registration,
375
- S extends AnySQLiteTable,
376
- I extends AnySQLiteTable,
377
- C extends AnySQLiteTable,
378
- AC extends AnySQLiteTable,
379
- Rq extends AnySQLiteTable,
380
- NativeId,
381
- >(
382
- mapping: EmailRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>,
383
- proofMapping: ProofMapping,
384
- ) =>
385
- Effect.flatMap(standaloneConfiguration, (configuration) =>
386
- makeTargetEmailRegistrationServices<Registration>(mapping, proofMapping, configuration),
387
- ).pipe(
388
- Effect.provideServiceEffect(CurrentEmailSql, nativeDatabase(databaseService)),
389
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
390
- ),
391
- coordinateEmailRegistration,
392
- };
393
- };
@@ -1,230 +0,0 @@
1
- import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
2
- import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
3
- import type { PasswordUnavailable, PasswordPreparedPersistence } from "@yielded/auth/Password";
4
- import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
5
- import { Effect, Context } from "effect";
6
- import type { SqlError } from "effect/sql/SqlError";
7
-
8
- import { nativeDatabase } from "./native-database";
9
- import type {
10
- PasswordPreparedPersistenceMapping,
11
- PasswordPreparedProofMapping,
12
- } from "./password-prepared-model";
13
- import {
14
- makeTargetPasswordPreparedPersistenceServices,
15
- coordinateTargetPasswordPreparedPersistence,
16
- } from "./password-prepared-target";
17
- import { CurrentPasswordSql } from "./password-sql";
18
- import type { PasswordTargetConfiguration } from "./password-target";
19
- import type { SqlitePasswordDatabase } from "./sqlite-passwords";
20
- import {
21
- type TransactionService,
22
- acquireTransactionService,
23
- transactionService,
24
- } from "./standalone-guard";
25
- import type { SuppliedService } from "./SuppliedService";
26
- type TransactionOf<D extends SqlitePasswordDatabase> = Parameters<
27
- Parameters<D["transaction"]>[0]
28
- >[0];
29
-
30
- export const makeSqlitePasswordPreparedTarget = <
31
- DatabaseId,
32
- D extends SqlitePasswordDatabase,
33
- Synchronous extends boolean = false,
34
- >(
35
- databaseService: Context.Service<DatabaseId, D>,
36
- configuration:
37
- | PasswordTargetConfiguration
38
- | ((service: TransactionService | undefined) => PasswordTargetConfiguration),
39
- ) => {
40
- const configurationFor = (database: D) =>
41
- typeof configuration === "function"
42
- ? configuration(transactionService(database))
43
- : configuration;
44
-
45
- const standaloneConfiguration =
46
- typeof configuration === "function"
47
- ? Effect.map(acquireTransactionService(databaseService), configuration)
48
- : Effect.succeed(configuration);
49
-
50
- function coordinatePasswordPreparedPersistence<
51
- Database extends D,
52
- TargetId,
53
- S extends AnySQLiteTable,
54
- I extends AnySQLiteTable,
55
- C extends AnySQLiteTable,
56
- AC extends AnySQLiteTable,
57
- M extends AnySQLiteTable,
58
- T extends AnySQLiteTable,
59
- B extends AnySQLiteTable,
60
- NativeId,
61
- PS extends AnySQLiteTable,
62
- PC extends AnySQLiteTable,
63
- PM extends AnySQLiteTable,
64
- PSub extends AnySQLiteTable,
65
- PI extends AnySQLiteTable,
66
- PCr extends AnySQLiteTable,
67
- PNativeId,
68
- Out,
69
- E,
70
- R,
71
- DatabaseError,
72
- DatabaseRequirements,
73
- >(
74
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
75
- options: {
76
- readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, M, T, B, NativeId>;
77
- readonly proofMapping?:
78
- | PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
79
- | undefined;
80
- readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
81
- readonly transaction?: never;
82
- },
83
- body: Effect.Effect<Out, E, Synchronous extends true ? NoInfer<TargetId> : R>,
84
- ): Effect.Effect<
85
- Out,
86
- E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
87
- | (Synchronous extends true ? never : Exclude<R, TargetId>)
88
- | LifecycleHooks
89
- | DatabaseRequirements
90
- >;
91
- function coordinatePasswordPreparedPersistence<
92
- Database extends D,
93
- TargetId,
94
- S extends AnySQLiteTable,
95
- I extends AnySQLiteTable,
96
- C extends AnySQLiteTable,
97
- AC extends AnySQLiteTable,
98
- M extends AnySQLiteTable,
99
- T extends AnySQLiteTable,
100
- B extends AnySQLiteTable,
101
- NativeId,
102
- PS extends AnySQLiteTable,
103
- PC extends AnySQLiteTable,
104
- PM extends AnySQLiteTable,
105
- PSub extends AnySQLiteTable,
106
- PI extends AnySQLiteTable,
107
- PCr extends AnySQLiteTable,
108
- PNativeId,
109
- Out,
110
- E,
111
- R,
112
- DatabaseError,
113
- DatabaseRequirements,
114
- TxId,
115
- TxShape,
116
- >(
117
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
118
- options: {
119
- readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, M, T, B, NativeId>;
120
- readonly proofMapping?:
121
- | PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
122
- | undefined;
123
- readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
124
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
125
- },
126
- body: Effect.Effect<Out, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,
127
- ): Effect.Effect<
128
- Out,
129
- E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
130
- | (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)
131
- | LifecycleHooks
132
- | DatabaseRequirements
133
- >;
134
- function coordinatePasswordPreparedPersistence<
135
- Database extends D,
136
- TargetId,
137
- S extends AnySQLiteTable,
138
- I extends AnySQLiteTable,
139
- C extends AnySQLiteTable,
140
- AC extends AnySQLiteTable,
141
- M extends AnySQLiteTable,
142
- T extends AnySQLiteTable,
143
- B extends AnySQLiteTable,
144
- NativeId,
145
- PS extends AnySQLiteTable,
146
- PC extends AnySQLiteTable,
147
- PM extends AnySQLiteTable,
148
- PSub extends AnySQLiteTable,
149
- PI extends AnySQLiteTable,
150
- PCr extends AnySQLiteTable,
151
- PNativeId,
152
- Out,
153
- E,
154
- R,
155
- DatabaseError,
156
- DatabaseRequirements,
157
- TxId,
158
- TxShape,
159
- >(
160
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
161
- options: {
162
- readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, M, T, B, NativeId>;
163
- readonly proofMapping?:
164
- | PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
165
- | undefined;
166
- readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
167
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
168
- },
169
- body: Effect.Effect<Out, E, R>,
170
- ): Effect.Effect<
171
- Out,
172
- E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
173
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
174
- > {
175
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
176
- coordinateTargetPasswordPreparedPersistence<
177
- TransactionOf<Database>,
178
- Out,
179
- E,
180
- Exclude<R, TargetId>
181
- >(
182
- database,
183
- options.mapping,
184
- configurationFor(database),
185
- options.proofMapping,
186
- (
187
- transaction: TransactionOf<Database>,
188
- services: { readonly passwordPreparedPersistence: PasswordPreparedPersistence },
189
- ) => {
190
- const provided = Context.make(options.target, services.passwordPreparedPersistence);
191
- const work = Effect.provideContext(body, provided);
192
-
193
- return options.transaction === undefined
194
- ? work
195
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
196
- },
197
- ).pipe(Effect.provideService(NativeDatabase, database)),
198
- );
199
- }
200
-
201
- return {
202
- makePasswordPreparedPersistenceServices: <
203
- S extends AnySQLiteTable,
204
- I extends AnySQLiteTable,
205
- C extends AnySQLiteTable,
206
- AC extends AnySQLiteTable,
207
- M extends AnySQLiteTable,
208
- T extends AnySQLiteTable,
209
- B extends AnySQLiteTable,
210
- NativeId,
211
- PS extends AnySQLiteTable = AnySQLiteTable,
212
- PC extends AnySQLiteTable = AnySQLiteTable,
213
- PM extends AnySQLiteTable = AnySQLiteTable,
214
- PSub extends AnySQLiteTable = AnySQLiteTable,
215
- PI extends AnySQLiteTable = AnySQLiteTable,
216
- PCr extends AnySQLiteTable = AnySQLiteTable,
217
- PNativeId = unknown,
218
- >(
219
- mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, M, T, B, NativeId>,
220
- proofMapping?: PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>,
221
- ) =>
222
- Effect.flatMap(standaloneConfiguration, (configuration) =>
223
- makeTargetPasswordPreparedPersistenceServices(mapping, configuration, proofMapping),
224
- ).pipe(
225
- Effect.provideServiceEffect(CurrentPasswordSql, nativeDatabase(databaseService)),
226
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
227
- ),
228
- coordinatePasswordPreparedPersistence,
229
- };
230
- };