@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,369 +0,0 @@
1
- import type {
2
- NativeDatabase,
3
- PasswordRegistrationAuthority,
4
- } from "@yielded/auth-persistence/Adapter";
5
- import {
6
- coordinateCommit,
7
- CurrentCommitJournal,
8
- hasCommitScope,
9
- LifecycleHooks,
10
- HookConfigurationError,
11
- } from "@yielded/auth/Hooks";
12
- import type { LoginIdentifier } from "@yielded/auth/Identity";
13
- import {
14
- PasswordUnavailable,
15
- type PasswordReplacement,
16
- type PasswordRegistrationDecision,
17
- type PreparePasswordCommit,
18
- } from "@yielded/auth/Password";
19
- import { reportPersistenceFailure } from "@yielded/auth/Persistence";
20
- import { ProofUnavailable } from "@yielded/auth/Proofs";
21
- /* oxlint-disable no-explicit-any -- registration plans bridge consumer-owned Drizzle rows. */
22
- import { and, eq } from "drizzle-orm";
23
- import { Cause, Effect, Schema } from "effect";
24
-
25
- import { column, isMappedConstraintConflict, PersistenceMappingError } from "./model";
26
- import {
27
- type AnyPasswordRegistrationMapping,
28
- requiredPasswordRegistrationConstraints,
29
- } from "./password-model";
30
- import { CurrentPasswordSql, type PasswordSqlQuery } from "./password-sql";
31
- import { CurrentProofSql, type ProofSqlDatabase } from "./proof-sql";
32
- import { validateDrizzleStorage } from "./storage-validation";
33
-
34
- type Mapping<Registration> = AnyPasswordRegistrationMapping<Registration>;
35
- const unavailable = () => PasswordUnavailable.make({});
36
-
37
- const translateFailure = <A, E, R>(
38
- effect: Effect.Effect<A, E, R>,
39
- ): Effect.Effect<A, PasswordUnavailable, R> =>
40
- reportPersistenceFailure(
41
- effect,
42
- (error) =>
43
- Schema.is(PasswordUnavailable)(error) ||
44
- Schema.is(ProofUnavailable)(error) ||
45
- Schema.is(HookConfigurationError)(error),
46
- ).pipe(Effect.catchCause((cause) => Effect.failCause(Cause.map(cause, () => unavailable()))));
47
-
48
- export type { PasswordRegistrationAuthority } from "@yielded/auth-persistence/Adapter";
49
-
50
- export interface PasswordRegistrationConfiguration {
51
- readonly mode: "interactive" | "synchronous";
52
- readonly locking: boolean;
53
- readonly standaloneGuard: Effect.Effect<void, PasswordUnavailable>;
54
- readonly coordinated?: boolean;
55
- readonly generatedSubjectRows: (query: PasswordSqlQuery) => PasswordSqlQuery;
56
- }
57
-
58
- const validConstraints = <Registration>(mapping: Mapping<Registration>) =>
59
- Object.entries(requiredPasswordRegistrationConstraints).every(
60
- ([key, value]) =>
61
- mapping.constraints[key as keyof typeof requiredPasswordRegistrationConstraints] === value,
62
- );
63
-
64
- const selectRows = (query: PasswordSqlQuery, locking: boolean) =>
65
- locking && typeof query.for === "function" ? query.for("update") : query;
66
-
67
- const allocate = <A>(
68
- mode: PasswordRegistrationConfiguration["mode"],
69
- asyncValue: Effect.Effect<A, PersistenceMappingError> | undefined,
70
- syncValue: (() => A) | undefined,
71
- ) => {
72
- if (mode === "synchronous")
73
- return syncValue === undefined
74
- ? Effect.fail(unavailable())
75
- : Effect.try({
76
- try: syncValue,
77
- catch: (cause) => new PersistenceMappingError({ operation: "mapping", cause }),
78
- });
79
- if (asyncValue !== undefined) return asyncValue;
80
-
81
- return syncValue === undefined
82
- ? Effect.fail(unavailable())
83
- : Effect.try({
84
- try: syncValue,
85
- catch: (cause) => new PersistenceMappingError({ operation: "mapping", cause }),
86
- });
87
- };
88
-
89
- const registrationRows = Effect.fn("Drizzle.registrationRows")(function* <Registration>(
90
- mapping: Mapping<Registration>,
91
- moduleId: string,
92
- requestId: string,
93
- locking: boolean,
94
- ) {
95
- const database = yield* CurrentPasswordSql;
96
-
97
- const module = column(mapping.registration.table, mapping.registration.moduleId);
98
- const request = column(mapping.registration.table, mapping.registration.requestId);
99
-
100
- const query = database
101
- .select()
102
- .from(mapping.registration.table)
103
- .where(and(eq(module, moduleId), eq(request, requestId)))
104
- .limit(1);
105
-
106
- return yield* selectRows(query, locking);
107
- });
108
-
109
- const registerIn = Effect.fn("DrizzlePasswordRegistration.registerIn")(function* <Registration, A>(
110
- mapping: Mapping<Registration>,
111
- configuration: PasswordRegistrationConfiguration,
112
- input: {
113
- readonly moduleId: string;
114
- readonly requestId: string;
115
- readonly identifier: LoginIdentifier;
116
- readonly registration: Registration;
117
- readonly replacement: PasswordReplacement;
118
- },
119
- allocated: {
120
- readonly credentialId: string;
121
- readonly securityRevision: any;
122
- readonly identifierRevision: any;
123
- readonly credentialRevision: any;
124
- readonly verifierVersion: any;
125
- readonly nativeSubjectId?: unknown;
126
- readonly recoveryReference?: any;
127
- },
128
- prepare: PreparePasswordCommit<PasswordRegistrationDecision, A>,
129
- ) {
130
- const database = yield* CurrentPasswordSql;
131
- const journal = yield* CurrentCommitJournal;
132
-
133
- const existing = (yield* registrationRows(
134
- mapping,
135
- input.moduleId,
136
- input.requestId,
137
- configuration.locking,
138
- ))[0];
139
-
140
- if (existing !== undefined)
141
- return prepare(yield* mapping.registration.decodeReplay(existing), journal);
142
-
143
- const intent = {
144
- moduleId: input.moduleId,
145
- requestId: input.requestId,
146
- identifier: input.identifier,
147
- registration: input.registration,
148
- replacement: input.replacement,
149
- };
150
-
151
- if (mapping.mode === "pending") {
152
- if (allocated.recoveryReference === undefined) return yield* unavailable();
153
- const receipt = prepare({ _tag: "Pending", reference: allocated.recoveryReference }, journal);
154
-
155
- yield* database.insert(mapping.registration.table).values(
156
- mapping.registration.encodeInsert(intent, {
157
- state: "pending",
158
- recoveryReference: allocated.recoveryReference,
159
- }),
160
- );
161
-
162
- return receipt;
163
- }
164
- let nativeSubjectId = allocated.nativeSubjectId;
165
-
166
- const subjectInsert = database.insert(mapping.subject.table).values(
167
- mapping.provisioning.encodeSubjectInsert(intent, {
168
- nativeSubjectId,
169
- securityRevision: allocated.securityRevision,
170
- }),
171
- );
172
-
173
- if (mapping.provisioning.idMode === "generated") {
174
- const rows = yield* configuration.generatedSubjectRows(subjectInsert);
175
-
176
- nativeSubjectId = yield* mapping.provisioning.decodeGeneratedId(rows);
177
- } else yield* subjectInsert;
178
- if (nativeSubjectId === undefined) return yield* unavailable();
179
- const subjectId = yield* mapping.subjectId.toSubject(nativeSubjectId);
180
- const receipt = prepare({ _tag: "Created", subjectId }, journal);
181
-
182
- yield* database
183
- .insert(mapping.identifier.table)
184
- .values(
185
- mapping.identifier.encodeInitialInsert(
186
- input.identifier,
187
- nativeSubjectId,
188
- allocated.identifierRevision,
189
- ),
190
- );
191
- yield* database.insert(mapping.credential.table).values(
192
- mapping.credential.encodeInsert({
193
- moduleId: input.moduleId,
194
- subjectId: nativeSubjectId,
195
- credentialId: allocated.credentialId,
196
- credentialRevision: allocated.credentialRevision,
197
- verifierVersion: allocated.verifierVersion,
198
- replacement: input.replacement,
199
- }),
200
- );
201
- yield* database.insert(mapping.authorityCredential.table).values(
202
- mapping.authorityCredential.encodeInsert({
203
- subjectId: nativeSubjectId,
204
- credentialId: allocated.credentialId,
205
- revision: allocated.credentialRevision,
206
- }),
207
- );
208
- yield* database.insert(mapping.registration.table).values(
209
- mapping.registration.encodeInsert(intent, {
210
- state: "created",
211
- nativeSubjectId,
212
- }),
213
- );
214
-
215
- return receipt;
216
- });
217
-
218
- export const makeSqlPasswordRegistrationAuthority = Effect.fn(
219
- "makeSqlPasswordRegistrationAuthority",
220
- )(function* <Registration>(
221
- mapping: Mapping<Registration>,
222
- configuration: PasswordRegistrationConfiguration,
223
- ): Effect.fn.Return<
224
- PasswordRegistrationAuthority<Registration>,
225
- PasswordUnavailable,
226
- LifecycleHooks | CurrentPasswordSql | NativeDatabase
227
- > {
228
- const database = yield* CurrentPasswordSql;
229
-
230
- if (!configuration.coordinated)
231
- yield* validateDrizzleStorage(mapping).pipe(Effect.mapError(unavailable));
232
- const hooks = yield* LifecycleHooks;
233
-
234
- return {
235
- register: (input, prepare) =>
236
- Effect.gen(function* () {
237
- if (!validConstraints(mapping)) return yield* unavailable();
238
-
239
- const credentialId = yield* allocate(
240
- configuration.mode,
241
- mapping.allocateCredentialId,
242
- mapping.allocateCredentialIdSync,
243
- );
244
-
245
- const securityRevision = yield* allocate(
246
- configuration.mode,
247
- mapping.allocateRevision,
248
- mapping.allocateRevisionSync,
249
- );
250
-
251
- const credentialRevision = yield* allocate(
252
- configuration.mode,
253
- mapping.allocateRevision,
254
- mapping.allocateRevisionSync,
255
- );
256
-
257
- const identifierRevision = yield* allocate(
258
- configuration.mode,
259
- mapping.allocateRevision,
260
- mapping.allocateRevisionSync,
261
- );
262
-
263
- const verifierVersion = yield* allocate(
264
- configuration.mode,
265
- mapping.allocateRevision,
266
- mapping.allocateRevisionSync,
267
- );
268
-
269
- const nativeSubjectId =
270
- mapping.mode !== "atomic" || mapping.provisioning.idMode === "generated"
271
- ? undefined
272
- : yield* allocate(
273
- configuration.mode,
274
- mapping.provisioning.allocateSubjectId,
275
- mapping.provisioning.allocateSubjectIdSync,
276
- );
277
-
278
- const recoveryReference =
279
- mapping.mode === "pending"
280
- ? yield* allocate(
281
- configuration.mode,
282
- mapping.allocateRecoveryReference,
283
- mapping.allocateRecoveryReferenceSync,
284
- )
285
- : undefined;
286
-
287
- const run = coordinateCommit(
288
- () =>
289
- database.transaction((transaction) =>
290
- registerIn(
291
- mapping,
292
- configuration,
293
- input,
294
- {
295
- credentialId,
296
- securityRevision,
297
- identifierRevision,
298
- credentialRevision,
299
- verifierVersion,
300
- ...(nativeSubjectId === undefined ? {} : { nativeSubjectId }),
301
- ...(recoveryReference === undefined ? {} : { recoveryReference }),
302
- },
303
- prepare,
304
- ).pipe(
305
- Effect.provideService(CurrentPasswordSql, transaction),
306
- Effect.provideService(CurrentProofSql, transaction as unknown as ProofSqlDatabase),
307
- ),
308
- ),
309
- { mode: configuration.mode },
310
- ).pipe(Effect.map((result) => result.value));
311
-
312
- const guarded =
313
- configuration.coordinated !== true
314
- ? Effect.gen(function* () {
315
- if (yield* hasCommitScope) return yield* unavailable();
316
- yield* configuration.standaloneGuard;
317
-
318
- return yield* run;
319
- })
320
- : run;
321
-
322
- return yield* guarded.pipe(
323
- Effect.catchCause((cause) => {
324
- if (
325
- (cause.reasons.every(Cause.isFailReason) &&
326
- isMappedConstraintConflict(mapping.isRequestConflict, cause)) ||
327
- (cause.reasons.every(Cause.isFailReason) &&
328
- isMappedConstraintConflict(mapping.isIdentifierConflict, cause)) ||
329
- (cause.reasons.every(Cause.isFailReason) &&
330
- isMappedConstraintConflict(mapping.isCredentialConflict, cause))
331
- )
332
- return coordinateCommit(
333
- (journal) =>
334
- database.transaction((transaction) =>
335
- Effect.gen(function* () {
336
- const row = (yield* registrationRows(
337
- mapping,
338
- input.moduleId,
339
- input.requestId,
340
- configuration.locking,
341
- ))[0];
342
-
343
- const decision =
344
- row === undefined
345
- ? ({ _tag: "Suppressed" } as const)
346
- : yield* mapping.registration.decodeReplay(row);
347
-
348
- return prepare(decision, journal);
349
- }).pipe(
350
- Effect.provideService(CurrentPasswordSql, transaction),
351
- Effect.provideService(
352
- CurrentProofSql,
353
- transaction as unknown as ProofSqlDatabase,
354
- ),
355
- ),
356
- ),
357
- { mode: configuration.mode },
358
- ).pipe(Effect.map((result) => result.value));
359
-
360
- return Effect.failCause(cause);
361
- }),
362
- );
363
- }).pipe(
364
- Effect.provideService(CurrentPasswordSql, database),
365
- Effect.provideService(LifecycleHooks, hooks),
366
- translateFailure,
367
- ),
368
- };
369
- });
@@ -1,16 +0,0 @@
1
- import { makePasswordKernel } from "@yielded/auth-persistence/Adapter";
2
-
3
- import { makeDrizzleSqlTables } from "./native-sql-table";
4
- import { completeProofPlanIn } from "./proof-sql";
5
- import { drizzleQueryOperations } from "./query-operations";
6
- export type { PasswordSqlQuery } from "@yielded/auth-persistence/Adapter";
7
- export type { PasswordSqlDatabase } from "@yielded/auth-persistence/Adapter";
8
- export { CurrentPasswordSql } from "@yielded/auth-persistence/Adapter";
9
-
10
- export type { PasswordSqlConfiguration } from "@yielded/auth-persistence/Adapter";
11
-
12
- export const { makeSqlPasswordPersistence, passwordSqlKernel } = makePasswordKernel(
13
- drizzleQueryOperations,
14
- { completeProofPlanIn },
15
- makeDrizzleSqlTables,
16
- );