@yielded/auth-persistence-drizzle 0.1.0-beta.23 → 0.1.0-beta.24

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 (185) hide show
  1. package/README.md +3 -0
  2. package/dist/D1.d.mts +9 -9
  3. package/dist/D1.mjs +2 -1
  4. package/dist/D1.mjs.map +1 -1
  5. package/dist/Libsql.d.mts +46 -62
  6. package/dist/Libsql.mjs +2 -1
  7. package/dist/Libsql.mjs.map +1 -1
  8. package/dist/Mysql2.d.mts +24 -25
  9. package/dist/Pglite.d.mts +26 -26
  10. package/dist/Pglite.mjs +2 -1
  11. package/dist/Pglite.mjs.map +1 -1
  12. package/dist/Postgres.d.mts +27 -27
  13. package/dist/Postgres.mjs +2 -1
  14. package/dist/Postgres.mjs.map +1 -1
  15. package/dist/SqliteBun.d.mts +47 -63
  16. package/dist/SqliteBun.mjs +2 -1
  17. package/dist/SqliteBun.mjs.map +1 -1
  18. package/dist/SqliteDo.d.mts +45 -61
  19. package/dist/SqliteDo.mjs +2 -1
  20. package/dist/SqliteDo.mjs.map +1 -1
  21. package/dist/SqliteNode.d.mts +49 -65
  22. package/dist/SqliteNode.mjs +2 -1
  23. package/dist/SqliteNode.mjs.map +1 -1
  24. package/dist/SqliteWasm.d.mts +45 -61
  25. package/dist/SqliteWasm.mjs +2 -1
  26. package/dist/SqliteWasm.mjs.map +1 -1
  27. package/dist/drizzle/crypto.mjs +1 -1
  28. package/dist/drizzle/d1-emails.d.mts +1 -1
  29. package/dist/drizzle/d1-oauth.d.mts +13 -13
  30. package/dist/drizzle/d1-passkey.d.mts +1 -1
  31. package/dist/drizzle/d1-password-prepared.d.mts +4 -4
  32. package/dist/drizzle/d1-password-prepared.mjs.map +1 -1
  33. package/dist/drizzle/d1-passwords.d.mts +17 -33
  34. package/dist/drizzle/d1-passwords.mjs +56 -198
  35. package/dist/drizzle/d1-passwords.mjs.map +1 -1
  36. package/dist/drizzle/d1-phone.d.mts +1 -1
  37. package/dist/drizzle/d1-proofs.d.mts +1 -1
  38. package/dist/drizzle/d1-sessions.d.mts +2 -2
  39. package/dist/drizzle/d1-sessions.mjs +11 -6
  40. package/dist/drizzle/d1-sessions.mjs.map +1 -1
  41. package/dist/drizzle/d1-totp.d.mts +1 -1
  42. package/dist/drizzle/mysql-password-prepared.d.mts +5 -5
  43. package/dist/drizzle/mysql-password-prepared.mjs.map +1 -1
  44. package/dist/drizzle/mysql-passwords.d.mts +16 -32
  45. package/dist/drizzle/mysql-passwords.mjs.map +1 -1
  46. package/dist/drizzle/mysql-sessions.d.mts +1 -1
  47. package/dist/drizzle/native-sql-table.mjs +26 -1
  48. package/dist/drizzle/native-sql-table.mjs.map +1 -1
  49. package/dist/drizzle/oauth-connected-model.d.mts +20 -281
  50. package/dist/drizzle/oauth-connected-model.mjs +3 -17
  51. package/dist/drizzle/oauth-connected-model.mjs.map +1 -1
  52. package/dist/drizzle/oauth-connected-reference.d.mts +1 -3
  53. package/dist/drizzle/oauth-connected-reference.mjs +4 -53
  54. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -1
  55. package/dist/drizzle/oauth-connected-target.d.mts +3 -990
  56. package/dist/drizzle/oauth-connected-target.mjs +8 -92
  57. package/dist/drizzle/oauth-connected-target.mjs.map +1 -1
  58. package/dist/drizzle/oauth-kernel.mjs +11 -0
  59. package/dist/drizzle/oauth-kernel.mjs.map +1 -0
  60. package/dist/drizzle/oauth-model.d.mts +35 -438
  61. package/dist/drizzle/oauth-model.mjs +6 -44
  62. package/dist/drizzle/oauth-model.mjs.map +1 -1
  63. package/dist/drizzle/oauth-mysql.mjs +2 -2
  64. package/dist/drizzle/oauth-mysql.mjs.map +1 -1
  65. package/dist/drizzle/oauth-proxy.d.mts +10 -0
  66. package/dist/drizzle/oauth-proxy.mjs +54 -0
  67. package/dist/drizzle/oauth-proxy.mjs.map +1 -0
  68. package/dist/drizzle/oauth-target.d.mts +6 -107
  69. package/dist/drizzle/oauth-target.mjs +15 -245
  70. package/dist/drizzle/oauth-target.mjs.map +1 -1
  71. package/dist/drizzle/password-model.d.mts +5 -6
  72. package/dist/drizzle/password-prepared-model.d.mts +5 -5
  73. package/dist/drizzle/password-prepared-model.mjs.map +1 -1
  74. package/dist/drizzle/password-prepared-state.mjs +1 -1
  75. package/dist/drizzle/pg-password-prepared.d.mts +5 -5
  76. package/dist/drizzle/pg-password-prepared.mjs.map +1 -1
  77. package/dist/drizzle/pg-passwords.d.mts +16 -32
  78. package/dist/drizzle/pg-passwords.mjs.map +1 -1
  79. package/dist/drizzle/pg-sessions.d.mts +1 -1
  80. package/dist/drizzle/phone-target.d.mts +1 -1
  81. package/dist/drizzle/phone-target.mjs +1 -1
  82. package/dist/drizzle/query-operations.mjs +3 -1
  83. package/dist/drizzle/query-operations.mjs.map +1 -1
  84. package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -1
  85. package/dist/drizzle/sqlite-passwords.mjs.map +1 -1
  86. package/dist/drizzle/storage-validation.mjs +10 -185
  87. package/dist/drizzle/storage-validation.mjs.map +1 -1
  88. package/dist/drizzle/totp-target.d.mts +2 -2
  89. package/dist/drizzle/totp-target.mjs +2 -2
  90. package/dist/drizzle/transaction-execution.d.mts +2 -2
  91. package/dist/drizzle/transaction-owner.d.mts +1 -2
  92. package/dist/index.d.mts +3 -2
  93. package/dist/internal/drizzle-postgres-oauth-proxy.d.mts +138 -0
  94. package/dist/internal/drizzle-postgres-oauth-proxy.mjs +29 -0
  95. package/dist/internal/drizzle-postgres-oauth-proxy.mjs.map +1 -0
  96. package/dist/internal/drizzle-sqlite-oauth-proxy.d.mts +146 -0
  97. package/dist/internal/drizzle-sqlite-oauth-proxy.mjs +29 -0
  98. package/dist/internal/drizzle-sqlite-oauth-proxy.mjs.map +1 -0
  99. package/package.json +1 -1
  100. package/src/D1.ts +2 -0
  101. package/src/Libsql.ts +2 -0
  102. package/src/Pglite.ts +2 -0
  103. package/src/Postgres.ts +2 -0
  104. package/src/SqliteBun.ts +2 -0
  105. package/src/SqliteDo.ts +2 -0
  106. package/src/SqliteNode.ts +2 -0
  107. package/src/SqliteWasm.ts +2 -0
  108. package/src/drizzle/d1-password-prepared.ts +2 -5
  109. package/src/drizzle/d1-passwords.ts +123 -458
  110. package/src/drizzle/d1-sessions.ts +21 -6
  111. package/src/drizzle/mysql-password-prepared.ts +4 -8
  112. package/src/drizzle/mysql-passwords.ts +5 -10
  113. package/src/drizzle/native-sql-table.ts +30 -0
  114. package/src/drizzle/oauth-connected-model.ts +97 -315
  115. package/src/drizzle/oauth-connected-reference.ts +13 -93
  116. package/src/drizzle/oauth-connected-target.ts +14 -271
  117. package/src/drizzle/oauth-kernel.ts +10 -0
  118. package/src/drizzle/oauth-model.ts +188 -541
  119. package/src/drizzle/oauth-mysql.ts +2 -2
  120. package/src/drizzle/oauth-proxy.ts +101 -0
  121. package/src/drizzle/oauth-target.ts +33 -737
  122. package/src/drizzle/password-model.ts +0 -13
  123. package/src/drizzle/password-prepared-model.ts +0 -6
  124. package/src/drizzle/pg-password-prepared.ts +4 -8
  125. package/src/drizzle/pg-passwords.ts +5 -10
  126. package/src/drizzle/query-operations.ts +4 -0
  127. package/src/drizzle/sqlite-password-prepared.ts +4 -8
  128. package/src/drizzle/sqlite-passwords.ts +7 -14
  129. package/src/drizzle/storage-validation.ts +13 -214
  130. package/src/index.ts +2 -4
  131. package/src/internal/drizzle-postgres-oauth-proxy.ts +37 -0
  132. package/src/internal/drizzle-sqlite-oauth-proxy.ts +44 -0
  133. package/dist/_virtual/_rolldown/runtime.mjs +0 -13
  134. package/dist/drizzle/oauth-accounts.mjs +0 -359
  135. package/dist/drizzle/oauth-accounts.mjs.map +0 -1
  136. package/dist/drizzle/oauth-connected-access.mjs +0 -212
  137. package/dist/drizzle/oauth-connected-access.mjs.map +0 -1
  138. package/dist/drizzle/oauth-connected-collection.mjs +0 -202
  139. package/dist/drizzle/oauth-connected-collection.mjs.map +0 -1
  140. package/dist/drizzle/oauth-connected-custody.mjs +0 -147
  141. package/dist/drizzle/oauth-connected-custody.mjs.map +0 -1
  142. package/dist/drizzle/oauth-connected-flow.mjs +0 -297
  143. package/dist/drizzle/oauth-connected-flow.mjs.map +0 -1
  144. package/dist/drizzle/oauth-connected-input.mjs +0 -122
  145. package/dist/drizzle/oauth-connected-input.mjs.map +0 -1
  146. package/dist/drizzle/oauth-connected-maintenance.mjs +0 -214
  147. package/dist/drizzle/oauth-connected-maintenance.mjs.map +0 -1
  148. package/dist/drizzle/oauth-connected-management.mjs +0 -229
  149. package/dist/drizzle/oauth-connected-management.mjs.map +0 -1
  150. package/dist/drizzle/oauth-connected-settlement.mjs +0 -128
  151. package/dist/drizzle/oauth-connected-settlement.mjs.map +0 -1
  152. package/dist/drizzle/oauth-connected-sign-in.mjs +0 -265
  153. package/dist/drizzle/oauth-connected-sign-in.mjs.map +0 -1
  154. package/dist/drizzle/oauth-connected-state.d.mts +0 -2062
  155. package/dist/drizzle/oauth-connected-state.mjs +0 -430
  156. package/dist/drizzle/oauth-connected-state.mjs.map +0 -1
  157. package/dist/drizzle/oauth-flow.d.mts +0 -22
  158. package/dist/drizzle/oauth-flow.mjs +0 -253
  159. package/dist/drizzle/oauth-flow.mjs.map +0 -1
  160. package/dist/drizzle/oauth-input.mjs +0 -127
  161. package/dist/drizzle/oauth-input.mjs.map +0 -1
  162. package/dist/drizzle/oauth-owner.d.mts +0 -10
  163. package/dist/drizzle/oauth-owner.mjs +0 -10
  164. package/dist/drizzle/oauth-owner.mjs.map +0 -1
  165. package/dist/drizzle/oauth-registration.d.mts +0 -5
  166. package/dist/drizzle/oauth-registration.mjs +0 -374
  167. package/dist/drizzle/oauth-registration.mjs.map +0 -1
  168. package/dist/drizzle/oauth-state.mjs +0 -107
  169. package/dist/drizzle/oauth-state.mjs.map +0 -1
  170. package/src/drizzle/oauth-accounts.ts +0 -805
  171. package/src/drizzle/oauth-connected-access.ts +0 -361
  172. package/src/drizzle/oauth-connected-collection.ts +0 -324
  173. package/src/drizzle/oauth-connected-custody.ts +0 -279
  174. package/src/drizzle/oauth-connected-flow.ts +0 -529
  175. package/src/drizzle/oauth-connected-input.ts +0 -147
  176. package/src/drizzle/oauth-connected-maintenance.ts +0 -346
  177. package/src/drizzle/oauth-connected-management.ts +0 -365
  178. package/src/drizzle/oauth-connected-settlement.ts +0 -251
  179. package/src/drizzle/oauth-connected-sign-in.ts +0 -443
  180. package/src/drizzle/oauth-connected-state.ts +0 -872
  181. package/src/drizzle/oauth-flow.ts +0 -462
  182. package/src/drizzle/oauth-input.ts +0 -201
  183. package/src/drizzle/oauth-owner.ts +0 -29
  184. package/src/drizzle/oauth-registration.ts +0 -640
  185. package/src/drizzle/oauth-state.ts +0 -218
@@ -1,278 +1,21 @@
1
- import * as M from "@yielded/auth/OAuth";
2
- import {
3
- OAuthConnectedPersistence,
4
- OAuthConnectedRevocations,
5
- OAuthConnectedRevocationDecision,
6
- OAuthExternalIdentity,
7
- snapshotOAuthSync,
8
- type PrepareOAuthCommit,
9
- } from "@yielded/auth/OAuth";
10
- /* oxlint-disable no-explicit-any -- concrete adapters retain the native database, table and ID types. */
11
- import { type Crypto, Effect, Layer, type PlatformError, Schema } from "effect";
12
- import type { Statement } from "effect/sql/Statement";
1
+ import type { OAuthKernel } from "@yielded/auth-persistence/Adapter";
13
2
 
14
- import type { PersistenceMappingError } from "./model";
15
- import * as A from "./oauth-connected-access";
16
- import * as F from "./oauth-connected-flow";
17
- import { connectedInputs, connectedRevocationInputs } from "./oauth-connected-input";
18
- import * as Maintenance from "./oauth-connected-maintenance";
19
- import * as Management from "./oauth-connected-management";
20
- import { settle } from "./oauth-connected-settlement";
21
- import * as SignIn from "./oauth-connected-sign-in";
22
- import * as S from "./oauth-connected-state";
23
- import { capturedOAuthService } from "./oauth-input";
24
- import { CurrentOAuthTransaction } from "./oauth-owner";
25
- import { captureOAuthMapping } from "./oauth-state";
26
- import {
27
- coordinateOAuthOwner,
28
- makeOAuthExecution,
29
- type OAuthExecution,
30
- type OAuthTargetConfiguration,
31
- } from "./oauth-target";
3
+ import { oauthKernel } from "./oauth-kernel";
32
4
 
33
- const captured = <T extends S.Authority>(mapping: T): T => {
34
- const retained = captureOAuthMapping(mapping),
35
- codec = retained.subjectId;
5
+ export const makeTargetOAuthConnectedServices: OAuthKernel["connectedTarget"]["makeTargetOAuthConnectedServices"] =
6
+ oauthKernel.connectedTarget.makeTargetOAuthConnectedServices;
36
7
 
37
- const subjectId = {
38
- ...codec,
39
- toNative: (subject: Parameters<typeof codec.toNative>[0]) =>
40
- Effect.map(codec.toNative(subject), S.nativeCopy),
41
- toSubject: (native: unknown) => codec.toSubject(S.nativeCopy(native)),
42
- equals: (a: unknown, b: unknown) => codec.equals(S.nativeCopy(a), S.nativeCopy(b)),
43
- };
8
+ export const makeTargetOAuthConnectedRevocationServices: OAuthKernel["connectedTarget"]["makeTargetOAuthConnectedRevocationServices"] =
9
+ oauthKernel.connectedTarget.makeTargetOAuthConnectedRevocationServices;
44
10
 
45
- const ownership = retained.ownership;
11
+ export const coordinateTargetOAuthConnected: OAuthKernel["connectedTarget"]["coordinateTargetOAuthConnected"] =
12
+ oauthKernel.connectedTarget.coordinateTargetOAuthConnected;
46
13
 
47
- if (ownership.mode === "separate" && "encodeInsert" in ownership.external) {
48
- const encode = ownership.external.encodeInsert as (input: {
49
- readonly identity: typeof OAuthExternalIdentity.Type;
50
- readonly identityKey: string;
51
- readonly subjectId: unknown;
52
- }) => import("./oauth-owner").Row;
14
+ export const coordinateTargetOAuthConnectedRevocations: OAuthKernel["connectedTarget"]["coordinateTargetOAuthConnectedRevocations"] =
15
+ oauthKernel.connectedTarget.coordinateTargetOAuthConnectedRevocations;
53
16
 
54
- return captureOAuthMapping({
55
- ...retained,
56
- subjectId,
57
- ownership: {
58
- ...ownership,
59
- external: {
60
- ...ownership.external,
61
- encodeInsert: (input: Parameters<typeof encode>[0]) =>
62
- encode({
63
- ...input,
64
- identity: snapshotOAuthSync(OAuthExternalIdentity, input.identity),
65
- subjectId: S.nativeCopy(input.subjectId),
66
- }),
67
- },
68
- },
69
- });
70
- }
17
+ export const oauthConnectedPersistenceLayer: OAuthKernel["connectedTarget"]["oauthConnectedPersistenceLayer"] =
18
+ oauthKernel.connectedTarget.oauthConnectedPersistenceLayer;
71
19
 
72
- return captureOAuthMapping({ ...retained, subjectId });
73
- };
74
-
75
- const prepare = <Value, Encoded, A>(
76
- schema: Schema.Codec<Value, Encoded, never, never>,
77
- value: Value,
78
- callback: PrepareOAuthCommit<Value, A>,
79
- ) =>
80
- Effect.flatMap(CurrentOAuthTransaction, (owner) =>
81
- Effect.sync(() => {
82
- owner.guards.push(owner.journal.prepare(undefined));
83
-
84
- return callback(snapshotOAuthSync(schema, value), owner.journal);
85
- }),
86
- );
87
-
88
- const mutation =
89
- <Input, Value, Encoded>(
90
- mapping: S.Mapping,
91
- execute: OAuthExecution,
92
- body: (
93
- mapping: S.Mapping,
94
- input: Input,
95
- ) => Effect.Effect<
96
- Value,
97
- | import("@yielded/auth/OAuth").OAuthUnavailable
98
- | PersistenceMappingError
99
- | PlatformError.PlatformError,
100
- CurrentOAuthTransaction | Crypto.Crypto
101
- >,
102
- schema: Schema.Codec<Value, Encoded, never, never>,
103
- ) =>
104
- <A>(input: Input, callback: PrepareOAuthCommit<Value, A>) =>
105
- execute.run(Effect.flatMap(body(mapping, input), (value) => prepare(schema, value, callback)));
106
-
107
- const read =
108
- <Input, Value>(
109
- mapping: S.Mapping,
110
- execute: OAuthExecution,
111
- body: (
112
- mapping: S.Mapping,
113
- input: Input,
114
- ) => Effect.Effect<
115
- Value,
116
- | import("@yielded/auth/OAuth").OAuthUnavailable
117
- | PersistenceMappingError
118
- | PlatformError.PlatformError,
119
- CurrentOAuthTransaction | Crypto.Crypto
120
- >,
121
- ) =>
122
- (input: Input) =>
123
- execute.run(body(mapping, input), false);
124
-
125
- export const makeConnected = (
126
- mapping: S.Mapping,
127
- execute: OAuthExecution,
128
- ): OAuthConnectedPersistence["Service"] =>
129
- capturedOAuthService<OAuthConnectedPersistence["Service"]>(
130
- {
131
- claimSignIn: mutation(mapping, execute, SignIn.claimSignIn, M.OAuthSignInAccessClaim),
132
- inspectSignIn: read(mapping, execute, SignIn.inspectSignIn),
133
- settleSignIn: mutation(
134
- mapping,
135
- execute,
136
- SignIn.settleSignIn,
137
- M.OAuthConnectedSettlementDecision,
138
- ),
139
- capture: read(mapping, execute, F.capture),
140
- issue: mutation(mapping, execute, F.issue, M.OAuthConnectedIssueDecision),
141
- prepare: mutation(mapping, execute, F.prepare, M.OAuthConnectedIssueDecision),
142
- inspectPrepared: read(mapping, execute, F.inspectPrepared),
143
- preflight: read(mapping, execute, F.preflight),
144
- claim: mutation(mapping, execute, F.claim, M.OAuthConnectedClaimDecision),
145
- inspectGrant: read(mapping, execute, F.inspectGrant),
146
- settle: mutation(mapping, execute, settle, M.OAuthConnectedSettlementDecision),
147
- list: read(mapping, execute, Management.list),
148
- inspectDisconnect: read(mapping, execute, Management.inspectDisconnect),
149
- disconnect: mutation(
150
- mapping,
151
- execute,
152
- Management.disconnect,
153
- M.OAuthConnectedDisconnectDecision,
154
- ),
155
- inspectAccess: read(mapping, execute, A.inspectAccess),
156
- claimRefresh: mutation(mapping, execute, A.claimRefresh, M.OAuthConnectedRefreshDecision),
157
- settleRefresh: mutation(mapping, execute, A.settleRefresh, M.OAuthConnectedRefreshSettlement),
158
- admitUse: mutation(mapping, execute, A.admitUse, M.OAuthConnectedUseAdmission),
159
- cleanup: mutation(mapping, execute, Maintenance.cleanup, M.OAuthConnectedCleanupResult),
160
- },
161
- connectedInputs,
162
- execute.active,
163
- execute.poison,
164
- );
165
-
166
- const settled = Schema.Struct({ settled: Schema.Boolean });
167
-
168
- export const makeRevocations = (
169
- mapping: S.Revocations,
170
- execute: OAuthExecution,
171
- ): OAuthConnectedRevocations["Service"] =>
172
- capturedOAuthService<OAuthConnectedRevocations["Service"]>(
173
- {
174
- claim: (input, callback) =>
175
- execute.run(
176
- Effect.flatMap(Maintenance.claimRevocation(mapping, input), (value) =>
177
- prepare(OAuthConnectedRevocationDecision, value, callback),
178
- ),
179
- ),
180
- settle: (input, callback) =>
181
- execute.run(
182
- Effect.flatMap(Maintenance.settleRevocation(mapping, input), (value) =>
183
- prepare(settled, value, callback),
184
- ),
185
- ),
186
- },
187
- connectedRevocationInputs,
188
- execute.active,
189
- execute.poison,
190
- );
191
-
192
- export const makeTargetOAuthConnectedServices = (
193
- mapping: S.Mapping,
194
- configuration: OAuthTargetConfiguration,
195
- ) => {
196
- const retained = captured(mapping);
197
-
198
- return Effect.map(makeOAuthExecution(configuration, retained), (execution) => ({
199
- oauthConnectedPersistence: makeConnected(retained, execution),
200
- }));
201
- };
202
-
203
- export const makeTargetOAuthConnectedRevocationServices = (
204
- mapping: S.Revocations,
205
- configuration: OAuthTargetConfiguration,
206
- ) => {
207
- const retained = captured(mapping);
208
-
209
- return Effect.map(makeOAuthExecution(configuration, retained), (execution) => ({
210
- oauthConnectedRevocations: makeRevocations(retained, execution),
211
- }));
212
- };
213
-
214
- export const coordinateTargetOAuthConnected = <Transaction, A, E, R>(
215
- database: any,
216
- mapping: S.Mapping,
217
- configuration: OAuthTargetConfiguration,
218
- owner: (
219
- transaction: Transaction,
220
- services: { readonly oauthConnectedPersistence: OAuthConnectedPersistence["Service"] },
221
- append: (statement: Statement<any>) => void,
222
- ) => Effect.Effect<A, E, R>,
223
- ) =>
224
- coordinateOAuthOwner(
225
- database,
226
- captured(mapping),
227
- configuration,
228
- () => Effect.void,
229
- (value: S.Mapping, execution) => ({
230
- oauthConnectedPersistence: makeConnected(value, execution),
231
- }),
232
- owner,
233
- );
234
-
235
- export const coordinateTargetOAuthConnectedRevocations = <Transaction, A, E, R>(
236
- database: any,
237
- mapping: S.Revocations,
238
- configuration: OAuthTargetConfiguration,
239
- owner: (
240
- transaction: Transaction,
241
- services: { readonly oauthConnectedRevocations: OAuthConnectedRevocations["Service"] },
242
- append: (statement: Statement<any>) => void,
243
- ) => Effect.Effect<A, E, R>,
244
- ) =>
245
- coordinateOAuthOwner(
246
- database,
247
- captured(mapping),
248
- configuration,
249
- () => Effect.void,
250
- (value: S.Revocations, execution) => ({
251
- oauthConnectedRevocations: makeRevocations(value, execution),
252
- }),
253
- owner,
254
- );
255
-
256
- export const oauthConnectedPersistenceLayer = <E, R>(
257
- services: Effect.Effect<
258
- Effect.Success<ReturnType<typeof makeTargetOAuthConnectedServices>>,
259
- E,
260
- R
261
- >,
262
- ) =>
263
- Layer.effect(
264
- OAuthConnectedPersistence,
265
- Effect.map(services, (value) => value.oauthConnectedPersistence),
266
- );
267
-
268
- export const oauthConnectedRevocationsLayer = <E, R>(
269
- services: Effect.Effect<
270
- Effect.Success<ReturnType<typeof makeTargetOAuthConnectedRevocationServices>>,
271
- E,
272
- R
273
- >,
274
- ) =>
275
- Layer.effect(
276
- OAuthConnectedRevocations,
277
- Effect.map(services, (value) => value.oauthConnectedRevocations),
278
- );
20
+ export const oauthConnectedRevocationsLayer: OAuthKernel["connectedTarget"]["oauthConnectedRevocationsLayer"] =
21
+ oauthKernel.connectedTarget.oauthConnectedRevocationsLayer;
@@ -0,0 +1,10 @@
1
+ import { makeOAuthKernel, type OAuthKernel } from "@yielded/auth-persistence/Adapter";
2
+ import { is } from "drizzle-orm";
3
+ import { MySqlTable } from "drizzle-orm/mysql-core";
4
+ import { PgTable } from "drizzle-orm/pg-core";
5
+
6
+ import { drizzleQueryOperations } from "./query-operations";
7
+
8
+ export const oauthKernel: OAuthKernel = makeOAuthKernel(drizzleQueryOperations, (table) =>
9
+ is(table, MySqlTable) ? "mysql" : is(table, PgTable) ? "pg" : "sqlite",
10
+ );