@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,1013 +0,0 @@
1
- import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
2
- import type { LifecycleHooks, HookConfigurationError } from "@yielded/auth/Hooks";
3
- import {
4
- AuthenticationAuthority,
5
- type SessionUnavailable,
6
- type PendingAuthentication,
7
- type SessionRepository,
8
- type SignedSessionValidity,
9
- type StatefulSessionPersistence,
10
- type SessionStepUpPersistence,
11
- } from "@yielded/auth/Sessions";
12
- import type { AnyRelations } from "drizzle-orm";
13
- import type { EffectLibsqlDatabase } from "drizzle-orm/effect-libsql";
14
- import type { EffectSQLiteBunDatabase } from "drizzle-orm/effect-sqlite-bun";
15
- import type { EffectSQLiteNodeDatabase } from "drizzle-orm/effect-sqlite-node";
16
- import type { EffectSQLiteWasmDatabase } from "drizzle-orm/effect-sqlite-wasm";
17
- import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
18
- import { Context, Effect } from "effect";
19
- import type { SqlError } from "effect/sql/SqlError";
20
-
21
- import { nativeDatabase } from "./native-database";
22
- import type {
23
- AuthenticationAuthorityMapping,
24
- PendingAuthenticationMapping,
25
- SignedSessionValidityMapping,
26
- StatefulSessionMapping,
27
- } from "./session-model";
28
- import { CurrentSessionSql } from "./session-sql";
29
- import {
30
- coordinateTargetAuthenticationAuthority,
31
- coordinateTargetPendingAuthentication,
32
- coordinateTargetSignedSessionValidity,
33
- coordinateTargetStatefulSessions,
34
- makeTargetAuthenticationAuthorityServices,
35
- makeTargetPendingAuthenticationServices,
36
- makeTargetSignedSessionValidityServices,
37
- makeTargetStatefulSessionServices,
38
- type SessionTargetConfiguration,
39
- makeTargetSessionStepUpServices,
40
- coordinateTargetSessionStepUp,
41
- } from "./session-target";
42
- import type { DatabaseValue } from "./sqlite-do-database";
43
- import {
44
- type TransactionService,
45
- acquireTransactionService,
46
- transactionService,
47
- } from "./standalone-guard";
48
- import type { SuppliedService } from "./SuppliedService";
49
-
50
- type Database =
51
- | EffectLibsqlDatabase<AnyRelations>
52
- | EffectSQLiteBunDatabase<AnyRelations>
53
- | DatabaseValue<AnyRelations>
54
- | EffectSQLiteNodeDatabase<AnyRelations>
55
- | EffectSQLiteWasmDatabase<AnyRelations>;
56
- type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
57
-
58
- export const sqliteSessionConfiguration = (
59
- mode: "interactive" | "synchronous",
60
- standaloneGuard: Effect.Effect<void, SessionUnavailable>,
61
- coordinatorGuard?: Effect.Effect<void, SessionUnavailable>,
62
- ): SessionTargetConfiguration => ({
63
- mode,
64
- locking: false,
65
- standaloneGuard,
66
- ...(coordinatorGuard === undefined ? {} : { coordinatorGuard }),
67
- });
68
-
69
- export const makeSqliteAuthenticationAuthorityServices = <
70
- Claims,
71
- S extends AnySQLiteTable,
72
- C extends AnySQLiteTable,
73
- F extends AnySQLiteTable,
74
- P extends AnySQLiteTable,
75
- NativeId,
76
- >(
77
- mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>,
78
- configuration: SessionTargetConfiguration,
79
- ) => makeTargetAuthenticationAuthorityServices<Claims>(mapping, configuration);
80
-
81
- export const makeSqlitePendingAuthenticationServices = <
82
- Claims,
83
- S extends AnySQLiteTable,
84
- C extends AnySQLiteTable,
85
- P extends AnySQLiteTable,
86
- F extends AnySQLiteTable,
87
- NativeId,
88
- >(
89
- mapping: PendingAuthenticationMapping<Claims, S, C, P, F, NativeId>,
90
- configuration: SessionTargetConfiguration,
91
- ) => makeTargetPendingAuthenticationServices<Claims>(mapping, configuration);
92
-
93
- export const makeSqliteStatefulSessionServices = <
94
- Claims,
95
- S extends AnySQLiteTable,
96
- C extends AnySQLiteTable,
97
- Session extends AnySQLiteTable,
98
- F extends AnySQLiteTable,
99
- P extends AnySQLiteTable,
100
- NativeId,
101
- NativeSessionId,
102
- >(
103
- mapping: StatefulSessionMapping<Claims, S, C, Session, F, P, NativeId, NativeSessionId>,
104
- configuration: SessionTargetConfiguration,
105
- ) => makeTargetStatefulSessionServices<Claims>(mapping, configuration);
106
-
107
- export const makeSqliteSignedSessionValidityServices = <
108
- S extends AnySQLiteTable,
109
- T extends AnySQLiteTable,
110
- NativeId,
111
- NativeSessionId,
112
- >(
113
- mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>,
114
- configuration: SessionTargetConfiguration,
115
- ) => makeTargetSignedSessionValidityServices(mapping, configuration);
116
-
117
- export const coordinateSqliteAuthenticationAuthority = <
118
- Claims,
119
- D extends Database,
120
- S extends AnySQLiteTable,
121
- C extends AnySQLiteTable,
122
- F extends AnySQLiteTable,
123
- P extends AnySQLiteTable,
124
- NativeId,
125
- A,
126
- E,
127
- R,
128
- >(
129
- database: D,
130
- mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>,
131
- configuration: SessionTargetConfiguration,
132
- owner: (
133
- transaction: TransactionOf<D>,
134
- services: { readonly authenticationAuthority: AuthenticationAuthority["Service"] },
135
- ) => Effect.Effect<A, E, R>,
136
- ) =>
137
- coordinateTargetAuthenticationAuthority<Claims, TransactionOf<D>, A, E, R>(
138
- database,
139
- mapping,
140
- configuration,
141
- owner,
142
- );
143
-
144
- export const coordinateSqlitePendingAuthentication = <
145
- Claims,
146
- D extends Database,
147
- S extends AnySQLiteTable,
148
- C extends AnySQLiteTable,
149
- P extends AnySQLiteTable,
150
- F extends AnySQLiteTable,
151
- NativeId,
152
- A,
153
- E,
154
- R,
155
- >(
156
- database: D,
157
- mapping: PendingAuthenticationMapping<Claims, S, C, P, F, NativeId>,
158
- configuration: SessionTargetConfiguration,
159
- owner: (
160
- transaction: TransactionOf<D>,
161
- services: { readonly pendingAuthentication: PendingAuthentication<Claims> },
162
- ) => Effect.Effect<A, E, R>,
163
- ) =>
164
- coordinateTargetPendingAuthentication<Claims, TransactionOf<D>, A, E, R>(
165
- database,
166
- mapping,
167
- configuration,
168
- owner,
169
- );
170
-
171
- export const coordinateSqliteStatefulSessions = <
172
- Claims,
173
- D extends Database,
174
- S extends AnySQLiteTable,
175
- C extends AnySQLiteTable,
176
- Session extends AnySQLiteTable,
177
- F extends AnySQLiteTable,
178
- P extends AnySQLiteTable,
179
- NativeId,
180
- NativeSessionId,
181
- A,
182
- E,
183
- R,
184
- >(
185
- database: D,
186
- mapping: StatefulSessionMapping<Claims, S, C, Session, F, P, NativeId, NativeSessionId>,
187
- configuration: SessionTargetConfiguration,
188
- owner: (
189
- transaction: TransactionOf<D>,
190
- services: {
191
- readonly statefulSessionPersistence: StatefulSessionPersistence<Claims>;
192
- readonly sessionRepository: SessionRepository;
193
- },
194
- ) => Effect.Effect<A, E, R>,
195
- ) =>
196
- coordinateTargetStatefulSessions<Claims, TransactionOf<D>, A, E, R>(
197
- database,
198
- mapping,
199
- configuration,
200
- owner,
201
- );
202
-
203
- export const coordinateSqliteSignedSessionValidity = <
204
- D extends Database,
205
- S extends AnySQLiteTable,
206
- T extends AnySQLiteTable,
207
- NativeId,
208
- NativeSessionId,
209
- A,
210
- E,
211
- R,
212
- >(
213
- database: D,
214
- mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>,
215
- configuration: SessionTargetConfiguration,
216
- owner: (
217
- transaction: TransactionOf<D>,
218
- services: { readonly signedSessionValidity: SignedSessionValidity },
219
- ) => Effect.Effect<A, E, R>,
220
- ) =>
221
- coordinateTargetSignedSessionValidity<TransactionOf<D>, A, E, R>(
222
- database,
223
- mapping,
224
- configuration,
225
- owner,
226
- );
227
-
228
- export const makeSqliteSessionTarget = <
229
- DatabaseId,
230
- D extends Database,
231
- Synchronous extends boolean = false,
232
- >(
233
- databaseService: Context.Service<DatabaseId, D>,
234
- configuration:
235
- | SessionTargetConfiguration
236
- | ((service: TransactionService | undefined) => SessionTargetConfiguration),
237
- ) => {
238
- const configurationFor = (database: D) =>
239
- typeof configuration === "function"
240
- ? configuration(transactionService(database))
241
- : configuration;
242
-
243
- const standaloneConfiguration =
244
- typeof configuration === "function"
245
- ? Effect.map(acquireTransactionService(databaseService), configuration)
246
- : Effect.succeed(configuration);
247
-
248
- function coordinateSessionStepUp<
249
- Database extends D,
250
- Claims,
251
- Id,
252
- S extends AnySQLiteTable,
253
- C extends AnySQLiteTable,
254
- I extends AnySQLiteTable,
255
- Session extends AnySQLiteTable,
256
- T extends AnySQLiteTable,
257
- NativeId,
258
- NativeSessionId,
259
- A,
260
- E,
261
- R,
262
- DatabaseError,
263
- DatabaseRequirements,
264
- >(
265
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
266
- options: {
267
- readonly mapping: SessionStepUpMapping<
268
- NoInfer<Claims>,
269
- S,
270
- C,
271
- I,
272
- Session,
273
- T,
274
- NativeId,
275
- NativeSessionId
276
- >;
277
- readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
278
- readonly transaction?: never;
279
- },
280
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<Id> : R>,
281
- ): Effect.Effect<
282
- A,
283
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
284
- (Synchronous extends true ? never : Exclude<R, Id>) | LifecycleHooks | DatabaseRequirements
285
- >;
286
- function coordinateSessionStepUp<
287
- Database extends D,
288
- Claims,
289
- Id,
290
- S extends AnySQLiteTable,
291
- C extends AnySQLiteTable,
292
- I extends AnySQLiteTable,
293
- Session extends AnySQLiteTable,
294
- T extends AnySQLiteTable,
295
- NativeId,
296
- NativeSessionId,
297
- A,
298
- E,
299
- R,
300
- DatabaseError,
301
- DatabaseRequirements,
302
- TxId,
303
- TxShape,
304
- >(
305
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
306
- options: {
307
- readonly mapping: SessionStepUpMapping<
308
- NoInfer<Claims>,
309
- S,
310
- C,
311
- I,
312
- Session,
313
- T,
314
- NativeId,
315
- NativeSessionId
316
- >;
317
- readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
318
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
319
- },
320
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<Id | TxId> : R>,
321
- ): Effect.Effect<
322
- A,
323
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
324
- | (Synchronous extends true ? never : Exclude<R, Id | TxId>)
325
- | LifecycleHooks
326
- | DatabaseRequirements
327
- >;
328
- function coordinateSessionStepUp<
329
- Database extends D,
330
- Claims,
331
- Id,
332
- S extends AnySQLiteTable,
333
- C extends AnySQLiteTable,
334
- I extends AnySQLiteTable,
335
- Session extends AnySQLiteTable,
336
- T extends AnySQLiteTable,
337
- NativeId,
338
- NativeSessionId,
339
- A,
340
- E,
341
- R,
342
- DatabaseError,
343
- DatabaseRequirements,
344
- TxId,
345
- TxShape,
346
- >(
347
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
348
- options: {
349
- readonly mapping: SessionStepUpMapping<
350
- NoInfer<Claims>,
351
- S,
352
- C,
353
- I,
354
- Session,
355
- T,
356
- NativeId,
357
- NativeSessionId
358
- >;
359
- readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
360
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
361
- },
362
- body: Effect.Effect<A, E, R>,
363
- ): Effect.Effect<
364
- A,
365
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
366
- Exclude<R, Id> | LifecycleHooks | DatabaseRequirements
367
- > {
368
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
369
- coordinateSqliteSessionStepUp(
370
- database,
371
- options.mapping,
372
- options.target,
373
- configurationFor(database),
374
- (
375
- transaction: TransactionOf<Database>,
376
- services: { readonly sessionStepUpPersistence: SessionStepUpPersistence<Claims> },
377
- ) => {
378
- const provided = Context.make(options.target, services.sessionStepUpPersistence);
379
- const work = Effect.provideContext(body, provided);
380
-
381
- return options.transaction === undefined
382
- ? work
383
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
384
- },
385
- ).pipe(Effect.provideService(NativeDatabase, database)),
386
- );
387
- }
388
- function coordinateAuthenticationAuthority<
389
- Database extends D,
390
- Claims,
391
- S extends AnySQLiteTable,
392
- C extends AnySQLiteTable,
393
- F extends AnySQLiteTable,
394
- P extends AnySQLiteTable,
395
- NativeId,
396
- A,
397
- E,
398
- R,
399
- DatabaseError,
400
- DatabaseRequirements,
401
- >(
402
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
403
- options: {
404
- readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
405
- readonly transaction?: never;
406
- },
407
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<AuthenticationAuthority> : R>,
408
- ): Effect.Effect<
409
- A,
410
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
411
- | (Synchronous extends true ? never : Exclude<R, AuthenticationAuthority>)
412
- | LifecycleHooks
413
- | DatabaseRequirements
414
- >;
415
- function coordinateAuthenticationAuthority<
416
- Database extends D,
417
- Claims,
418
- S extends AnySQLiteTable,
419
- C extends AnySQLiteTable,
420
- F extends AnySQLiteTable,
421
- P extends AnySQLiteTable,
422
- NativeId,
423
- A,
424
- E,
425
- R,
426
- DatabaseError,
427
- DatabaseRequirements,
428
- TxId,
429
- TxShape,
430
- >(
431
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
432
- options: {
433
- readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
434
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
435
- },
436
- body: Effect.Effect<
437
- A,
438
- E,
439
- Synchronous extends true ? NoInfer<AuthenticationAuthority | TxId> : R
440
- >,
441
- ): Effect.Effect<
442
- A,
443
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
444
- | (Synchronous extends true ? never : Exclude<R, AuthenticationAuthority | TxId>)
445
- | LifecycleHooks
446
- | DatabaseRequirements
447
- >;
448
- function coordinateAuthenticationAuthority<
449
- Database extends D,
450
- Claims,
451
- S extends AnySQLiteTable,
452
- C extends AnySQLiteTable,
453
- F extends AnySQLiteTable,
454
- P extends AnySQLiteTable,
455
- NativeId,
456
- A,
457
- E,
458
- R,
459
- DatabaseError,
460
- DatabaseRequirements,
461
- TxId,
462
- TxShape,
463
- >(
464
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
465
- options: {
466
- readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
467
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
468
- },
469
- body: Effect.Effect<A, E, R>,
470
- ): Effect.Effect<
471
- A,
472
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
473
- Exclude<R, AuthenticationAuthority> | LifecycleHooks | DatabaseRequirements
474
- > {
475
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
476
- coordinateSqliteAuthenticationAuthority(
477
- database,
478
- options.mapping,
479
- configurationFor(database),
480
- (
481
- transaction: TransactionOf<Database>,
482
- services: { readonly authenticationAuthority: AuthenticationAuthority["Service"] },
483
- ) => {
484
- const provided = Context.make(AuthenticationAuthority, services.authenticationAuthority);
485
- const work = Effect.provideContext(body, provided);
486
-
487
- return options.transaction === undefined
488
- ? work
489
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
490
- },
491
- ).pipe(Effect.provideService(NativeDatabase, database)),
492
- );
493
- }
494
- function coordinatePendingAuthentication<
495
- Database extends D,
496
- TargetId,
497
- Claims,
498
- S extends AnySQLiteTable,
499
- C extends AnySQLiteTable,
500
- P extends AnySQLiteTable,
501
- F extends AnySQLiteTable,
502
- NativeId,
503
- A,
504
- E,
505
- R,
506
- DatabaseError,
507
- DatabaseRequirements,
508
- >(
509
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
510
- options: {
511
- readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
512
- readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
513
- readonly transaction?: never;
514
- },
515
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId> : R>,
516
- ): Effect.Effect<
517
- A,
518
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
519
- | (Synchronous extends true ? never : Exclude<R, TargetId>)
520
- | LifecycleHooks
521
- | DatabaseRequirements
522
- >;
523
- function coordinatePendingAuthentication<
524
- Database extends D,
525
- TargetId,
526
- Claims,
527
- S extends AnySQLiteTable,
528
- C extends AnySQLiteTable,
529
- P extends AnySQLiteTable,
530
- F extends AnySQLiteTable,
531
- NativeId,
532
- A,
533
- E,
534
- R,
535
- DatabaseError,
536
- DatabaseRequirements,
537
- TxId,
538
- TxShape,
539
- >(
540
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
541
- options: {
542
- readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
543
- readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
544
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
545
- },
546
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,
547
- ): Effect.Effect<
548
- A,
549
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
550
- | (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)
551
- | LifecycleHooks
552
- | DatabaseRequirements
553
- >;
554
- function coordinatePendingAuthentication<
555
- Database extends D,
556
- TargetId,
557
- Claims,
558
- S extends AnySQLiteTable,
559
- C extends AnySQLiteTable,
560
- P extends AnySQLiteTable,
561
- F extends AnySQLiteTable,
562
- NativeId,
563
- A,
564
- E,
565
- R,
566
- DatabaseError,
567
- DatabaseRequirements,
568
- TxId,
569
- TxShape,
570
- >(
571
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
572
- options: {
573
- readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
574
- readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
575
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
576
- },
577
- body: Effect.Effect<A, E, R>,
578
- ): Effect.Effect<
579
- A,
580
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
581
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
582
- > {
583
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
584
- coordinateSqlitePendingAuthentication(
585
- database,
586
- options.mapping,
587
- configurationFor(database),
588
- (
589
- transaction: TransactionOf<Database>,
590
- services: { readonly pendingAuthentication: PendingAuthentication<Claims> },
591
- ) => {
592
- const provided = Context.make(options.target, services.pendingAuthentication);
593
- const work = Effect.provideContext(body, provided);
594
-
595
- return options.transaction === undefined
596
- ? work
597
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
598
- },
599
- ).pipe(Effect.provideService(NativeDatabase, database)),
600
- );
601
- }
602
- function coordinateStatefulSessions<
603
- Database extends D,
604
- PersistenceId,
605
- RepositoryId,
606
- Claims,
607
- S extends AnySQLiteTable,
608
- C extends AnySQLiteTable,
609
- Session extends AnySQLiteTable,
610
- F extends AnySQLiteTable,
611
- P extends AnySQLiteTable,
612
- NativeId,
613
- NativeSessionId,
614
- A,
615
- E,
616
- R,
617
- DatabaseError,
618
- DatabaseRequirements,
619
- >(
620
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
621
- options: {
622
- readonly mapping: StatefulSessionMapping<
623
- NoInfer<Claims>,
624
- S,
625
- C,
626
- Session,
627
- F,
628
- P,
629
- NativeId,
630
- NativeSessionId
631
- >;
632
- readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
633
- readonly repository: SuppliedService<RepositoryId, SessionRepository>;
634
- readonly transaction?: never;
635
- },
636
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<PersistenceId | RepositoryId> : R>,
637
- ): Effect.Effect<
638
- A,
639
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
640
- | (Synchronous extends true ? never : Exclude<R, PersistenceId | RepositoryId>)
641
- | LifecycleHooks
642
- | DatabaseRequirements
643
- >;
644
- function coordinateStatefulSessions<
645
- Database extends D,
646
- PersistenceId,
647
- RepositoryId,
648
- Claims,
649
- S extends AnySQLiteTable,
650
- C extends AnySQLiteTable,
651
- Session extends AnySQLiteTable,
652
- F extends AnySQLiteTable,
653
- P extends AnySQLiteTable,
654
- NativeId,
655
- NativeSessionId,
656
- A,
657
- E,
658
- R,
659
- DatabaseError,
660
- DatabaseRequirements,
661
- TxId,
662
- TxShape,
663
- >(
664
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
665
- options: {
666
- readonly mapping: StatefulSessionMapping<
667
- NoInfer<Claims>,
668
- S,
669
- C,
670
- Session,
671
- F,
672
- P,
673
- NativeId,
674
- NativeSessionId
675
- >;
676
- readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
677
- readonly repository: SuppliedService<RepositoryId, SessionRepository>;
678
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
679
- },
680
- body: Effect.Effect<
681
- A,
682
- E,
683
- Synchronous extends true ? NoInfer<PersistenceId | RepositoryId | TxId> : R
684
- >,
685
- ): Effect.Effect<
686
- A,
687
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
688
- | (Synchronous extends true ? never : Exclude<R, PersistenceId | RepositoryId | TxId>)
689
- | LifecycleHooks
690
- | DatabaseRequirements
691
- >;
692
- function coordinateStatefulSessions<
693
- Database extends D,
694
- PersistenceId,
695
- RepositoryId,
696
- Claims,
697
- S extends AnySQLiteTable,
698
- C extends AnySQLiteTable,
699
- Session extends AnySQLiteTable,
700
- F extends AnySQLiteTable,
701
- P extends AnySQLiteTable,
702
- NativeId,
703
- NativeSessionId,
704
- A,
705
- E,
706
- R,
707
- DatabaseError,
708
- DatabaseRequirements,
709
- TxId,
710
- TxShape,
711
- >(
712
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
713
- options: {
714
- readonly mapping: StatefulSessionMapping<
715
- NoInfer<Claims>,
716
- S,
717
- C,
718
- Session,
719
- F,
720
- P,
721
- NativeId,
722
- NativeSessionId
723
- >;
724
- readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
725
- readonly repository: SuppliedService<RepositoryId, SessionRepository>;
726
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
727
- },
728
- body: Effect.Effect<A, E, R>,
729
- ): Effect.Effect<
730
- A,
731
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
732
- Exclude<R, PersistenceId | RepositoryId> | LifecycleHooks | DatabaseRequirements
733
- > {
734
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
735
- coordinateSqliteStatefulSessions(
736
- database,
737
- options.mapping,
738
- configurationFor(database),
739
- (
740
- transaction: TransactionOf<Database>,
741
- services: {
742
- readonly statefulSessionPersistence: StatefulSessionPersistence<Claims>;
743
- readonly sessionRepository: SessionRepository;
744
- },
745
- ) => {
746
- const provided = Context.make(
747
- options.persistence,
748
- services.statefulSessionPersistence,
749
- ).pipe(Context.add(options.repository, services.sessionRepository));
750
-
751
- const work = Effect.provideContext(body, provided);
752
-
753
- return options.transaction === undefined
754
- ? work
755
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
756
- },
757
- ).pipe(Effect.provideService(NativeDatabase, database)),
758
- );
759
- }
760
- function coordinateSignedSessionValidity<
761
- Database extends D,
762
- TargetId,
763
- S extends AnySQLiteTable,
764
- T extends AnySQLiteTable,
765
- NativeId,
766
- NativeSessionId,
767
- A,
768
- E,
769
- R,
770
- DatabaseError,
771
- DatabaseRequirements,
772
- >(
773
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
774
- options: {
775
- readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
776
- readonly target: SuppliedService<TargetId, SignedSessionValidity>;
777
- readonly transaction?: never;
778
- },
779
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId> : R>,
780
- ): Effect.Effect<
781
- A,
782
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
783
- | (Synchronous extends true ? never : Exclude<R, TargetId>)
784
- | LifecycleHooks
785
- | DatabaseRequirements
786
- >;
787
- function coordinateSignedSessionValidity<
788
- Database extends D,
789
- TargetId,
790
- S extends AnySQLiteTable,
791
- T extends AnySQLiteTable,
792
- NativeId,
793
- NativeSessionId,
794
- A,
795
- E,
796
- R,
797
- DatabaseError,
798
- DatabaseRequirements,
799
- TxId,
800
- TxShape,
801
- >(
802
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
803
- options: {
804
- readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
805
- readonly target: SuppliedService<TargetId, SignedSessionValidity>;
806
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
807
- },
808
- body: Effect.Effect<A, E, Synchronous extends true ? NoInfer<TargetId | TxId> : R>,
809
- ): Effect.Effect<
810
- A,
811
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
812
- | (Synchronous extends true ? never : Exclude<R, TargetId | TxId>)
813
- | LifecycleHooks
814
- | DatabaseRequirements
815
- >;
816
- function coordinateSignedSessionValidity<
817
- Database extends D,
818
- TargetId,
819
- S extends AnySQLiteTable,
820
- T extends AnySQLiteTable,
821
- NativeId,
822
- NativeSessionId,
823
- A,
824
- E,
825
- R,
826
- DatabaseError,
827
- DatabaseRequirements,
828
- TxId,
829
- TxShape,
830
- >(
831
- acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>,
832
- options: {
833
- readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
834
- readonly target: SuppliedService<TargetId, SignedSessionValidity>;
835
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<Database>>, TxShape>;
836
- },
837
- body: Effect.Effect<A, E, R>,
838
- ): Effect.Effect<
839
- A,
840
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
841
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
842
- > {
843
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
844
- coordinateSqliteSignedSessionValidity(
845
- database,
846
- options.mapping,
847
- configurationFor(database),
848
- (
849
- transaction: TransactionOf<Database>,
850
- services: { readonly signedSessionValidity: SignedSessionValidity },
851
- ) => {
852
- const provided = Context.make(options.target, services.signedSessionValidity);
853
- const work = Effect.provideContext(body, provided);
854
-
855
- return options.transaction === undefined
856
- ? work
857
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
858
- },
859
- ).pipe(Effect.provideService(NativeDatabase, database)),
860
- );
861
- }
862
-
863
- return {
864
- makeSessionStepUpServices: <
865
- Claims,
866
- Id,
867
- S extends AnySQLiteTable,
868
- C extends AnySQLiteTable,
869
- I extends AnySQLiteTable,
870
- Session extends AnySQLiteTable,
871
- T extends AnySQLiteTable,
872
- NativeId,
873
- NativeSessionId,
874
- >(
875
- mapping: SessionStepUpMapping<
876
- NoInfer<Claims>,
877
- S,
878
- C,
879
- I,
880
- Session,
881
- T,
882
- NativeId,
883
- NativeSessionId
884
- >,
885
- target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
886
- ) =>
887
- Effect.flatMap(standaloneConfiguration, (configuration) =>
888
- makeSqliteSessionStepUpServices(mapping, target, configuration),
889
- ).pipe(
890
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(databaseService)),
891
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
892
- ),
893
- coordinateSessionStepUp,
894
- makeAuthenticationAuthorityServices: <
895
- Claims,
896
- S extends AnySQLiteTable,
897
- C extends AnySQLiteTable,
898
- F extends AnySQLiteTable,
899
- P extends AnySQLiteTable,
900
- NativeId,
901
- >(
902
- mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>,
903
- ) =>
904
- Effect.flatMap(standaloneConfiguration, (configuration) =>
905
- makeSqliteAuthenticationAuthorityServices(mapping, configuration),
906
- ).pipe(
907
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(databaseService)),
908
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
909
- ),
910
- makePendingAuthenticationServices: <
911
- Claims,
912
- S extends AnySQLiteTable,
913
- C extends AnySQLiteTable,
914
- P extends AnySQLiteTable,
915
- F extends AnySQLiteTable,
916
- NativeId,
917
- >(
918
- mapping: PendingAuthenticationMapping<Claims, S, C, P, F, NativeId>,
919
- ) =>
920
- Effect.flatMap(standaloneConfiguration, (configuration) =>
921
- makeSqlitePendingAuthenticationServices(mapping, configuration),
922
- ).pipe(
923
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(databaseService)),
924
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
925
- ),
926
- makeStatefulSessionServices: <
927
- Claims,
928
- S extends AnySQLiteTable,
929
- C extends AnySQLiteTable,
930
- Session extends AnySQLiteTable,
931
- F extends AnySQLiteTable,
932
- P extends AnySQLiteTable,
933
- NativeId,
934
- NativeSessionId,
935
- >(
936
- mapping: StatefulSessionMapping<Claims, S, C, Session, F, P, NativeId, NativeSessionId>,
937
- ) =>
938
- Effect.flatMap(standaloneConfiguration, (configuration) =>
939
- makeSqliteStatefulSessionServices(mapping, configuration),
940
- ).pipe(
941
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(databaseService)),
942
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
943
- ),
944
- makeSignedSessionValidityServices: <
945
- S extends AnySQLiteTable,
946
- T extends AnySQLiteTable,
947
- NativeId,
948
- NativeSessionId,
949
- >(
950
- mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>,
951
- ) =>
952
- Effect.flatMap(standaloneConfiguration, (configuration) =>
953
- makeSqliteSignedSessionValidityServices(mapping, configuration),
954
- ).pipe(
955
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(databaseService)),
956
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(databaseService)),
957
- ),
958
- coordinateAuthenticationAuthority,
959
- coordinatePendingAuthentication,
960
- coordinateStatefulSessions,
961
- coordinateSignedSessionValidity,
962
- };
963
- };
964
-
965
- import type { SessionStepUpMapping } from "./step-up-model";
966
-
967
- export const makeSqliteSessionStepUpServices = <
968
- Claims,
969
- Id,
970
- S extends AnySQLiteTable,
971
- C extends AnySQLiteTable,
972
- I extends AnySQLiteTable,
973
- Session extends AnySQLiteTable,
974
- T extends AnySQLiteTable,
975
- NativeId,
976
- NativeSessionId,
977
- >(
978
- mapping: SessionStepUpMapping<NoInfer<Claims>, S, C, I, Session, T, NativeId, NativeSessionId>,
979
- target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
980
- configuration: SessionTargetConfiguration,
981
- ) => makeTargetSessionStepUpServices(mapping, target, configuration);
982
-
983
- export const coordinateSqliteSessionStepUp = <
984
- Claims,
985
- Id,
986
- S extends AnySQLiteTable,
987
- C extends AnySQLiteTable,
988
- I extends AnySQLiteTable,
989
- Session extends AnySQLiteTable,
990
- T extends AnySQLiteTable,
991
- NativeId,
992
- NativeSessionId,
993
- D extends Database,
994
- A,
995
- E,
996
- R,
997
- >(
998
- database: D,
999
- mapping: SessionStepUpMapping<NoInfer<Claims>, S, C, I, Session, T, NativeId, NativeSessionId>,
1000
- target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
1001
- configuration: SessionTargetConfiguration,
1002
- owner: (
1003
- transaction: TransactionOf<D>,
1004
- services: { readonly sessionStepUpPersistence: SessionStepUpPersistence<Claims> },
1005
- ) => Effect.Effect<A, E, R>,
1006
- ) =>
1007
- coordinateTargetSessionStepUp<Claims, Id, TransactionOf<D>, A, E, R>(
1008
- database,
1009
- mapping,
1010
- target,
1011
- configuration,
1012
- owner,
1013
- );