@yielded/auth-persistence 0.1.0-beta.7

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 (526) hide show
  1. package/README.md +21 -0
  2. package/dist/Drizzle.d.mts +28 -0
  3. package/dist/Drizzle.mjs +28 -0
  4. package/dist/DrizzleD1.d.mts +963 -0
  5. package/dist/DrizzleD1.mjs +29 -0
  6. package/dist/DrizzleD1.mjs.map +1 -0
  7. package/dist/DrizzleLibsql.d.mts +2284 -0
  8. package/dist/DrizzleLibsql.mjs +92 -0
  9. package/dist/DrizzleLibsql.mjs.map +1 -0
  10. package/dist/DrizzleMysql2.d.mts +1820 -0
  11. package/dist/DrizzleMysql2.mjs +55 -0
  12. package/dist/DrizzleMysql2.mjs.map +1 -0
  13. package/dist/DrizzlePglite.d.mts +1826 -0
  14. package/dist/DrizzlePglite.mjs +53 -0
  15. package/dist/DrizzlePglite.mjs.map +1 -0
  16. package/dist/DrizzlePostgres.d.mts +1826 -0
  17. package/dist/DrizzlePostgres.mjs +53 -0
  18. package/dist/DrizzlePostgres.mjs.map +1 -0
  19. package/dist/DrizzleSqliteBun.d.mts +2279 -0
  20. package/dist/DrizzleSqliteBun.mjs +70 -0
  21. package/dist/DrizzleSqliteBun.mjs.map +1 -0
  22. package/dist/DrizzleSqliteDo.d.mts +2329 -0
  23. package/dist/DrizzleSqliteDo.mjs +105 -0
  24. package/dist/DrizzleSqliteDo.mjs.map +1 -0
  25. package/dist/DrizzleSqliteNode.d.mts +2279 -0
  26. package/dist/DrizzleSqliteNode.mjs +70 -0
  27. package/dist/DrizzleSqliteNode.mjs.map +1 -0
  28. package/dist/DrizzleSqliteWasm.d.mts +2282 -0
  29. package/dist/DrizzleSqliteWasm.mjs +70 -0
  30. package/dist/DrizzleSqliteWasm.mjs.map +1 -0
  31. package/dist/drizzle/D1BatchStatements.d.mts +11 -0
  32. package/dist/drizzle/D1BatchStatements.mjs +8 -0
  33. package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
  34. package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
  35. package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
  36. package/dist/drizzle/SuppliedService.d.mts +10 -0
  37. package/dist/drizzle/d1-emails.d.mts +62 -0
  38. package/dist/drizzle/d1-emails.mjs +580 -0
  39. package/dist/drizzle/d1-emails.mjs.map +1 -0
  40. package/dist/drizzle/d1-generated-statement.d.mts +2 -0
  41. package/dist/drizzle/d1-generated-statement.mjs +79 -0
  42. package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
  43. package/dist/drizzle/d1-identity.d.mts +31 -0
  44. package/dist/drizzle/d1-identity.mjs +119 -0
  45. package/dist/drizzle/d1-identity.mjs.map +1 -0
  46. package/dist/drizzle/d1-oauth.d.mts +301 -0
  47. package/dist/drizzle/d1-oauth.mjs +76 -0
  48. package/dist/drizzle/d1-oauth.mjs.map +1 -0
  49. package/dist/drizzle/d1-passkey.d.mts +51 -0
  50. package/dist/drizzle/d1-passkey.mjs +95 -0
  51. package/dist/drizzle/d1-passkey.mjs.map +1 -0
  52. package/dist/drizzle/d1-password-prepared.d.mts +25 -0
  53. package/dist/drizzle/d1-password-prepared.mjs +461 -0
  54. package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
  55. package/dist/drizzle/d1-passwords.d.mts +87 -0
  56. package/dist/drizzle/d1-passwords.mjs +1004 -0
  57. package/dist/drizzle/d1-passwords.mjs.map +1 -0
  58. package/dist/drizzle/d1-phone.d.mts +26 -0
  59. package/dist/drizzle/d1-phone.mjs +30 -0
  60. package/dist/drizzle/d1-phone.mjs.map +1 -0
  61. package/dist/drizzle/d1-planning.d.mts +12 -0
  62. package/dist/drizzle/d1-planning.mjs +43 -0
  63. package/dist/drizzle/d1-planning.mjs.map +1 -0
  64. package/dist/drizzle/d1-proofs.d.mts +80 -0
  65. package/dist/drizzle/d1-proofs.mjs +830 -0
  66. package/dist/drizzle/d1-proofs.mjs.map +1 -0
  67. package/dist/drizzle/d1-sessions.d.mts +67 -0
  68. package/dist/drizzle/d1-sessions.mjs +966 -0
  69. package/dist/drizzle/d1-sessions.mjs.map +1 -0
  70. package/dist/drizzle/d1-totp.d.mts +26 -0
  71. package/dist/drizzle/d1-totp.mjs +27 -0
  72. package/dist/drizzle/d1-totp.mjs.map +1 -0
  73. package/dist/drizzle/email-model.d.mts +354 -0
  74. package/dist/drizzle/email-model.mjs +21 -0
  75. package/dist/drizzle/email-model.mjs.map +1 -0
  76. package/dist/drizzle/email-registration.d.mts +30 -0
  77. package/dist/drizzle/email-registration.mjs +238 -0
  78. package/dist/drizzle/email-registration.mjs.map +1 -0
  79. package/dist/drizzle/email-sql.d.mts +4 -0
  80. package/dist/drizzle/email-sql.mjs +9 -0
  81. package/dist/drizzle/email-sql.mjs.map +1 -0
  82. package/dist/drizzle/email-target.d.mts +20 -0
  83. package/dist/drizzle/email-target.mjs +72 -0
  84. package/dist/drizzle/email-target.mjs.map +1 -0
  85. package/dist/drizzle/model.d.mts +250 -0
  86. package/dist/drizzle/model.mjs +58 -0
  87. package/dist/drizzle/model.mjs.map +1 -0
  88. package/dist/drizzle/mysql-emails.d.mts +71 -0
  89. package/dist/drizzle/mysql-emails.mjs +38 -0
  90. package/dist/drizzle/mysql-emails.mjs.map +1 -0
  91. package/dist/drizzle/mysql-identity.d.mts +22 -0
  92. package/dist/drizzle/mysql-identity.mjs +94 -0
  93. package/dist/drizzle/mysql-identity.mjs.map +1 -0
  94. package/dist/drizzle/mysql-password-prepared.d.mts +30 -0
  95. package/dist/drizzle/mysql-password-prepared.mjs +16 -0
  96. package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
  97. package/dist/drizzle/mysql-passwords.d.mts +86 -0
  98. package/dist/drizzle/mysql-passwords.mjs +38 -0
  99. package/dist/drizzle/mysql-passwords.mjs.map +1 -0
  100. package/dist/drizzle/mysql-proofs.d.mts +75 -0
  101. package/dist/drizzle/mysql-proofs.mjs +23 -0
  102. package/dist/drizzle/mysql-proofs.mjs.map +1 -0
  103. package/dist/drizzle/mysql-sessions.d.mts +237 -0
  104. package/dist/drizzle/mysql-sessions.mjs +53 -0
  105. package/dist/drizzle/mysql-sessions.mjs.map +1 -0
  106. package/dist/drizzle/mysql.d.mts +70 -0
  107. package/dist/drizzle/mysql.mjs +218 -0
  108. package/dist/drizzle/mysql.mjs.map +1 -0
  109. package/dist/drizzle/oauth-accounts.mjs +358 -0
  110. package/dist/drizzle/oauth-accounts.mjs.map +1 -0
  111. package/dist/drizzle/oauth-connected-access.mjs +210 -0
  112. package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
  113. package/dist/drizzle/oauth-connected-collection.mjs +202 -0
  114. package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
  115. package/dist/drizzle/oauth-connected-custody.mjs +146 -0
  116. package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
  117. package/dist/drizzle/oauth-connected-drivers.mjs +76 -0
  118. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
  119. package/dist/drizzle/oauth-connected-flow.mjs +247 -0
  120. package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
  121. package/dist/drizzle/oauth-connected-input.mjs +103 -0
  122. package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
  123. package/dist/drizzle/oauth-connected-maintenance.mjs +214 -0
  124. package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
  125. package/dist/drizzle/oauth-connected-management.mjs +228 -0
  126. package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
  127. package/dist/drizzle/oauth-connected-model.d.mts +278 -0
  128. package/dist/drizzle/oauth-connected-model.mjs +22 -0
  129. package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
  130. package/dist/drizzle/oauth-connected-reference.d.mts +17 -0
  131. package/dist/drizzle/oauth-connected-reference.mjs +53 -0
  132. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
  133. package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
  134. package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
  135. package/dist/drizzle/oauth-connected-state.d.mts +14 -0
  136. package/dist/drizzle/oauth-connected-state.mjs +422 -0
  137. package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
  138. package/dist/drizzle/oauth-connected-target.d.mts +753 -0
  139. package/dist/drizzle/oauth-connected-target.mjs +91 -0
  140. package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
  141. package/dist/drizzle/oauth-drivers.mjs +51 -0
  142. package/dist/drizzle/oauth-drivers.mjs.map +1 -0
  143. package/dist/drizzle/oauth-flow.d.mts +5 -0
  144. package/dist/drizzle/oauth-flow.mjs +253 -0
  145. package/dist/drizzle/oauth-flow.mjs.map +1 -0
  146. package/dist/drizzle/oauth-input.mjs +127 -0
  147. package/dist/drizzle/oauth-input.mjs.map +1 -0
  148. package/dist/drizzle/oauth-model.d.mts +463 -0
  149. package/dist/drizzle/oauth-model.mjs +49 -0
  150. package/dist/drizzle/oauth-model.mjs.map +1 -0
  151. package/dist/drizzle/oauth-mysql.mjs +8 -0
  152. package/dist/drizzle/oauth-mysql.mjs.map +1 -0
  153. package/dist/drizzle/oauth-owner.d.mts +4 -0
  154. package/dist/drizzle/oauth-owner.mjs +10 -0
  155. package/dist/drizzle/oauth-owner.mjs.map +1 -0
  156. package/dist/drizzle/oauth-registration.d.mts +6 -0
  157. package/dist/drizzle/oauth-registration.mjs +374 -0
  158. package/dist/drizzle/oauth-registration.mjs.map +1 -0
  159. package/dist/drizzle/oauth-state.mjs +107 -0
  160. package/dist/drizzle/oauth-state.mjs.map +1 -0
  161. package/dist/drizzle/oauth-target.d.mts +111 -0
  162. package/dist/drizzle/oauth-target.mjs +246 -0
  163. package/dist/drizzle/oauth-target.mjs.map +1 -0
  164. package/dist/drizzle/passkey-drivers.mjs +34 -0
  165. package/dist/drizzle/passkey-drivers.mjs.map +1 -0
  166. package/dist/drizzle/passkey-kernel.mjs +8 -0
  167. package/dist/drizzle/passkey-kernel.mjs.map +1 -0
  168. package/dist/drizzle/passkey-model.d.mts +272 -0
  169. package/dist/drizzle/passkey-model.mjs +34 -0
  170. package/dist/drizzle/passkey-model.mjs.map +1 -0
  171. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
  172. package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
  173. package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -0
  174. package/dist/drizzle/passkey-state.mjs +7 -0
  175. package/dist/drizzle/passkey-state.mjs.map +1 -0
  176. package/dist/drizzle/passkey-target.d.mts +9 -0
  177. package/dist/drizzle/passkey-target.mjs +7 -0
  178. package/dist/drizzle/passkey-target.mjs.map +1 -0
  179. package/dist/drizzle/passkey-write-drivers.mjs +32 -0
  180. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
  181. package/dist/drizzle/passkey-write-model.d.mts +190 -0
  182. package/dist/drizzle/passkey-write-model.mjs +13 -0
  183. package/dist/drizzle/passkey-write-model.mjs.map +1 -0
  184. package/dist/drizzle/passkey-write-target.d.mts +11 -0
  185. package/dist/drizzle/passkey-write-target.mjs +7 -0
  186. package/dist/drizzle/passkey-write-target.mjs.map +1 -0
  187. package/dist/drizzle/password-model.d.mts +329 -0
  188. package/dist/drizzle/password-model.mjs +23 -0
  189. package/dist/drizzle/password-model.mjs.map +1 -0
  190. package/dist/drizzle/password-prepared-model.d.mts +94 -0
  191. package/dist/drizzle/password-prepared-model.mjs +11 -0
  192. package/dist/drizzle/password-prepared-model.mjs.map +1 -0
  193. package/dist/drizzle/password-prepared-sql.mjs +390 -0
  194. package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
  195. package/dist/drizzle/password-prepared-state.mjs +104 -0
  196. package/dist/drizzle/password-prepared-state.mjs.map +1 -0
  197. package/dist/drizzle/password-prepared-target.d.mts +12 -0
  198. package/dist/drizzle/password-prepared-target.mjs +56 -0
  199. package/dist/drizzle/password-prepared-target.mjs.map +1 -0
  200. package/dist/drizzle/password-registration.d.mts +19 -0
  201. package/dist/drizzle/password-registration.mjs +135 -0
  202. package/dist/drizzle/password-registration.mjs.map +1 -0
  203. package/dist/drizzle/password-sql.d.mts +5 -0
  204. package/dist/drizzle/password-sql.mjs +9 -0
  205. package/dist/drizzle/password-sql.mjs.map +1 -0
  206. package/dist/drizzle/password-target.d.mts +17 -0
  207. package/dist/drizzle/password-target.mjs +61 -0
  208. package/dist/drizzle/password-target.mjs.map +1 -0
  209. package/dist/drizzle/pg-emails.d.mts +72 -0
  210. package/dist/drizzle/pg-emails.mjs +38 -0
  211. package/dist/drizzle/pg-emails.mjs.map +1 -0
  212. package/dist/drizzle/pg-password-prepared.d.mts +31 -0
  213. package/dist/drizzle/pg-password-prepared.mjs +16 -0
  214. package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
  215. package/dist/drizzle/pg-passwords.d.mts +87 -0
  216. package/dist/drizzle/pg-passwords.mjs +38 -0
  217. package/dist/drizzle/pg-passwords.mjs.map +1 -0
  218. package/dist/drizzle/pg-proofs.d.mts +76 -0
  219. package/dist/drizzle/pg-proofs.mjs +22 -0
  220. package/dist/drizzle/pg-proofs.mjs.map +1 -0
  221. package/dist/drizzle/pg-sessions.d.mts +238 -0
  222. package/dist/drizzle/pg-sessions.mjs +53 -0
  223. package/dist/drizzle/pg-sessions.mjs.map +1 -0
  224. package/dist/drizzle/pg.d.mts +81 -0
  225. package/dist/drizzle/pg.mjs +290 -0
  226. package/dist/drizzle/pg.mjs.map +1 -0
  227. package/dist/drizzle/phone-model.d.mts +115 -0
  228. package/dist/drizzle/phone-model.mjs +39 -0
  229. package/dist/drizzle/phone-model.mjs.map +1 -0
  230. package/dist/drizzle/phone-state.mjs +16 -0
  231. package/dist/drizzle/phone-state.mjs.map +1 -0
  232. package/dist/drizzle/phone-target.d.mts +17 -0
  233. package/dist/drizzle/phone-target.mjs +170 -0
  234. package/dist/drizzle/phone-target.mjs.map +1 -0
  235. package/dist/drizzle/proof-model.d.mts +286 -0
  236. package/dist/drizzle/proof-model.mjs +17 -0
  237. package/dist/drizzle/proof-model.mjs.map +1 -0
  238. package/dist/drizzle/proof-sql.d.mts +4 -0
  239. package/dist/drizzle/proof-sql.mjs +8 -0
  240. package/dist/drizzle/proof-sql.mjs.map +1 -0
  241. package/dist/drizzle/proof-target.d.mts +12 -0
  242. package/dist/drizzle/proof-target.mjs +36 -0
  243. package/dist/drizzle/proof-target.mjs.map +1 -0
  244. package/dist/drizzle/query-operations.mjs +26 -0
  245. package/dist/drizzle/query-operations.mjs.map +1 -0
  246. package/dist/drizzle/session-model.d.mts +200 -0
  247. package/dist/drizzle/session-model.mjs +20 -0
  248. package/dist/drizzle/session-model.mjs.map +1 -0
  249. package/dist/drizzle/session-sql.mjs +8 -0
  250. package/dist/drizzle/session-sql.mjs.map +1 -0
  251. package/dist/drizzle/session-target.d.mts +28 -0
  252. package/dist/drizzle/session-target.mjs +47 -0
  253. package/dist/drizzle/session-target.mjs.map +1 -0
  254. package/dist/drizzle/sqlite-emails.mjs +45 -0
  255. package/dist/drizzle/sqlite-emails.mjs.map +1 -0
  256. package/dist/drizzle/sqlite-identity.mjs +91 -0
  257. package/dist/drizzle/sqlite-identity.mjs.map +1 -0
  258. package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
  259. package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
  260. package/dist/drizzle/sqlite-passwords.mjs +49 -0
  261. package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
  262. package/dist/drizzle/sqlite-proofs.mjs +29 -0
  263. package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
  264. package/dist/drizzle/sqlite-sessions.mjs +74 -0
  265. package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
  266. package/dist/drizzle/sqlite.d.mts +78 -0
  267. package/dist/drizzle/sqlite.mjs +217 -0
  268. package/dist/drizzle/sqlite.mjs.map +1 -0
  269. package/dist/drizzle/standalone-guard.mjs +19 -0
  270. package/dist/drizzle/standalone-guard.mjs.map +1 -0
  271. package/dist/drizzle/step-up-model.d.mts +65 -0
  272. package/dist/drizzle/step-up-model.mjs +9 -0
  273. package/dist/drizzle/step-up-model.mjs.map +1 -0
  274. package/dist/drizzle/step-up-state.mjs +32 -0
  275. package/dist/drizzle/step-up-state.mjs.map +1 -0
  276. package/dist/drizzle/totp-model.d.mts +84 -0
  277. package/dist/drizzle/totp-model.mjs +13 -0
  278. package/dist/drizzle/totp-model.mjs.map +1 -0
  279. package/dist/drizzle/totp-state.d.mts +38 -0
  280. package/dist/drizzle/totp-state.mjs +287 -0
  281. package/dist/drizzle/totp-state.mjs.map +1 -0
  282. package/dist/drizzle/totp-target.d.mts +17 -0
  283. package/dist/drizzle/totp-target.mjs +81 -0
  284. package/dist/drizzle/totp-target.mjs.map +1 -0
  285. package/dist/drizzle/transaction-execution.d.mts +4 -0
  286. package/dist/drizzle/transaction-execution.mjs +11 -0
  287. package/dist/drizzle/transaction-execution.mjs.map +1 -0
  288. package/dist/drizzle/transaction-mysql.mjs +46 -0
  289. package/dist/drizzle/transaction-mysql.mjs.map +1 -0
  290. package/dist/drizzle/transaction-owner.d.mts +2 -0
  291. package/dist/drizzle/transaction-owner.mjs +8 -0
  292. package/dist/drizzle/transaction-owner.mjs.map +1 -0
  293. package/dist/index.d.mts +5 -0
  294. package/dist/index.mjs +5 -0
  295. package/dist/internal/configuration.d.mts +174 -0
  296. package/dist/internal/configuration.mjs +7 -0
  297. package/dist/internal/configuration.mjs.map +1 -0
  298. package/dist/internal/drizzle-migrations.mjs +19 -0
  299. package/dist/internal/drizzle-migrations.mjs.map +1 -0
  300. package/dist/internal/drizzle-postgres.mjs +39 -0
  301. package/dist/internal/drizzle-postgres.mjs.map +1 -0
  302. package/dist/internal/drizzle-sqlite.mjs +37 -0
  303. package/dist/internal/drizzle-sqlite.mjs.map +1 -0
  304. package/dist/internal/email-kernel.d.mts +13 -0
  305. package/dist/internal/email-kernel.mjs +487 -0
  306. package/dist/internal/email-kernel.mjs.map +1 -0
  307. package/dist/internal/mapping-error.d.mts +11 -0
  308. package/dist/internal/mapping-error.mjs +30 -0
  309. package/dist/internal/mapping-error.mjs.map +1 -0
  310. package/dist/internal/passkey/admission.d.mts +7 -0
  311. package/dist/internal/passkey/admission.mjs +216 -0
  312. package/dist/internal/passkey/admission.mjs.map +1 -0
  313. package/dist/internal/passkey/credentials.d.mts +6 -0
  314. package/dist/internal/passkey/credentials.mjs +249 -0
  315. package/dist/internal/passkey/credentials.mjs.map +1 -0
  316. package/dist/internal/passkey/enrollment.mjs +138 -0
  317. package/dist/internal/passkey/enrollment.mjs.map +1 -0
  318. package/dist/internal/passkey/flow.d.mts +10 -0
  319. package/dist/internal/passkey/flow.mjs +452 -0
  320. package/dist/internal/passkey/flow.mjs.map +1 -0
  321. package/dist/internal/passkey/management.mjs +231 -0
  322. package/dist/internal/passkey/management.mjs.map +1 -0
  323. package/dist/internal/passkey/registration-ceremony.d.mts +9 -0
  324. package/dist/internal/passkey/registration-ceremony.mjs +129 -0
  325. package/dist/internal/passkey/registration-ceremony.mjs.map +1 -0
  326. package/dist/internal/passkey/registration-custody.d.mts +2 -0
  327. package/dist/internal/passkey/registration-custody.mjs +52 -0
  328. package/dist/internal/passkey/registration-custody.mjs.map +1 -0
  329. package/dist/internal/passkey/registration-write.mjs +211 -0
  330. package/dist/internal/passkey/registration-write.mjs.map +1 -0
  331. package/dist/internal/passkey/state.d.mts +5 -0
  332. package/dist/internal/passkey/state.mjs +234 -0
  333. package/dist/internal/passkey/state.mjs.map +1 -0
  334. package/dist/internal/passkey/target.d.mts +19 -0
  335. package/dist/internal/passkey/target.mjs +190 -0
  336. package/dist/internal/passkey/target.mjs.map +1 -0
  337. package/dist/internal/passkey/write-state.mjs +345 -0
  338. package/dist/internal/passkey/write-state.mjs.map +1 -0
  339. package/dist/internal/passkey/write-target.mjs +192 -0
  340. package/dist/internal/passkey/write-target.mjs.map +1 -0
  341. package/dist/internal/passkey-kernel.mjs +49 -0
  342. package/dist/internal/passkey-kernel.mjs.map +1 -0
  343. package/dist/internal/passkeys.mjs +367 -0
  344. package/dist/internal/passkeys.mjs.map +1 -0
  345. package/dist/internal/password-kernel.d.mts +13 -0
  346. package/dist/internal/password-kernel.mjs +704 -0
  347. package/dist/internal/password-kernel.mjs.map +1 -0
  348. package/dist/internal/persistence.mjs +289 -0
  349. package/dist/internal/persistence.mjs.map +1 -0
  350. package/dist/internal/phone-kernel.mjs +434 -0
  351. package/dist/internal/phone-kernel.mjs.map +1 -0
  352. package/dist/internal/proof-kernel.d.mts +9 -0
  353. package/dist/internal/proof-kernel.mjs +619 -0
  354. package/dist/internal/proof-kernel.mjs.map +1 -0
  355. package/dist/internal/query-operations.d.mts +3 -0
  356. package/dist/internal/registration.mjs +65 -0
  357. package/dist/internal/registration.mjs.map +1 -0
  358. package/dist/internal/session-kernel.mjs +737 -0
  359. package/dist/internal/session-kernel.mjs.map +1 -0
  360. package/dist/internal/sql-persistence.d.mts +11 -0
  361. package/dist/internal/sql-persistence.mjs +37 -0
  362. package/dist/internal/sql-persistence.mjs.map +1 -0
  363. package/dist/internal/sql-query.mjs +207 -0
  364. package/dist/internal/sql-query.mjs.map +1 -0
  365. package/dist/internal/sql-table.d.mts +37 -0
  366. package/dist/internal/sql-table.mjs +71 -0
  367. package/dist/internal/sql-table.mjs.map +1 -0
  368. package/dist/internal/storage-mapping.mjs +687 -0
  369. package/dist/internal/storage-mapping.mjs.map +1 -0
  370. package/dist/internal/storage-tables.d.mts +914 -0
  371. package/dist/internal/storage-tables.mjs +387 -0
  372. package/dist/internal/storage-tables.mjs.map +1 -0
  373. package/dist/internal/storage-validation.mjs +58 -0
  374. package/dist/internal/storage-validation.mjs.map +1 -0
  375. package/dist/internal/transaction-execution-kernel.d.mts +18 -0
  376. package/dist/internal/transaction-execution-kernel.mjs +118 -0
  377. package/dist/internal/transaction-execution-kernel.mjs.map +1 -0
  378. package/dist/internal/transaction-kernel.d.mts +7 -0
  379. package/dist/internal/transaction-kernel.mjs +260 -0
  380. package/dist/internal/transaction-kernel.mjs.map +1 -0
  381. package/package.json +1 -0
  382. package/src/Drizzle.ts +378 -0
  383. package/src/DrizzleD1.ts +136 -0
  384. package/src/DrizzleLibsql.ts +301 -0
  385. package/src/DrizzleMysql2.ts +184 -0
  386. package/src/DrizzlePglite.ts +174 -0
  387. package/src/DrizzlePostgres.ts +174 -0
  388. package/src/DrizzleSqliteBun.ts +258 -0
  389. package/src/DrizzleSqliteDo.ts +473 -0
  390. package/src/DrizzleSqliteNode.ts +259 -0
  391. package/src/DrizzleSqliteWasm.ts +263 -0
  392. package/src/drizzle/D1BatchStatements.ts +10 -0
  393. package/src/drizzle/PasswordPreparedPostconditions.ts +30 -0
  394. package/src/drizzle/SuppliedService.ts +10 -0
  395. package/src/drizzle/d1-emails.ts +1829 -0
  396. package/src/drizzle/d1-generated-statement.ts +129 -0
  397. package/src/drizzle/d1-identity.ts +375 -0
  398. package/src/drizzle/d1-oauth.ts +340 -0
  399. package/src/drizzle/d1-passkey.ts +373 -0
  400. package/src/drizzle/d1-password-prepared.ts +1270 -0
  401. package/src/drizzle/d1-passwords.ts +2656 -0
  402. package/src/drizzle/d1-phone.ts +96 -0
  403. package/src/drizzle/d1-planning.ts +104 -0
  404. package/src/drizzle/d1-proofs.ts +2305 -0
  405. package/src/drizzle/d1-sessions.ts +2857 -0
  406. package/src/drizzle/d1-totp.ts +78 -0
  407. package/src/drizzle/email-model.ts +516 -0
  408. package/src/drizzle/email-registration.ts +698 -0
  409. package/src/drizzle/email-sql.ts +24 -0
  410. package/src/drizzle/email-target.ts +243 -0
  411. package/src/drizzle/model.ts +463 -0
  412. package/src/drizzle/mysql-emails.ts +321 -0
  413. package/src/drizzle/mysql-identity.ts +324 -0
  414. package/src/drizzle/mysql-password-prepared.ts +204 -0
  415. package/src/drizzle/mysql-passwords.ts +339 -0
  416. package/src/drizzle/mysql-proofs.ts +181 -0
  417. package/src/drizzle/mysql-sessions.ts +741 -0
  418. package/src/drizzle/mysql.ts +687 -0
  419. package/src/drizzle/oauth-accounts.ts +804 -0
  420. package/src/drizzle/oauth-connected-access.ts +354 -0
  421. package/src/drizzle/oauth-connected-collection.ts +324 -0
  422. package/src/drizzle/oauth-connected-custody.ts +277 -0
  423. package/src/drizzle/oauth-connected-drivers.ts +465 -0
  424. package/src/drizzle/oauth-connected-flow.ts +441 -0
  425. package/src/drizzle/oauth-connected-input.ts +127 -0
  426. package/src/drizzle/oauth-connected-maintenance.ts +345 -0
  427. package/src/drizzle/oauth-connected-management.ts +365 -0
  428. package/src/drizzle/oauth-connected-model.ts +347 -0
  429. package/src/drizzle/oauth-connected-reference.ts +112 -0
  430. package/src/drizzle/oauth-connected-settlement.ts +226 -0
  431. package/src/drizzle/oauth-connected-state.ts +845 -0
  432. package/src/drizzle/oauth-connected-target.ts +264 -0
  433. package/src/drizzle/oauth-drivers.ts +569 -0
  434. package/src/drizzle/oauth-flow.ts +462 -0
  435. package/src/drizzle/oauth-input.ts +201 -0
  436. package/src/drizzle/oauth-model.ts +617 -0
  437. package/src/drizzle/oauth-mysql.ts +10 -0
  438. package/src/drizzle/oauth-owner.ts +29 -0
  439. package/src/drizzle/oauth-registration.ts +640 -0
  440. package/src/drizzle/oauth-state.ts +215 -0
  441. package/src/drizzle/oauth-target.ts +750 -0
  442. package/src/drizzle/passkey-drivers.ts +385 -0
  443. package/src/drizzle/passkey-kernel.ts +3 -0
  444. package/src/drizzle/passkey-model.ts +353 -0
  445. package/src/drizzle/passkey-registration-ceremony-model.ts +69 -0
  446. package/src/drizzle/passkey-state.ts +3 -0
  447. package/src/drizzle/passkey-target.ts +23 -0
  448. package/src/drizzle/passkey-write-drivers.ts +395 -0
  449. package/src/drizzle/passkey-write-model.ts +271 -0
  450. package/src/drizzle/passkey-write-target.ts +9 -0
  451. package/src/drizzle/password-model.ts +491 -0
  452. package/src/drizzle/password-prepared-model.ts +259 -0
  453. package/src/drizzle/password-prepared-sql.ts +1191 -0
  454. package/src/drizzle/password-prepared-state.ts +231 -0
  455. package/src/drizzle/password-prepared-target.ts +160 -0
  456. package/src/drizzle/password-registration.ts +374 -0
  457. package/src/drizzle/password-sql.ts +12 -0
  458. package/src/drizzle/password-target.ts +224 -0
  459. package/src/drizzle/pg-emails.ts +321 -0
  460. package/src/drizzle/pg-password-prepared.ts +205 -0
  461. package/src/drizzle/pg-passwords.ts +338 -0
  462. package/src/drizzle/pg-proofs.ts +191 -0
  463. package/src/drizzle/pg-sessions.ts +750 -0
  464. package/src/drizzle/pg.ts +984 -0
  465. package/src/drizzle/phone-model.ts +190 -0
  466. package/src/drizzle/phone-state.ts +21 -0
  467. package/src/drizzle/phone-target.ts +472 -0
  468. package/src/drizzle/proof-model.ts +398 -0
  469. package/src/drizzle/proof-sql.ts +9 -0
  470. package/src/drizzle/proof-target.ts +122 -0
  471. package/src/drizzle/query-operations.ts +37 -0
  472. package/src/drizzle/session-model.ts +370 -0
  473. package/src/drizzle/session-sql.ts +13 -0
  474. package/src/drizzle/session-target.ts +338 -0
  475. package/src/drizzle/sqlite-emails.ts +366 -0
  476. package/src/drizzle/sqlite-identity.ts +344 -0
  477. package/src/drizzle/sqlite-password-prepared.ts +260 -0
  478. package/src/drizzle/sqlite-passwords.ts +497 -0
  479. package/src/drizzle/sqlite-proofs.ts +202 -0
  480. package/src/drizzle/sqlite-sessions.ts +971 -0
  481. package/src/drizzle/sqlite.ts +705 -0
  482. package/src/drizzle/standalone-guard.ts +38 -0
  483. package/src/drizzle/step-up-model.ts +128 -0
  484. package/src/drizzle/step-up-state.ts +139 -0
  485. package/src/drizzle/totp-model.ts +92 -0
  486. package/src/drizzle/totp-state.ts +525 -0
  487. package/src/drizzle/totp-target.ts +308 -0
  488. package/src/drizzle/transaction-execution.ts +12 -0
  489. package/src/drizzle/transaction-mysql.ts +104 -0
  490. package/src/drizzle/transaction-owner.ts +10 -0
  491. package/src/index.ts +4 -0
  492. package/src/internal/configuration.ts +282 -0
  493. package/src/internal/drizzle-migrations.ts +30 -0
  494. package/src/internal/drizzle-postgres.ts +81 -0
  495. package/src/internal/drizzle-sqlite.ts +79 -0
  496. package/src/internal/email-kernel.ts +1532 -0
  497. package/src/internal/mapping-error.ts +36 -0
  498. package/src/internal/passkey/admission.ts +362 -0
  499. package/src/internal/passkey/credentials.ts +511 -0
  500. package/src/internal/passkey/enrollment.ts +326 -0
  501. package/src/internal/passkey/flow.ts +1062 -0
  502. package/src/internal/passkey/management.ts +422 -0
  503. package/src/internal/passkey/registration-ceremony.ts +283 -0
  504. package/src/internal/passkey/registration-custody.ts +91 -0
  505. package/src/internal/passkey/registration-write.ts +426 -0
  506. package/src/internal/passkey/state.ts +354 -0
  507. package/src/internal/passkey/target.ts +586 -0
  508. package/src/internal/passkey/write-state.ts +681 -0
  509. package/src/internal/passkey/write-target.ts +452 -0
  510. package/src/internal/passkey-kernel.ts +102 -0
  511. package/src/internal/passkeys.ts +597 -0
  512. package/src/internal/password-kernel.ts +2122 -0
  513. package/src/internal/persistence.ts +590 -0
  514. package/src/internal/phone-kernel.ts +843 -0
  515. package/src/internal/proof-kernel.ts +1949 -0
  516. package/src/internal/query-operations.ts +26 -0
  517. package/src/internal/registration.ts +160 -0
  518. package/src/internal/session-kernel.ts +2210 -0
  519. package/src/internal/sql-persistence.ts +45 -0
  520. package/src/internal/sql-query.ts +298 -0
  521. package/src/internal/sql-table.ts +89 -0
  522. package/src/internal/storage-mapping.ts +706 -0
  523. package/src/internal/storage-tables.ts +408 -0
  524. package/src/internal/storage-validation.ts +117 -0
  525. package/src/internal/transaction-execution-kernel.ts +317 -0
  526. package/src/internal/transaction-kernel.ts +582 -0
@@ -0,0 +1,204 @@
1
+ import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
2
+ import type { PasswordUnavailable, PasswordPreparedPersistence } from "@yielded/auth/Password";
3
+ import type { AnyRelations } from "drizzle-orm";
4
+ import type { EffectMysql2Database } from "drizzle-orm/effect-mysql2";
5
+ import type { AnyMySqlTable } from "drizzle-orm/mysql-core";
6
+ import { Effect, Context } from "effect";
7
+ import type { SqlError } from "effect/unstable/sql/SqlError";
8
+
9
+ import { mysqlPasswordConfiguration as configuration } from "./mysql-passwords";
10
+ import type {
11
+ PasswordPreparedPersistenceMapping,
12
+ PasswordPreparedProofMapping,
13
+ } from "./password-prepared-model";
14
+ import {
15
+ makeTargetPasswordPreparedPersistenceServices,
16
+ coordinateTargetPasswordPreparedPersistence,
17
+ } from "./password-prepared-target";
18
+ import type { SuppliedService } from "./SuppliedService";
19
+ type Database = EffectMysql2Database<AnyRelations>;
20
+ type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
21
+
22
+ export const makeMySqlPasswordPreparedPersistenceServices = <
23
+ S extends AnyMySqlTable,
24
+ I extends AnyMySqlTable,
25
+ C extends AnyMySqlTable,
26
+ AC extends AnyMySqlTable,
27
+ A extends AnyMySqlTable,
28
+ RS extends AnyMySqlTable,
29
+ CE extends AnyMySqlTable,
30
+ M extends AnyMySqlTable,
31
+ T extends AnyMySqlTable,
32
+ B extends AnyMySqlTable,
33
+ NativeId,
34
+ PS extends AnyMySqlTable = AnyMySqlTable,
35
+ PC extends AnyMySqlTable = AnyMySqlTable,
36
+ PM extends AnyMySqlTable = AnyMySqlTable,
37
+ PSub extends AnyMySqlTable = AnyMySqlTable,
38
+ PI extends AnyMySqlTable = AnyMySqlTable,
39
+ PCr extends AnyMySqlTable = AnyMySqlTable,
40
+ PNativeId = unknown,
41
+ >(
42
+ database: Database,
43
+ mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>,
44
+ proofMapping?: PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>,
45
+ ) =>
46
+ makeTargetPasswordPreparedPersistenceServices(
47
+ database,
48
+ mapping,
49
+ configuration(database),
50
+ proofMapping,
51
+ );
52
+
53
+ export function coordinateMySqlPasswordPreparedPersistence<
54
+ TargetId,
55
+ D extends Database,
56
+ S extends AnyMySqlTable,
57
+ I extends AnyMySqlTable,
58
+ C extends AnyMySqlTable,
59
+ AC extends AnyMySqlTable,
60
+ A extends AnyMySqlTable,
61
+ RS extends AnyMySqlTable,
62
+ CE extends AnyMySqlTable,
63
+ M extends AnyMySqlTable,
64
+ T extends AnyMySqlTable,
65
+ B extends AnyMySqlTable,
66
+ NativeId,
67
+ PS extends AnyMySqlTable,
68
+ PC extends AnyMySqlTable,
69
+ PM extends AnyMySqlTable,
70
+ PSub extends AnyMySqlTable,
71
+ PI extends AnyMySqlTable,
72
+ PCr extends AnyMySqlTable,
73
+ PNativeId,
74
+ Out,
75
+ E,
76
+ R,
77
+ DatabaseError,
78
+ DatabaseRequirements,
79
+ >(
80
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
81
+ options: {
82
+ readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>;
83
+ readonly proofMapping?:
84
+ | PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
85
+ | undefined;
86
+ readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
87
+ readonly transaction?: never;
88
+ },
89
+ body: Effect.Effect<Out, E, R>,
90
+ ): Effect.Effect<
91
+ Out,
92
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
93
+ Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
94
+ >;
95
+
96
+ export function coordinateMySqlPasswordPreparedPersistence<
97
+ TargetId,
98
+ D extends Database,
99
+ S extends AnyMySqlTable,
100
+ I extends AnyMySqlTable,
101
+ C extends AnyMySqlTable,
102
+ AC extends AnyMySqlTable,
103
+ A extends AnyMySqlTable,
104
+ RS extends AnyMySqlTable,
105
+ CE extends AnyMySqlTable,
106
+ M extends AnyMySqlTable,
107
+ T extends AnyMySqlTable,
108
+ B extends AnyMySqlTable,
109
+ NativeId,
110
+ PS extends AnyMySqlTable,
111
+ PC extends AnyMySqlTable,
112
+ PM extends AnyMySqlTable,
113
+ PSub extends AnyMySqlTable,
114
+ PI extends AnyMySqlTable,
115
+ PCr extends AnyMySqlTable,
116
+ PNativeId,
117
+ Out,
118
+ E,
119
+ R,
120
+ DatabaseError,
121
+ DatabaseRequirements,
122
+ TxId,
123
+ TxShape,
124
+ >(
125
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
126
+ options: {
127
+ readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>;
128
+ readonly proofMapping?:
129
+ | PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
130
+ | undefined;
131
+ readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
132
+ readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
133
+ },
134
+ body: Effect.Effect<Out, E, R>,
135
+ ): Effect.Effect<
136
+ Out,
137
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
138
+ Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
139
+ >;
140
+
141
+ export function coordinateMySqlPasswordPreparedPersistence<
142
+ TargetId,
143
+ D extends Database,
144
+ S extends AnyMySqlTable,
145
+ I extends AnyMySqlTable,
146
+ C extends AnyMySqlTable,
147
+ AC extends AnyMySqlTable,
148
+ A extends AnyMySqlTable,
149
+ RS extends AnyMySqlTable,
150
+ CE extends AnyMySqlTable,
151
+ M extends AnyMySqlTable,
152
+ T extends AnyMySqlTable,
153
+ B extends AnyMySqlTable,
154
+ NativeId,
155
+ PS extends AnyMySqlTable,
156
+ PC extends AnyMySqlTable,
157
+ PM extends AnyMySqlTable,
158
+ PSub extends AnyMySqlTable,
159
+ PI extends AnyMySqlTable,
160
+ PCr extends AnyMySqlTable,
161
+ PNativeId,
162
+ Out,
163
+ E,
164
+ R,
165
+ DatabaseError,
166
+ DatabaseRequirements,
167
+ TxId,
168
+ TxShape,
169
+ >(
170
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
171
+ options: {
172
+ readonly mapping: PasswordPreparedPersistenceMapping<S, I, C, AC, A, RS, CE, M, T, B, NativeId>;
173
+ readonly proofMapping?:
174
+ | PasswordPreparedProofMapping<PS, PC, PM, PSub, PI, PCr, PNativeId>
175
+ | undefined;
176
+ readonly target: SuppliedService<TargetId, PasswordPreparedPersistence>;
177
+ readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
178
+ },
179
+ body: Effect.Effect<Out, E, R>,
180
+ ): Effect.Effect<
181
+ Out,
182
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
183
+ Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
184
+ > {
185
+ return Effect.flatMap(acquire, (database) =>
186
+ coordinateTargetPasswordPreparedPersistence<TransactionOf<D>, Out, E, Exclude<R, TargetId>>(
187
+ database,
188
+ options.mapping,
189
+ configuration(database),
190
+ options.proofMapping,
191
+ (
192
+ transaction: TransactionOf<D>,
193
+ services: { readonly passwordPreparedPersistence: PasswordPreparedPersistence },
194
+ ) => {
195
+ const provided = Context.make(options.target, services.passwordPreparedPersistence);
196
+ const work = Effect.provideContext(body, provided);
197
+
198
+ return options.transaction === undefined
199
+ ? work
200
+ : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
201
+ },
202
+ ),
203
+ );
204
+ }
@@ -0,0 +1,339 @@
1
+ import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
2
+ import { type PasswordUnavailable, PasswordPersistence } from "@yielded/auth/Password";
3
+ /* oxlint-disable no-explicit-any -- proof mapping tables are independently typed by the proof owner; this driver forwards them unchanged to the shared target. */
4
+ import type { AnyRelations } from "drizzle-orm";
5
+ import type { EffectMysql2Database } from "drizzle-orm/effect-mysql2";
6
+ import type { AnyMySqlTable } from "drizzle-orm/mysql-core";
7
+ import { Effect, Context } from "effect";
8
+ import type { SqlError } from "effect/unstable/sql/SqlError";
9
+
10
+ import type { PasswordPersistenceMapping, PasswordRegistrationMapping } from "./password-model";
11
+ import type { PasswordRegistrationAuthority } from "./password-registration";
12
+ import type { PasswordSqlQuery } from "./password-sql";
13
+ import {
14
+ coordinateTargetPasswordPersistence,
15
+ coordinateTargetPasswordRegistration,
16
+ makeTargetPasswordPersistenceServices,
17
+ makeTargetPasswordRegistrationServices,
18
+ sqlClientPasswordStandaloneGuard,
19
+ } from "./password-target";
20
+ import type { ProofPersistenceMapping } from "./proof-model";
21
+ import type { ProofSqlQuery } from "./proof-sql";
22
+ import { sqlClientProofStandaloneGuard } from "./proof-target";
23
+ import type { SuppliedService } from "./SuppliedService";
24
+
25
+ type Database = EffectMysql2Database<AnyRelations>;
26
+ type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
27
+
28
+ const configuration = (database: Database) => ({
29
+ mode: "interactive" as const,
30
+ locking: true,
31
+ standaloneGuard: sqlClientPasswordStandaloneGuard(database),
32
+ insertIfAbsent: (query: PasswordSqlQuery, selfKey: string, selfValue: unknown) =>
33
+ query.onDuplicateKeyUpdate({ set: { [selfKey]: selfValue } }),
34
+ generatedSubjectRows: (query: PasswordSqlQuery) => query.$returningId(),
35
+ proof: {
36
+ mode: "interactive" as const,
37
+ locking: true,
38
+ standaloneGuard: sqlClientProofStandaloneGuard(database),
39
+ insertIfAbsent: (query: ProofSqlQuery, selfKey: string, selfValue: unknown) =>
40
+ query.onDuplicateKeyUpdate({ set: { [selfKey]: selfValue } }),
41
+ },
42
+ });
43
+
44
+ type Mapping<
45
+ S extends AnyMySqlTable,
46
+ I extends AnyMySqlTable,
47
+ C extends AnyMySqlTable,
48
+ AC extends AnyMySqlTable,
49
+ A extends AnyMySqlTable,
50
+ RS extends AnyMySqlTable,
51
+ CE extends AnyMySqlTable,
52
+ M extends AnyMySqlTable,
53
+ NativeId,
54
+ > = PasswordPersistenceMapping<S, I, C, AC, A, RS, CE, M, NativeId>;
55
+
56
+ export const makeMysqlPasswordPersistenceServices = <
57
+ S extends AnyMySqlTable,
58
+ I extends AnyMySqlTable,
59
+ C extends AnyMySqlTable,
60
+ AC extends AnyMySqlTable,
61
+ A extends AnyMySqlTable,
62
+ RS extends AnyMySqlTable,
63
+ CE extends AnyMySqlTable,
64
+ M extends AnyMySqlTable,
65
+ NativeId,
66
+ >(
67
+ database: Database,
68
+ mapping: Mapping<S, I, C, AC, A, RS, CE, M, NativeId>,
69
+ proofMapping?: ProofPersistenceMapping<
70
+ any,
71
+ any,
72
+ any,
73
+ any,
74
+ any,
75
+ any,
76
+ any,
77
+ any,
78
+ any,
79
+ any,
80
+ any,
81
+ any
82
+ >,
83
+ ) =>
84
+ makeTargetPasswordPersistenceServices(database, mapping, configuration(database), proofMapping);
85
+
86
+ export function coordinateMysqlPasswordPersistence<
87
+ D extends Database,
88
+ S extends AnyMySqlTable,
89
+ I extends AnyMySqlTable,
90
+ C extends AnyMySqlTable,
91
+ AC extends AnyMySqlTable,
92
+ A extends AnyMySqlTable,
93
+ RS extends AnyMySqlTable,
94
+ CE extends AnyMySqlTable,
95
+ M extends AnyMySqlTable,
96
+ NativeId,
97
+ PM extends
98
+ | ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
99
+ | undefined,
100
+ Out,
101
+ E,
102
+ R,
103
+ DatabaseError,
104
+ DatabaseRequirements,
105
+ >(
106
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
107
+ options: {
108
+ readonly mapping: Mapping<S, I, C, AC, A, RS, CE, M, NativeId>;
109
+ readonly proofMapping?: PM;
110
+ readonly transaction?: never;
111
+ },
112
+ body: Effect.Effect<Out, E, R>,
113
+ ): Effect.Effect<
114
+ Out,
115
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
116
+ Exclude<R, PasswordPersistence> | LifecycleHooks | DatabaseRequirements
117
+ >;
118
+
119
+ export function coordinateMysqlPasswordPersistence<
120
+ D extends Database,
121
+ S extends AnyMySqlTable,
122
+ I extends AnyMySqlTable,
123
+ C extends AnyMySqlTable,
124
+ AC extends AnyMySqlTable,
125
+ A extends AnyMySqlTable,
126
+ RS extends AnyMySqlTable,
127
+ CE extends AnyMySqlTable,
128
+ M extends AnyMySqlTable,
129
+ NativeId,
130
+ PM extends
131
+ | ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
132
+ | undefined,
133
+ Out,
134
+ E,
135
+ R,
136
+ DatabaseError,
137
+ DatabaseRequirements,
138
+ TxId,
139
+ TxShape,
140
+ >(
141
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
142
+ options: {
143
+ readonly mapping: Mapping<S, I, C, AC, A, RS, CE, M, NativeId>;
144
+ readonly proofMapping?: PM;
145
+ readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
146
+ },
147
+ body: Effect.Effect<Out, E, R>,
148
+ ): Effect.Effect<
149
+ Out,
150
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
151
+ Exclude<R, PasswordPersistence | TxId> | LifecycleHooks | DatabaseRequirements
152
+ >;
153
+
154
+ export function coordinateMysqlPasswordPersistence<
155
+ D extends Database,
156
+ S extends AnyMySqlTable,
157
+ I extends AnyMySqlTable,
158
+ C extends AnyMySqlTable,
159
+ AC extends AnyMySqlTable,
160
+ A extends AnyMySqlTable,
161
+ RS extends AnyMySqlTable,
162
+ CE extends AnyMySqlTable,
163
+ M extends AnyMySqlTable,
164
+ NativeId,
165
+ PM extends
166
+ | ProofPersistenceMapping<any, any, any, any, any, any, any, any, any, any, any, any>
167
+ | undefined,
168
+ Out,
169
+ E,
170
+ R,
171
+ DatabaseError,
172
+ DatabaseRequirements,
173
+ TxId,
174
+ TxShape,
175
+ >(
176
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
177
+ options: {
178
+ readonly mapping: Mapping<S, I, C, AC, A, RS, CE, M, NativeId>;
179
+ readonly proofMapping?: PM;
180
+ readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
181
+ },
182
+ body: Effect.Effect<Out, E, R>,
183
+ ): Effect.Effect<
184
+ Out,
185
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
186
+ Exclude<R, PasswordPersistence> | LifecycleHooks | DatabaseRequirements
187
+ > {
188
+ return Effect.flatMap(acquire, (database) =>
189
+ coordinateTargetPasswordPersistence<TransactionOf<D>, Out, E, Exclude<R, PasswordPersistence>>(
190
+ database,
191
+ options.mapping,
192
+ configuration(database),
193
+ options.proofMapping,
194
+ (
195
+ transaction: TransactionOf<D>,
196
+ services: { readonly passwordPersistence: PasswordPersistence["Service"] },
197
+ ) => {
198
+ const provided = Context.make(PasswordPersistence, services.passwordPersistence);
199
+ const work = Effect.provideContext(body, provided);
200
+
201
+ return options.transaction === undefined
202
+ ? work
203
+ : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
204
+ },
205
+ ),
206
+ );
207
+ }
208
+
209
+ export const makeMysqlPasswordRegistrationServices = <
210
+ Registration,
211
+ S extends AnyMySqlTable,
212
+ I extends AnyMySqlTable,
213
+ C extends AnyMySqlTable,
214
+ AC extends AnyMySqlTable,
215
+ Rq extends AnyMySqlTable,
216
+ NativeId,
217
+ >(
218
+ database: Database,
219
+ mapping: PasswordRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>,
220
+ ) =>
221
+ makeTargetPasswordRegistrationServices<Registration>(database, mapping, configuration(database));
222
+
223
+ export function coordinateMysqlPasswordRegistration<
224
+ TargetId,
225
+ Registration,
226
+ D extends Database,
227
+ S extends AnyMySqlTable,
228
+ I extends AnyMySqlTable,
229
+ C extends AnyMySqlTable,
230
+ AC extends AnyMySqlTable,
231
+ Rq extends AnyMySqlTable,
232
+ NativeId,
233
+ Out,
234
+ E,
235
+ R,
236
+ DatabaseError,
237
+ DatabaseRequirements,
238
+ >(
239
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
240
+ options: {
241
+ readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
242
+ readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
243
+ readonly transaction?: never;
244
+ },
245
+ body: Effect.Effect<Out, E, R>,
246
+ ): Effect.Effect<
247
+ Out,
248
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
249
+ Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
250
+ >;
251
+
252
+ export function coordinateMysqlPasswordRegistration<
253
+ TargetId,
254
+ Registration,
255
+ D extends Database,
256
+ S extends AnyMySqlTable,
257
+ I extends AnyMySqlTable,
258
+ C extends AnyMySqlTable,
259
+ AC extends AnyMySqlTable,
260
+ Rq extends AnyMySqlTable,
261
+ NativeId,
262
+ Out,
263
+ E,
264
+ R,
265
+ DatabaseError,
266
+ DatabaseRequirements,
267
+ TxId,
268
+ TxShape,
269
+ >(
270
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
271
+ options: {
272
+ readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
273
+ readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
274
+ readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
275
+ },
276
+ body: Effect.Effect<Out, E, R>,
277
+ ): Effect.Effect<
278
+ Out,
279
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
280
+ Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
281
+ >;
282
+
283
+ export function coordinateMysqlPasswordRegistration<
284
+ TargetId,
285
+ Registration,
286
+ D extends Database,
287
+ S extends AnyMySqlTable,
288
+ I extends AnyMySqlTable,
289
+ C extends AnyMySqlTable,
290
+ AC extends AnyMySqlTable,
291
+ Rq extends AnyMySqlTable,
292
+ NativeId,
293
+ Out,
294
+ E,
295
+ R,
296
+ DatabaseError,
297
+ DatabaseRequirements,
298
+ TxId,
299
+ TxShape,
300
+ >(
301
+ acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
302
+ options: {
303
+ readonly mapping: PasswordRegistrationMapping<NoInfer<Registration>, S, I, C, AC, Rq, NativeId>;
304
+ readonly target: SuppliedService<TargetId, PasswordRegistrationAuthority<Registration>>;
305
+ readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
306
+ },
307
+ body: Effect.Effect<Out, E, R>,
308
+ ): Effect.Effect<
309
+ Out,
310
+ E | PasswordUnavailable | HookConfigurationError | SqlError | DatabaseError,
311
+ Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
312
+ > {
313
+ return Effect.flatMap(acquire, (database) =>
314
+ coordinateTargetPasswordRegistration<
315
+ Registration,
316
+ TransactionOf<D>,
317
+ Out,
318
+ E,
319
+ Exclude<R, TargetId>
320
+ >(
321
+ database,
322
+ options.mapping,
323
+ configuration(database),
324
+ (
325
+ transaction: TransactionOf<D>,
326
+ services: { readonly registrationAuthority: PasswordRegistrationAuthority<Registration> },
327
+ ) => {
328
+ const provided = Context.make(options.target, services.registrationAuthority);
329
+ const work = Effect.provideContext(body, provided);
330
+
331
+ return options.transaction === undefined
332
+ ? work
333
+ : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
334
+ },
335
+ ),
336
+ );
337
+ }
338
+
339
+ export { configuration as mysqlPasswordConfiguration };