@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
package/dist/SqliteDo.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { passwordPreparedPersistenceLayer } from "./drizzle/password-prepared-target.mjs";
2
+ import { nativeDatabase } from "./drizzle/native-database.mjs";
2
3
  import { makeTotpTarget } from "./drizzle/totp-target.mjs";
3
- import { makeSqliteAuthServices, makeSqliteAuthStoreServices, makeSqliteOAuthStateServices } from "./drizzle/sqlite.mjs";
4
4
  import { makePasskeyTarget } from "./drizzle/passkey-drivers.mjs";
5
5
  import { makePhoneTarget } from "./drizzle/phone-target.mjs";
6
6
  import { makeSqliteEmailTarget, sqliteEmailConfiguration } from "./drizzle/sqlite-emails.mjs";
@@ -10,18 +10,27 @@ import { makeSqliteProofTarget, sqliteProofConfiguration } from "./drizzle/sqlit
10
10
  import { makeSqliteSessionTarget, sqliteSessionConfiguration } from "./drizzle/sqlite-sessions.mjs";
11
11
  import { makeSqlitePasswordPreparedTarget } from "./drizzle/sqlite-password-prepared.mjs";
12
12
  import { makeOAuthTarget } from "./drizzle/oauth-drivers.mjs";
13
- import { OAuthStateDecisions } from "@yielded/auth/OAuth";
14
- import { Context, Effect } from "effect";
15
- import { AuthStoreDecisions } from "@yielded/auth/Persistence";
13
+ import { NativeDatabase, PersistenceConfigurationError } from "@yielded/auth-persistence/Adapter";
14
+ import { Context, Effect, Layer } from "effect";
15
+ import { SqliteClient } from "@effect/sql-sqlite-do/SqliteClient";
16
+ import { makeWithDefaults } from "drizzle-orm/effect-sqlite-do";
16
17
  //#region src/SqliteDo.ts
17
- const sessionTarget = makeSqliteSessionTarget(sqliteSessionConfiguration("synchronous", Effect.void));
18
- const proofTarget = makeSqliteProofTarget(sqliteProofConfiguration("synchronous", Effect.void));
19
- const passwordTarget = makeSqlitePasswordTarget(sqlitePasswordConfiguration("synchronous", Effect.void, Effect.void));
18
+ /** The application-owned Drizzle database used to construct persistence services. */
19
+ var Database = class extends Context.Service()("effect-auth/persistence-drizzle/SqliteDo/Database") {};
20
+ /** The SQL-client Layer must configure storage so Drizzle owns transactionSync. */
21
+ const databaseLayer = Layer.effect(Database, Effect.gen(function* () {
22
+ const storage = (yield* SqliteClient).config.storage;
23
+ if (storage === void 0) return yield* PersistenceConfigurationError.make({ reason: "SqliteDo requires a SQL client configured with storage for synchronous transactions" });
24
+ return yield* makeWithDefaults({ storage });
25
+ }));
26
+ const sessionTarget = makeSqliteSessionTarget(Database, sqliteSessionConfiguration("synchronous", Effect.void));
27
+ const proofTarget = makeSqliteProofTarget(Database, sqliteProofConfiguration("synchronous", Effect.void));
28
+ const passwordTarget = makeSqlitePasswordTarget(Database, sqlitePasswordConfiguration("synchronous", Effect.void, Effect.void));
20
29
  /**
21
30
  * Email mutations must own their outer transactionSync. Arbitrary raw Drizzle
22
31
  * nesting is not detectable; owner bodies and mapping allocators stay runSync-compatible.
23
32
  */
24
- const { coordinateEmailAddress, coordinateEmailRegistration, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices } = makeSqliteEmailTarget(sqliteEmailConfiguration("synchronous", Effect.void, Effect.void));
33
+ const { coordinateEmailAddress, coordinateEmailRegistration, makeEmailAddressServices, makeEmailRegistrationServices, makeEmailSignInServices } = makeSqliteEmailTarget(Database, sqliteEmailConfiguration("synchronous", Effect.void, Effect.void));
25
34
  /**
26
35
  * Password mutations and registration must own their outer transactionSync.
27
36
  * Arbitrary raw Drizzle nesting is not detectable; owner bodies must remain
@@ -44,62 +53,35 @@ const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget
44
53
  */
45
54
  const { coordinateAuthenticationAuthority, coordinatePendingAuthentication, coordinateSignedSessionValidity, coordinateStatefulSessions, makeAuthenticationAuthorityServices, makePendingAuthenticationServices, makeSessionStepUpServices, coordinateSessionStepUp, makeSignedSessionValidityServices, makeStatefulSessionServices } = sessionTarget;
46
55
  const commitMode = "synchronous";
47
- const makeAuthStoreServices = (database, mapping) => makeSqliteAuthStoreServices(database, mapping);
48
- const makeOAuthStateServices = (database, mapping) => makeSqliteOAuthStateServices(database, mapping);
49
- const makeAuthServices = (database, mapping) => makeSqliteAuthServices(database, mapping);
50
- function coordinateAuthStoreTransaction(acquire, options, body) {
51
- return Effect.flatMap(acquire, (database) => database.transaction((transaction) => {
52
- const decisions = makeSqliteAuthStoreServices(transaction, options.mapping).decisions;
53
- const provided = Context.make(AuthStoreDecisions, decisions);
54
- const work = Effect.provideContext(body, provided);
55
- return options.transaction === void 0 ? work : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
56
- }));
57
- }
58
- function coordinateOAuthStateTransaction(acquire, options, body) {
59
- return Effect.flatMap(acquire, (database) => database.transaction((transaction) => {
60
- const decisions = makeSqliteOAuthStateServices(transaction, options.mapping).decisions;
61
- const provided = Context.make(OAuthStateDecisions, decisions);
62
- const work = Effect.provideContext(body, provided);
63
- return options.transaction === void 0 ? work : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
64
- }));
65
- }
66
- function coordinateAuthTransaction(acquire, options, body) {
67
- return Effect.flatMap(acquire, (database) => database.transaction((transaction) => {
68
- const decisions = makeSqliteAuthServices(transaction, options.mapping).decisions;
69
- const provided = Context.make(AuthStoreDecisions, decisions).pipe(Context.add(OAuthStateDecisions, decisions));
70
- const work = Effect.provideContext(body, provided);
71
- return options.transaction === void 0 ? work : Effect.provideService(work, options.transaction, options.transaction.of(transaction));
72
- }));
73
- }
74
- const makeIdentityServices = (database, mapping) => makeSqliteIdentityServices(database, mapping, "synchronous");
75
- const makeSubjectProvisioningServices = (database, mapping) => makeSqliteSubjectProvisioningServices(database, mapping, "synchronous");
76
- const makeExternalIdentityServices = (database, mapping) => makeSqliteExternalIdentityServices(database, mapping);
77
- const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } = makeSqlitePasswordPreparedTarget(sqlitePasswordConfiguration("synchronous", Effect.void, Effect.void));
78
- const { makeOAuthAccountsServices, makeOAuthSignInServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, coordinateOAuthRegistration, coordinateOAuthSignIn, coordinateOAuthRegistrationIntents, coordinateOAuthAccounts, makeOAuthConnectedServices, makeOAuthConnectedRevocationServices, coordinateOAuthConnected, coordinateOAuthConnectedRevocations } = makeOAuthTarget({
56
+ const makeIdentityServices = (mapping) => makeSqliteIdentityServices(mapping, "synchronous").pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
57
+ const makeSubjectProvisioningServices = (mapping) => makeSqliteSubjectProvisioningServices(mapping, "synchronous").pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
58
+ const makeExternalIdentityServices = (mapping) => makeSqliteExternalIdentityServices(mapping).pipe(Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)));
59
+ const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } = makeSqlitePasswordPreparedTarget(Database, sqlitePasswordConfiguration("synchronous", Effect.void, Effect.void));
60
+ const { makeOAuthAccountsServices, makeOAuthSignInServices, makeOAuthRegistrationIntentServices, makeOAuthRegistrationServices, coordinateOAuthRegistration, coordinateOAuthSignIn, coordinateOAuthRegistrationIntents, coordinateOAuthAccounts, makeOAuthConnectedServices, makeOAuthConnectedRevocationServices, coordinateOAuthConnected, coordinateOAuthConnectedRevocations } = makeOAuthTarget(Database, {
79
61
  mode: "synchronous",
80
62
  dialect: "sqlite",
81
63
  locking: false,
82
64
  standaloneGuard: () => Effect.void
83
65
  });
84
- const { makePasskeyCredentialServices, makePasskeyPersistenceServices, makePasskeyEnrollmentContextServices, makePasskeyRegistrationCeremonyServices, coordinatePasskeyPersistence, coordinatePasskeyRegistrationCeremony, makePasskeyManagementServices, makePasskeyRegistrationServices, coordinatePasskeyManagement, coordinatePasskeyRegistration } = makePasskeyTarget({
66
+ const { makePasskeyCredentialServices, makePasskeyPersistenceServices, makePasskeyEnrollmentContextServices, makePasskeyRegistrationCeremonyServices, coordinatePasskeyPersistence, coordinatePasskeyRegistrationCeremony, makePasskeyManagementServices, makePasskeyRegistrationServices, coordinatePasskeyManagement, coordinatePasskeyRegistration } = makePasskeyTarget(Database, {
85
67
  mode: "synchronous",
86
68
  dialect: "sqlite",
87
69
  locking: false,
88
70
  standaloneGuard: () => Effect.void
89
71
  });
90
- const { makeTotpPersistenceServices, coordinateTotpPersistence } = makeTotpTarget({
72
+ const { makeTotpPersistenceServices, coordinateTotpPersistence } = makeTotpTarget(Database, {
91
73
  mode: "synchronous",
92
74
  dialect: "sqlite",
93
75
  locking: false,
94
76
  standaloneGuard: () => Effect.void
95
77
  });
96
- const { makePhonePersistenceServices, coordinatePhonePersistence } = makePhoneTarget({
78
+ const { makePhonePersistenceServices, coordinatePhonePersistence } = makePhoneTarget(Database, {
97
79
  mode: "synchronous",
98
80
  dialect: "sqlite",
99
81
  locking: false,
100
82
  standaloneGuard: () => Effect.void
101
83
  });
102
84
  //#endregion
103
- export { commitMode, coordinateAuthStoreTransaction, coordinateAuthTransaction, coordinateAuthenticationAuthority, coordinateEmailAddress, coordinateEmailRegistration, coordinateOAuthAccounts, coordinateOAuthConnected, coordinateOAuthConnectedRevocations, coordinateOAuthRegistration, coordinateOAuthRegistrationIntents, coordinateOAuthSignIn, 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 };
85
+ export { 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 };
104
86
 
105
87
  //# sourceMappingURL=SqliteDo.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteDo.mjs","names":[],"sources":["../src/SqliteDo.ts"],"sourcesContent":["import { OAuthStateDecisions } from \"@yielded/auth/OAuth\";\nimport { AuthStoreDecisions } from \"@yielded/auth/Persistence\";\nimport type { AnyRelations } from \"drizzle-orm\";\nimport type { EffectSQLiteDoDatabase } from \"drizzle-orm/effect-sqlite-do\";\nimport type { AnySQLiteTable } from \"drizzle-orm/sqlite-core\";\nimport { Context, Effect } from \"effect\";\nimport type { SqlError } from \"effect/unstable/sql/SqlError\";\n\nimport type {\n AuthStoreTables,\n AuthTables,\n ExternalIdentityTables,\n IdentityTables,\n OAuthStateTables,\n SubjectProvisioningTables,\n} from \"./drizzle/model\";\nimport {\n makeSqliteAuthServices,\n makeSqliteAuthStoreServices,\n makeSqliteOAuthStateServices,\n} from \"./drizzle/sqlite\";\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\";\nimport type { SuppliedService } from \"./drizzle/SuppliedService\";\n\nconst sessionTarget = makeSqliteSessionTarget<EffectSQLiteDoDatabase<AnyRelations>, true>(\n sqliteSessionConfiguration(\"synchronous\", Effect.void),\n);\n\nconst proofTarget = makeSqliteProofTarget<EffectSQLiteDoDatabase<AnyRelations>, true>(\n sqliteProofConfiguration(\"synchronous\", Effect.void),\n);\n\nconst passwordTarget = makeSqlitePasswordTarget<EffectSQLiteDoDatabase<AnyRelations>, true>(\n sqlitePasswordConfiguration(\"synchronous\", Effect.void, Effect.void),\n);\n\nconst emailTarget = makeSqliteEmailTarget<EffectSQLiteDoDatabase<AnyRelations>, true>(\n sqliteEmailConfiguration(\"synchronous\", Effect.void, Effect.void),\n);\n\n/**\n * Email mutations must own their outer transactionSync. Arbitrary raw Drizzle\n * nesting is not detectable; owner bodies and mapping allocators stay runSync-compatible.\n */\nexport const {\n coordinateEmailAddress,\n coordinateEmailRegistration,\n makeEmailAddressServices,\n makeEmailRegistrationServices,\n makeEmailSignInServices,\n} = emailTarget;\n\n/**\n * Password mutations and registration must own their outer transactionSync.\n * Arbitrary raw Drizzle nesting is not detectable; owner bodies must remain\n * runSync-compatible. Detectable Effect commit scopes are rejected pre-write.\n */\nexport const {\n coordinatePasswordPersistence,\n coordinatePasswordRegistration,\n makePasswordPersistenceServices,\n makePasswordRegistrationServices,\n} = passwordTarget;\n\n/**\n * Proof mutations and coordinateProofPersistence must own their outermost\n * transactionSync call. The installed driver cannot detect an arbitrary raw\n * Drizzle outer transaction; calling either boundary from one is unsupported.\n * The owner body must remain runSync-compatible.\n */\nexport const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;\n\n/**\n * Session mutation methods and coordinate* functions must own their outermost\n * transactionSync call. The installed Drizzle driver exposes no context marker\n * for an arbitrary raw outer database.transaction call, so invoking either\n * boundary from one is unsupported and cannot be detected. Detectable Effect\n * commit scopes are rejected before writes.\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 = \"synchronous\" as const;\n\nexport const makeAuthStoreServices = <C extends AnySQLiteTable, R extends AnySQLiteTable>(\n database: EffectSQLiteDoDatabase<AnyRelations>,\n mapping: AuthStoreTables<C, R>,\n) => makeSqliteAuthStoreServices(database, mapping);\n\nexport const makeOAuthStateServices = <S extends AnySQLiteTable>(\n database: EffectSQLiteDoDatabase<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: EffectSQLiteDoDatabase<AnyRelations>,\n mapping: AuthTables<C, R, S>,\n) => makeSqliteAuthServices(database, mapping);\n\ntype TransactionOf<D extends EffectSQLiteDoDatabase<AnyRelations>> = Parameters<\n Parameters<D[\"transaction\"]>[0]\n>[0];\n\nexport function coordinateAuthStoreTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n A,\n E,\n DatabaseError,\n DatabaseRequirements,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: { readonly mapping: AuthStoreTables<C, R>; readonly transaction?: never },\n body: Effect.Effect<A, E, NoInfer<AuthStoreDecisions>>,\n): Effect.Effect<A, E | DatabaseError | SqlError, DatabaseRequirements>;\n\nexport function coordinateAuthStoreTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n A,\n E,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: AuthStoreTables<C, R>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, NoInfer<AuthStoreDecisions | TxId>>,\n): Effect.Effect<A, E | DatabaseError | SqlError, DatabaseRequirements>;\n\nexport function coordinateAuthStoreTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n A,\n E,\n Requirements,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: AuthStoreTables<C, R>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, Requirements>,\n) {\n return Effect.flatMap(acquire, (database) =>\n database.transaction<A, E, Exclude<Requirements, AuthStoreDecisions>>((transaction) => {\n const decisions = makeSqliteAuthStoreServices(transaction, options.mapping).decisions;\n const provided = Context.make(AuthStoreDecisions, decisions);\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(\n work,\n options.transaction,\n options.transaction.of(transaction as TransactionOf<D>),\n );\n }),\n );\n}\n\nexport function coordinateOAuthStateTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n S extends AnySQLiteTable,\n A,\n E,\n DatabaseError,\n DatabaseRequirements,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: { readonly mapping: OAuthStateTables<S>; readonly transaction?: never },\n body: Effect.Effect<A, E, NoInfer<OAuthStateDecisions>>,\n): Effect.Effect<A, E | DatabaseError | SqlError, DatabaseRequirements>;\n\nexport function coordinateOAuthStateTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n S extends AnySQLiteTable,\n A,\n E,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthStateTables<S>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, NoInfer<OAuthStateDecisions | TxId>>,\n): Effect.Effect<A, E | DatabaseError | SqlError, DatabaseRequirements>;\n\nexport function coordinateOAuthStateTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n S extends AnySQLiteTable,\n A,\n E,\n Requirements,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: OAuthStateTables<S>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, Requirements>,\n) {\n return Effect.flatMap(acquire, (database) =>\n database.transaction<A, E, Exclude<Requirements, OAuthStateDecisions>>((transaction) => {\n const decisions = makeSqliteOAuthStateServices(transaction, options.mapping).decisions;\n const provided = Context.make(OAuthStateDecisions, decisions);\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(\n work,\n options.transaction,\n options.transaction.of(transaction as TransactionOf<D>),\n );\n }),\n );\n}\n\n/**\n * Supported composition boundary for Durable Objects. The owner must return\n * decisions as values and translate rejection only after this root\n * transactionSync commit. Its body may contain only runSync-compatible Effects;\n * the installed driver rejects suspension and rolls back. Owner failure rolls\n * back synchronously, so no retry is performed inside this boundary.\n */\nexport function coordinateAuthTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n S extends AnySQLiteTable,\n A,\n E,\n DatabaseError,\n DatabaseRequirements,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: { readonly mapping: AuthTables<C, R, S>; readonly transaction?: never },\n body: Effect.Effect<A, E, NoInfer<AuthStoreDecisions | OAuthStateDecisions>>,\n): Effect.Effect<A, E | DatabaseError | SqlError, DatabaseRequirements>;\n\nexport function coordinateAuthTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n S extends AnySQLiteTable,\n A,\n E,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: AuthTables<C, R, S>;\n readonly transaction: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, NoInfer<AuthStoreDecisions | OAuthStateDecisions | TxId>>,\n): Effect.Effect<A, E | DatabaseError | SqlError, DatabaseRequirements>;\n\nexport function coordinateAuthTransaction<\n D extends EffectSQLiteDoDatabase<AnyRelations>,\n C extends AnySQLiteTable,\n R extends AnySQLiteTable,\n S extends AnySQLiteTable,\n A,\n E,\n Requirements,\n DatabaseError,\n DatabaseRequirements,\n TxId,\n TxShape,\n>(\n acquire: Effect.Effect<D, DatabaseError, DatabaseRequirements>,\n options: {\n readonly mapping: AuthTables<C, R, S>;\n readonly transaction?: SuppliedService<TxId, NoInfer<TransactionOf<D>>, TxShape>;\n },\n body: Effect.Effect<A, E, Requirements>,\n) {\n return Effect.flatMap(acquire, (database) =>\n database.transaction<A, E, Exclude<Requirements, AuthStoreDecisions | OAuthStateDecisions>>(\n (transaction) => {\n const decisions = makeSqliteAuthServices(transaction, options.mapping).decisions;\n\n const provided = Context.make(AuthStoreDecisions, decisions).pipe(\n Context.add(OAuthStateDecisions, decisions),\n );\n\n const work = Effect.provideContext(body, provided);\n\n return options.transaction === undefined\n ? work\n : Effect.provideService(\n work,\n options.transaction,\n options.transaction.of(transaction as TransactionOf<D>),\n );\n },\n ),\n );\n}\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: EffectSQLiteDoDatabase<AnyRelations>,\n mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,\n) => makeSqliteIdentityServices(database, mapping, \"synchronous\");\n\nexport const makeSubjectProvisioningServices = <\n Subject extends AnySQLiteTable,\n Identifier extends AnySQLiteTable,\n Request extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteDoDatabase<AnyRelations>,\n mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,\n) => makeSqliteSubjectProvisioningServices(database, mapping, \"synchronous\");\n\nexport const makeExternalIdentityServices = <\n Subject extends AnySQLiteTable,\n External extends AnySQLiteTable,\n NativeId,\n>(\n database: EffectSQLiteDoDatabase<AnyRelations>,\n mapping: ExternalIdentityTables<Subject, External, NativeId>,\n) => makeSqliteExternalIdentityServices(database, mapping);\n\nimport { makeSqlitePasswordPreparedTarget } from \"./drizzle/sqlite-password-prepared\";\n\nconst passwordPreparedTarget = makeSqlitePasswordPreparedTarget<\n EffectSQLiteDoDatabase<AnyRelations>,\n true\n>(sqlitePasswordConfiguration(\"synchronous\", Effect.void, Effect.void));\n\nexport const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } =\n passwordPreparedTarget;\n\nexport { passwordPreparedPersistenceLayer } from \"./drizzle/password-prepared-target\";\n\nimport { makeOAuthTarget } from \"./drizzle/oauth-drivers\";\n\nconst oauthTarget = makeOAuthTarget<\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n true\n>({\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\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\";\n\nconst passkeyTarget = makePasskeyTarget<\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n unknown,\n true\n>({\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\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 } from \"./drizzle/totp-target\";\n\nconst totpTarget = makeTotpTarget<\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n unknown,\n true\n>({\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\n});\n\nexport const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTarget;\n\nimport { makePhoneTarget } from \"./drizzle/phone-target\";\n\nconst phoneTarget = makePhoneTarget<\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n unknown,\n true\n>({\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\n});\n\nexport const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;\n"],"mappings":";;;;;;;;;;;;;;;;AAgCA,MAAM,gBAAgB,wBACpB,2BAA2B,eAAe,OAAO,IAAI,CACvD;AAEA,MAAM,cAAc,sBAClB,yBAAyB,eAAe,OAAO,IAAI,CACrD;AAEA,MAAM,iBAAiB,yBACrB,4BAA4B,eAAe,OAAO,MAAM,OAAO,IAAI,CACrE;;;;;AAUA,MAAa,EACX,wBACA,6BACA,0BACA,+BACA,4BAbkB,sBAClB,yBAAyB,eAAe,OAAO,MAAM,OAAO,IAAI,CAa9D;;;;;;AAOJ,MAAa,EACX,+BACA,gCACA,iCACA,qCACE;;;;;;;AAQJ,MAAa,EAAE,4BAA4B,iCAAiC;;;;;;;;AAS5E,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;AAuC7C,SAAgB,+BAYd,SACA,SAIA,MACA;CACA,OAAO,OAAO,QAAQ,UAAU,aAC9B,SAAS,aAA8D,gBAAgB;EACrF,MAAM,YAAY,4BAA4B,aAAa,QAAQ,OAAO,CAAC,CAAC;EAC5E,MAAM,WAAW,QAAQ,KAAK,oBAAoB,SAAS;EAC3D,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;EAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eACL,MACA,QAAQ,aACR,QAAQ,YAAY,GAAG,WAA+B,CACxD;CACN,CAAC,CACH;AACF;AAiCA,SAAgB,gCAWd,SACA,SAIA,MACA;CACA,OAAO,OAAO,QAAQ,UAAU,aAC9B,SAAS,aAA+D,gBAAgB;EACtF,MAAM,YAAY,6BAA6B,aAAa,QAAQ,OAAO,CAAC,CAAC;EAC7E,MAAM,WAAW,QAAQ,KAAK,qBAAqB,SAAS;EAC5D,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;EAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eACL,MACA,QAAQ,aACR,QAAQ,YAAY,GAAG,WAA+B,CACxD;CACN,CAAC,CACH;AACF;AA4CA,SAAgB,0BAad,SACA,SAIA,MACA;CACA,OAAO,OAAO,QAAQ,UAAU,aAC9B,SAAS,aACN,gBAAgB;EACf,MAAM,YAAY,uBAAuB,aAAa,QAAQ,OAAO,CAAC,CAAC;EAEvE,MAAM,WAAW,QAAQ,KAAK,oBAAoB,SAAS,CAAC,CAAC,KAC3D,QAAQ,IAAI,qBAAqB,SAAS,CAC5C;EAEA,MAAM,OAAO,OAAO,eAAe,MAAM,QAAQ;EAEjD,OAAO,QAAQ,gBAAgB,KAAA,IAC3B,OACA,OAAO,eACL,MACA,QAAQ,aACR,QAAQ,YAAY,GAAG,WAA+B,CACxD;CACN,CACF,CACF;AACF;AAEA,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;AASzD,MAAa,EAAE,yCAAyC,0CALzB,iCAG7B,4BAA4B,eAAe,OAAO,MAAM,OAAO,IAAI,CAGnE;AAiBF,MAAa,EACX,2BACA,yBACA,qCACA,+BACA,6BACA,uBACA,oCACA,yBACA,4BACA,sCACA,0BACA,wCAvBkB,gBAIlB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAeI;AAgBJ,MAAa,EACX,+BACA,gCACA,sCACA,yCACA,8BACA,uCACA,+BACA,iCACA,6BACA,kCAtBoB,kBAKpB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAaI;AAgBJ,MAAa,EAAE,6BAA6B,8BAZzB,eAKjB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAE0E;AAgB1E,MAAa,EAAE,8BAA8B,+BAZzB,gBAKlB;CACA,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAE4E"}
1
+ {"version":3,"file":"SqliteDo.mjs","names":[],"sources":["../src/SqliteDo.ts"],"sourcesContent":["import { SqliteClient } from \"@effect/sql-sqlite-do/SqliteClient\";\nimport { NativeDatabase, PersistenceConfigurationError } from \"@yielded/auth-persistence/Adapter\";\nimport type { AnyRelations } from \"drizzle-orm\";\nimport { type EffectSQLiteDoDatabase, makeWithDefaults } from \"drizzle-orm/effect-sqlite-do\";\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, EffectSQLiteDoDatabase<AnyRelations>>()(\n \"effect-auth/persistence-drizzle/SqliteDo/Database\",\n) {}\n\n/** The SQL-client Layer must configure storage so Drizzle owns transactionSync. */\nexport const databaseLayer = Layer.effect(\n Database,\n Effect.gen(function* () {\n const client = yield* SqliteClient;\n const storage = client.config.storage;\n\n if (storage === undefined)\n return yield* PersistenceConfigurationError.make({\n reason:\n \"SqliteDo requires a SQL client configured with storage for synchronous transactions\",\n });\n\n return yield* makeWithDefaults({ storage });\n }),\n);\n\nimport type {\n ExternalIdentityTables,\n IdentityTables,\n SubjectProvisioningTables,\n} from \"./drizzle/model\";\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, EffectSQLiteDoDatabase<AnyRelations>, true>(\n Database,\n sqliteSessionConfiguration(\"synchronous\", Effect.void),\n);\n\nconst proofTarget = makeSqliteProofTarget<Database, EffectSQLiteDoDatabase<AnyRelations>, true>(\n Database,\n sqliteProofConfiguration(\"synchronous\", Effect.void),\n);\n\nconst passwordTarget = makeSqlitePasswordTarget<\n Database,\n EffectSQLiteDoDatabase<AnyRelations>,\n true\n>(Database, sqlitePasswordConfiguration(\"synchronous\", Effect.void, Effect.void));\n\nconst emailTarget = makeSqliteEmailTarget<Database, EffectSQLiteDoDatabase<AnyRelations>, true>(\n Database,\n sqliteEmailConfiguration(\"synchronous\", Effect.void, Effect.void),\n);\n\n/**\n * Email mutations must own their outer transactionSync. Arbitrary raw Drizzle\n * nesting is not detectable; owner bodies and mapping allocators stay runSync-compatible.\n */\nexport const {\n coordinateEmailAddress,\n coordinateEmailRegistration,\n makeEmailAddressServices,\n makeEmailRegistrationServices,\n makeEmailSignInServices,\n} = emailTarget;\n\n/**\n * Password mutations and registration must own their outer transactionSync.\n * Arbitrary raw Drizzle nesting is not detectable; owner bodies must remain\n * runSync-compatible. Detectable Effect commit scopes are rejected pre-write.\n */\nexport const {\n coordinatePasswordPersistence,\n coordinatePasswordRegistration,\n makePasswordPersistenceServices,\n makePasswordRegistrationServices,\n} = passwordTarget;\n\n/**\n * Proof mutations and coordinateProofPersistence must own their outermost\n * transactionSync call. The installed driver cannot detect an arbitrary raw\n * Drizzle outer transaction; calling either boundary from one is unsupported.\n * The owner body must remain runSync-compatible.\n */\nexport const { coordinateProofPersistence, makeProofPersistenceServices } = proofTarget;\n\n/**\n * Session mutation methods and coordinate* functions must own their outermost\n * transactionSync call. The installed Drizzle driver exposes no context marker\n * for an arbitrary raw outer database.transaction call, so invoking either\n * boundary from one is unsupported and cannot be detected. Detectable Effect\n * commit scopes are rejected before writes.\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 = \"synchronous\" 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, \"synchronous\").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, \"synchronous\").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 EffectSQLiteDoDatabase<AnyRelations>,\n true\n>(Database, sqlitePasswordConfiguration(\"synchronous\", Effect.void, Effect.void));\n\nexport const { makePasswordPreparedPersistenceServices, coordinatePasswordPreparedPersistence } =\n passwordPreparedTarget;\n\nexport { passwordPreparedPersistenceLayer } from \"./drizzle/password-prepared-target\";\n\nimport { makeOAuthTarget } from \"./drizzle/oauth-drivers\";\n\nconst oauthTarget = makeOAuthTarget<\n Database,\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n true\n>(Database, {\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\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\";\n\nconst passkeyTarget = makePasskeyTarget<\n Database,\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n unknown,\n true\n>(Database, {\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\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 } from \"./drizzle/totp-target\";\n\nconst totpTarget = makeTotpTarget<\n Database,\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n unknown,\n true\n>(Database, {\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\n});\n\nexport const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTarget;\n\nimport { makePhoneTarget } from \"./drizzle/phone-target\";\n\nconst phoneTarget = makePhoneTarget<\n Database,\n EffectSQLiteDoDatabase<AnyRelations>,\n AnySQLiteTable<{ dialect: \"sqlite\" }>,\n unknown,\n true\n>(Database, {\n mode: \"synchronous\",\n dialect: \"sqlite\",\n locking: false,\n standaloneGuard: () => Effect.void,\n});\n\nexport const { makePhonePersistenceServices, coordinatePhonePersistence } = phoneTarget;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,IAAa,WAAb,cAA8B,QAAQ,QAAwD,CAAC,CAC7F,mDACF,CAAC,CAAC,CAAC;;AAGH,MAAa,gBAAgB,MAAM,OACjC,UACA,OAAO,IAAI,aAAa;CAEtB,MAAM,WAAU,OADM,aAAA,CACC,OAAO;CAE9B,IAAI,YAAY,KAAA,GACd,OAAO,OAAO,8BAA8B,KAAK,EAC/C,QACE,sFACJ,CAAC;CAEH,OAAO,OAAO,iBAAiB,EAAE,QAAQ,CAAC;AAC5C,CAAC,CACH;AAiBA,MAAM,gBAAgB,wBACpB,UACA,2BAA2B,eAAe,OAAO,IAAI,CACvD;AAEA,MAAM,cAAc,sBAClB,UACA,yBAAyB,eAAe,OAAO,IAAI,CACrD;AAEA,MAAM,iBAAiB,yBAIrB,UAAU,4BAA4B,eAAe,OAAO,MAAM,OAAO,IAAI,CAAC;;;;;AAWhF,MAAa,EACX,wBACA,6BACA,0BACA,+BACA,4BAdkB,sBAClB,UACA,yBAAyB,eAAe,OAAO,MAAM,OAAO,IAAI,CAa9D;;;;;;AAOJ,MAAa,EACX,+BACA,gCACA,iCACA,qCACE;;;;;;;AAQJ,MAAa,EAAE,4BAA4B,iCAAiC;;;;;;;;AAS5E,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;AAUF,MAAa,EAAE,yCAAyC,0CANzB,iCAI7B,UAAU,4BAA4B,eAAe,OAAO,MAAM,OAAO,IAAI,CAG7E;AAkBF,MAAa,EACX,2BACA,yBACA,qCACA,+BACA,6BACA,uBACA,oCACA,yBACA,4BACA,sCACA,0BACA,wCAxBkB,gBAKlB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAeI;AAiBJ,MAAa,EACX,+BACA,gCACA,sCACA,yCACA,8BACA,uCACA,+BACA,iCACA,6BACA,kCAvBoB,kBAMpB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAaI;AAiBJ,MAAa,EAAE,6BAA6B,8BAbzB,eAMjB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAE0E;AAiB1E,MAAa,EAAE,8BAA8B,+BAbzB,gBAMlB,UAAU;CACV,MAAM;CACN,SAAS;CACT,SAAS;CACT,uBAAuB,OAAO;AAChC,CAE4E"}