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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +4 -2
  2. package/dist/D1.d.mts +495 -1151
  3. package/dist/D1.mjs +41 -19
  4. package/dist/D1.mjs.map +1 -1
  5. package/dist/Libsql.d.mts +385 -1996
  6. package/dist/Libsql.mjs +43 -47
  7. package/dist/Libsql.mjs.map +1 -1
  8. package/dist/Mysql2.d.mts +397 -1743
  9. package/dist/Mysql2.mjs +35 -41
  10. package/dist/Mysql2.mjs.map +1 -1
  11. package/dist/Pglite.d.mts +397 -1743
  12. package/dist/Pglite.mjs +42 -31
  13. package/dist/Pglite.mjs.map +1 -1
  14. package/dist/Postgres.d.mts +397 -1743
  15. package/dist/Postgres.mjs +42 -31
  16. package/dist/Postgres.mjs.map +1 -1
  17. package/dist/SqliteBun.d.mts +385 -1992
  18. package/dist/SqliteBun.mjs +43 -43
  19. package/dist/SqliteBun.mjs.map +1 -1
  20. package/dist/SqliteDo.d.mts +385 -1991
  21. package/dist/SqliteDo.mjs +42 -41
  22. package/dist/SqliteDo.mjs.map +1 -1
  23. package/dist/SqliteNode.d.mts +385 -1992
  24. package/dist/SqliteNode.mjs +43 -43
  25. package/dist/SqliteNode.mjs.map +1 -1
  26. package/dist/SqliteWasm.d.mts +385 -1992
  27. package/dist/SqliteWasm.mjs +43 -43
  28. package/dist/SqliteWasm.mjs.map +1 -1
  29. package/dist/drizzle/d1-identity.mjs +2 -2
  30. package/dist/drizzle/d1-identity.mjs.map +1 -1
  31. package/dist/drizzle/driver-types.d.mts +15 -0
  32. package/dist/drizzle/email-drivers.mjs +32 -0
  33. package/dist/drizzle/email-drivers.mjs.map +1 -0
  34. package/dist/drizzle/email-model.d.mts +9 -13
  35. package/dist/drizzle/email-target.d.mts +10 -11
  36. package/dist/drizzle/email-target.mjs +33 -70
  37. package/dist/drizzle/email-target.mjs.map +1 -1
  38. package/dist/drizzle/model.d.mts +1 -10
  39. package/dist/drizzle/model.mjs +1 -2
  40. package/dist/drizzle/model.mjs.map +1 -1
  41. package/dist/drizzle/mysql-identity.mjs +3 -6
  42. package/dist/drizzle/mysql-identity.mjs.map +1 -1
  43. package/dist/drizzle/native-clock.d.mts +9 -0
  44. package/dist/drizzle/native-clock.mjs +18 -0
  45. package/dist/drizzle/native-clock.mjs.map +1 -0
  46. package/dist/drizzle/native-database.d.mts +46 -0
  47. package/dist/drizzle/native-database.mjs +6 -5
  48. package/dist/drizzle/native-database.mjs.map +1 -1
  49. package/dist/drizzle/native-sql-table.mjs +13 -5
  50. package/dist/drizzle/native-sql-table.mjs.map +1 -1
  51. package/dist/drizzle/native-target.d.mts +6 -0
  52. package/dist/drizzle/native-target.mjs +44 -0
  53. package/dist/drizzle/native-target.mjs.map +1 -0
  54. package/dist/drizzle/oauth-connected-drivers.mjs +4 -56
  55. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -1
  56. package/dist/drizzle/oauth-connected-model.d.mts +5 -22
  57. package/dist/drizzle/oauth-connected-model.mjs +1 -7
  58. package/dist/drizzle/oauth-connected-reference.d.mts +5 -7
  59. package/dist/drizzle/oauth-connected-reference.mjs +11 -3
  60. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -1
  61. package/dist/drizzle/oauth-drivers.mjs +1 -2
  62. package/dist/drizzle/oauth-drivers.mjs.map +1 -1
  63. package/dist/drizzle/oauth-model.d.mts +11 -37
  64. package/dist/drizzle/oauth-model.mjs +3 -4
  65. package/dist/drizzle/oauth-model.mjs.map +1 -1
  66. package/dist/drizzle/oauth-proxy.d.mts +1 -1
  67. package/dist/drizzle/oauth-proxy.mjs +1 -1
  68. package/dist/drizzle/oauth-target.d.mts +9 -6
  69. package/dist/drizzle/oauth-target.mjs +47 -15
  70. package/dist/drizzle/oauth-target.mjs.map +1 -1
  71. package/dist/drizzle/passkey/target.d.mts +14 -0
  72. package/dist/drizzle/passkey/target.mjs +52 -0
  73. package/dist/drizzle/passkey/target.mjs.map +1 -0
  74. package/dist/drizzle/passkey/write-target.d.mts +11 -0
  75. package/dist/drizzle/passkey/write-target.mjs +28 -0
  76. package/dist/drizzle/passkey/write-target.mjs.map +1 -0
  77. package/dist/drizzle/passkey-drivers.mjs +2 -4
  78. package/dist/drizzle/passkey-drivers.mjs.map +1 -1
  79. package/dist/drizzle/passkey-model.d.mts +5 -26
  80. package/dist/drizzle/passkey-model.mjs +2 -8
  81. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +3 -6
  82. package/dist/drizzle/passkey-write-drivers.mjs +2 -3
  83. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -1
  84. package/dist/drizzle/passkey-write-model.d.mts +7 -9
  85. package/dist/drizzle/passkey-write-model.mjs +1 -3
  86. package/dist/drizzle/passkey-write-model.mjs.map +1 -1
  87. package/dist/drizzle/password-drivers.mjs +31 -0
  88. package/dist/drizzle/password-drivers.mjs.map +1 -0
  89. package/dist/drizzle/password-model.d.mts +7 -10
  90. package/dist/drizzle/password-target.d.mts +7 -8
  91. package/dist/drizzle/password-target.mjs +23 -68
  92. package/dist/drizzle/password-target.mjs.map +1 -1
  93. package/dist/drizzle/pg-identity.mjs +3 -6
  94. package/dist/drizzle/pg-identity.mjs.map +1 -1
  95. package/dist/drizzle/phone-drivers.mjs +24 -0
  96. package/dist/drizzle/phone-drivers.mjs.map +1 -0
  97. package/dist/drizzle/phone-model.d.mts +13 -104
  98. package/dist/drizzle/phone-model.mjs +5 -33
  99. package/dist/drizzle/phone-model.mjs.map +1 -1
  100. package/dist/drizzle/phone-target.mjs +22 -171
  101. package/dist/drizzle/phone-target.mjs.map +1 -1
  102. package/dist/drizzle/proof-drivers.mjs +24 -0
  103. package/dist/drizzle/proof-drivers.mjs.map +1 -0
  104. package/dist/drizzle/proof-model.d.mts +7 -15
  105. package/dist/drizzle/proof-target.d.mts +5 -5
  106. package/dist/drizzle/proof-target.mjs +14 -28
  107. package/dist/drizzle/proof-target.mjs.map +1 -1
  108. package/dist/drizzle/session-drivers.mjs +97 -0
  109. package/dist/drizzle/session-drivers.mjs.map +1 -0
  110. package/dist/drizzle/session-model.d.mts +11 -22
  111. package/dist/drizzle/sqlite-do-database.d.mts +3 -3
  112. package/dist/drizzle/sqlite-do-database.mjs +6 -1
  113. package/dist/drizzle/sqlite-do-database.mjs.map +1 -1
  114. package/dist/drizzle/sqlite-identity.mjs +3 -5
  115. package/dist/drizzle/sqlite-identity.mjs.map +1 -1
  116. package/dist/drizzle/step-up-model.d.mts +2 -5
  117. package/dist/drizzle/storage-validation.mjs +2 -1
  118. package/dist/drizzle/storage-validation.mjs.map +1 -1
  119. package/dist/drizzle/totp-model.d.mts +7 -74
  120. package/dist/drizzle/totp-model.mjs +1 -5
  121. package/dist/drizzle/totp-model.mjs.map +1 -1
  122. package/dist/drizzle/totp-target.mjs +39 -75
  123. package/dist/drizzle/totp-target.mjs.map +1 -1
  124. package/dist/drizzle/transaction-handle.mjs +13 -0
  125. package/dist/drizzle/transaction-handle.mjs.map +1 -0
  126. package/dist/drizzle/transaction-mysql.mjs +43 -12
  127. package/dist/drizzle/transaction-mysql.mjs.map +1 -1
  128. package/dist/index.d.mts +17 -22
  129. package/dist/index.mjs +10 -16
  130. package/dist/internal/drizzle-postgres.mjs +4 -6
  131. package/dist/internal/drizzle-postgres.mjs.map +1 -1
  132. package/dist/internal/drizzle-sqlite.mjs +4 -6
  133. package/dist/internal/drizzle-sqlite.mjs.map +1 -1
  134. package/package.json +1 -1
  135. package/src/D1.ts +77 -74
  136. package/src/Libsql.ts +65 -105
  137. package/src/Mysql2.ts +52 -87
  138. package/src/Pglite.ts +74 -81
  139. package/src/Postgres.ts +74 -81
  140. package/src/SqliteBun.ts +65 -113
  141. package/src/SqliteDo.ts +58 -106
  142. package/src/SqliteNode.ts +65 -113
  143. package/src/SqliteWasm.ts +65 -113
  144. package/src/drizzle/d1-identity.ts +2 -2
  145. package/src/drizzle/driver-types.ts +26 -0
  146. package/src/drizzle/email-drivers.ts +320 -0
  147. package/src/drizzle/email-model.ts +24 -78
  148. package/src/drizzle/email-target.ts +118 -211
  149. package/src/drizzle/model.ts +0 -2
  150. package/src/drizzle/mysql-identity.ts +4 -24
  151. package/src/drizzle/native-clock.ts +21 -0
  152. package/src/drizzle/native-database.ts +59 -18
  153. package/src/drizzle/native-sql-table.ts +104 -87
  154. package/src/drizzle/native-target.ts +120 -0
  155. package/src/drizzle/oauth-connected-drivers.ts +24 -233
  156. package/src/drizzle/oauth-connected-model.ts +3 -93
  157. package/src/drizzle/oauth-connected-reference.ts +16 -25
  158. package/src/drizzle/oauth-drivers.ts +58 -99
  159. package/src/drizzle/oauth-model.ts +27 -132
  160. package/src/drizzle/oauth-target.ts +250 -33
  161. package/src/drizzle/passkey/target.ts +205 -0
  162. package/src/drizzle/passkey/write-target.ts +91 -0
  163. package/src/drizzle/passkey-drivers.ts +35 -133
  164. package/src/drizzle/passkey-model.ts +3 -81
  165. package/src/drizzle/passkey-registration-ceremony-model.ts +5 -25
  166. package/src/drizzle/passkey-write-drivers.ts +32 -102
  167. package/src/drizzle/passkey-write-model.ts +10 -44
  168. package/src/drizzle/password-drivers.ts +286 -0
  169. package/src/drizzle/password-model.ts +10 -44
  170. package/src/drizzle/password-target.ts +85 -239
  171. package/src/drizzle/pg-identity.ts +4 -19
  172. package/src/drizzle/phone-drivers.ts +142 -0
  173. package/src/drizzle/phone-model.ts +22 -162
  174. package/src/drizzle/phone-target.ts +51 -493
  175. package/src/drizzle/proof-drivers.ts +123 -0
  176. package/src/drizzle/proof-model.ts +12 -123
  177. package/src/drizzle/proof-target.ts +38 -102
  178. package/src/drizzle/session-drivers.ts +696 -0
  179. package/src/drizzle/session-model.ts +54 -118
  180. package/src/drizzle/sqlite-do-database.ts +8 -0
  181. package/src/drizzle/sqlite-identity.ts +4 -22
  182. package/src/drizzle/step-up-model.ts +13 -37
  183. package/src/drizzle/storage-validation.ts +2 -1
  184. package/src/drizzle/totp-model.ts +20 -77
  185. package/src/drizzle/totp-target.ts +121 -261
  186. package/src/drizzle/transaction-handle.ts +41 -0
  187. package/src/drizzle/transaction-mysql.ts +90 -25
  188. package/src/index.ts +7 -122
  189. package/src/internal/drizzle-postgres.ts +4 -7
  190. package/src/internal/drizzle-sqlite.ts +4 -7
  191. package/dist/drizzle/crypto.mjs +0 -11
  192. package/dist/drizzle/crypto.mjs.map +0 -1
  193. package/dist/drizzle/d1-emails.d.mts +0 -62
  194. package/dist/drizzle/d1-emails.mjs +0 -626
  195. package/dist/drizzle/d1-emails.mjs.map +0 -1
  196. package/dist/drizzle/d1-generated-statement.mjs +0 -79
  197. package/dist/drizzle/d1-generated-statement.mjs.map +0 -1
  198. package/dist/drizzle/d1-oauth.d.mts +0 -331
  199. package/dist/drizzle/d1-oauth.mjs +0 -79
  200. package/dist/drizzle/d1-oauth.mjs.map +0 -1
  201. package/dist/drizzle/d1-passkey.d.mts +0 -37
  202. package/dist/drizzle/d1-passkey.mjs +0 -98
  203. package/dist/drizzle/d1-passkey.mjs.map +0 -1
  204. package/dist/drizzle/d1-password-prepared.d.mts +0 -25
  205. package/dist/drizzle/d1-password-prepared.mjs +0 -473
  206. package/dist/drizzle/d1-password-prepared.mjs.map +0 -1
  207. package/dist/drizzle/d1-passwords.d.mts +0 -70
  208. package/dist/drizzle/d1-passwords.mjs +0 -808
  209. package/dist/drizzle/d1-passwords.mjs.map +0 -1
  210. package/dist/drizzle/d1-phone.d.mts +0 -23
  211. package/dist/drizzle/d1-phone.mjs +0 -33
  212. package/dist/drizzle/d1-phone.mjs.map +0 -1
  213. package/dist/drizzle/d1-planning.d.mts +0 -11
  214. package/dist/drizzle/d1-planning.mjs +0 -43
  215. package/dist/drizzle/d1-planning.mjs.map +0 -1
  216. package/dist/drizzle/d1-proofs.d.mts +0 -80
  217. package/dist/drizzle/d1-proofs.mjs +0 -842
  218. package/dist/drizzle/d1-proofs.mjs.map +0 -1
  219. package/dist/drizzle/d1-sessions.d.mts +0 -68
  220. package/dist/drizzle/d1-sessions.mjs +0 -987
  221. package/dist/drizzle/d1-sessions.mjs.map +0 -1
  222. package/dist/drizzle/d1-totp.d.mts +0 -23
  223. package/dist/drizzle/d1-totp.mjs +0 -30
  224. package/dist/drizzle/d1-totp.mjs.map +0 -1
  225. package/dist/drizzle/email-registration.d.mts +0 -33
  226. package/dist/drizzle/email-registration.mjs +0 -281
  227. package/dist/drizzle/email-registration.mjs.map +0 -1
  228. package/dist/drizzle/email-sql.d.mts +0 -1
  229. package/dist/drizzle/email-sql.mjs +0 -9
  230. package/dist/drizzle/email-sql.mjs.map +0 -1
  231. package/dist/drizzle/mysql-emails.d.mts +0 -71
  232. package/dist/drizzle/mysql-emails.mjs +0 -43
  233. package/dist/drizzle/mysql-emails.mjs.map +0 -1
  234. package/dist/drizzle/mysql-password-prepared.d.mts +0 -30
  235. package/dist/drizzle/mysql-password-prepared.mjs +0 -21
  236. package/dist/drizzle/mysql-password-prepared.mjs.map +0 -1
  237. package/dist/drizzle/mysql-passwords.d.mts +0 -71
  238. package/dist/drizzle/mysql-passwords.mjs +0 -43
  239. package/dist/drizzle/mysql-passwords.mjs.map +0 -1
  240. package/dist/drizzle/mysql-proofs.d.mts +0 -75
  241. package/dist/drizzle/mysql-proofs.mjs +0 -28
  242. package/dist/drizzle/mysql-proofs.mjs.map +0 -1
  243. package/dist/drizzle/mysql-sessions.d.mts +0 -92
  244. package/dist/drizzle/mysql-sessions.mjs +0 -58
  245. package/dist/drizzle/mysql-sessions.mjs.map +0 -1
  246. package/dist/drizzle/oauth-connected-model.mjs.map +0 -1
  247. package/dist/drizzle/oauth-connected-target.d.mts +0 -6
  248. package/dist/drizzle/oauth-connected-target.mjs +0 -12
  249. package/dist/drizzle/oauth-connected-target.mjs.map +0 -1
  250. package/dist/drizzle/oauth-kernel.mjs +0 -11
  251. package/dist/drizzle/oauth-kernel.mjs.map +0 -1
  252. package/dist/drizzle/oauth-mysql.mjs +0 -8
  253. package/dist/drizzle/oauth-mysql.mjs.map +0 -1
  254. package/dist/drizzle/passkey-kernel.mjs +0 -8
  255. package/dist/drizzle/passkey-kernel.mjs.map +0 -1
  256. package/dist/drizzle/passkey-model.mjs.map +0 -1
  257. package/dist/drizzle/passkey-registration-ceremony-model.mjs +0 -2
  258. package/dist/drizzle/passkey-state.mjs +0 -7
  259. package/dist/drizzle/passkey-state.mjs.map +0 -1
  260. package/dist/drizzle/passkey-target.d.mts +0 -2
  261. package/dist/drizzle/passkey-target.mjs +0 -7
  262. package/dist/drizzle/passkey-target.mjs.map +0 -1
  263. package/dist/drizzle/passkey-write-target.d.mts +0 -5
  264. package/dist/drizzle/passkey-write-target.mjs +0 -7
  265. package/dist/drizzle/passkey-write-target.mjs.map +0 -1
  266. package/dist/drizzle/password-prepared-model.d.mts +0 -92
  267. package/dist/drizzle/password-prepared-model.mjs +0 -11
  268. package/dist/drizzle/password-prepared-model.mjs.map +0 -1
  269. package/dist/drizzle/password-prepared-sql.mjs +0 -395
  270. package/dist/drizzle/password-prepared-sql.mjs.map +0 -1
  271. package/dist/drizzle/password-prepared-state.mjs +0 -104
  272. package/dist/drizzle/password-prepared-state.mjs.map +0 -1
  273. package/dist/drizzle/password-prepared-target.d.mts +0 -13
  274. package/dist/drizzle/password-prepared-target.mjs +0 -62
  275. package/dist/drizzle/password-prepared-target.mjs.map +0 -1
  276. package/dist/drizzle/password-registration.d.mts +0 -7
  277. package/dist/drizzle/password-registration.mjs +0 -137
  278. package/dist/drizzle/password-registration.mjs.map +0 -1
  279. package/dist/drizzle/password-sql.d.mts +0 -1
  280. package/dist/drizzle/password-sql.mjs +0 -10
  281. package/dist/drizzle/password-sql.mjs.map +0 -1
  282. package/dist/drizzle/pg-emails.d.mts +0 -72
  283. package/dist/drizzle/pg-emails.mjs +0 -43
  284. package/dist/drizzle/pg-emails.mjs.map +0 -1
  285. package/dist/drizzle/pg-password-prepared.d.mts +0 -31
  286. package/dist/drizzle/pg-password-prepared.mjs +0 -21
  287. package/dist/drizzle/pg-password-prepared.mjs.map +0 -1
  288. package/dist/drizzle/pg-passwords.d.mts +0 -72
  289. package/dist/drizzle/pg-passwords.mjs +0 -43
  290. package/dist/drizzle/pg-passwords.mjs.map +0 -1
  291. package/dist/drizzle/pg-proofs.d.mts +0 -76
  292. package/dist/drizzle/pg-proofs.mjs +0 -27
  293. package/dist/drizzle/pg-proofs.mjs.map +0 -1
  294. package/dist/drizzle/pg-sessions.d.mts +0 -93
  295. package/dist/drizzle/pg-sessions.mjs +0 -58
  296. package/dist/drizzle/pg-sessions.mjs.map +0 -1
  297. package/dist/drizzle/phone-state.mjs +0 -14
  298. package/dist/drizzle/phone-state.mjs.map +0 -1
  299. package/dist/drizzle/phone-target.d.mts +0 -15
  300. package/dist/drizzle/proof-sql.d.mts +0 -1
  301. package/dist/drizzle/proof-sql.mjs +0 -8
  302. package/dist/drizzle/proof-sql.mjs.map +0 -1
  303. package/dist/drizzle/query-operations.mjs +0 -31
  304. package/dist/drizzle/query-operations.mjs.map +0 -1
  305. package/dist/drizzle/session-sql.d.mts +0 -1
  306. package/dist/drizzle/session-sql.mjs +0 -9
  307. package/dist/drizzle/session-sql.mjs.map +0 -1
  308. package/dist/drizzle/session-target.d.mts +0 -30
  309. package/dist/drizzle/session-target.mjs +0 -49
  310. package/dist/drizzle/session-target.mjs.map +0 -1
  311. package/dist/drizzle/sqlite-emails.mjs +0 -50
  312. package/dist/drizzle/sqlite-emails.mjs.map +0 -1
  313. package/dist/drizzle/sqlite-password-prepared.mjs +0 -26
  314. package/dist/drizzle/sqlite-password-prepared.mjs.map +0 -1
  315. package/dist/drizzle/sqlite-passwords.mjs +0 -54
  316. package/dist/drizzle/sqlite-passwords.mjs.map +0 -1
  317. package/dist/drizzle/sqlite-proofs.mjs +0 -34
  318. package/dist/drizzle/sqlite-proofs.mjs.map +0 -1
  319. package/dist/drizzle/sqlite-sessions.mjs +0 -79
  320. package/dist/drizzle/sqlite-sessions.mjs.map +0 -1
  321. package/dist/drizzle/standalone-guard.d.mts +0 -2
  322. package/dist/drizzle/standalone-guard.mjs +0 -21
  323. package/dist/drizzle/standalone-guard.mjs.map +0 -1
  324. package/dist/drizzle/totp-state.d.mts +0 -37
  325. package/dist/drizzle/totp-state.mjs +0 -287
  326. package/dist/drizzle/totp-state.mjs.map +0 -1
  327. package/dist/drizzle/totp-target.d.mts +0 -15
  328. package/dist/drizzle/transaction-execution.d.mts +0 -2
  329. package/dist/drizzle/transaction-execution.mjs +0 -11
  330. package/dist/drizzle/transaction-execution.mjs.map +0 -1
  331. package/dist/drizzle/transaction-owner.d.mts +0 -1
  332. package/dist/drizzle/transaction-owner.mjs +0 -8
  333. package/dist/drizzle/transaction-owner.mjs.map +0 -1
  334. package/src/drizzle/crypto.ts +0 -14
  335. package/src/drizzle/d1-emails.ts +0 -1945
  336. package/src/drizzle/d1-generated-statement.ts +0 -129
  337. package/src/drizzle/d1-oauth.ts +0 -360
  338. package/src/drizzle/d1-passkey.ts +0 -383
  339. package/src/drizzle/d1-password-prepared.ts +0 -1266
  340. package/src/drizzle/d1-passwords.ts +0 -2061
  341. package/src/drizzle/d1-phone.ts +0 -103
  342. package/src/drizzle/d1-planning.ts +0 -104
  343. package/src/drizzle/d1-proofs.ts +0 -2354
  344. package/src/drizzle/d1-sessions.ts +0 -2940
  345. package/src/drizzle/d1-totp.ts +0 -88
  346. package/src/drizzle/email-registration.ts +0 -850
  347. package/src/drizzle/email-sql.ts +0 -25
  348. package/src/drizzle/mysql-emails.ts +0 -343
  349. package/src/drizzle/mysql-password-prepared.ts +0 -198
  350. package/src/drizzle/mysql-passwords.ts +0 -343
  351. package/src/drizzle/mysql-proofs.ts +0 -196
  352. package/src/drizzle/mysql-sessions.ts +0 -780
  353. package/src/drizzle/oauth-connected-target.ts +0 -21
  354. package/src/drizzle/oauth-kernel.ts +0 -10
  355. package/src/drizzle/oauth-mysql.ts +0 -10
  356. package/src/drizzle/passkey-kernel.ts +0 -4
  357. package/src/drizzle/passkey-state.ts +0 -3
  358. package/src/drizzle/passkey-target.ts +0 -23
  359. package/src/drizzle/passkey-write-target.ts +0 -9
  360. package/src/drizzle/password-prepared-model.ts +0 -241
  361. package/src/drizzle/password-prepared-sql.ts +0 -1202
  362. package/src/drizzle/password-prepared-state.ts +0 -231
  363. package/src/drizzle/password-prepared-target.ts +0 -169
  364. package/src/drizzle/password-registration.ts +0 -369
  365. package/src/drizzle/password-sql.ts +0 -16
  366. package/src/drizzle/pg-emails.ts +0 -343
  367. package/src/drizzle/pg-password-prepared.ts +0 -199
  368. package/src/drizzle/pg-passwords.ts +0 -342
  369. package/src/drizzle/pg-proofs.ts +0 -206
  370. package/src/drizzle/pg-sessions.ts +0 -789
  371. package/src/drizzle/phone-state.ts +0 -21
  372. package/src/drizzle/proof-sql.ts +0 -10
  373. package/src/drizzle/query-operations.ts +0 -49
  374. package/src/drizzle/session-sql.ts +0 -15
  375. package/src/drizzle/session-target.ts +0 -337
  376. package/src/drizzle/sqlite-emails.ts +0 -393
  377. package/src/drizzle/sqlite-password-prepared.ts +0 -230
  378. package/src/drizzle/sqlite-passwords.ts +0 -497
  379. package/src/drizzle/sqlite-proofs.ts +0 -229
  380. package/src/drizzle/sqlite-sessions.ts +0 -1013
  381. package/src/drizzle/totp-state.ts +0 -525
  382. package/src/drizzle/transaction-execution.ts +0 -13
  383. package/src/drizzle/transaction-owner.ts +0 -11
@@ -1,129 +0,0 @@
1
- import { sql, type SQL } from "drizzle-orm";
2
- import { Schema } from "effect";
3
- import type { Statement } from "effect/sql/Statement";
4
-
5
- // oxlint-disable-next-line no-restricted-properties -- Statement.compile exposes untyped native SQL parameters.
6
- const valuesJson = Schema.encodeUnknownSync(
7
- Schema.fromJsonString(
8
- Schema.Array(Schema.Union([Schema.String, Schema.Finite, Schema.Boolean, Schema.Null])),
9
- ),
10
- );
11
-
12
- const hex = Schema.encodeSync(Schema.Uint8ArrayFromHex);
13
- // oxlint-disable-next-line no-restricted-properties -- D1 binding parameters are untyped native views.
14
- const viewElements = Schema.decodeUnknownSync(Schema.Array(Schema.Finite));
15
-
16
- // oxlint-disable-next-line no-restricted-properties -- D1 also accepts untyped byte-array parameters.
17
- const byteElements = Schema.decodeUnknownSync(
18
- Schema.Array(Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThan(256))),
19
- );
20
-
21
- /** Private compiler boundary for generated statements only. SQLite numbered
22
- * parameters let every JSON lookup share one binding without a CTE name. */
23
- export const compactD1GeneratedStatement = <A extends object>(
24
- client: {
25
- readonly unsafe: <Row extends object>(
26
- sql: string,
27
- params?: ReadonlyArray<unknown>,
28
- ) => Statement<Row>;
29
- },
30
- statement: Statement<A>,
31
- invalid: () => unknown,
32
- ): Statement<A> => {
33
- const [source, parameters] = statement.compile();
34
-
35
- if (parameters.length <= 100 && new TextEncoder().encode(source).length <= 100_000)
36
- return statement;
37
- const blobs = new Set<number>();
38
- const numbers = new Set<number>();
39
-
40
- const values = parameters.map((value, index) => {
41
- if (typeof value === "number" || typeof value === "boolean") numbers.add(index);
42
-
43
- const bytes =
44
- value instanceof ArrayBuffer
45
- ? new Uint8Array(value)
46
- : ArrayBuffer.isView(value)
47
- ? // Match D1's Array.from(view) conversion, including empty DataView.
48
- Uint8Array.from(viewElements(Array.from(value as unknown as ArrayLike<unknown>)))
49
- : Array.isArray(value)
50
- ? Uint8Array.from(byteElements(value))
51
- : undefined;
52
-
53
- if (bytes === undefined) return value;
54
- blobs.add(index);
55
-
56
- return hex(bytes);
57
- });
58
-
59
- const encoded = valuesJson(values);
60
-
61
- let index = 0,
62
- result = "";
63
-
64
- let quote: "'" | '"' | "`" | "]" | undefined;
65
- let comment: "line" | "block" | undefined;
66
-
67
- for (let offset = 0; offset < source.length; offset++) {
68
- const char = source[offset]!,
69
- next = source[offset + 1];
70
-
71
- if (comment !== undefined) {
72
- result += char;
73
- if (comment === "line" && char === "\n") comment = undefined;
74
- else if (comment === "block" && char === "*" && next === "/") {
75
- result += next;
76
- offset++;
77
- comment = undefined;
78
- }
79
- } else if (quote !== undefined) {
80
- result += char;
81
- if (char === quote) {
82
- if (next === quote && quote !== "]") {
83
- result += next;
84
- offset++;
85
- } else quote = undefined;
86
- }
87
- } else if (char === "'" || char === '"' || char === "`" || char === "[") {
88
- quote = char === "[" ? "]" : char;
89
- result += char;
90
- } else if ((char === "-" && next === "-") || (char === "/" && next === "*")) {
91
- comment = char === "-" ? "line" : "block";
92
- result += char + next;
93
- offset++;
94
- } else if (char === "?") {
95
- if (next !== undefined && next >= "0" && next <= "9") throw invalid();
96
- const lookup = `json_extract(?1, '$[${index}]')`;
97
-
98
- result += blobs.has(index)
99
- ? `unhex(${lookup})`
100
- : numbers.has(index)
101
- ? `cast(${lookup} as real)`
102
- : lookup;
103
- index++;
104
- } else result += char;
105
- }
106
- if (
107
- index !== parameters.length ||
108
- quote !== undefined ||
109
- comment === "block" ||
110
- new TextEncoder().encode(result).length > 100_000
111
- )
112
- throw invalid();
113
-
114
- return client.unsafe<A>(result, [encoded]);
115
- };
116
-
117
- /** Keep bounded credential vectors below D1's expression-tree depth ceiling. */
118
- export const balancedD1And = (...conditions: ReadonlyArray<SQL | undefined>): SQL | undefined => {
119
- const parts = conditions.filter((condition) => condition !== undefined);
120
-
121
- const join = (start: number, end: number): SQL => {
122
- if (end - start === 1) return sql`(${parts[start]!})`;
123
- const middle = start + Math.floor((end - start) / 2);
124
-
125
- return sql`(${join(start, middle)} and ${join(middle, end)})`;
126
- };
127
-
128
- return parts.length === 0 ? undefined : join(0, parts.length);
129
- };
@@ -1,360 +0,0 @@
1
- import type { D1Client } from "@effect/sql-d1/D1Client";
2
- import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
3
- import type { LifecycleHooks } from "@yielded/auth/Hooks";
4
- import {
5
- OAuthAccountsPersistence,
6
- OAuthRegistrationIntents,
7
- OAuthSignInPersistence,
8
- OAuthUnavailable,
9
- } from "@yielded/auth/OAuth";
10
- import type { AnyRelations } from "drizzle-orm";
11
- import type { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
12
- import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
13
- import { type Crypto, Effect, Context } from "effect";
14
-
15
- import { Database as DatabaseService } from "./d1-database";
16
- import { makeD1Owner } from "./d1-planning";
17
- import { D1BatchStatements } from "./D1BatchStatements";
18
- import { nativeDatabase } from "./native-database";
19
- import type {
20
- OAuthAccountsMapping,
21
- OAuthD1Mapping,
22
- OAuthRegistrationAuthority,
23
- OAuthRegistrationIntentMapping,
24
- OAuthRegistrationMapping,
25
- OAuthSignInMapping,
26
- } from "./oauth-model";
27
- import {
28
- type OAuthCoordinatorError,
29
- coordinateTargetOAuthAccounts,
30
- coordinateTargetOAuthSignIn,
31
- coordinateTargetOAuthRegistrationIntents,
32
- coordinateTargetOAuthRegistration,
33
- makeTargetOAuthRegistrationIntentServices,
34
- makeTargetOAuthRegistrationServices,
35
- makeTargetOAuthSignInServices,
36
- makeTargetOAuthAccountsServices,
37
- } from "./oauth-target";
38
- import type { SuppliedService } from "./SuppliedService";
39
- type SQLiteTable = AnySQLiteTable<{ dialect: "sqlite" }>;
40
- type Database = EffectSQLiteD1Database<AnyRelations> & { readonly $client: D1Client };
41
- const unavailable = () => OAuthUnavailable.make({});
42
-
43
- const configuration = {
44
- mode: "batch" as const,
45
- dialect: "sqlite" as const,
46
- locking: false,
47
- standaloneGuard: () => Effect.void,
48
- };
49
-
50
- export const makeD1OAuthAccountsServices = <
51
- S extends SQLiteTable,
52
- O extends SQLiteTable,
53
- C extends SQLiteTable,
54
- AC extends SQLiteTable,
55
- F extends SQLiteTable,
56
- T extends SQLiteTable,
57
- U extends SQLiteTable,
58
- N,
59
- >(
60
- mapping: OAuthAccountsMapping<S, O, C, AC, F, T, U, N> & OAuthD1Mapping,
61
- ) =>
62
- makeTargetOAuthAccountsServices(mapping, configuration).pipe(
63
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
64
- );
65
-
66
- export const makeD1OAuthSignInServices = <
67
- S extends SQLiteTable,
68
- O extends SQLiteTable,
69
- C extends SQLiteTable,
70
- AC extends SQLiteTable,
71
- F extends SQLiteTable,
72
- N,
73
- >(
74
- mapping: OAuthSignInMapping<S, O, C, AC, F, N> & OAuthD1Mapping,
75
- ) =>
76
- makeTargetOAuthSignInServices(mapping, configuration).pipe(
77
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
78
- );
79
-
80
- export const makeD1OAuthRegistrationIntentServices = <
81
- S extends SQLiteTable,
82
- O extends SQLiteTable,
83
- C extends SQLiteTable,
84
- AC extends SQLiteTable,
85
- F extends SQLiteTable,
86
- T extends SQLiteTable,
87
- I extends SQLiteTable,
88
- N,
89
- >(
90
- mapping: OAuthRegistrationIntentMapping<S, O, C, AC, F, T, I, N> & OAuthD1Mapping,
91
- ) =>
92
- makeTargetOAuthRegistrationIntentServices(mapping, configuration).pipe(
93
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
94
- );
95
-
96
- export const makeD1OAuthRegistrationServices = <
97
- Registration,
98
- S extends SQLiteTable,
99
- O extends SQLiteTable,
100
- C extends SQLiteTable,
101
- AC extends SQLiteTable,
102
- T extends SQLiteTable,
103
- I extends SQLiteTable,
104
- R extends SQLiteTable,
105
- N,
106
- >(
107
- mapping: OAuthRegistrationMapping<Registration, S, O, C, AC, T, I, R, N> & OAuthD1Mapping,
108
- ) =>
109
- makeTargetOAuthRegistrationServices<Registration>(mapping, configuration).pipe(
110
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
111
- );
112
-
113
- export function coordinateD1OAuthSignIn<
114
- S extends SQLiteTable,
115
- O extends SQLiteTable,
116
- C extends SQLiteTable,
117
- AC extends SQLiteTable,
118
- F extends SQLiteTable,
119
- N,
120
- A,
121
- E,
122
- R,
123
- DatabaseError,
124
- DatabaseRequirements,
125
- >(
126
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
127
- options: { readonly mapping: OAuthSignInMapping<S, O, C, AC, F, N> & OAuthD1Mapping },
128
- body: Effect.Effect<A, E, R>,
129
- ): Effect.Effect<
130
- A,
131
- OAuthCoordinatorError<E> | DatabaseError,
132
- | Exclude<R, OAuthSignInPersistence | D1BatchStatements>
133
- | Crypto.Crypto
134
- | LifecycleHooks
135
- | DatabaseRequirements
136
- > {
137
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
138
- coordinateTargetOAuthSignIn<
139
- never,
140
- A,
141
- E | OAuthUnavailable,
142
- Exclude<R, OAuthSignInPersistence | D1BatchStatements>
143
- >(database, options.mapping, configuration, (_transaction, services, append) =>
144
- Effect.gen(function* () {
145
- const nativeCollector = D1BatchStatements.of({
146
- append: (statement) => Effect.sync(() => append(statement)),
147
- });
148
-
149
- const owner = yield* makeD1Owner(unavailable()).pipe(
150
- Effect.provideService(D1BatchStatements, nativeCollector),
151
- );
152
-
153
- const original = services.oauthSignInPersistence;
154
-
155
- const service: OAuthSignInPersistence["Service"] = {
156
- issue: (input, prepare) => owner.run(original.issue(input, prepare)),
157
- claim: (input, prepare) => owner.run(original.claim(input, prepare)),
158
- settle: (input, prepare) => owner.run(original.settle(input, prepare)),
159
- cleanup: (input, prepare) => owner.run(original.cleanup(input, prepare)),
160
- };
161
-
162
- const provided = Context.make(OAuthSignInPersistence, service).pipe(
163
- Context.add(D1BatchStatements, owner.collector),
164
- );
165
-
166
- return yield* owner.close(Effect.provideContext(body, provided));
167
- }),
168
- ).pipe(Effect.provideService(NativeDatabase, database)),
169
- );
170
- }
171
-
172
- export function coordinateD1OAuthRegistrationIntents<
173
- S extends SQLiteTable,
174
- O extends SQLiteTable,
175
- C extends SQLiteTable,
176
- AC extends SQLiteTable,
177
- F extends SQLiteTable,
178
- T extends SQLiteTable,
179
- I extends SQLiteTable,
180
- N,
181
- A,
182
- E,
183
- R,
184
- DatabaseError,
185
- DatabaseRequirements,
186
- >(
187
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
188
- options: {
189
- readonly mapping: OAuthRegistrationIntentMapping<S, O, C, AC, F, T, I, N> & OAuthD1Mapping;
190
- },
191
- body: Effect.Effect<A, E, R>,
192
- ): Effect.Effect<
193
- A,
194
- OAuthCoordinatorError<E> | DatabaseError,
195
- | Exclude<R, OAuthRegistrationIntents | D1BatchStatements>
196
- | Crypto.Crypto
197
- | LifecycleHooks
198
- | DatabaseRequirements
199
- > {
200
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
201
- coordinateTargetOAuthRegistrationIntents<
202
- never,
203
- A,
204
- E | OAuthUnavailable,
205
- Exclude<R, OAuthRegistrationIntents | D1BatchStatements>
206
- >(database, options.mapping, configuration, (_transaction, services, append) =>
207
- Effect.gen(function* () {
208
- const nativeCollector = D1BatchStatements.of({
209
- append: (statement) => Effect.sync(() => append(statement)),
210
- });
211
-
212
- const owner = yield* makeD1Owner(unavailable()).pipe(
213
- Effect.provideService(D1BatchStatements, nativeCollector),
214
- );
215
-
216
- const original = services.oauthRegistrationIntents;
217
-
218
- const service: OAuthRegistrationIntents["Service"] = {
219
- settle: (input, prepare) => owner.run(original.settle(input, prepare)),
220
- };
221
-
222
- const provided = Context.make(OAuthRegistrationIntents, service).pipe(
223
- Context.add(D1BatchStatements, owner.collector),
224
- );
225
-
226
- return yield* owner.close(Effect.provideContext(body, provided));
227
- }),
228
- ).pipe(Effect.provideService(NativeDatabase, database)),
229
- );
230
- }
231
-
232
- export function coordinateD1OAuthAccounts<
233
- S extends SQLiteTable,
234
- O extends SQLiteTable,
235
- C extends SQLiteTable,
236
- AC extends SQLiteTable,
237
- F extends SQLiteTable,
238
- T extends SQLiteTable,
239
- U extends SQLiteTable,
240
- N,
241
- A,
242
- E,
243
- R,
244
- DatabaseError,
245
- DatabaseRequirements,
246
- >(
247
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
248
- options: { readonly mapping: OAuthAccountsMapping<S, O, C, AC, F, T, U, N> & OAuthD1Mapping },
249
- body: Effect.Effect<A, E, R>,
250
- ): Effect.Effect<
251
- A,
252
- OAuthCoordinatorError<E> | DatabaseError,
253
- | Exclude<R, OAuthAccountsPersistence | D1BatchStatements>
254
- | Crypto.Crypto
255
- | LifecycleHooks
256
- | DatabaseRequirements
257
- > {
258
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
259
- coordinateTargetOAuthAccounts<
260
- never,
261
- A,
262
- E | OAuthUnavailable,
263
- Exclude<R, OAuthAccountsPersistence | D1BatchStatements>
264
- >(database, options.mapping, configuration, (_transaction, services, append) =>
265
- Effect.gen(function* () {
266
- const nativeCollector = D1BatchStatements.of({
267
- append: (statement) => Effect.sync(() => append(statement)),
268
- });
269
-
270
- const owner = yield* makeD1Owner(unavailable()).pipe(
271
- Effect.provideService(D1BatchStatements, nativeCollector),
272
- );
273
-
274
- const original = services.oauthAccountsPersistence;
275
-
276
- const service: OAuthAccountsPersistence["Service"] = {
277
- capture: (input) => owner.run(original.capture(input)),
278
- issue: (input, prepare) => owner.run(original.issue(input, prepare)),
279
- preflight: (input) => owner.run(original.preflight(input)),
280
- claim: (input, prepare) => owner.run(original.claim(input, prepare)),
281
- settle: (input, prepare) => owner.run(original.settle(input, prepare)),
282
- inspectUnlink: (input) => owner.run(original.inspectUnlink(input)),
283
- unlink: (input, prepare) => owner.run(original.unlink(input, prepare)),
284
- cleanup: (input, prepare) => owner.run(original.cleanup(input, prepare)),
285
- };
286
-
287
- const provided = Context.make(OAuthAccountsPersistence, service).pipe(
288
- Context.add(D1BatchStatements, owner.collector),
289
- );
290
-
291
- return yield* owner.close(Effect.provideContext(body, provided));
292
- }),
293
- ).pipe(Effect.provideService(NativeDatabase, database)),
294
- );
295
- }
296
-
297
- export function coordinateD1OAuthRegistration<
298
- TargetId,
299
- Registration,
300
- S extends SQLiteTable,
301
- O extends SQLiteTable,
302
- C extends SQLiteTable,
303
- AC extends SQLiteTable,
304
- T extends SQLiteTable,
305
- I extends SQLiteTable,
306
- Rq extends SQLiteTable,
307
- N,
308
- A,
309
- E,
310
- R,
311
- DatabaseError,
312
- DatabaseRequirements,
313
- >(
314
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
315
- options: {
316
- readonly mapping: OAuthRegistrationMapping<NoInfer<Registration>, S, O, C, AC, T, I, Rq, N> &
317
- OAuthD1Mapping;
318
- readonly target: SuppliedService<TargetId, OAuthRegistrationAuthority<Registration>>;
319
- },
320
- body: Effect.Effect<A, E, R>,
321
- ): Effect.Effect<
322
- A,
323
- OAuthCoordinatorError<E> | DatabaseError,
324
- Exclude<R, TargetId | D1BatchStatements> | Crypto.Crypto | LifecycleHooks | DatabaseRequirements
325
- > {
326
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
327
- coordinateTargetOAuthRegistration<
328
- Registration,
329
- never,
330
- A,
331
- E | OAuthUnavailable,
332
- Exclude<R, TargetId | D1BatchStatements>
333
- >(database, options.mapping, configuration, (_transaction, services, append) =>
334
- Effect.gen(function* () {
335
- const nativeCollector = D1BatchStatements.of({
336
- append: (statement) => Effect.sync(() => append(statement)),
337
- });
338
-
339
- const owner = yield* makeD1Owner(unavailable()).pipe(
340
- Effect.provideService(D1BatchStatements, nativeCollector),
341
- );
342
-
343
- const original = services.registrationAuthority;
344
-
345
- const service: OAuthRegistrationAuthority<Registration> = {
346
- read: (input) => owner.run(original.read(input)),
347
- inspect: (input) => owner.run(original.inspect(input)),
348
- register: (input, prepare) => owner.run(original.register(input, prepare)),
349
- cleanup: (input, prepare) => owner.run(original.cleanup(input, prepare)),
350
- };
351
-
352
- const provided = Context.make(options.target, service).pipe(
353
- Context.add(D1BatchStatements, owner.collector),
354
- );
355
-
356
- return yield* owner.close(Effect.provideContext(body, provided));
357
- }),
358
- ).pipe(Effect.provideService(NativeDatabase, database)),
359
- );
360
- }