@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,789 +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 { EffectPgDatabase as PgliteDatabase } from "drizzle-orm/effect-pglite";
14
- import type { EffectPgDatabase as PostgresDatabase } from "drizzle-orm/effect-postgres";
15
- import type { AnyPgTable } from "drizzle-orm/pg-core";
16
- import { Effect, Context } from "effect";
17
- import type { SqlError } from "effect/sql/SqlError";
18
-
19
- import { nativeDatabase } from "./native-database";
20
- import { Database as DatabaseService } from "./pg-database";
21
- import type {
22
- AuthenticationAuthorityMapping,
23
- PendingAuthenticationMapping,
24
- SignedSessionValidityMapping,
25
- StatefulSessionMapping,
26
- } from "./session-model";
27
- import { CurrentSessionSql } from "./session-sql";
28
- import {
29
- coordinateTargetAuthenticationAuthority,
30
- coordinateTargetPendingAuthentication,
31
- coordinateTargetSignedSessionValidity,
32
- coordinateTargetStatefulSessions,
33
- makeTargetAuthenticationAuthorityServices,
34
- makeTargetPendingAuthenticationServices,
35
- makeTargetSignedSessionValidityServices,
36
- makeTargetStatefulSessionServices,
37
- sqlClientSessionStandaloneGuard,
38
- makeTargetSessionStepUpServices,
39
- coordinateTargetSessionStepUp,
40
- } from "./session-target";
41
- import {
42
- type TransactionService,
43
- acquireTransactionService,
44
- transactionService,
45
- } from "./standalone-guard";
46
- import type { SuppliedService } from "./SuppliedService";
47
-
48
- type Database = PostgresDatabase<AnyRelations> | PgliteDatabase<AnyRelations>;
49
- type TransactionOf<D extends Database> = Parameters<Parameters<D["transaction"]>[0]>[0];
50
-
51
- const configuration = (service: TransactionService | undefined) => ({
52
- mode: "interactive" as const,
53
- locking: true,
54
- standaloneGuard: sqlClientSessionStandaloneGuard(service),
55
- });
56
-
57
- export const makePgAuthenticationAuthorityServices = <
58
- Claims,
59
- Subject extends AnyPgTable,
60
- Credential extends AnyPgTable,
61
- Flow extends AnyPgTable,
62
- Pending extends AnyPgTable,
63
- NativeSubjectId,
64
- >(
65
- mapping: AuthenticationAuthorityMapping<
66
- Claims,
67
- Subject,
68
- Credential,
69
- Flow,
70
- Pending,
71
- NativeSubjectId
72
- >,
73
- ) =>
74
- Effect.flatMap(
75
- Effect.map(acquireTransactionService(DatabaseService), configuration),
76
- (configuration) => makeTargetAuthenticationAuthorityServices<Claims>(mapping, configuration),
77
- ).pipe(
78
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(DatabaseService)),
79
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
80
- );
81
-
82
- export const makePgPendingAuthenticationServices = <
83
- Claims,
84
- Subject extends AnyPgTable,
85
- Credential extends AnyPgTable,
86
- Pending extends AnyPgTable,
87
- Flow extends AnyPgTable,
88
- NativeSubjectId,
89
- >(
90
- mapping: PendingAuthenticationMapping<
91
- Claims,
92
- Subject,
93
- Credential,
94
- Pending,
95
- Flow,
96
- NativeSubjectId
97
- >,
98
- ) =>
99
- Effect.flatMap(
100
- Effect.map(acquireTransactionService(DatabaseService), configuration),
101
- (configuration) => makeTargetPendingAuthenticationServices<Claims>(mapping, configuration),
102
- ).pipe(
103
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(DatabaseService)),
104
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
105
- );
106
-
107
- export const makePgStatefulSessionServices = <
108
- Claims,
109
- Subject extends AnyPgTable,
110
- Credential extends AnyPgTable,
111
- Session extends AnyPgTable,
112
- Flow extends AnyPgTable,
113
- Pending extends AnyPgTable,
114
- NativeSubjectId,
115
- NativeSessionId,
116
- >(
117
- mapping: StatefulSessionMapping<
118
- Claims,
119
- Subject,
120
- Credential,
121
- Session,
122
- Flow,
123
- Pending,
124
- NativeSubjectId,
125
- NativeSessionId
126
- >,
127
- ) =>
128
- Effect.flatMap(
129
- Effect.map(acquireTransactionService(DatabaseService), configuration),
130
- (configuration) => makeTargetStatefulSessionServices<Claims>(mapping, configuration),
131
- ).pipe(
132
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(DatabaseService)),
133
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
134
- );
135
-
136
- export const makePgSignedSessionValidityServices = <
137
- Subject extends AnyPgTable,
138
- Tombstone extends AnyPgTable,
139
- NativeSubjectId,
140
- NativeSessionId,
141
- >(
142
- mapping: SignedSessionValidityMapping<Subject, Tombstone, NativeSubjectId, NativeSessionId>,
143
- ) =>
144
- Effect.flatMap(
145
- Effect.map(acquireTransactionService(DatabaseService), configuration),
146
- (configuration) => makeTargetSignedSessionValidityServices(mapping, configuration),
147
- ).pipe(
148
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(DatabaseService)),
149
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
150
- );
151
-
152
- export function coordinatePgAuthenticationAuthority<
153
- Claims,
154
- D extends Database,
155
- S extends AnyPgTable,
156
- C extends AnyPgTable,
157
- F extends AnyPgTable,
158
- P extends AnyPgTable,
159
- NativeId,
160
- A,
161
- E,
162
- R,
163
- DatabaseError,
164
- DatabaseRequirements,
165
- >(
166
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
167
- options: {
168
- readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
169
- readonly transaction?: never;
170
- },
171
- body: Effect.Effect<A, E, R>,
172
- ): Effect.Effect<
173
- A,
174
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
175
- Exclude<R, AuthenticationAuthority> | LifecycleHooks | DatabaseRequirements
176
- >;
177
-
178
- export function coordinatePgAuthenticationAuthority<
179
- Claims,
180
- D extends Database,
181
- S extends AnyPgTable,
182
- C extends AnyPgTable,
183
- F extends AnyPgTable,
184
- P extends AnyPgTable,
185
- NativeId,
186
- A,
187
- E,
188
- R,
189
- DatabaseError,
190
- DatabaseRequirements,
191
- TxId,
192
- TxShape,
193
- >(
194
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
195
- options: {
196
- readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
197
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
198
- },
199
- body: Effect.Effect<A, E, R>,
200
- ): Effect.Effect<
201
- A,
202
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
203
- Exclude<R, AuthenticationAuthority | TxId> | LifecycleHooks | DatabaseRequirements
204
- >;
205
-
206
- export function coordinatePgAuthenticationAuthority<
207
- Claims,
208
- D extends Database,
209
- S extends AnyPgTable,
210
- C extends AnyPgTable,
211
- F extends AnyPgTable,
212
- P extends AnyPgTable,
213
- NativeId,
214
- A,
215
- E,
216
- R,
217
- DatabaseError,
218
- DatabaseRequirements,
219
- TxId,
220
- TxShape,
221
- >(
222
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
223
- options: {
224
- readonly mapping: AuthenticationAuthorityMapping<Claims, S, C, F, P, NativeId>;
225
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
226
- },
227
- body: Effect.Effect<A, E, R>,
228
- ): Effect.Effect<
229
- A,
230
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
231
- Exclude<R, AuthenticationAuthority> | LifecycleHooks | DatabaseRequirements
232
- > {
233
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
234
- coordinateTargetAuthenticationAuthority<
235
- Claims,
236
- TransactionOf<D>,
237
- A,
238
- E,
239
- Exclude<R, AuthenticationAuthority>
240
- >(
241
- database,
242
- options.mapping,
243
- configuration(transactionService(database)),
244
- (
245
- transaction: TransactionOf<D>,
246
- services: { readonly authenticationAuthority: AuthenticationAuthority["Service"] },
247
- ) => {
248
- const provided = Context.make(AuthenticationAuthority, services.authenticationAuthority);
249
- const work = Effect.provideContext(body, provided);
250
-
251
- return options.transaction === undefined
252
- ? work
253
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
254
- },
255
- ).pipe(Effect.provideService(NativeDatabase, database)),
256
- );
257
- }
258
-
259
- export function coordinatePgPendingAuthentication<
260
- TargetId,
261
- Claims,
262
- D extends Database,
263
- S extends AnyPgTable,
264
- C extends AnyPgTable,
265
- P extends AnyPgTable,
266
- F extends AnyPgTable,
267
- NativeId,
268
- A,
269
- E,
270
- R,
271
- DatabaseError,
272
- DatabaseRequirements,
273
- >(
274
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
275
- options: {
276
- readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
277
- readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
278
- readonly transaction?: never;
279
- },
280
- body: Effect.Effect<A, E, R>,
281
- ): Effect.Effect<
282
- A,
283
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
284
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
285
- >;
286
-
287
- export function coordinatePgPendingAuthentication<
288
- TargetId,
289
- Claims,
290
- D extends Database,
291
- S extends AnyPgTable,
292
- C extends AnyPgTable,
293
- P extends AnyPgTable,
294
- F extends AnyPgTable,
295
- NativeId,
296
- A,
297
- E,
298
- R,
299
- DatabaseError,
300
- DatabaseRequirements,
301
- TxId,
302
- TxShape,
303
- >(
304
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
305
- options: {
306
- readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
307
- readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
308
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
309
- },
310
- body: Effect.Effect<A, E, R>,
311
- ): Effect.Effect<
312
- A,
313
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
314
- Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
315
- >;
316
-
317
- export function coordinatePgPendingAuthentication<
318
- TargetId,
319
- Claims,
320
- D extends Database,
321
- S extends AnyPgTable,
322
- C extends AnyPgTable,
323
- P extends AnyPgTable,
324
- F extends AnyPgTable,
325
- NativeId,
326
- A,
327
- E,
328
- R,
329
- DatabaseError,
330
- DatabaseRequirements,
331
- TxId,
332
- TxShape,
333
- >(
334
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
335
- options: {
336
- readonly mapping: PendingAuthenticationMapping<NoInfer<Claims>, S, C, P, F, NativeId>;
337
- readonly target: SuppliedService<TargetId, PendingAuthentication<Claims>>;
338
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
339
- },
340
- body: Effect.Effect<A, E, R>,
341
- ): Effect.Effect<
342
- A,
343
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
344
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
345
- > {
346
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
347
- coordinateTargetPendingAuthentication<Claims, TransactionOf<D>, A, E, Exclude<R, TargetId>>(
348
- database,
349
- options.mapping,
350
- configuration(transactionService(database)),
351
- (
352
- transaction: TransactionOf<D>,
353
- services: { readonly pendingAuthentication: PendingAuthentication<Claims> },
354
- ) => {
355
- const provided = Context.make(options.target, services.pendingAuthentication);
356
- const work = Effect.provideContext(body, provided);
357
-
358
- return options.transaction === undefined
359
- ? work
360
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
361
- },
362
- ).pipe(Effect.provideService(NativeDatabase, database)),
363
- );
364
- }
365
-
366
- export function coordinatePgStatefulSessions<
367
- PersistenceId,
368
- RepositoryId,
369
- Claims,
370
- D extends Database,
371
- S extends AnyPgTable,
372
- C extends AnyPgTable,
373
- Session extends AnyPgTable,
374
- F extends AnyPgTable,
375
- P extends AnyPgTable,
376
- NativeId,
377
- NativeSessionId,
378
- A,
379
- E,
380
- R,
381
- DatabaseError,
382
- DatabaseRequirements,
383
- >(
384
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
385
- options: {
386
- readonly mapping: StatefulSessionMapping<
387
- NoInfer<Claims>,
388
- S,
389
- C,
390
- Session,
391
- F,
392
- P,
393
- NativeId,
394
- NativeSessionId
395
- >;
396
- readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
397
- readonly repository: SuppliedService<RepositoryId, SessionRepository>;
398
- readonly transaction?: never;
399
- },
400
- body: Effect.Effect<A, E, R>,
401
- ): Effect.Effect<
402
- A,
403
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
404
- Exclude<R, PersistenceId | RepositoryId> | LifecycleHooks | DatabaseRequirements
405
- >;
406
-
407
- export function coordinatePgStatefulSessions<
408
- PersistenceId,
409
- RepositoryId,
410
- Claims,
411
- D extends Database,
412
- S extends AnyPgTable,
413
- C extends AnyPgTable,
414
- Session extends AnyPgTable,
415
- F extends AnyPgTable,
416
- P extends AnyPgTable,
417
- NativeId,
418
- NativeSessionId,
419
- A,
420
- E,
421
- R,
422
- DatabaseError,
423
- DatabaseRequirements,
424
- TxId,
425
- TxShape,
426
- >(
427
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
428
- options: {
429
- readonly mapping: StatefulSessionMapping<
430
- NoInfer<Claims>,
431
- S,
432
- C,
433
- Session,
434
- F,
435
- P,
436
- NativeId,
437
- NativeSessionId
438
- >;
439
- readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
440
- readonly repository: SuppliedService<RepositoryId, SessionRepository>;
441
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
442
- },
443
- body: Effect.Effect<A, E, R>,
444
- ): Effect.Effect<
445
- A,
446
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
447
- Exclude<R, PersistenceId | RepositoryId | TxId> | LifecycleHooks | DatabaseRequirements
448
- >;
449
-
450
- export function coordinatePgStatefulSessions<
451
- PersistenceId,
452
- RepositoryId,
453
- Claims,
454
- D extends Database,
455
- S extends AnyPgTable,
456
- C extends AnyPgTable,
457
- Session extends AnyPgTable,
458
- F extends AnyPgTable,
459
- P extends AnyPgTable,
460
- NativeId,
461
- NativeSessionId,
462
- A,
463
- E,
464
- R,
465
- DatabaseError,
466
- DatabaseRequirements,
467
- TxId,
468
- TxShape,
469
- >(
470
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
471
- options: {
472
- readonly mapping: StatefulSessionMapping<
473
- NoInfer<Claims>,
474
- S,
475
- C,
476
- Session,
477
- F,
478
- P,
479
- NativeId,
480
- NativeSessionId
481
- >;
482
- readonly persistence: SuppliedService<PersistenceId, StatefulSessionPersistence<Claims>>;
483
- readonly repository: SuppliedService<RepositoryId, SessionRepository>;
484
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
485
- },
486
- body: Effect.Effect<A, E, R>,
487
- ): Effect.Effect<
488
- A,
489
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
490
- Exclude<R, PersistenceId | RepositoryId> | LifecycleHooks | DatabaseRequirements
491
- > {
492
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
493
- coordinateTargetStatefulSessions<
494
- Claims,
495
- TransactionOf<D>,
496
- A,
497
- E,
498
- Exclude<R, PersistenceId | RepositoryId>
499
- >(
500
- database,
501
- options.mapping,
502
- configuration(transactionService(database)),
503
- (
504
- transaction: TransactionOf<D>,
505
- services: {
506
- readonly statefulSessionPersistence: StatefulSessionPersistence<Claims>;
507
- readonly sessionRepository: SessionRepository;
508
- },
509
- ) => {
510
- const provided = Context.make(
511
- options.persistence,
512
- services.statefulSessionPersistence,
513
- ).pipe(Context.add(options.repository, services.sessionRepository));
514
-
515
- const work = Effect.provideContext(body, provided);
516
-
517
- return options.transaction === undefined
518
- ? work
519
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
520
- },
521
- ).pipe(Effect.provideService(NativeDatabase, database)),
522
- );
523
- }
524
-
525
- export function coordinatePgSignedSessionValidity<
526
- TargetId,
527
- D extends Database,
528
- S extends AnyPgTable,
529
- T extends AnyPgTable,
530
- NativeId,
531
- NativeSessionId,
532
- A,
533
- E,
534
- R,
535
- DatabaseError,
536
- DatabaseRequirements,
537
- >(
538
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
539
- options: {
540
- readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
541
- readonly target: SuppliedService<TargetId, SignedSessionValidity>;
542
- readonly transaction?: never;
543
- },
544
- body: Effect.Effect<A, E, R>,
545
- ): Effect.Effect<
546
- A,
547
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
548
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
549
- >;
550
-
551
- export function coordinatePgSignedSessionValidity<
552
- TargetId,
553
- D extends Database,
554
- S extends AnyPgTable,
555
- T extends AnyPgTable,
556
- NativeId,
557
- NativeSessionId,
558
- A,
559
- E,
560
- R,
561
- DatabaseError,
562
- DatabaseRequirements,
563
- TxId,
564
- TxShape,
565
- >(
566
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
567
- options: {
568
- readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
569
- readonly target: SuppliedService<TargetId, SignedSessionValidity>;
570
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
571
- },
572
- body: Effect.Effect<A, E, R>,
573
- ): Effect.Effect<
574
- A,
575
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
576
- Exclude<R, TargetId | TxId> | LifecycleHooks | DatabaseRequirements
577
- >;
578
-
579
- export function coordinatePgSignedSessionValidity<
580
- TargetId,
581
- D extends Database,
582
- S extends AnyPgTable,
583
- T extends AnyPgTable,
584
- NativeId,
585
- NativeSessionId,
586
- A,
587
- E,
588
- R,
589
- DatabaseError,
590
- DatabaseRequirements,
591
- TxId,
592
- TxShape,
593
- >(
594
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
595
- options: {
596
- readonly mapping: SignedSessionValidityMapping<S, T, NativeId, NativeSessionId>;
597
- readonly target: SuppliedService<TargetId, SignedSessionValidity>;
598
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
599
- },
600
- body: Effect.Effect<A, E, R>,
601
- ): Effect.Effect<
602
- A,
603
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
604
- Exclude<R, TargetId> | LifecycleHooks | DatabaseRequirements
605
- > {
606
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
607
- coordinateTargetSignedSessionValidity<TransactionOf<D>, A, E, Exclude<R, TargetId>>(
608
- database,
609
- options.mapping,
610
- configuration(transactionService(database)),
611
- (
612
- transaction: TransactionOf<D>,
613
- services: { readonly signedSessionValidity: SignedSessionValidity },
614
- ) => {
615
- const provided = Context.make(options.target, services.signedSessionValidity);
616
- const work = Effect.provideContext(body, provided);
617
-
618
- return options.transaction === undefined
619
- ? work
620
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
621
- },
622
- ).pipe(Effect.provideService(NativeDatabase, database)),
623
- );
624
- }
625
-
626
- import type { SessionStepUpMapping } from "./step-up-model";
627
-
628
- export const makePgSessionStepUpServices = <
629
- Claims,
630
- Id,
631
- S extends AnyPgTable,
632
- C extends AnyPgTable,
633
- I extends AnyPgTable,
634
- Session extends AnyPgTable,
635
- T extends AnyPgTable,
636
- NativeId,
637
- NativeSessionId,
638
- >(
639
- mapping: SessionStepUpMapping<NoInfer<Claims>, S, C, I, Session, T, NativeId, NativeSessionId>,
640
- target: Context.Service<Id, SessionStepUpPersistence<Claims>>,
641
- ) =>
642
- Effect.flatMap(
643
- Effect.map(acquireTransactionService(DatabaseService), configuration),
644
- (configuration) => makeTargetSessionStepUpServices(mapping, target, configuration),
645
- ).pipe(
646
- Effect.provideServiceEffect(CurrentSessionSql, nativeDatabase(DatabaseService)),
647
- Effect.provideServiceEffect(NativeDatabase, nativeDatabase(DatabaseService)),
648
- );
649
-
650
- export function coordinatePgSessionStepUp<
651
- Claims,
652
- Id,
653
- S extends AnyPgTable,
654
- C extends AnyPgTable,
655
- I extends AnyPgTable,
656
- Session extends AnyPgTable,
657
- T extends AnyPgTable,
658
- NativeId,
659
- NativeSessionId,
660
- D extends Database,
661
- A,
662
- E,
663
- R,
664
- DatabaseError,
665
- DatabaseRequirements,
666
- >(
667
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
668
- options: {
669
- readonly mapping: SessionStepUpMapping<
670
- NoInfer<Claims>,
671
- S,
672
- C,
673
- I,
674
- Session,
675
- T,
676
- NativeId,
677
- NativeSessionId
678
- >;
679
- readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
680
- readonly transaction?: never;
681
- },
682
- body: Effect.Effect<A, E, R>,
683
- ): Effect.Effect<
684
- A,
685
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
686
- Exclude<R, Id> | LifecycleHooks | DatabaseRequirements
687
- >;
688
-
689
- export function coordinatePgSessionStepUp<
690
- Claims,
691
- Id,
692
- S extends AnyPgTable,
693
- C extends AnyPgTable,
694
- I extends AnyPgTable,
695
- Session extends AnyPgTable,
696
- T extends AnyPgTable,
697
- NativeId,
698
- NativeSessionId,
699
- D extends Database,
700
- A,
701
- E,
702
- R,
703
- DatabaseError,
704
- DatabaseRequirements,
705
- TxId,
706
- TxShape,
707
- >(
708
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
709
- options: {
710
- readonly mapping: SessionStepUpMapping<
711
- NoInfer<Claims>,
712
- S,
713
- C,
714
- I,
715
- Session,
716
- T,
717
- NativeId,
718
- NativeSessionId
719
- >;
720
- readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
721
- readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
722
- },
723
- body: Effect.Effect<A, E, R>,
724
- ): Effect.Effect<
725
- A,
726
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
727
- Exclude<R, Id | TxId> | LifecycleHooks | DatabaseRequirements
728
- >;
729
-
730
- export function coordinatePgSessionStepUp<
731
- Claims,
732
- Id,
733
- S extends AnyPgTable,
734
- C extends AnyPgTable,
735
- I extends AnyPgTable,
736
- Session extends AnyPgTable,
737
- T extends AnyPgTable,
738
- NativeId,
739
- NativeSessionId,
740
- D extends Database,
741
- A,
742
- E,
743
- R,
744
- DatabaseError,
745
- DatabaseRequirements,
746
- TxId,
747
- TxShape,
748
- >(
749
- acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,
750
- options: {
751
- readonly mapping: SessionStepUpMapping<
752
- NoInfer<Claims>,
753
- S,
754
- C,
755
- I,
756
- Session,
757
- T,
758
- NativeId,
759
- NativeSessionId
760
- >;
761
- readonly target: SuppliedService<Id, SessionStepUpPersistence<Claims>>;
762
- readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;
763
- },
764
- body: Effect.Effect<A, E, R>,
765
- ): Effect.Effect<
766
- A,
767
- E | SessionUnavailable | HookConfigurationError | SqlError | DatabaseError,
768
- Exclude<R, Id> | LifecycleHooks | DatabaseRequirements
769
- > {
770
- return Effect.flatMap(nativeDatabase(acquire), (database) =>
771
- coordinateTargetSessionStepUp<Claims, Id, TransactionOf<D>, A, E, Exclude<R, Id>>(
772
- database,
773
- options.mapping,
774
- options.target,
775
- configuration(transactionService(database)),
776
- (
777
- transaction: TransactionOf<D>,
778
- services: { readonly sessionStepUpPersistence: SessionStepUpPersistence<Claims> },
779
- ) => {
780
- const provided = Context.make(options.target, services.sessionStepUpPersistence);
781
- const work = Effect.provideContext(body, provided);
782
-
783
- return options.transaction === undefined
784
- ? work
785
- : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
786
- },
787
- ).pipe(Effect.provideService(NativeDatabase, database)),
788
- );
789
- }