@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/src/Postgres.ts CHANGED
@@ -1,20 +1,21 @@
1
1
  import type { AnyRelations } from "drizzle-orm";
2
2
  import { type EffectPgDatabase, makeWithDefaults } from "drizzle-orm/effect-postgres";
3
3
  import type { AnyPgTable } from "drizzle-orm/pg-core";
4
- import { Effect } from "effect";
5
-
6
- import type { AuthTables, IdentityTables } from "./drizzle/model";
4
+ import { Effect, Layer } from "effect";
5
+
6
+ import type {
7
+ IdentityTables,
8
+ SubjectProvisioningTables,
9
+ ExternalIdentityTables,
10
+ } from "./drizzle/model";
11
+ import { Database } from "./drizzle/pg-database";
7
12
  import {
8
- coordinatePgAuthStoreTransaction,
9
- coordinatePgAuthTransaction,
10
- coordinatePgOAuthStateTransaction,
11
- makePgAuthServices,
12
- makePgAuthStoreServices,
13
13
  makePgExternalIdentityServices,
14
14
  makePgIdentityServices,
15
- makePgOAuthStateServices,
16
15
  makePgSubjectProvisioningServices,
17
- } from "./drizzle/pg";
16
+ } from "./drizzle/pg-identity";
17
+
18
+ export { Database } from "./drizzle/pg-database";
18
19
 
19
20
  export {
20
21
  coordinatePgAuthenticationAuthority as coordinateAuthenticationAuthority,
@@ -47,22 +48,24 @@ export {
47
48
  makePgEmailSignInServices as makeEmailSignInServices,
48
49
  } from "./drizzle/pg-emails";
49
50
 
50
- export {
51
- coordinatePgAuthStoreTransaction as coordinateAuthStoreTransaction,
52
- coordinatePgAuthTransaction as coordinateAuthTransaction,
53
- coordinatePgOAuthStateTransaction as coordinateOAuthStateTransaction,
54
- makePgAuthStoreServices as makeAuthStoreServices,
55
- makePgExternalIdentityServices as makeExternalIdentityServices,
56
- makePgOAuthStateServices as makeOAuthStateServices,
57
- makePgSubjectProvisioningServices as makeSubjectProvisioningServices,
58
- };
51
+ export const makeSubjectProvisioningServices = <
52
+ Subject extends AnyPgTable,
53
+ Identifier extends AnyPgTable,
54
+ Request extends AnyPgTable,
55
+ NativeId,
56
+ >(
57
+ mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
58
+ ) => makePgSubjectProvisioningServices(mapping);
59
59
 
60
- export const commitMode = "interactive" as const;
60
+ export const makeExternalIdentityServices = <
61
+ Subject extends AnyPgTable,
62
+ External extends AnyPgTable,
63
+ NativeId,
64
+ >(
65
+ mapping: ExternalIdentityTables<Subject, External, NativeId>,
66
+ ) => makePgExternalIdentityServices(mapping);
61
67
 
62
- export const makeAuthServices = <C extends AnyPgTable, R extends AnyPgTable, S extends AnyPgTable>(
63
- database: EffectPgDatabase<AnyRelations>,
64
- mapping: AuthTables<C, R, S>,
65
- ) => makePgAuthServices(database, mapping);
68
+ export const commitMode = "interactive" as const;
66
69
 
67
70
  export const makeIdentityServices = <
68
71
  Subject extends AnyPgTable,
@@ -71,9 +74,8 @@ export const makeIdentityServices = <
71
74
  Request extends AnyPgTable,
72
75
  NativeId,
73
76
  >(
74
- database: EffectPgDatabase<AnyRelations>,
75
77
  mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
76
- ) => makePgIdentityServices(database, mapping);
78
+ ) => makePgIdentityServices(mapping);
77
79
 
78
80
  export {
79
81
  makePgSessionStepUpServices as makeSessionStepUpServices,
@@ -90,7 +92,11 @@ export { passwordPreparedPersistenceLayer } from "./drizzle/password-prepared-ta
90
92
  import { makeOAuthTarget } from "./drizzle/oauth-drivers";
91
93
  import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
92
94
 
93
- const oauthTarget = makeOAuthTarget<EffectPgDatabase<AnyRelations>, AnyPgTable<{ dialect: "pg" }>>({
95
+ const oauthTarget = makeOAuthTarget<
96
+ Database,
97
+ EffectPgDatabase<AnyRelations>,
98
+ AnyPgTable<{ dialect: "pg" }>
99
+ >(Database, {
94
100
  mode: "interactive",
95
101
  dialect: "pg",
96
102
  locking: true,
@@ -116,9 +122,10 @@ import { makePasskeyTarget } from "./drizzle/passkey-drivers";
116
122
  import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
117
123
 
118
124
  const passkeyTarget = makePasskeyTarget<
125
+ Database,
119
126
  EffectPgDatabase<AnyRelations>,
120
127
  AnyPgTable<{ dialect: "pg" }>
121
- >({
128
+ >(Database, {
122
129
  mode: "interactive",
123
130
  dialect: "pg",
124
131
  locking: true,
@@ -140,7 +147,11 @@ export const {
140
147
 
141
148
  import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
142
149
 
143
- const totpTarget = makeTotpTarget<EffectPgDatabase<AnyRelations>, AnyPgTable<{ dialect: "pg" }>>({
150
+ const totpTarget = makeTotpTarget<
151
+ Database,
152
+ EffectPgDatabase<AnyRelations>,
153
+ AnyPgTable<{ dialect: "pg" }>
154
+ >(Database, {
144
155
  mode: "interactive",
145
156
  dialect: "pg",
146
157
  locking: true,
@@ -151,7 +162,11 @@ export const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTa
151
162
 
152
163
  import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
153
164
 
154
- const phoneTarget = makePhoneTarget<EffectPgDatabase<AnyRelations>, AnyPgTable<{ dialect: "pg" }>>({
165
+ const phoneTarget = makePhoneTarget<
166
+ Database,
167
+ EffectPgDatabase<AnyRelations>,
168
+ AnyPgTable<{ dialect: "pg" }>
169
+ >(Database, {
155
170
  mode: "interactive",
156
171
  dialect: "pg",
157
172
  locking: true,
@@ -172,3 +187,6 @@ export const AuthPersistence = {
172
187
  ),
173
188
  ),
174
189
  };
190
+
191
+ /** Construct Drizzle from the driver's SQL-client Layer. */
192
+ export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
package/src/SqliteBun.ts CHANGED
@@ -1,32 +1,25 @@
1
+ import { NativeDatabase } from "@yielded/auth-persistence/Adapter";
1
2
  import type { AnyRelations } from "drizzle-orm";
2
3
  import { type EffectSQLiteBunDatabase, makeWithDefaults } from "drizzle-orm/effect-sqlite-bun";
3
4
  import type { AnySQLiteTable } from "drizzle-orm/sqlite-core";
4
- import { Effect } from "effect";
5
+ import { Context, Effect, Layer } from "effect";
5
6
 
7
+ import { nativeDatabase } from "./drizzle/native-database";
8
+
9
+ /** The application-owned Drizzle database used to construct persistence services. */
10
+ export class Database extends Context.Service<Database, EffectSQLiteBunDatabase<AnyRelations>>()(
11
+ "effect-auth/persistence-drizzle/SqliteBun/Database",
12
+ ) {}
13
+
14
+ /** Construct Drizzle from the driver's SQL-client Layer. */
15
+ export const databaseLayer = Layer.effect(Database, makeWithDefaults({}));
16
+
17
+ import { sqlClientEmailStandaloneGuard } from "./drizzle/email-target";
6
18
  import type {
7
- AuthStoreTables,
8
- AuthTables,
9
19
  ExternalIdentityTables,
10
20
  IdentityTables,
11
- OAuthStateTables,
12
21
  SubjectProvisioningTables,
13
22
  } from "./drizzle/model";
14
- import {
15
- coordinateSqliteAuthStoreTransaction,
16
- coordinateSqliteAuthTransaction,
17
- coordinateSqliteOAuthStateTransaction,
18
- makeSqliteAuthServices,
19
- makeSqliteAuthStoreServices,
20
- makeSqliteOAuthStateServices,
21
- } from "./drizzle/sqlite";
22
-
23
- export {
24
- coordinateSqliteAuthStoreTransaction as coordinateAuthStoreTransaction,
25
- coordinateSqliteAuthTransaction as coordinateAuthTransaction,
26
- coordinateSqliteOAuthStateTransaction as coordinateOAuthStateTransaction,
27
- };
28
-
29
- import { sqlClientEmailStandaloneGuard } from "./drizzle/email-target";
30
23
  import { sqlClientPasswordStandaloneGuard } from "./drizzle/password-target";
31
24
  import { sqlClientProofStandaloneGuard } from "./drizzle/proof-target";
32
25
  import { sqlClientSessionStandaloneGuard } from "./drizzle/session-target";
@@ -40,28 +33,34 @@ import { makeSqlitePasswordTarget, sqlitePasswordConfiguration } from "./drizzle
40
33
  import { makeSqliteProofTarget, sqliteProofConfiguration } from "./drizzle/sqlite-proofs";
41
34
  import { makeSqliteSessionTarget, sqliteSessionConfiguration } from "./drizzle/sqlite-sessions";
42
35
 
43
- const sessionTarget = makeSqliteSessionTarget<EffectSQLiteBunDatabase<AnyRelations>>((database) =>
44
- sqliteSessionConfiguration("interactive", sqlClientSessionStandaloneGuard(database)),
36
+ const sessionTarget = makeSqliteSessionTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
37
+ Database,
38
+ (service) => sqliteSessionConfiguration("interactive", sqlClientSessionStandaloneGuard(service)),
45
39
  );
46
40
 
47
- const proofTarget = makeSqliteProofTarget<EffectSQLiteBunDatabase<AnyRelations>>((database) =>
48
- sqliteProofConfiguration("interactive", sqlClientProofStandaloneGuard(database)),
41
+ const proofTarget = makeSqliteProofTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
42
+ Database,
43
+ (service) => sqliteProofConfiguration("interactive", sqlClientProofStandaloneGuard(service)),
49
44
  );
50
45
 
51
- const passwordTarget = makeSqlitePasswordTarget<EffectSQLiteBunDatabase<AnyRelations>>((database) =>
52
- sqlitePasswordConfiguration(
53
- "interactive",
54
- sqlClientPasswordStandaloneGuard(database),
55
- sqlClientProofStandaloneGuard(database),
56
- ),
46
+ const passwordTarget = makeSqlitePasswordTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
47
+ Database,
48
+ (service) =>
49
+ sqlitePasswordConfiguration(
50
+ "interactive",
51
+ sqlClientPasswordStandaloneGuard(service),
52
+ sqlClientProofStandaloneGuard(service),
53
+ ),
57
54
  );
58
55
 
59
- const emailTarget = makeSqliteEmailTarget<EffectSQLiteBunDatabase<AnyRelations>>((database) =>
60
- sqliteEmailConfiguration(
61
- "interactive",
62
- sqlClientEmailStandaloneGuard(database),
63
- sqlClientProofStandaloneGuard(database),
64
- ),
56
+ const emailTarget = makeSqliteEmailTarget<Database, EffectSQLiteBunDatabase<AnyRelations>>(
57
+ Database,
58
+ (service) =>
59
+ sqliteEmailConfiguration(
60
+ "interactive",
61
+ sqlClientEmailStandaloneGuard(service),
62
+ sqlClientProofStandaloneGuard(service),
63
+ ),
65
64
  );
66
65
 
67
66
  export const {
@@ -96,25 +95,6 @@ export const {
96
95
 
97
96
  export const commitMode = "interactive" as const;
98
97
 
99
- export const makeAuthStoreServices = <C extends AnySQLiteTable, R extends AnySQLiteTable>(
100
- database: EffectSQLiteBunDatabase<AnyRelations>,
101
- mapping: AuthStoreTables<C, R>,
102
- ) => makeSqliteAuthStoreServices(database, mapping);
103
-
104
- export const makeOAuthStateServices = <S extends AnySQLiteTable>(
105
- database: EffectSQLiteBunDatabase<AnyRelations>,
106
- mapping: OAuthStateTables<S>,
107
- ) => makeSqliteOAuthStateServices(database, mapping);
108
-
109
- export const makeAuthServices = <
110
- C extends AnySQLiteTable,
111
- R extends AnySQLiteTable,
112
- S extends AnySQLiteTable,
113
- >(
114
- database: EffectSQLiteBunDatabase<AnyRelations>,
115
- mapping: AuthTables<C, R, S>,
116
- ) => makeSqliteAuthServices(database, mapping);
117
-
118
98
  export const makeIdentityServices = <
119
99
  Subject extends AnySQLiteTable,
120
100
  Identifier extends AnySQLiteTable,
@@ -122,9 +102,11 @@ export const makeIdentityServices = <
122
102
  Request extends AnySQLiteTable,
123
103
  NativeId,
124
104
  >(
125
- database: EffectSQLiteBunDatabase<AnyRelations>,
126
105
  mapping: IdentityTables<Subject, Identifier, External, Request, NativeId>,
127
- ) => makeSqliteIdentityServices(database, mapping, "interactive");
106
+ ) =>
107
+ makeSqliteIdentityServices(mapping, "interactive").pipe(
108
+ Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
109
+ );
128
110
 
129
111
  export const makeSubjectProvisioningServices = <
130
112
  Subject extends AnySQLiteTable,
@@ -132,28 +114,33 @@ export const makeSubjectProvisioningServices = <
132
114
  Request extends AnySQLiteTable,
133
115
  NativeId,
134
116
  >(
135
- database: EffectSQLiteBunDatabase<AnyRelations>,
136
117
  mapping: SubjectProvisioningTables<Subject, Identifier, Request, NativeId>,
137
- ) => makeSqliteSubjectProvisioningServices(database, mapping, "interactive");
118
+ ) =>
119
+ makeSqliteSubjectProvisioningServices(mapping, "interactive").pipe(
120
+ Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
121
+ );
138
122
 
139
123
  export const makeExternalIdentityServices = <
140
124
  Subject extends AnySQLiteTable,
141
125
  External extends AnySQLiteTable,
142
126
  NativeId,
143
127
  >(
144
- database: EffectSQLiteBunDatabase<AnyRelations>,
145
128
  mapping: ExternalIdentityTables<Subject, External, NativeId>,
146
- ) => makeSqliteExternalIdentityServices(database, mapping);
129
+ ) =>
130
+ makeSqliteExternalIdentityServices(mapping).pipe(
131
+ Effect.provideServiceEffect(NativeDatabase, nativeDatabase(Database)),
132
+ );
147
133
 
148
134
  import { makeSqlitePasswordPreparedTarget } from "./drizzle/sqlite-password-prepared";
149
135
 
150
136
  const passwordPreparedTarget = makeSqlitePasswordPreparedTarget<
137
+ Database,
151
138
  EffectSQLiteBunDatabase<AnyRelations>
152
- >((database) =>
139
+ >(Database, (service) =>
153
140
  sqlitePasswordConfiguration(
154
141
  "interactive",
155
- sqlClientPasswordStandaloneGuard(database),
156
- sqlClientProofStandaloneGuard(database),
142
+ sqlClientPasswordStandaloneGuard(service),
143
+ sqlClientProofStandaloneGuard(service),
157
144
  ),
158
145
  );
159
146
 
@@ -166,9 +153,10 @@ import { makeOAuthTarget } from "./drizzle/oauth-drivers";
166
153
  import { sqlClientOAuthStandaloneGuard } from "./drizzle/oauth-target";
167
154
 
168
155
  const oauthTarget = makeOAuthTarget<
156
+ Database,
169
157
  EffectSQLiteBunDatabase<AnyRelations>,
170
158
  AnySQLiteTable<{ dialect: "sqlite" }>
171
- >({
159
+ >(Database, {
172
160
  mode: "interactive",
173
161
  dialect: "sqlite",
174
162
  locking: false,
@@ -194,9 +182,10 @@ import { makePasskeyTarget } from "./drizzle/passkey-drivers";
194
182
  import { sqlClientPasskeyStandaloneGuard } from "./drizzle/passkey-target";
195
183
 
196
184
  const passkeyTarget = makePasskeyTarget<
185
+ Database,
197
186
  EffectSQLiteBunDatabase<AnyRelations>,
198
187
  AnySQLiteTable<{ dialect: "sqlite" }>
199
- >({
188
+ >(Database, {
200
189
  mode: "interactive",
201
190
  dialect: "sqlite",
202
191
  locking: false,
@@ -219,9 +208,10 @@ export const {
219
208
  import { makeTotpTarget, sqlClientTotpStandaloneGuard } from "./drizzle/totp-target";
220
209
 
221
210
  const totpTarget = makeTotpTarget<
211
+ Database,
222
212
  EffectSQLiteBunDatabase<AnyRelations>,
223
213
  AnySQLiteTable<{ dialect: "sqlite" }>
224
- >({
214
+ >(Database, {
225
215
  mode: "interactive",
226
216
  dialect: "sqlite",
227
217
  locking: false,
@@ -233,9 +223,10 @@ export const { makeTotpPersistenceServices, coordinateTotpPersistence } = totpTa
233
223
  import { makePhoneTarget, sqlClientPhoneStandaloneGuard } from "./drizzle/phone-target";
234
224
 
235
225
  const phoneTarget = makePhoneTarget<
226
+ Database,
236
227
  EffectSQLiteBunDatabase<AnyRelations>,
237
228
  AnySQLiteTable<{ dialect: "sqlite" }>
238
- >({
229
+ >(Database, {
239
230
  mode: "interactive",
240
231
  dialect: "sqlite",
241
232
  locking: false,