@yielded/auth-persistence-drizzle 0.1.0-beta.0 → 0.1.0-beta.12

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 (291) hide show
  1. package/README.md +6 -1
  2. package/dist/D1.d.mts +155 -40
  3. package/dist/D1.mjs +10 -6
  4. package/dist/D1.mjs.map +1 -1
  5. package/dist/Libsql.d.mts +251 -129
  6. package/dist/Libsql.mjs +20 -21
  7. package/dist/Libsql.mjs.map +1 -1
  8. package/dist/Mysql2.d.mts +208 -56
  9. package/dist/Mysql2.mjs +13 -8
  10. package/dist/Mysql2.mjs.map +1 -1
  11. package/dist/Pglite.d.mts +209 -57
  12. package/dist/Pglite.mjs +13 -9
  13. package/dist/Pglite.mjs.map +1 -1
  14. package/dist/Postgres.d.mts +207 -55
  15. package/dist/Postgres.mjs +13 -9
  16. package/dist/Postgres.mjs.map +1 -1
  17. package/dist/SqliteBun.d.mts +249 -126
  18. package/dist/SqliteBun.mjs +20 -18
  19. package/dist/SqliteBun.mjs.map +1 -1
  20. package/dist/SqliteDo.d.mts +248 -158
  21. package/dist/SqliteDo.mjs +26 -44
  22. package/dist/SqliteDo.mjs.map +1 -1
  23. package/dist/SqliteNode.d.mts +247 -124
  24. package/dist/SqliteNode.mjs +20 -18
  25. package/dist/SqliteNode.mjs.map +1 -1
  26. package/dist/SqliteWasm.d.mts +251 -128
  27. package/dist/SqliteWasm.mjs +20 -18
  28. package/dist/SqliteWasm.mjs.map +1 -1
  29. package/dist/drizzle/D1BatchStatements.d.mts +1 -1
  30. package/dist/drizzle/D1BatchStatements.mjs.map +1 -1
  31. package/dist/drizzle/d1-database.d.mts +11 -0
  32. package/dist/drizzle/d1-database.mjs +8 -0
  33. package/dist/drizzle/d1-database.mjs.map +1 -0
  34. package/dist/drizzle/d1-emails.d.mts +8 -7
  35. package/dist/drizzle/d1-emails.mjs +7 -4
  36. package/dist/drizzle/d1-emails.mjs.map +1 -1
  37. package/dist/drizzle/d1-generated-statement.mjs.map +1 -1
  38. package/dist/drizzle/d1-identity.mjs +12 -9
  39. package/dist/drizzle/d1-identity.mjs.map +1 -1
  40. package/dist/drizzle/d1-oauth.d.mts +41 -10
  41. package/dist/drizzle/d1-oauth.mjs +8 -5
  42. package/dist/drizzle/d1-oauth.mjs.map +1 -1
  43. package/dist/drizzle/d1-passkey.d.mts +3 -14
  44. package/dist/drizzle/d1-passkey.mjs +2 -1
  45. package/dist/drizzle/d1-passkey.mjs.map +1 -1
  46. package/dist/drizzle/d1-password-prepared.d.mts +4 -3
  47. package/dist/drizzle/d1-password-prepared.mjs +3 -1
  48. package/dist/drizzle/d1-password-prepared.mjs.map +1 -1
  49. package/dist/drizzle/d1-passwords.d.mts +7 -6
  50. package/dist/drizzle/d1-passwords.mjs +5 -2
  51. package/dist/drizzle/d1-passwords.mjs.map +1 -1
  52. package/dist/drizzle/d1-phone.d.mts +3 -4
  53. package/dist/drizzle/d1-phone.mjs +2 -1
  54. package/dist/drizzle/d1-phone.mjs.map +1 -1
  55. package/dist/drizzle/d1-planning.d.mts +1 -1
  56. package/dist/drizzle/d1-proofs.d.mts +5 -4
  57. package/dist/drizzle/d1-proofs.mjs +3 -1
  58. package/dist/drizzle/d1-proofs.mjs.map +1 -1
  59. package/dist/drizzle/d1-sessions.d.mts +14 -13
  60. package/dist/drizzle/d1-sessions.mjs +15 -9
  61. package/dist/drizzle/d1-sessions.mjs.map +1 -1
  62. package/dist/drizzle/d1-totp.d.mts +3 -4
  63. package/dist/drizzle/d1-totp.mjs +2 -1
  64. package/dist/drizzle/d1-totp.mjs.map +1 -1
  65. package/dist/drizzle/email-registration.d.mts +1 -1
  66. package/dist/drizzle/email-registration.mjs +2 -1
  67. package/dist/drizzle/email-registration.mjs.map +1 -1
  68. package/dist/drizzle/email-target.d.mts +8 -7
  69. package/dist/drizzle/email-target.mjs +10 -10
  70. package/dist/drizzle/email-target.mjs.map +1 -1
  71. package/dist/drizzle/model.d.mts +2 -126
  72. package/dist/drizzle/model.mjs +2 -21
  73. package/dist/drizzle/model.mjs.map +1 -1
  74. package/dist/drizzle/mysql-database.d.mts +8 -0
  75. package/dist/drizzle/mysql-database.mjs +8 -0
  76. package/dist/drizzle/mysql-database.mjs.map +1 -0
  77. package/dist/drizzle/mysql-emails.d.mts +8 -7
  78. package/dist/drizzle/mysql-emails.mjs +12 -8
  79. package/dist/drizzle/mysql-emails.mjs.map +1 -1
  80. package/dist/drizzle/mysql-identity.mjs +12 -9
  81. package/dist/drizzle/mysql-identity.mjs.map +1 -1
  82. package/dist/drizzle/mysql-password-prepared.d.mts +4 -3
  83. package/dist/drizzle/mysql-password-prepared.mjs +6 -2
  84. package/dist/drizzle/mysql-password-prepared.mjs.map +1 -1
  85. package/dist/drizzle/mysql-passwords.d.mts +7 -5
  86. package/dist/drizzle/mysql-passwords.mjs +11 -7
  87. package/dist/drizzle/mysql-passwords.mjs.map +1 -1
  88. package/dist/drizzle/mysql-proofs.d.mts +4 -3
  89. package/dist/drizzle/mysql-proofs.mjs +8 -4
  90. package/dist/drizzle/mysql-proofs.mjs.map +1 -1
  91. package/dist/drizzle/mysql-sessions.d.mts +12 -11
  92. package/dist/drizzle/mysql-sessions.mjs +16 -12
  93. package/dist/drizzle/mysql-sessions.mjs.map +1 -1
  94. package/dist/drizzle/native-database.mjs +10 -0
  95. package/dist/drizzle/native-database.mjs.map +1 -0
  96. package/dist/drizzle/oauth-accounts.mjs +1 -1
  97. package/dist/drizzle/oauth-connected-access.mjs +14 -12
  98. package/dist/drizzle/oauth-connected-access.mjs.map +1 -1
  99. package/dist/drizzle/oauth-connected-custody.mjs +2 -2
  100. package/dist/drizzle/oauth-connected-drivers.mjs +11 -6
  101. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -1
  102. package/dist/drizzle/oauth-connected-flow.mjs +2 -2
  103. package/dist/drizzle/oauth-connected-input.mjs +14 -1
  104. package/dist/drizzle/oauth-connected-input.mjs.map +1 -1
  105. package/dist/drizzle/oauth-connected-maintenance.mjs +1 -1
  106. package/dist/drizzle/oauth-connected-management.mjs +2 -2
  107. package/dist/drizzle/oauth-connected-model.d.mts +17 -3
  108. package/dist/drizzle/oauth-connected-model.mjs.map +1 -1
  109. package/dist/drizzle/oauth-connected-settlement.mjs +51 -41
  110. package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -1
  111. package/dist/drizzle/oauth-connected-sign-in.mjs +263 -0
  112. package/dist/drizzle/oauth-connected-sign-in.mjs.map +1 -0
  113. package/dist/drizzle/oauth-connected-state.d.mts +110 -2
  114. package/dist/drizzle/oauth-connected-state.mjs +9 -4
  115. package/dist/drizzle/oauth-connected-state.mjs.map +1 -1
  116. package/dist/drizzle/oauth-connected-target.d.mts +142 -15
  117. package/dist/drizzle/oauth-connected-target.mjs +9 -6
  118. package/dist/drizzle/oauth-connected-target.mjs.map +1 -1
  119. package/dist/drizzle/oauth-drivers.mjs +9 -7
  120. package/dist/drizzle/oauth-drivers.mjs.map +1 -1
  121. package/dist/drizzle/oauth-flow.d.mts +1 -1
  122. package/dist/drizzle/oauth-flow.mjs +1 -1
  123. package/dist/drizzle/oauth-input.mjs +1 -1
  124. package/dist/drizzle/oauth-model.d.mts +1 -1
  125. package/dist/drizzle/oauth-owner.d.mts +1 -1
  126. package/dist/drizzle/oauth-registration.d.mts +2 -2
  127. package/dist/drizzle/oauth-registration.mjs +1 -1
  128. package/dist/drizzle/oauth-state.mjs +5 -4
  129. package/dist/drizzle/oauth-state.mjs.map +1 -1
  130. package/dist/drizzle/oauth-target.d.mts +14 -13
  131. package/dist/drizzle/oauth-target.mjs +14 -13
  132. package/dist/drizzle/oauth-target.mjs.map +1 -1
  133. package/dist/drizzle/passkey-drivers.mjs +8 -6
  134. package/dist/drizzle/passkey-drivers.mjs.map +1 -1
  135. package/dist/drizzle/passkey-write-drivers.mjs +5 -3
  136. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -1
  137. package/dist/drizzle/passkey-write-target.d.mts +1 -1
  138. package/dist/drizzle/password-prepared-sql.mjs +2 -1
  139. package/dist/drizzle/password-prepared-sql.mjs.map +1 -1
  140. package/dist/drizzle/password-prepared-state.mjs +1 -1
  141. package/dist/drizzle/password-prepared-target.d.mts +4 -3
  142. package/dist/drizzle/password-prepared-target.mjs +4 -3
  143. package/dist/drizzle/password-prepared-target.mjs.map +1 -1
  144. package/dist/drizzle/password-registration.mjs +2 -1
  145. package/dist/drizzle/password-registration.mjs.map +1 -1
  146. package/dist/drizzle/password-target.d.mts +6 -5
  147. package/dist/drizzle/password-target.mjs +8 -8
  148. package/dist/drizzle/password-target.mjs.map +1 -1
  149. package/dist/drizzle/pg-database.d.mts +9 -0
  150. package/dist/drizzle/pg-database.mjs +8 -0
  151. package/dist/drizzle/pg-database.mjs.map +1 -0
  152. package/dist/drizzle/pg-emails.d.mts +8 -7
  153. package/dist/drizzle/pg-emails.mjs +12 -8
  154. package/dist/drizzle/pg-emails.mjs.map +1 -1
  155. package/dist/drizzle/pg-identity.mjs +92 -0
  156. package/dist/drizzle/pg-identity.mjs.map +1 -0
  157. package/dist/drizzle/pg-password-prepared.d.mts +4 -3
  158. package/dist/drizzle/pg-password-prepared.mjs +6 -2
  159. package/dist/drizzle/pg-password-prepared.mjs.map +1 -1
  160. package/dist/drizzle/pg-passwords.d.mts +7 -5
  161. package/dist/drizzle/pg-passwords.mjs +11 -7
  162. package/dist/drizzle/pg-passwords.mjs.map +1 -1
  163. package/dist/drizzle/pg-proofs.d.mts +4 -3
  164. package/dist/drizzle/pg-proofs.mjs +8 -4
  165. package/dist/drizzle/pg-proofs.mjs.map +1 -1
  166. package/dist/drizzle/pg-sessions.d.mts +12 -11
  167. package/dist/drizzle/pg-sessions.mjs +16 -12
  168. package/dist/drizzle/pg-sessions.mjs.map +1 -1
  169. package/dist/drizzle/phone-model.d.mts +1 -1
  170. package/dist/drizzle/phone-target.d.mts +5 -4
  171. package/dist/drizzle/phone-target.mjs +12 -11
  172. package/dist/drizzle/phone-target.mjs.map +1 -1
  173. package/dist/drizzle/proof-target.d.mts +4 -3
  174. package/dist/drizzle/proof-target.mjs +5 -5
  175. package/dist/drizzle/proof-target.mjs.map +1 -1
  176. package/dist/drizzle/session-sql.d.mts +1 -0
  177. package/dist/drizzle/session-target.d.mts +11 -9
  178. package/dist/drizzle/session-target.mjs +11 -11
  179. package/dist/drizzle/session-target.mjs.map +1 -1
  180. package/dist/drizzle/sqlite-emails.mjs +9 -5
  181. package/dist/drizzle/sqlite-emails.mjs.map +1 -1
  182. package/dist/drizzle/sqlite-identity.mjs +14 -11
  183. package/dist/drizzle/sqlite-identity.mjs.map +1 -1
  184. package/dist/drizzle/sqlite-password-prepared.mjs +7 -3
  185. package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -1
  186. package/dist/drizzle/sqlite-passwords.mjs +10 -6
  187. package/dist/drizzle/sqlite-passwords.mjs.map +1 -1
  188. package/dist/drizzle/sqlite-proofs.mjs +7 -3
  189. package/dist/drizzle/sqlite-proofs.mjs.map +1 -1
  190. package/dist/drizzle/sqlite-sessions.mjs +16 -12
  191. package/dist/drizzle/sqlite-sessions.mjs.map +1 -1
  192. package/dist/drizzle/standalone-guard.d.mts +2 -0
  193. package/dist/drizzle/standalone-guard.mjs +8 -4
  194. package/dist/drizzle/standalone-guard.mjs.map +1 -1
  195. package/dist/drizzle/totp-model.d.mts +1 -1
  196. package/dist/drizzle/totp-target.d.mts +5 -4
  197. package/dist/drizzle/totp-target.mjs +31 -28
  198. package/dist/drizzle/totp-target.mjs.map +1 -1
  199. package/dist/drizzle/transaction-mysql.mjs +1 -1
  200. package/dist/drizzle/transaction-mysql.mjs.map +1 -1
  201. package/dist/index.d.mts +2 -4
  202. package/dist/index.mjs +2 -4
  203. package/dist/internal/drizzle-postgres.mjs.map +1 -1
  204. package/dist/internal/drizzle-sqlite.mjs.map +1 -1
  205. package/package.json +1 -1
  206. package/src/D1.ts +37 -26
  207. package/src/Libsql.ts +45 -61
  208. package/src/Mysql2.ts +39 -35
  209. package/src/Pglite.ts +48 -30
  210. package/src/Postgres.ts +48 -30
  211. package/src/SqliteBun.ts +59 -68
  212. package/src/SqliteDo.ts +61 -274
  213. package/src/SqliteNode.ts +56 -66
  214. package/src/SqliteWasm.ts +56 -66
  215. package/src/drizzle/D1BatchStatements.ts +1 -1
  216. package/src/drizzle/d1-database.ts +10 -0
  217. package/src/drizzle/d1-emails.ts +86 -88
  218. package/src/drizzle/d1-generated-statement.ts +1 -1
  219. package/src/drizzle/d1-identity.ts +17 -20
  220. package/src/drizzle/d1-oauth.ts +19 -8
  221. package/src/drizzle/d1-passkey.ts +5 -1
  222. package/src/drizzle/d1-password-prepared.ts +40 -42
  223. package/src/drizzle/d1-passwords.ts +76 -80
  224. package/src/drizzle/d1-phone.ts +5 -1
  225. package/src/drizzle/d1-proofs.ts +31 -34
  226. package/src/drizzle/d1-sessions.ts +53 -40
  227. package/src/drizzle/d1-totp.ts +5 -1
  228. package/src/drizzle/email-registration.ts +6 -2
  229. package/src/drizzle/email-target.ts +18 -20
  230. package/src/drizzle/model.ts +1 -208
  231. package/src/drizzle/mysql-database.ts +8 -0
  232. package/src/drizzle/mysql-emails.ts +29 -17
  233. package/src/drizzle/mysql-identity.ts +18 -21
  234. package/src/drizzle/mysql-password-prepared.ts +11 -9
  235. package/src/drizzle/mysql-passwords.ts +22 -10
  236. package/src/drizzle/mysql-proofs.ts +17 -6
  237. package/src/drizzle/mysql-sessions.ts +41 -18
  238. package/src/drizzle/native-database.ts +22 -0
  239. package/src/drizzle/oauth-connected-access.ts +8 -1
  240. package/src/drizzle/oauth-connected-drivers.ts +21 -6
  241. package/src/drizzle/oauth-connected-input.ts +13 -0
  242. package/src/drizzle/oauth-connected-model.ts +17 -0
  243. package/src/drizzle/oauth-connected-settlement.ts +65 -42
  244. package/src/drizzle/oauth-connected-sign-in.ts +438 -0
  245. package/src/drizzle/oauth-connected-state.ts +19 -7
  246. package/src/drizzle/oauth-connected-target.ts +26 -18
  247. package/src/drizzle/oauth-drivers.ts +26 -10
  248. package/src/drizzle/oauth-state.ts +5 -4
  249. package/src/drizzle/oauth-target.ts +31 -43
  250. package/src/drizzle/passkey-drivers.ts +21 -13
  251. package/src/drizzle/passkey-write-drivers.ts +11 -6
  252. package/src/drizzle/password-prepared-sql.ts +2 -4
  253. package/src/drizzle/password-prepared-target.ts +10 -7
  254. package/src/drizzle/password-registration.ts +7 -8
  255. package/src/drizzle/password-target.ts +20 -19
  256. package/src/drizzle/pg-database.ts +10 -0
  257. package/src/drizzle/pg-emails.ts +29 -17
  258. package/src/drizzle/pg-identity.ts +297 -0
  259. package/src/drizzle/pg-password-prepared.ts +11 -9
  260. package/src/drizzle/pg-passwords.ts +22 -10
  261. package/src/drizzle/pg-proofs.ts +17 -6
  262. package/src/drizzle/pg-sessions.ts +41 -18
  263. package/src/drizzle/phone-target.ts +23 -18
  264. package/src/drizzle/proof-target.ts +10 -13
  265. package/src/drizzle/session-target.ts +33 -51
  266. package/src/drizzle/sqlite-emails.ts +31 -14
  267. package/src/drizzle/sqlite-identity.ts +22 -42
  268. package/src/drizzle/sqlite-password-prepared.ts +24 -10
  269. package/src/drizzle/sqlite-passwords.ts +30 -16
  270. package/src/drizzle/sqlite-proofs.ts +29 -6
  271. package/src/drizzle/sqlite-sessions.ts +50 -24
  272. package/src/drizzle/standalone-guard.ts +19 -7
  273. package/src/drizzle/totp-target.ts +62 -61
  274. package/src/drizzle/transaction-mysql.ts +1 -1
  275. package/src/index.ts +0 -24
  276. package/src/internal/drizzle-postgres.ts +1 -1
  277. package/src/internal/drizzle-sqlite.ts +1 -1
  278. package/dist/drizzle/d1-identity.d.mts +0 -30
  279. package/dist/drizzle/mysql-identity.d.mts +0 -21
  280. package/dist/drizzle/mysql.d.mts +0 -69
  281. package/dist/drizzle/mysql.mjs +0 -218
  282. package/dist/drizzle/mysql.mjs.map +0 -1
  283. package/dist/drizzle/pg.d.mts +0 -80
  284. package/dist/drizzle/pg.mjs +0 -289
  285. package/dist/drizzle/pg.mjs.map +0 -1
  286. package/dist/drizzle/sqlite.d.mts +0 -77
  287. package/dist/drizzle/sqlite.mjs +0 -217
  288. package/dist/drizzle/sqlite.mjs.map +0 -1
  289. package/src/drizzle/mysql.ts +0 -687
  290. package/src/drizzle/pg.ts +0 -984
  291. package/src/drizzle/sqlite.ts +0 -705
@@ -4,8 +4,8 @@ import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target.mjs";
4
4
  import { sqlClientPasswordStandaloneGuard } from "./drizzle/password-target.mjs";
5
5
  import { passwordPreparedPersistenceLayer } from "./drizzle/password-prepared-target.mjs";
6
6
  import { sqlClientProofStandaloneGuard } from "./drizzle/proof-target.mjs";
7
+ import { nativeDatabase } from "./drizzle/native-database.mjs";
7
8
  import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target.mjs";
8
- import { coordinateSqliteAuthStoreTransaction, coordinateSqliteAuthTransaction, coordinateSqliteOAuthStateTransaction, makeSqliteAuthServices, makeSqliteAuthStoreServices, makeSqliteOAuthStateServices } from "./drizzle/sqlite.mjs";
9
9
  import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target.mjs";
10
10
  import { makePasskeyTarget } from "./drizzle/passkey-drivers.mjs";
11
11
  import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target.mjs";
@@ -18,43 +18,45 @@ import { makeSqlitePasswordPreparedTarget } from "./drizzle/sqlite-password-prep
18
18
  import { makeOAuthTarget } from "./drizzle/oauth-drivers.mjs";
19
19
  import { drizzleMigrationsLayer } from "./internal/drizzle-migrations.mjs";
20
20
  import { sqlitePersistence } from "./internal/drizzle-sqlite.mjs";
21
- import { Effect } from "effect";
21
+ import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
22
+ import { Context, Effect, Layer } from "effect";
22
23
  import { makeWithDefaults } from "drizzle-orm/effect-sqlite-wasm";
23
24
  //#region src/SqliteWasm.ts
24
- const sessionTarget = makeSqliteSessionTarget((database) => sqliteSessionConfiguration("interactive", sqlClientSessionStandaloneGuard(database)));
25
- const proofTarget = makeSqliteProofTarget((database) => sqliteProofConfiguration("interactive", sqlClientProofStandaloneGuard(database)));
26
- const passwordTarget = makeSqlitePasswordTarget((database) => sqlitePasswordConfiguration("interactive", sqlClientPasswordStandaloneGuard(database), sqlClientProofStandaloneGuard(database)));
27
- const { coordinateEmailAddress, coordinateEmailRegistration, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices } = makeSqliteEmailTarget((database) => sqliteEmailConfiguration("interactive", sqlClientEmailStandaloneGuard(database), sqlClientProofStandaloneGuard(database)));
25
+ /** The application-owned Drizzle database used to construct persistence services. */
26
+ var Database = class extends Context.Service()("effect-auth/persistence-drizzle/SqliteWasm/Database") {};
27
+ /** Construct Drizzle from the driver's SQL-client Layer. */
28
+ const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
29
+ const sessionTarget = makeSqliteSessionTarget(Database, (service) => sqliteSessionConfiguration("interactive", sqlClientSessionStandaloneGuard(service)));
30
+ const proofTarget = makeSqliteProofTarget(Database, (service) => sqliteProofConfiguration("interactive", sqlClientProofStandaloneGuard(service)));
31
+ const passwordTarget = makeSqlitePasswordTarget(Database, (service) => sqlitePasswordConfiguration("interactive", sqlClientPasswordStandaloneGuard(service), sqlClientProofStandaloneGuard(service)));
32
+ const { coordinateEmailAddress, coordinateEmailRegistration, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices } = makeSqliteEmailTarget(Database, (service) => sqliteEmailConfiguration("interactive", sqlClientEmailStandaloneGuard(service), sqlClientProofStandaloneGuard(service)));
28
33
  const { coordinatePasswordPersistence, coordinatePasswordRegistration, makePasswordPersistenceServices, makePasswordRegistrationServices } = passwordTarget;
29
34
  const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;
30
35
  const { coordinateAuthenticationAuthority, coordinatePendingAuthentication, coordinateSignedSessionValidity, coordinateStatefulSessions, makeAuthenticationAuthorityServices, makePendingAuthenticationServices, makeSessionStepUpServices, coordinateSessionStepUp, makeSignedSessionValidityServices, makeStatefulSessionServices } = sessionTarget;
31
36
  const commitMode = "interactive";
32
- const makeAuthStoreServices = (database, mapping) => makeSqliteAuthStoreServices(database, mapping);
33
- const makeOAuthStateServices = (database, mapping) => makeSqliteOAuthStateServices(database, mapping);
34
- const makeAuthServices = (database, mapping) => makeSqliteAuthServices(database, mapping);
35
- const makeIdentityServices = (database, mapping) => makeSqliteIdentityServices(database, mapping, "interactive");
36
- const makeSubjectProvisioningServices = (database, mapping) => makeSqliteSubjectProvisioningServices(database, mapping, "interactive");
37
- const makeExternalIdentityServices = (database, mapping) => makeSqliteExternalIdentityServices(database, mapping);
38
- const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } = makeSqlitePasswordPreparedTarget((database) => sqlitePasswordConfiguration("interactive", sqlClientPasswordStandaloneGuard(database), sqlClientProofStandaloneGuard(database)));
39
- const { makeOAuthAccountsServices, makeOAuthSignInServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, coordinateOAuthRegistration, coordinateOAuthSignIn, coordinateOAuthRegistrationIntents, coordinateOAuthAccounts, makeOAuthConnectedServices, makeOAuthConnectedRevocationServices, coordinateOAuthConnected, coordinateOAuthConnectedRevocations } = makeOAuthTarget({
37
+ const makeIdentityServices = (mapping) => makeSqliteIdentityServices(mapping, "interactive").pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
38
+ const makeSubjectProvisioningServices = (mapping) => makeSqliteSubjectProvisioningServices(mapping, "interactive").pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
39
+ const makeExternalIdentityServices = (mapping) => makeSqliteExternalIdentityServices(mapping).pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
40
+ const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } = makeSqlitePasswordPreparedTarget(Database, (service) => sqlitePasswordConfiguration("interactive", sqlClientPasswordStandaloneGuard(service), sqlClientProofStandaloneGuard(service)));
41
+ const { makeOAuthAccountsServices, makeOAuthSignInServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, coordinateOAuthRegistration, coordinateOAuthSignIn, coordinateOAuthRegistrationIntents, coordinateOAuthAccounts, makeOAuthConnectedServices, makeOAuthConnectedRevocationServices, coordinateOAuthConnected, coordinateOAuthConnectedRevocations } = makeOAuthTarget(Database, {
40
42
  mode: "interactive",
41
43
  dialect: "sqlite",
42
44
  locking: false,
43
45
  standaloneGuard: sqlClientOAuthStandaloneGuard
44
46
  });
45
- const { makePasskeyCredentialServices, makePasskeyPersistenceServices, makePasskeyEnrollmentContextServices, makePasskeyRegistrationCeremonyServices, coordinatePasskeyPersistence, coordinatePasskeyRegistrationCeremony, makePasskeyManagementServices, makePasskeyRegistrationServices, coordinatePasskeyManagement, coordinatePasskeyRegistration } = makePasskeyTarget({
47
+ const { makePasskeyCredentialServices, makePasskeyPersistenceServices, makePasskeyEnrollmentContextServices, makePasskeyRegistrationCeremonyServices, coordinatePasskeyPersistence, coordinatePasskeyRegistrationCeremony, makePasskeyManagementServices, makePasskeyRegistrationServices, coordinatePasskeyManagement, coordinatePasskeyRegistration } = makePasskeyTarget(Database, {
46
48
  mode: "interactive",
47
49
  dialect: "sqlite",
48
50
  locking: false,
49
51
  standaloneGuard: sqlClientPasskeyStandaloneGuard
50
52
  });
51
- const { makeTotpPersistenceServices, coordinateTotpPersistence } = makeTotpTarget({
53
+ const { makeTotpPersistenceServices, coordinateTotpPersistence } = makeTotpTarget(Database, {
52
54
  mode: "interactive",
53
55
  dialect: "sqlite",
54
56
  locking: false,
55
57
  standaloneGuard: sqlClientTotpStandaloneGuard
56
58
  });
57
- const { makePhonePersistenceServices, coordinatePhonePersistence } = makePhoneTarget({
59
+ const { makePhonePersistenceServices, coordinatePhonePersistence } = makePhoneTarget(Database, {
58
60
  mode: "interactive",
59
61
  dialect: "sqlite",
60
62
  locking: false,
@@ -65,6 +67,6 @@ const AuthPersistence = {
65
67
  migrationsLayer: (options) => drizzleMigrationsLayer(makeWithDefaults({}), Effect.promise(() => import("drizzle-orm/effect-sqlite-wasm/migrator")).pipe(Effect.map((module) => module.migrate)))(options)
66
68
  };
67
69
  //#endregion
68
- export { AuthPersistence, commitMode, coordinateSqliteAuthStoreTransaction as coordinateAuthStoreTransaction, coordinateSqliteAuthTransaction as coordinateAuthTransaction, coordinateAuthenticationAuthority, coordinateEmailAddress, coordinateEmailRegistration, coordinateOAuthAccounts, coordinateOAuthConnected, coordinateOAuthConnectedRevocations, coordinateOAuthRegistration, coordinateOAuthRegistrationIntents, coordinateOAuthSignIn, coordinateSqliteOAuthStateTransaction as coordinateOAuthStateTransaction, coordinatePasskeyManagement, coordinatePasskeyPersistence, coordinatePasskeyRegistration, coordinatePasskeyRegistrationCeremony, coordinatePasswordPersistence, coordinatePasswordPreparedPersistence, coordinatePasswordRegistration, coordinatePendingAuthentication, coordinatePhonePersistence, coordinateProofPersistence, coordinateSessionStepUp, coordinateSignedSessionValidity, coordinateStatefulSessions, coordinateTotpPersistence, makeAuthServices, makeAuthStoreServices, makeAuthenticationAuthorityServices, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices, makeExternalIdentityServices, makeIdentityServices, makeOAuthAccountsServices, makeOAuthConnectedRevocationServices, makeOAuthConnectedServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, makeOAuthSignInServices, makeOAuthStateServices, makePasskeyCredentialServices, makePasskeyEnrollmentContextServices, makePasskeyManagementServices, makePasskeyPersistenceServices, makePasskeyRegistrationCeremonyServices, makePasskeyRegistrationServices, makePasswordPersistenceServices, makePasswordPreparedPersistenceServices, makePasswordRegistrationServices, makePendingAuthenticationServices, makePhonePersistenceServices, makeProofPersistenceServices, makeSessionStepUpServices, makeSignedSessionValidityServices, makeStatefulSessionServices, makeSubjectProvisioningServices, makeTotpPersistenceServices, passwordPreparedPersistenceLayer };
70
+ export { AuthPersistence, Database, commitMode, coordinateAuthenticationAuthority, coordinateEmailAddress, coordinateEmailRegistration, coordinateOAuthAccounts, coordinateOAuthConnected, coordinateOAuthConnectedRevocations, coordinateOAuthRegistration, coordinateOAuthRegistrationIntents, coordinateOAuthSignIn, coordinatePasskeyManagement, coordinatePasskeyPersistence, coordinatePasskeyRegistration, coordinatePasskeyRegistrationCeremony, coordinatePasswordPersistence, coordinatePasswordPreparedPersistence, coordinatePasswordRegistration, coordinatePendingAuthentication, coordinatePhonePersistence, coordinateProofPersistence, coordinateSessionStepUp, coordinateSignedSessionValidity, coordinateStatefulSessions, coordinateTotpPersistence, databaseLayer, makeAuthenticationAuthorityServices, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices, makeExternalIdentityServices, makeIdentityServices, makeOAuthAccountsServices, makeOAuthConnectedRevocationServices, makeOAuthConnectedServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, makeOAuthSignInServices, makePasskeyCredentialServices, makePasskeyEnrollmentContextServices, makePasskeyManagementServices, makePasskeyPersistenceServices, makePasskeyRegistrationCeremonyServices, makePasskeyRegistrationServices, makePasswordPersistenceServices, makePasswordPreparedPersistenceServices, makePasswordRegistrationServices, makePendingAuthenticationServices, makePhonePersistenceServices, makeProofPersistenceServices, makeSessionStepUpServices, makeSignedSessionValidityServices, makeStatefulSessionServices, makeSubjectProvisioningServices, makeTotpPersistenceServices, passwordPreparedPersistenceLayer };
69
71
 
70
72
  //# sourceMappingURL=SqliteWasm.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteWasm.mjs","names":[],"sources":["../src/SqliteWasm.ts"],"sourcesContent":["import type { AnyRelations } from \"drizzle-orm\";\nimport { type EffectSQLiteWasmDatabase, makeWithDefaults } from \"drizzle-orm/effect-sqlite-wasm\";\nimport type { AnySQLiteTable } from \"drizzle-orm/sqlite-core\";\nimport { Effect } from \"effect\";\n\nimport type {\n AuthStoreTables,\n AuthTables,\n ExternalIdentityTables,\n IdentityTables,\n OAuthStateTables,\n SubjectProvisioningTables,\n} from \"./drizzle/model\";\nimport {\n coordinateSqliteAuthStoreTransaction,\n coordinateSqliteAuthTransaction,\n coordinateSqliteOAuthStateTransaction,\n makeSqliteAuthServices,\n makeSqliteAuthStoreServices,\n makeSqliteOAuthStateServices,\n} from \"./drizzle/sqlite\";\n\nexport {\n coordinateSqliteAuthStoreTransaction as coordinateAuthStoreTransaction,\n coordinateSqliteAuthTransaction as coordinateAuthTransaction,\n coordinateSqliteOAuthStateTransaction as coordinateOAuthStateTransaction,\n};\n\nimport { sqlClientEmailStandaloneGuard } from \"./drizzle/email-target\";\nimport { sqlClientPasswordStandaloneGuard } from \"./drizzle/password-target\";\nimport { sqlClientProofStandaloneGuard } from \"./drizzle/proof-target\";\nimport { sqlClientSessionStandaloneGuard } from \"./drizzle/session-target\";\nimport { makeSqliteEmailTarget, sqliteEmailConfiguration } from \"./drizzle/sqlite-emails\";\nimport {\n makeSqliteExternalIdentityServices,\n makeSqliteIdentityServices,\n makeSqliteSubjectProvisioningServices,\n} from \"./drizzle/sqlite-identity\";\nimport { makeSqlitePasswordTarget, sqlitePasswordConfiguration } from \"./drizzle/sqlite-passwords\";\nimport { makeSqliteProofTarget, sqliteProofConfiguration } from \"./drizzle/sqlite-proofs\";\nimport { makeSqliteSessionTarget, sqliteSessionConfiguration } from \"./drizzle/sqlite-sessions\";\n\nconst sessionTarget = makeSqliteSessionTarget<EffectSQLiteWasmDatabase<AnyRelations>>((database) =>\n sqliteSessionConfiguration(\"interactive\", sqlClientSessionStandaloneGuard(database)),\n);\n\nconst proofTarget = makeSqliteProofTarget<EffectSQLiteWasmDatabase<AnyRelations>>((database) =>\n sqliteProofConfiguration(\"interactive\", sqlClientProofStandaloneGuard(database)),\n);\n\nconst passwordTarget = makeSqlitePasswordTarget<EffectSQLiteWasmDatabase<AnyRelations>>(\n (database) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(database),\n sqlClientProofStandaloneGuard(database),\n ),\n);\n\nconst emailTarget = makeSqliteEmailTarget<EffectSQLiteWasmDatabase<AnyRelations>>((database) =>\n sqliteEmailConfiguration(\n \"interactive\",\n sqlClientEmailStandaloneGuard(database),\n sqlClientProofStandaloneGuard(database),\n ),\n);\n\nexport const {\n coordinateEmailAddress,\n coordinateEmailRegistration,\n makeEmailAddressServices,\n makeEmailRegistrationServices,\n makeEmailSignInServices,\n} = emailTarget;\n\nexport const {\n coordinatePasswordPersistence,\n coordinatePasswordRegistration,\n makePasswordPersistenceServices,\n makePasswordRegistrationServices,\n} = passwordTarget;\n\nexport const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;\n\nexport const {\n coordinateAuthenticationAuthority,\n coordinatePendingAuthentication,\n coordinateSignedSessionValidity,\n coordinateStatefulSessions,\n makeAuthenticationAuthorityServices,\n makePendingAuthenticationServices,\n makeSessionStepUpServices,\n coordinateSessionStepUp,\n makeSignedSessionValidityServices,\n makeStatefulSessionServices,\n} = sessionTarget;\n\nexport const commitMode = \"interactive\" as const;\n\nexport const makeAuthStoreServices = <C extends AnySQLiteTable, R extends AnySQLiteTable>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: AuthStoreTables<C, R>,\n) => makeSqliteAuthStoreServices(database, mapping);\n\nexport const makeOAuthStateServices = <S extends AnySQLiteTable>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: OAuthStateTables<S>,\n) => makeSqliteOAuthStateServices(database, mapping);\n\nexport const makeAuthServices = <\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n S extends AnySQLiteTable,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: AuthTables<C, R, S>,\n) => makeSqliteAuthServices(database, mapping);\n\nexport const makeIdentityServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n External extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,\n) => makeSqliteIdentityServices(database, mapping, \"interactive\");\n\nexport const makeSubjectProvisioningServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,\n) => makeSqliteSubjectProvisioningServices(database, mapping, \"interactive\");\n\nexport const makeExternalIdentityServices = <\n Subject extends AnySQLiteTable,\n External extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteWasmDatabase<AnyRelations>,\n mapping: ExternalIdentityTables<Subject, External, NativeId>,\n) => makeSqliteExternalIdentityServices(database, mapping);\n\nimport { makeSqlitePasswordPreparedTarget } from \"./drizzle/sqlite-password-prepared\";\n\nconst passwordPreparedTarget = makeSqlitePasswordPreparedTarget<\n EffectSQLiteWasmDatabase<AnyRelations>\n>((database) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(database),\n sqlClientProofStandaloneGuard(database),\n ),\n);\n\nexport const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } =\n passwordPreparedTarget;\n\nexport { passwordPreparedPersistenceLayer } from \"./drizzle/password-prepared-target\";\n\nimport { makeOAuthTarget } from \"./drizzle/oauth-drivers\";\nimport { sqlClientOAuthStandaloneGuard } from \"./drizzle/oauth-target\";\n\nconst oauthTarget = makeOAuthTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientOAuthStandaloneGuard,\n});\n\nexport const {\n makeOAuthAccountsServices,\n makeOAuthSignInServices,\n makeOAuthRegistrationIntentServices,\n makeOAuthRegistrationServices,\n coordinateOAuthRegistration,\n coordinateOAuthSignIn,\n coordinateOAuthRegistrationIntents,\n coordinateOAuthAccounts,\n makeOAuthConnectedServices,\n makeOAuthConnectedRevocationServices,\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n} = oauthTarget;\n\nimport { makePasskeyTarget } from \"./drizzle/passkey-drivers\";\nimport { sqlClientPasskeyStandaloneGuard } from \"./drizzle/passkey-target\";\n\nconst passkeyTarget = makePasskeyTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPasskeyStandaloneGuard,\n});\n\nexport const {\n makePasskeyCredentialServices,\n makePasskeyPersistenceServices,\n makePasskeyEnrollmentContextServices,\n makePasskeyRegistrationCeremonyServices,\n coordinatePasskeyPersistence,\n coordinatePasskeyRegistrationCeremony,\n makePasskeyManagementServices,\n makePasskeyRegistrationServices,\n coordinatePasskeyManagement,\n coordinatePasskeyRegistration,\n} = passkeyTarget;\n\nimport { makeTotpTarget, sqlClientTotpStandaloneGuard } from \"./drizzle/totp-target\";\n\nconst totpTarget = makeTotpTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientTotpStandaloneGuard,\n});\n\nexport const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTarget;\n\nimport { makePhoneTarget, sqlClientPhoneStandaloneGuard } from \"./drizzle/phone-target\";\n\nconst phoneTarget = makePhoneTarget<\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>({\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPhoneStandaloneGuard,\n});\n\nexport const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;\n\nimport { drizzleMigrationsLayer } from \"./internal/drizzle-migrations\";\nimport { sqlitePersistence } from \"./internal/drizzle-sqlite\";\n\nexport const AuthPersistence = {\n ...sqlitePersistence(makeWithDefaults({})),\n migrationsLayer: (options: {\n readonly migrations: Record<string, string>;\n readonly migrationsTable?: string;\n }) =>\n drizzleMigrationsLayer(\n makeWithDefaults({}),\n Effect.promise(() => import(\"drizzle-orm/effect-sqlite-wasm/migrator\")).pipe(\n Effect.map((module) => module.migrate),\n ),\n )(options),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,gBAAgB,yBAAiE,aACrF,2BAA2B,eAAe,gCAAgC,QAAQ,CAAC,CACrF;AAEA,MAAM,cAAc,uBAA+D,aACjF,yBAAyB,eAAe,8BAA8B,QAAQ,CAAC,CACjF;AAEA,MAAM,iBAAiB,0BACpB,aACC,4BACE,eACA,iCAAiC,QAAQ,GACzC,8BAA8B,QAAQ,CACxC,CACJ;AAUA,MAAa,EACX,wBACA,6BACA,0BACA,+BACA,4BAbkB,uBAA+D,aACjF,yBACE,eACA,8BAA8B,QAAQ,GACtC,8BAA8B,QAAQ,CACxC,CASE;AAEJ,MAAa,EACX,+BACA,gCACA,iCACA,qCACE;AAEJ,MAAa,EAAE,4BAA4B,iCAAiC;AAE5E,MAAa,EACX,mCACA,iCACA,iCACA,4BACA,qCACA,mCACA,2BACA,yBACA,mCACA,gCACE;AAEJ,MAAa,aAAa;AAE1B,MAAa,yBACX,UACA,YACG,4BAA4B,UAAU,OAAO;AAElD,MAAa,0BACX,UACA,YACG,6BAA6B,UAAU,OAAO;AAEnD,MAAa,oBAKX,UACA,YACG,uBAAuB,UAAU,OAAO;AAE7C,MAAa,wBAOX,UACA,YACG,2BAA2B,UAAU,SAAS,aAAa;AAEhE,MAAa,mCAMX,UACA,YACG,sCAAsC,UAAU,SAAS,aAAa;AAE3E,MAAa,gCAKX,UACA,YACG,mCAAmC,UAAU,OAAO;AAczD,MAAa,EAAE,yCAAyC,0CAVzB,kCAE5B,aACD,4BACE,eACA,iCAAiC,QAAQ,GACzC,8BAA8B,QAAQ,CACxC,CAIA;AAiBF,MAAa,EACX,2BACA,yBACA,qCACA,+BACA,6BACA,uBACA,oCACA,yBACA,4BACA,sCACA,0BACA,wCAtBkB,gBAGlB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAeI;AAeJ,MAAa,EACX,+BACA,gCACA,sCACA,yCACA,8BACA,uCACA,+BACA,iCACA,6BACA,kCApBoB,kBAGpB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAaI;AAcJ,MAAa,EAAE,6BAA6B,8BAVzB,eAGjB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE0E;AAc1E,MAAa,EAAE,8BAA8B,+BAVzB,gBAGlB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE4E;AAK5E,MAAa,kBAAkB;CAC7B,GAAG,kBAAkB,iBAAiB,CAAC,CAAC,CAAC;CACzC,kBAAkB,YAIhB,uBACE,iBAAiB,CAAC,CAAC,GACnB,OAAO,cAAc,OAAO,0CAA0C,CAAC,CAAC,KACtE,OAAO,KAAK,WAAW,OAAO,OAAO,CACvC,CACF,CAAC,CAAC,OAAO;AACb"}
1
+ {"version":3,"file":"SqliteWasm.mjs","names":[],"sources":["../src/SqliteWasm.ts"],"sourcesContent":["import { NativeDatabase } from \"@yielded/auth-persistence/Adapter\";\nimport type { AnyRelations } from \"drizzle-orm\";\nimport { type EffectSQLiteWasmDatabase, makeWithDefaults } from \"drizzle-orm/effect-sqlite-wasm\";\nimport type { AnySQLiteTable } from \"drizzle-orm/sqlite-core\";\nimport { Context, Effect, Layer } from \"effect\";\n\nimport { nativeDatabase } from \"./drizzle/native-database\";\n\n/** The application-owned Drizzle database used to construct persistence services. */\nexport class Database extends Context.Service<Database, EffectSQLiteWasmDatabase<AnyRelations>>()(\n \"effect-auth/persistence-drizzle/SqliteWasm/Database\",\n) {}\n\n/** Construct Drizzle from the driver's SQL-client Layer. */\nexport const databaseLayer = Layer.effect(Database, makeWithDefaults({}));\n\nimport { sqlClientEmailStandaloneGuard } from \"./drizzle/email-target\";\nimport type {\n ExternalIdentityTables,\n IdentityTables,\n SubjectProvisioningTables,\n} from \"./drizzle/model\";\nimport { sqlClientPasswordStandaloneGuard } from \"./drizzle/password-target\";\nimport { sqlClientProofStandaloneGuard } from \"./drizzle/proof-target\";\nimport { sqlClientSessionStandaloneGuard } from \"./drizzle/session-target\";\nimport { makeSqliteEmailTarget, sqliteEmailConfiguration } from \"./drizzle/sqlite-emails\";\nimport {\n makeSqliteExternalIdentityServices,\n makeSqliteIdentityServices,\n makeSqliteSubjectProvisioningServices,\n} from \"./drizzle/sqlite-identity\";\nimport { makeSqlitePasswordTarget, sqlitePasswordConfiguration } from \"./drizzle/sqlite-passwords\";\nimport { makeSqliteProofTarget, sqliteProofConfiguration } from \"./drizzle/sqlite-proofs\";\nimport { makeSqliteSessionTarget, sqliteSessionConfiguration } from \"./drizzle/sqlite-sessions\";\n\nconst sessionTarget = makeSqliteSessionTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) => sqliteSessionConfiguration(\"interactive\", sqlClientSessionStandaloneGuard(service)),\n);\n\nconst proofTarget = makeSqliteProofTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) => sqliteProofConfiguration(\"interactive\", sqlClientProofStandaloneGuard(service)),\n);\n\nconst passwordTarget = makeSqlitePasswordTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(service),\n sqlClientProofStandaloneGuard(service),\n ),\n);\n\nconst emailTarget = makeSqliteEmailTarget<Database, EffectSQLiteWasmDatabase<AnyRelations>>(\n Database,\n (service) =>\n sqliteEmailConfiguration(\n \"interactive\",\n sqlClientEmailStandaloneGuard(service),\n sqlClientProofStandaloneGuard(service),\n ),\n);\n\nexport const {\n coordinateEmailAddress,\n coordinateEmailRegistration,\n makeEmailAddressServices,\n makeEmailRegistrationServices,\n makeEmailSignInServices,\n} = emailTarget;\n\nexport const {\n coordinatePasswordPersistence,\n coordinatePasswordRegistration,\n makePasswordPersistenceServices,\n makePasswordRegistrationServices,\n} = passwordTarget;\n\nexport const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;\n\nexport const {\n coordinateAuthenticationAuthority,\n coordinatePendingAuthentication,\n coordinateSignedSessionValidity,\n coordinateStatefulSessions,\n makeAuthenticationAuthorityServices,\n makePendingAuthenticationServices,\n makeSessionStepUpServices,\n coordinateSessionStepUp,\n makeSignedSessionValidityServices,\n makeStatefulSessionServices,\n} = sessionTarget;\n\nexport const commitMode = \"interactive\" as const;\n\nexport const makeIdentityServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n External extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,\n) =>\n makeSqliteIdentityServices(mapping, \"interactive\").pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),\n );\n\nexport const makeSubjectProvisioningServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,\n) =>\n makeSqliteSubjectProvisioningServices(mapping, \"interactive\").pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),\n );\n\nexport const makeExternalIdentityServices = <\n Subject extends AnySQLiteTable,\n External extends AnySQLiteTable,\n NativeId,\n>(\n mapping: ExternalIdentityTables<Subject, External, NativeId>,\n) =>\n makeSqliteExternalIdentityServices(mapping).pipe(\n Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),\n );\n\nimport { makeSqlitePasswordPreparedTarget } from \"./drizzle/sqlite-password-prepared\";\n\nconst passwordPreparedTarget = makeSqlitePasswordPreparedTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>\n>(Database, (service) =>\n sqlitePasswordConfiguration(\n \"interactive\",\n sqlClientPasswordStandaloneGuard(service),\n sqlClientProofStandaloneGuard(service),\n ),\n);\n\nexport const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } =\n passwordPreparedTarget;\n\nexport { passwordPreparedPersistenceLayer } from \"./drizzle/password-prepared-target\";\n\nimport { makeOAuthTarget } from \"./drizzle/oauth-drivers\";\nimport { sqlClientOAuthStandaloneGuard } from \"./drizzle/oauth-target\";\n\nconst oauthTarget = makeOAuthTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientOAuthStandaloneGuard,\n});\n\nexport const {\n makeOAuthAccountsServices,\n makeOAuthSignInServices,\n makeOAuthRegistrationIntentServices,\n makeOAuthRegistrationServices,\n coordinateOAuthRegistration,\n coordinateOAuthSignIn,\n coordinateOAuthRegistrationIntents,\n coordinateOAuthAccounts,\n makeOAuthConnectedServices,\n makeOAuthConnectedRevocationServices,\n coordinateOAuthConnected,\n coordinateOAuthConnectedRevocations,\n} = oauthTarget;\n\nimport { makePasskeyTarget } from \"./drizzle/passkey-drivers\";\nimport { sqlClientPasskeyStandaloneGuard } from \"./drizzle/passkey-target\";\n\nconst passkeyTarget = makePasskeyTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPasskeyStandaloneGuard,\n});\n\nexport const {\n makePasskeyCredentialServices,\n makePasskeyPersistenceServices,\n makePasskeyEnrollmentContextServices,\n makePasskeyRegistrationCeremonyServices,\n coordinatePasskeyPersistence,\n coordinatePasskeyRegistrationCeremony,\n makePasskeyManagementServices,\n makePasskeyRegistrationServices,\n coordinatePasskeyManagement,\n coordinatePasskeyRegistration,\n} = passkeyTarget;\n\nimport { makeTotpTarget, sqlClientTotpStandaloneGuard } from \"./drizzle/totp-target\";\n\nconst totpTarget = makeTotpTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientTotpStandaloneGuard,\n});\n\nexport const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTarget;\n\nimport { makePhoneTarget, sqlClientPhoneStandaloneGuard } from \"./drizzle/phone-target\";\n\nconst phoneTarget = makePhoneTarget<\n Database,\n EffectSQLiteWasmDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>\n>(Database, {\n mode: \"interactive\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: sqlClientPhoneStandaloneGuard,\n});\n\nexport const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;\n\nimport { drizzleMigrationsLayer } from \"./internal/drizzle-migrations\";\nimport { sqlitePersistence } from \"./internal/drizzle-sqlite\";\n\nexport const AuthPersistence = {\n ...sqlitePersistence(makeWithDefaults({})),\n migrationsLayer: (options: {\n readonly migrations: Record<string, string>;\n readonly migrationsTable?: string;\n }) =>\n drizzleMigrationsLayer(\n makeWithDefaults({}),\n Effect.promise(() => import(\"drizzle-orm/effect-sqlite-wasm/migrator\")).pipe(\n Effect.map((module) => module.migrate),\n ),\n )(options),\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAa,WAAb,cAA8B,QAAQ,QAA0D,CAAC,CAC/F,qDACF,CAAC,CAAC,CAAC;;AAGH,MAAa,gBAAgB,MAAM,OAAO,UAAU,iBAAiB,CAAC,CAAC,CAAC;AAqBxE,MAAM,gBAAgB,wBACpB,WACC,YAAY,2BAA2B,eAAe,gCAAgC,OAAO,CAAC,CACjG;AAEA,MAAM,cAAc,sBAClB,WACC,YAAY,yBAAyB,eAAe,8BAA8B,OAAO,CAAC,CAC7F;AAEA,MAAM,iBAAiB,yBACrB,WACC,YACC,4BACE,eACA,iCAAiC,OAAO,GACxC,8BAA8B,OAAO,CACvC,CACJ;AAYA,MAAa,EACX,wBACA,6BACA,0BACA,+BACA,4BAfkB,sBAClB,WACC,YACC,yBACE,eACA,8BAA8B,OAAO,GACrC,8BAA8B,OAAO,CACvC,CASA;AAEJ,MAAa,EACX,+BACA,gCACA,iCACA,qCACE;AAEJ,MAAa,EAAE,4BAA4B,iCAAiC;AAE5E,MAAa,EACX,mCACA,iCACA,iCACA,4BACA,qCACA,mCACA,2BACA,yBACA,mCACA,gCACE;AAEJ,MAAa,aAAa;AAE1B,MAAa,wBAOX,YAEA,2BAA2B,SAAS,aAAa,CAAC,CAAC,KACjD,OAAO,qBAAqB,gBAAgB,eAAe,QAAQ,CAAC,CACtE;AAEF,MAAa,mCAMX,YAEA,sCAAsC,SAAS,aAAa,CAAC,CAAC,KAC5D,OAAO,qBAAqB,gBAAgB,eAAe,QAAQ,CAAC,CACtE;AAEF,MAAa,gCAKX,YAEA,mCAAmC,OAAO,CAAC,CAAC,KAC1C,OAAO,qBAAqB,gBAAgB,eAAe,QAAQ,CAAC,CACtE;AAeF,MAAa,EAAE,yCAAyC,0CAXzB,iCAG7B,WAAW,YACX,4BACE,eACA,iCAAiC,OAAO,GACxC,8BAA8B,OAAO,CACvC,CAIA;AAkBF,MAAa,EACX,2BACA,yBACA,qCACA,+BACA,6BACA,uBACA,oCACA,yBACA,4BACA,sCACA,0BACA,wCAvBkB,gBAIlB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAeI;AAgBJ,MAAa,EACX,+BACA,gCACA,sCACA,yCACA,8BACA,uCACA,+BACA,iCACA,6BACA,kCArBoB,kBAIpB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAaI;AAeJ,MAAa,EAAE,6BAA6B,8BAXzB,eAIjB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE0E;AAe1E,MAAa,EAAE,8BAA8B,+BAXzB,gBAIlB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,iBAAiB;AACnB,CAE4E;AAK5E,MAAa,kBAAkB;CAC7B,GAAG,kBAAkB,iBAAiB,CAAC,CAAC,CAAC;CACzC,kBAAkB,YAIhB,uBACE,iBAAiB,CAAC,CAAC,GACnB,OAAO,cAAc,OAAO,0CAA0C,CAAC,CAAC,KACtE,OAAO,KAAK,WAAW,OAAO,OAAO,CACvC,CACF,CAAC,CAAC,OAAO;AACb"}
@@ -1,5 +1,5 @@
1
1
  import { Context, Effect } from "effect";
2
- import { Statement } from "effect/unstable/sql/Statement";
2
+ import { Statement } from "effect/sql/Statement";
3
3
  //#region src/drizzle/D1BatchStatements.d.ts
4
4
  declare const D1BatchStatements_base: Context.ServiceClass<D1BatchStatements, "effect-auth/D1BatchStatements", {
5
5
  readonly append: (statement: Statement<unknown>) => Effect.Effect<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"D1BatchStatements.mjs","names":[],"sources":["../../src/drizzle/D1BatchStatements.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\nimport type { Statement } from \"effect/unstable/sql/Statement\";\n\n/** Appends application statements to the current coordinator's single atomic batch. */\nexport class D1BatchStatements extends Context.Service<\n D1BatchStatements,\n {\n readonly append: (statement: Statement<unknown>) => Effect.Effect<void>;\n }\n>()(\"effect-auth/D1BatchStatements\") {}\n"],"mappings":";;;AAIA,IAAa,oBAAb,cAAuC,QAAQ,QAK7C,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"D1BatchStatements.mjs","names":[],"sources":["../../src/drizzle/D1BatchStatements.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\nimport type { Statement } from \"effect/sql/Statement\";\n\n/** Appends application statements to the current coordinator's single atomic batch. */\nexport class D1BatchStatements extends Context.Service<\n D1BatchStatements,\n {\n readonly append: (statement: Statement<unknown>) => Effect.Effect<void>;\n }\n>()(\"effect-auth/D1BatchStatements\") {}\n"],"mappings":";;;AAIA,IAAa,oBAAb,cAAuC,QAAQ,QAK7C,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Context } from "effect";
2
+ import { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
3
+ import { D1Client } from "@effect/sql-d1/D1Client";
4
+ //#region src/drizzle/d1-database.d.ts
5
+ declare const Database_base: Context.ServiceClass<Database, "effect-auth/persistence-drizzle/D1/Database", EffectSQLiteD1Database<import("drizzle-orm").TablesRelationalConfig> & {
6
+ readonly $client: D1Client;
7
+ }>;
8
+ /** Application-owned D1 database, including the client that owns native batches. */
9
+ export declare class Database extends Database_base {}
10
+ //#endregion
11
+ //# sourceMappingURL=d1-database.d.mts.map
@@ -0,0 +1,8 @@
1
+ import { Context } from "effect";
2
+ //#region src/drizzle/d1-database.ts
3
+ /** Application-owned D1 database, including the client that owns native batches. */
4
+ var Database = class extends Context.Service()("effect-auth/persistence-drizzle/D1/Database") {};
5
+ //#endregion
6
+ export { Database };
7
+
8
+ //# sourceMappingURL=d1-database.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d1-database.mjs","names":[],"sources":["../../src/drizzle/d1-database.ts"],"sourcesContent":["import type { D1Client } from \"@effect/sql-d1/D1Client\";\nimport type { AnyRelations } from \"drizzle-orm\";\nimport type { EffectSQLiteD1Database } from \"drizzle-orm/effect-d1\";\nimport { Context } from \"effect\";\n\n/** Application-owned D1 database, including the client that owns native batches. */\nexport class Database extends Context.Service<\n Database,\n EffectSQLiteD1Database<AnyRelations> & { readonly $client: D1Client }\n>()(\"effect-auth/persistence-drizzle/D1/Database\") {}\n"],"mappings":";;;AAMA,IAAa,WAAb,cAA8B,QAAQ,QAGpC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { D1EmailAddressMapping, D1EmailRegistrationMapping, EmailSignInMapping } from "./email-model.mjs";
2
2
  import { D1ProofPersistenceMapping } from "./proof-model.mjs";
3
3
  import { EmailRegistrationAuthority } from "./email-registration.mjs";
4
+ import { Database as Database$1 } from "./d1-database.mjs";
4
5
  import { D1BatchStatements } from "./D1BatchStatements.mjs";
5
6
  import { SuppliedService } from "./SuppliedService.mjs";
6
7
  import { LoginIdentifier } from "@yielded/auth/Identity";
@@ -9,22 +10,22 @@ import { Effect, Option } from "effect";
9
10
  import { HookConfigurationError, LifecycleHooks, PreparedCommit } from "@yielded/auth/Hooks";
10
11
  import { EmailAddressDecision, EmailAddressPersistence, EmailUnavailable } from "@yielded/auth/Email";
11
12
  import { ProofCompletionInput } from "@yielded/auth/Proofs";
13
+ import { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
12
14
  import { AnySQLiteTable } from "drizzle-orm/sqlite-core";
13
15
  import { D1Client } from "@effect/sql-d1/D1Client";
14
- import { EffectSQLiteD1Database } from "drizzle-orm/effect-d1";
15
16
  //#region src/drizzle/d1-emails.d.ts
16
17
  type Database = EffectSQLiteD1Database<AnyRelations> & {
17
18
  readonly $client: D1Client;
18
19
  };
19
- export declare const makeD1EmailSignInServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, NativeId>(database: Database, mapping: EmailSignInMapping<S, I, C, NativeId>) => Effect.Effect<{
20
+ export declare const makeD1EmailSignInServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, NativeId>(mapping: EmailSignInMapping<S, I, C, NativeId>) => Effect.Effect<{
20
21
  emailSignInTargets: {
21
22
  readonly lookup: (input: {
22
23
  readonly moduleId: string;
23
24
  readonly identifier: LoginIdentifier;
24
25
  }) => Effect.Effect<Option.Option<import("@yielded/auth/Email").EmailCredentialSnapshot>, EmailUnavailable>;
25
26
  };
26
- }, never, never>;
27
- export declare const makeD1EmailAddressServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, M extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(database: Database, mapping: D1EmailAddressMapping<S, I, C, AC, M, NativeId>, proofMapping: D1ProofPersistenceMapping<PRq, PS, PG, PCn, PRs, PAev, PF, PC, PSub, PI, PCr, PNativeId>) => Effect.Effect<{
27
+ }, never, Database$1>;
28
+ export declare const makeD1EmailAddressServices: <S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, M extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(mapping: D1EmailAddressMapping<S, I, C, AC, M, NativeId>, proofMapping: D1ProofPersistenceMapping<PRq, PS, PG, PCn, PRs, PAev, PF, PC, PSub, PI, PCr, PNativeId>) => Effect.Effect<{
28
29
  emailAddressPersistence: {
29
30
  readonly target: (input: {
30
31
  readonly moduleId: string;
@@ -43,10 +44,10 @@ export declare const makeD1EmailAddressServices: <S extends AnySQLiteTable, I ex
43
44
  readonly hasMore: boolean;
44
45
  }, A>) => Effect.Effect<PreparedCommit<A>, EmailUnavailable>;
45
46
  };
46
- }, never, LifecycleHooks>;
47
- export declare const makeD1EmailRegistrationServices: <Registration, S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, Rq extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(database: Database, mapping: D1EmailRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>, proofMapping: D1ProofPersistenceMapping<PRq, PS, PG, PCn, PRs, PAev, PF, PC, PSub, PI, PCr, PNativeId>) => Effect.Effect<{
47
+ }, never, Database$1 | LifecycleHooks>;
48
+ export declare const makeD1EmailRegistrationServices: <Registration, S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, Rq extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId>(mapping: D1EmailRegistrationMapping<Registration, S, I, C, AC, Rq, NativeId>, proofMapping: D1ProofPersistenceMapping<PRq, PS, PG, PCn, PRs, PAev, PF, PC, PSub, PI, PCr, PNativeId>) => Effect.Effect<{
48
49
  registrationAuthority: EmailRegistrationAuthority<Registration>;
49
- }, never, LifecycleHooks>;
50
+ }, never, Database$1 | LifecycleHooks>;
50
51
  type CoordinatorError<E> = E | EmailUnavailable | HookConfigurationError;
51
52
  export declare function coordinateD1EmailAddress<S extends AnySQLiteTable, I extends AnySQLiteTable, C extends AnySQLiteTable, AC extends AnySQLiteTable, M extends AnySQLiteTable, NativeId, PRq extends AnySQLiteTable, PS extends AnySQLiteTable, PG extends AnySQLiteTable, PCn extends AnySQLiteTable, PRs extends AnySQLiteTable, PAev extends AnySQLiteTable, PF extends AnySQLiteTable, PC extends AnySQLiteTable, PSub extends AnySQLiteTable, PI extends AnySQLiteTable, PCr extends AnySQLiteTable, PNativeId, A, E, R, DatabaseError, DatabaseRequirements>(acquire: Effect.Effect<Database, DatabaseError, DatabaseRequirements>, options: {
52
53
  readonly mapping: D1EmailAddressMapping<S, I, C, AC, M, NativeId>;
@@ -1,6 +1,7 @@
1
1
  import { requiredEmailAddressConstraints, requiredEmailRegistrationConstraints } from "./email-model.mjs";
2
2
  import { PersistenceMappingError, column, isMappedConstraintConflict, updateValues } from "./model.mjs";
3
3
  import { CurrentEmailSql, currentAddress, decodeEmailSnapshot, emailLookupQuery, sameEmailRevision, snapshotEmailMutation, validEmailSignInConstraints, validateEmailAuthority } from "./email-sql.mjs";
4
+ import { Database } from "./d1-database.mjs";
4
5
  import { D1BatchStatements } from "./D1BatchStatements.mjs";
5
6
  import { CurrentD1PlanningDatabase, makeD1Owner } from "./d1-planning.mjs";
6
7
  import { compileD1ProofCompletionPlan } from "./d1-proofs.mjs";
@@ -449,15 +450,16 @@ const makeRegistrationPlans = (mapping, proofMapping) => ({
449
450
  }, prepare);
450
451
  })
451
452
  });
452
- const makeD1EmailSignInServices = (database, mapping) => Effect.succeed({ emailSignInTargets: EmailSignInTargets.of({ lookup: (input) => {
453
+ const makeD1EmailSignInServices = (mapping) => Effect.map(Database, (database) => ({ emailSignInTargets: EmailSignInTargets.of({ lookup: (input) => {
453
454
  if (!validEmailSignInConstraints(mapping)) return Effect.fail(unavailable());
454
455
  return emailLookupRows(mapping, input.moduleId, input.identifier).pipe(Effect.flatMap((rows) => {
455
456
  const row = rows[0];
456
457
  if (row === void 0) return Effect.succeed(Option.none());
457
458
  return decodeEmailSnapshot(mapping, input.moduleId, input.identifier, row).pipe(Effect.map((snapshot) => snapshot === void 0 ? Option.none() : Option.some(snapshot)));
458
459
  }), Effect.provideService(CurrentD1PlanningDatabase, database), translateFailure);
459
- } }) });
460
- const makeD1EmailAddressServices = (database, mapping, proofMapping) => Effect.gen(function* () {
460
+ } }) }));
461
+ const makeD1EmailAddressServices = Effect.fnUntraced(function* (mapping, proofMapping) {
462
+ const database = yield* Database;
461
463
  const hooks = yield* LifecycleHooks;
462
464
  const plans = makeAddressPlans(mapping, proofMapping);
463
465
  const run = (plan) => Effect.gen(function* () {
@@ -472,7 +474,8 @@ const makeD1EmailAddressServices = (database, mapping, proofMapping) => Effect.g
472
474
  cleanup: (input, prepare) => run(plans.cleanup(input, prepare)).pipe(translateFailure)
473
475
  } };
474
476
  });
475
- const makeD1EmailRegistrationServices = (database, mapping, proofMapping) => Effect.gen(function* () {
477
+ const makeD1EmailRegistrationServices = Effect.fnUntraced(function* (mapping, proofMapping) {
478
+ const database = yield* Database;
476
479
  const hooks = yield* LifecycleHooks;
477
480
  const plans = makeRegistrationPlans(mapping, proofMapping);
478
481
  const run = (plan) => Effect.gen(function* () {