@effect-app/infra 4.0.0-beta.8 → 4.0.0-beta.82

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 (177) hide show
  1. package/CHANGELOG.md +540 -0
  2. package/dist/CUPS.d.ts +3 -3
  3. package/dist/CUPS.d.ts.map +1 -1
  4. package/dist/CUPS.js +3 -3
  5. package/dist/Emailer/Sendgrid.js +1 -1
  6. package/dist/Emailer/service.d.ts +3 -3
  7. package/dist/Emailer/service.d.ts.map +1 -1
  8. package/dist/Emailer/service.js +3 -3
  9. package/dist/MainFiberSet.d.ts +2 -2
  10. package/dist/MainFiberSet.d.ts.map +1 -1
  11. package/dist/MainFiberSet.js +3 -3
  12. package/dist/Model/Repository/internal/internal.d.ts +3 -3
  13. package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
  14. package/dist/Model/Repository/internal/internal.js +11 -7
  15. package/dist/Model/Repository/makeRepo.d.ts +2 -2
  16. package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
  17. package/dist/Model/Repository/makeRepo.js +1 -1
  18. package/dist/Model/Repository/validation.d.ts +5 -4
  19. package/dist/Model/Repository/validation.d.ts.map +1 -1
  20. package/dist/Model/query/dsl.d.ts +9 -9
  21. package/dist/Operations.d.ts +2 -2
  22. package/dist/Operations.d.ts.map +1 -1
  23. package/dist/Operations.js +3 -3
  24. package/dist/OperationsRepo.d.ts +2 -2
  25. package/dist/OperationsRepo.d.ts.map +1 -1
  26. package/dist/OperationsRepo.js +3 -3
  27. package/dist/QueueMaker/SQLQueue.d.ts +3 -5
  28. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  29. package/dist/QueueMaker/SQLQueue.js +9 -7
  30. package/dist/QueueMaker/errors.d.ts +1 -1
  31. package/dist/QueueMaker/errors.d.ts.map +1 -1
  32. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  33. package/dist/QueueMaker/memQueue.js +10 -9
  34. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  35. package/dist/QueueMaker/sbqueue.js +11 -9
  36. package/dist/RequestContext.d.ts +19 -14
  37. package/dist/RequestContext.d.ts.map +1 -1
  38. package/dist/RequestContext.js +5 -5
  39. package/dist/RequestFiberSet.d.ts +2 -2
  40. package/dist/RequestFiberSet.d.ts.map +1 -1
  41. package/dist/RequestFiberSet.js +5 -5
  42. package/dist/Store/ContextMapContainer.d.ts +14 -3
  43. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  44. package/dist/Store/ContextMapContainer.js +64 -3
  45. package/dist/Store/Cosmos.d.ts.map +1 -1
  46. package/dist/Store/Cosmos.js +55 -32
  47. package/dist/Store/Disk.d.ts.map +1 -1
  48. package/dist/Store/Disk.js +3 -4
  49. package/dist/Store/Memory.d.ts +2 -2
  50. package/dist/Store/Memory.d.ts.map +1 -1
  51. package/dist/Store/Memory.js +4 -4
  52. package/dist/Store/SQL/Pg.d.ts +4 -0
  53. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  54. package/dist/Store/SQL/Pg.js +174 -0
  55. package/dist/Store/SQL/query.d.ts +34 -0
  56. package/dist/Store/SQL/query.d.ts.map +1 -0
  57. package/dist/Store/SQL/query.js +326 -0
  58. package/dist/Store/SQL.d.ts +4 -0
  59. package/dist/Store/SQL.d.ts.map +1 -0
  60. package/dist/Store/SQL.js +203 -0
  61. package/dist/Store/index.d.ts +1 -1
  62. package/dist/Store/index.d.ts.map +1 -1
  63. package/dist/Store/index.js +11 -1
  64. package/dist/Store/service.d.ts +8 -5
  65. package/dist/Store/service.d.ts.map +1 -1
  66. package/dist/Store/service.js +14 -6
  67. package/dist/adapters/SQL/Model.d.ts +2 -5
  68. package/dist/adapters/SQL/Model.d.ts.map +1 -1
  69. package/dist/adapters/SQL/Model.js +21 -13
  70. package/dist/adapters/ServiceBus.d.ts +6 -6
  71. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  72. package/dist/adapters/ServiceBus.js +9 -9
  73. package/dist/adapters/cosmos-client.d.ts +2 -2
  74. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  75. package/dist/adapters/cosmos-client.js +3 -3
  76. package/dist/adapters/logger.d.ts.map +1 -1
  77. package/dist/adapters/memQueue.d.ts +2 -2
  78. package/dist/adapters/memQueue.d.ts.map +1 -1
  79. package/dist/adapters/memQueue.js +3 -3
  80. package/dist/adapters/mongo-client.d.ts +2 -2
  81. package/dist/adapters/mongo-client.d.ts.map +1 -1
  82. package/dist/adapters/mongo-client.js +3 -3
  83. package/dist/adapters/redis-client.d.ts +3 -3
  84. package/dist/adapters/redis-client.d.ts.map +1 -1
  85. package/dist/adapters/redis-client.js +3 -3
  86. package/dist/api/ContextProvider.d.ts +6 -6
  87. package/dist/api/ContextProvider.d.ts.map +1 -1
  88. package/dist/api/ContextProvider.js +6 -6
  89. package/dist/api/internal/RequestContextMiddleware.d.ts +1 -1
  90. package/dist/api/internal/auth.d.ts +1 -1
  91. package/dist/api/internal/events.d.ts +2 -2
  92. package/dist/api/internal/events.d.ts.map +1 -1
  93. package/dist/api/internal/events.js +7 -5
  94. package/dist/api/layerUtils.d.ts +5 -5
  95. package/dist/api/layerUtils.d.ts.map +1 -1
  96. package/dist/api/layerUtils.js +5 -5
  97. package/dist/api/routing/middleware/RouterMiddleware.d.ts +3 -3
  98. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  99. package/dist/api/routing/middleware/middleware.d.ts +35 -1
  100. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  101. package/dist/api/routing/middleware/middleware.js +39 -1
  102. package/dist/api/routing/schema/jwt.d.ts +1 -1
  103. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  104. package/dist/api/routing/schema/jwt.js +1 -1
  105. package/dist/api/routing.d.ts +1 -5
  106. package/dist/api/routing.d.ts.map +1 -1
  107. package/dist/api/routing.js +3 -2
  108. package/dist/api/setupRequest.d.ts +6 -3
  109. package/dist/api/setupRequest.d.ts.map +1 -1
  110. package/dist/api/setupRequest.js +11 -6
  111. package/dist/errorReporter.d.ts +1 -1
  112. package/dist/errorReporter.d.ts.map +1 -1
  113. package/dist/errorReporter.js +1 -1
  114. package/dist/fileUtil.js +1 -1
  115. package/dist/logger.d.ts.map +1 -1
  116. package/dist/rateLimit.js +1 -1
  117. package/examples/query.ts +29 -25
  118. package/package.json +32 -18
  119. package/src/CUPS.ts +2 -2
  120. package/src/Emailer/Sendgrid.ts +1 -1
  121. package/src/Emailer/service.ts +2 -2
  122. package/src/MainFiberSet.ts +2 -2
  123. package/src/Model/Repository/internal/internal.ts +11 -8
  124. package/src/Model/Repository/makeRepo.ts +2 -2
  125. package/src/Operations.ts +2 -2
  126. package/src/OperationsRepo.ts +2 -2
  127. package/src/QueueMaker/SQLQueue.ts +10 -10
  128. package/src/QueueMaker/memQueue.ts +41 -42
  129. package/src/QueueMaker/sbqueue.ts +65 -62
  130. package/src/RequestContext.ts +4 -4
  131. package/src/RequestFiberSet.ts +4 -4
  132. package/src/Store/ContextMapContainer.ts +98 -2
  133. package/src/Store/Cosmos.ts +207 -172
  134. package/src/Store/Disk.ts +2 -3
  135. package/src/Store/Memory.ts +4 -6
  136. package/src/Store/SQL/Pg.ts +294 -0
  137. package/src/Store/SQL/query.ts +372 -0
  138. package/src/Store/SQL.ts +327 -0
  139. package/src/Store/index.ts +10 -0
  140. package/src/Store/service.ts +16 -7
  141. package/src/adapters/SQL/Model.ts +76 -71
  142. package/src/adapters/ServiceBus.ts +8 -8
  143. package/src/adapters/cosmos-client.ts +2 -2
  144. package/src/adapters/memQueue.ts +2 -2
  145. package/src/adapters/mongo-client.ts +2 -2
  146. package/src/adapters/redis-client.ts +2 -2
  147. package/src/api/ContextProvider.ts +11 -11
  148. package/src/api/internal/events.ts +7 -6
  149. package/src/api/layerUtils.ts +8 -8
  150. package/src/api/routing/middleware/RouterMiddleware.ts +4 -4
  151. package/src/api/routing/middleware/middleware.ts +43 -0
  152. package/src/api/routing/schema/jwt.ts +2 -3
  153. package/src/api/routing.ts +7 -6
  154. package/src/api/setupRequest.ts +27 -7
  155. package/src/errorReporter.ts +1 -1
  156. package/src/fileUtil.ts +1 -1
  157. package/src/rateLimit.ts +2 -2
  158. package/test/contextProvider.test.ts +5 -5
  159. package/test/controller.test.ts +12 -9
  160. package/test/dist/contextProvider.test.d.ts.map +1 -1
  161. package/test/dist/controller.test.d.ts.map +1 -1
  162. package/test/dist/fixtures.d.ts +18 -8
  163. package/test/dist/fixtures.d.ts.map +1 -1
  164. package/test/dist/fixtures.js +11 -9
  165. package/test/dist/query.test.d.ts.map +1 -1
  166. package/test/dist/rawQuery.test.d.ts.map +1 -1
  167. package/test/dist/requires.test.d.ts.map +1 -1
  168. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  169. package/test/dist/sql-store.test.d.ts.map +1 -0
  170. package/test/fixtures.ts +10 -8
  171. package/test/query.test.ts +160 -14
  172. package/test/rawQuery.test.ts +19 -17
  173. package/test/requires.test.ts +6 -5
  174. package/test/rpc-multi-middleware.test.ts +73 -4
  175. package/test/sql-store.test.ts +444 -0
  176. package/test/validateSample.test.ts +1 -1
  177. package/tsconfig.json +0 -1
@@ -0,0 +1,203 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Effect, Option, Struct } from "effect-app";
3
+ import { toNonEmptyArray } from "effect-app/Array";
4
+ import { SqlClient } from "effect/unstable/sql";
5
+ import { OptimisticConcurrencyException } from "../errors.js";
6
+ import { InfraLogger } from "../logger.js";
7
+ import { storeId } from "./Memory.js";
8
+ import { StoreMaker } from "./service.js";
9
+ import { buildWhereSQLQuery, logQuery, sqliteDialect } from "./SQL/query.js";
10
+ import { makeETag } from "./utils.js";
11
+ const parseRow = (row, defaultValues) => {
12
+ const data = (typeof row.data === "string" ? JSON.parse(row.data) : row.data);
13
+ return { ...defaultValues, ...data, _etag: row._etag ?? undefined };
14
+ };
15
+ const parseSelectRow = (row, idKey, defaultValues) => {
16
+ const result = { ...defaultValues };
17
+ for (const [key, value] of Object.entries(row)) {
18
+ if (key === "id") {
19
+ result[idKey] = value;
20
+ result["id"] = value;
21
+ }
22
+ else if (typeof value === "string") {
23
+ try {
24
+ result[key] = JSON.parse(value);
25
+ }
26
+ catch {
27
+ result[key] = value;
28
+ }
29
+ }
30
+ else {
31
+ result[key] = value;
32
+ }
33
+ }
34
+ return result;
35
+ };
36
+ function makeSQLStoreInt(dialect, jsonColumnType) {
37
+ return ({ prefix }) => Effect.gen(function* () {
38
+ const sql = yield* SqlClient.SqlClient;
39
+ return {
40
+ make: (name, idKey, seed, config) => Effect.gen(function* () {
41
+ const tableName = `${prefix}${name}`;
42
+ const defaultValues = config?.defaultValues ?? {};
43
+ const resolveNamespace = !config?.allowNamespace
44
+ ? Effect.succeed("primary")
45
+ : storeId.asEffect().pipe(Effect.map((namespace) => {
46
+ if (namespace !== "primary" && !config.allowNamespace(namespace)) {
47
+ throw new Error(`Namespace ${namespace} not allowed!`);
48
+ }
49
+ return namespace;
50
+ }));
51
+ yield* sql
52
+ .unsafe(`CREATE TABLE IF NOT EXISTS "${tableName}" (id TEXT NOT NULL, _namespace TEXT NOT NULL DEFAULT 'primary', _etag TEXT, data ${jsonColumnType} NOT NULL, PRIMARY KEY (id, _namespace))`)
53
+ .pipe(Effect.orDie);
54
+ const toRow = (e) => {
55
+ const newE = makeETag(e);
56
+ const id = newE[idKey];
57
+ const data = JSON.stringify(newE);
58
+ return { id, _etag: newE._etag, data, item: newE };
59
+ };
60
+ const exec = (query, params) => sql.unsafe(query, params).pipe(Effect.orDie);
61
+ const s = {
62
+ all: resolveNamespace.pipe(Effect.flatMap((ns) => exec(`SELECT id, _etag, data FROM "${tableName}" WHERE _namespace = ?`, [ns])
63
+ .pipe(Effect.map((rows) => rows.map((r) => parseRow(r, defaultValues))), Effect.withSpan("SQL.all [effect-app/infra/Store]", {
64
+ attributes: {
65
+ "repository.table_name": tableName,
66
+ "repository.model_name": name,
67
+ "repository.namespace": ns
68
+ }
69
+ }, { captureStackTrace: false })))),
70
+ find: (id) => resolveNamespace.pipe(Effect.flatMap((ns) => exec(`SELECT id, _etag, data FROM "${tableName}" WHERE id = ? AND _namespace = ?`, [id, ns])
71
+ .pipe(Effect.map((rows) => {
72
+ const row = rows[0];
73
+ return row
74
+ ? Option.some(parseRow(row, defaultValues))
75
+ : Option.none();
76
+ }), Effect.withSpan("SQL.find [effect-app/infra/Store]", {
77
+ attributes: { "repository.table_name": tableName, "repository.model_name": name, id }
78
+ }, { captureStackTrace: false })))),
79
+ filter: (f) => {
80
+ const filter = f
81
+ .filter;
82
+ return resolveNamespace
83
+ .pipe(Effect
84
+ .flatMap((ns) => Effect
85
+ .sync(() => {
86
+ const q = buildWhereSQLQuery(dialect, idKey, filter ? [{ t: "where-scope", result: filter, relation: "some" }] : [], tableName, defaultValues, f
87
+ .select, f
88
+ .order, f
89
+ .skip, f
90
+ .limit);
91
+ const nsPlaceholder = dialect
92
+ .placeholder(q
93
+ .params
94
+ .length + 1);
95
+ const hasWhere = q
96
+ .sql
97
+ .includes("WHERE");
98
+ const nsSql = hasWhere
99
+ ? q
100
+ .sql
101
+ .replace("WHERE", `WHERE _namespace = ${nsPlaceholder} AND`)
102
+ : q
103
+ .sql
104
+ .replace(`FROM "${tableName}"`, `FROM "${tableName}" WHERE _namespace = ${nsPlaceholder}`);
105
+ return {
106
+ sql: nsSql,
107
+ params: [
108
+ ...q
109
+ .params,
110
+ ns
111
+ ]
112
+ };
113
+ })
114
+ .pipe(Effect
115
+ .tap((q) => logQuery(q)), Effect.flatMap((q) => exec(q.sql, q.params).pipe(Effect.map((rows) => {
116
+ if (f.select) {
117
+ return rows.map((r) => {
118
+ const selected = parseSelectRow(r, idKey, {});
119
+ return {
120
+ ...Struct.pick(defaultValues, f.select.filter((_) => typeof _ === "string")),
121
+ ...selected
122
+ };
123
+ });
124
+ }
125
+ return rows.map((r) => parseRow(r, defaultValues));
126
+ }))), Effect.withSpan("SQL.filter [effect-app/infra/Store]", {
127
+ attributes: { "repository.table_name": tableName, "repository.model_name": name }
128
+ }, { captureStackTrace: false }))));
129
+ },
130
+ set: (e) => resolveNamespace.pipe(Effect.flatMap((ns) => Effect
131
+ .gen(function* () {
132
+ const row = toRow(e);
133
+ if (e._etag) {
134
+ yield* exec(`UPDATE "${tableName}" SET _etag = ?, data = ? WHERE id = ? AND _etag = ? AND _namespace = ?`, [row._etag, row.data, row.id, e._etag, ns]);
135
+ const existing = yield* exec(`SELECT _etag FROM "${tableName}" WHERE id = ? AND _namespace = ?`, [row.id, ns]);
136
+ const current = existing[0];
137
+ if (!current || current._etag !== row._etag) {
138
+ if (current) {
139
+ return yield* new OptimisticConcurrencyException({
140
+ type: name,
141
+ id: row.id,
142
+ current: current._etag,
143
+ found: e._etag,
144
+ code: 412
145
+ });
146
+ }
147
+ return yield* new OptimisticConcurrencyException({
148
+ type: name,
149
+ id: row.id,
150
+ current: "",
151
+ found: e._etag,
152
+ code: 404
153
+ });
154
+ }
155
+ }
156
+ else {
157
+ yield* exec(`INSERT INTO "${tableName}" (id, _namespace, _etag, data) VALUES (?, ?, ?, ?)`, [row.id, ns, row._etag, row.data]);
158
+ }
159
+ return row.item;
160
+ })
161
+ .pipe(Effect.withSpan("SQL.set [effect-app/infra/Store]", {
162
+ attributes: { "repository.table_name": tableName, "repository.model_name": name, id: e[idKey] }
163
+ }, { captureStackTrace: false })))),
164
+ batchSet: (items) => sql
165
+ .withTransaction(Effect.forEach(items, (e) => s.set(e)))
166
+ .pipe(Effect.orDie, Effect.map((_) => _), Effect.withSpan("SQL.batchSet [effect-app/infra/Store]", {
167
+ attributes: { "repository.table_name": tableName, "repository.model_name": name }
168
+ }, { captureStackTrace: false })),
169
+ bulkSet: (items) => sql
170
+ .withTransaction(Effect.forEach(items, (e) => s.set(e)))
171
+ .pipe(Effect.orDie, Effect.map((_) => _), Effect.withSpan("SQL.bulkSet [effect-app/infra/Store]", {
172
+ attributes: { "repository.table_name": tableName, "repository.model_name": name }
173
+ }, { captureStackTrace: false })),
174
+ batchRemove: (ids) => {
175
+ const placeholders = ids.map(() => "?").join(", ");
176
+ return resolveNamespace.pipe(Effect.flatMap((ns) => exec(`DELETE FROM "${tableName}" WHERE id IN (${placeholders}) AND _namespace = ?`, [...ids, ns])
177
+ .pipe(Effect.asVoid, Effect.withSpan("SQL.batchRemove [effect-app/infra/Store]", {
178
+ attributes: { "repository.table_name": tableName, "repository.model_name": name }
179
+ }, { captureStackTrace: false }))));
180
+ },
181
+ queryRaw: (query) => s.all.pipe(Effect.map(query.memory), Effect.withSpan("SQL.queryRaw [effect-app/infra/Store]", {
182
+ attributes: { "repository.table_name": tableName, "repository.model_name": name }
183
+ }, { captureStackTrace: false }))
184
+ };
185
+ if (seed) {
186
+ const existing = yield* exec(`SELECT COUNT(*) as cnt FROM "${tableName}" WHERE _namespace = ?`, ["primary"]);
187
+ const count = existing[0]?.cnt ?? 0;
188
+ if (count === 0) {
189
+ yield* InfraLogger.logInfo("Seeding data for " + name);
190
+ const items = yield* seed;
191
+ yield* Effect.flatMapOption(Effect.succeed(toNonEmptyArray([...items])), (a) => s.bulkSet(a).pipe(Effect.orDie));
192
+ }
193
+ }
194
+ return s;
195
+ })
196
+ };
197
+ });
198
+ }
199
+ export function SQLiteStoreLayer(cfg) {
200
+ return StoreMaker
201
+ .toLayer(makeSQLStoreInt(sqliteDialect, "JSON")(cfg));
202
+ }
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL1NRTC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBOEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckMsT0FBTyxFQUFnRyxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkksT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBbUIsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDN0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVyQyxNQUFNLFFBQVEsR0FBRyxDQUNmLEdBQXVELEVBQ3ZELGFBQStCLEVBQ0EsRUFBRTtJQUNqQyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFXLENBQUE7SUFDdkYsT0FBTyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLFNBQVMsRUFBbUMsQ0FBQTtBQUN0RyxDQUFDLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUNyQixHQUE0QixFQUM1QixLQUFrQixFQUNs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
@@ -1,5 +1,5 @@
1
1
  import { Layer } from "effect-app";
2
2
  import type { StorageConfig } from "./service.js";
3
- export declare function StoreMakerLayer(cfg: StorageConfig): Layer.Layer<import("./service.js").StoreMaker, never, never>;
3
+ export declare function StoreMakerLayer(cfg: StorageConfig): Layer.Layer<import("./service.js").StoreMaker, never, import("effect/unstable/sql/SqlClient").SqlClient>;
4
4
  export * from "./service.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Store/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAY,MAAM,YAAY,CAAA;AAKpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,gEAsBjD;AAED,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Store/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAY,MAAM,YAAY,CAAA;AAKpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAIjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,4GA8BjD;AAED,cAAc,cAAc,CAAA"}
@@ -3,6 +3,8 @@ import { Effect, Layer, Redacted } from "effect-app";
3
3
  import { CosmosStoreLayer } from "./Cosmos.js";
4
4
  import { DiskStoreLayer } from "./Disk.js";
5
5
  import { MemoryStoreLive } from "./Memory.js";
6
+ import { SQLiteStoreLayer } from "./SQL.js";
7
+ import { PgStoreLayer } from "./SQL/Pg.js";
6
8
  export function StoreMakerLayer(cfg) {
7
9
  return Effect
8
10
  .sync(() => {
@@ -16,6 +18,14 @@ export function StoreMakerLayer(cfg) {
16
18
  console.log("Using disk store at " + dir);
17
19
  return DiskStoreLayer(cfg, dir);
18
20
  }
21
+ if (storageUrl.startsWith("sqlite://")) {
22
+ console.log("Using SQLite store");
23
+ return SQLiteStoreLayer(cfg);
24
+ }
25
+ if (storageUrl.startsWith("pg://")) {
26
+ console.log("Using PostgreSQL store");
27
+ return PgStoreLayer(cfg);
28
+ }
19
29
  // if (storageUrl.startsWith("redis://")) {
20
30
  // console.log("Using Redis store")
21
31
  // return RedisStoreLayer(cfg)
@@ -26,4 +36,4 @@ export function StoreMakerLayer(cfg) {
26
36
  .pipe(Layer.unwrap);
27
37
  }
28
38
  export * from "./service.js";
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBSTdDLE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBa0I7SUFDaEQsT0FBTyxNQUFNO1NBQ1YsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNULE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtZQUNwQyxPQUFPLGVBQWUsQ0FBQTtRQUN4QixDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsQ0FBQTtZQUN6QyxPQUFPLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDakMsQ0FBQztRQUNELDJDQUEyQztRQUMzQyxxQ0FBcUM7UUFDckMsZ0NBQWdDO1FBQ2hDLElBQUk7UUFFSixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDcEMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxjQUFjLGNBQWMsQ0FBQSJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTFDLE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBa0I7SUFDaEQsT0FBTyxNQUFNO1NBQ1YsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNULE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtZQUNwQyxPQUFPLGVBQWUsQ0FBQTtRQUN4QixDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsQ0FBQTtZQUN6QyxPQUFPLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDakMsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtZQUNqQyxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzlCLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUE7WUFDckMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDMUIsQ0FBQztRQUNELDJDQUEyQztRQUMzQyxxQ0FBcUM7UUFDckMsZ0NBQWdDO1FBQ2hDLElBQUk7UUFFSixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDcEMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxjQUFjLGNBQWMsQ0FBQSJ9
@@ -1,5 +1,5 @@
1
1
  import type { UniqueKey } from "@azure/cosmos";
2
- import { Effect, type NonEmptyReadonlyArray, type Option, type Redacted, ServiceMap } from "effect-app";
2
+ import { Context, Effect, type NonEmptyReadonlyArray, type Option, type Redacted } from "effect-app";
3
3
  import type { OptimisticConcurrencyException } from "../errors.js";
4
4
  import type { FilterResult } from "../Model/filter/filterApi.js";
5
5
  import type { FieldValues } from "../Model/filter/types.js";
@@ -8,8 +8,8 @@ import { type RawQuery } from "../Model/query.js";
8
8
  export interface StoreConfig<E> {
9
9
  partitionValue: (e?: E) => string;
10
10
  /**
11
- * Primarily used for testing, creating namespaces in the database to separate data e.g to run multiple tests in isolation within the same database
12
- * currently only supported in disk/memory. CosmosDB is TODO.
11
+ * Primarily used for testing, creating namespaces in the database to separate data e.g to run multiple tests in isolation within the same database.
12
+ * Memory/Disk use separate store instances per namespace. CosmosDB uses namespace-prefixed partition keys. SQL uses a `_namespace` column.
13
13
  */
14
14
  allowNamespace?: (namespace: string) => boolean;
15
15
  /**
@@ -76,7 +76,7 @@ export interface Store<IdKey extends keyof Encoded, Encoded extends FieldValues,
76
76
  batchRemove: (ids: NonEmptyReadonlyArray<Encoded[IdKey]>, partitionKey?: string) => Effect.Effect<void>;
77
77
  queryRaw: <Out>(query: RawQuery<Encoded, Out>) => Effect.Effect<readonly Out[]>;
78
78
  }
79
- declare const StoreMaker_base: ServiceMap.OpaqueClass<StoreMaker, "effect-app/StoreMaker", {
79
+ declare const StoreMaker_base: Context.OpaqueClass<StoreMaker, "effect-app/StoreMaker", {
80
80
  make: <IdKey extends keyof Encoded, Encoded extends FieldValues, R = never, E = never>(name: string, idKey: IdKey, seed?: Effect.Effect<Iterable<Encoded>, E, R>, config?: StoreConfig<Encoded>) => Effect.Effect<Store<IdKey, Encoded>, E, R>;
81
81
  }>;
82
82
  export declare class StoreMaker extends StoreMaker_base {
@@ -84,14 +84,17 @@ export declare class StoreMaker extends StoreMaker_base {
84
84
  export declare const makeContextMap: () => {
85
85
  get: (id: string) => string | undefined;
86
86
  set: (id: string, eTag: string | undefined) => void;
87
+ getOrCreateStore: <T>(key: symbol, make: () => T) => T;
87
88
  };
88
- declare const ContextMap_base: ServiceMap.OpaqueClass<ContextMap, "effect-app/ContextMap", {
89
+ declare const ContextMap_base: Context.OpaqueClass<ContextMap, "effect-app/ContextMap", {
89
90
  get: (id: string) => string | undefined;
90
91
  set: (id: string, eTag: string | undefined) => void;
92
+ getOrCreateStore: <T>(key: symbol, make: () => T) => T;
91
93
  }> & {
92
94
  readonly make: Effect.Effect<{
93
95
  get: (id: string) => string | undefined;
94
96
  set: (id: string, eTag: string | undefined) => void;
97
+ getOrCreateStore: <T>(key: symbol, make: () => T) => T;
95
98
  }, never, never>;
96
99
  };
97
100
  export declare class ContextMap extends ContextMap_base {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Store/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Store/service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Effect, ServiceMap } from "effect-app";
2
- export class StoreMaker extends ServiceMap.Opaque()("effect-app/StoreMaker") {
1
+ import { Context, Effect } from "effect-app";
2
+ export class StoreMaker extends Context.Opaque()("effect-app/StoreMaker") {
3
3
  }
4
4
  export const makeContextMap = () => {
5
5
  const etags = new Map();
@@ -59,13 +59,21 @@ export const makeContextMap = () => {
59
59
  // }
60
60
  // }
61
61
  // }
62
+ const store = new Map();
62
63
  return {
63
64
  get: getEtag,
64
- set: setEtag
65
- // parserEnv
65
+ set: setEtag,
66
+ getOrCreateStore: (key, make) => {
67
+ let value = store.get(key);
68
+ if (value === undefined) {
69
+ value = make();
70
+ store.set(key, value);
71
+ }
72
+ return value;
73
+ }
66
74
  };
67
75
  };
68
76
  const makeMap = Effect.sync(() => makeContextMap());
69
- export class ContextMap extends ServiceMap.Opaque()("effect-app/ContextMap", { make: makeMap }) {
77
+ export class ContextMap extends Context.Opaque()("effect-app/ContextMap", { make: makeMap }) {
70
78
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQTBELFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQXlGdkcsTUFBTSxPQUFPLFVBQVcsU0FBUSxVQUFVLENBQUMsTUFBTSxFQU83QyxDQUFDLHVCQUF1QixDQUFDO0NBQzVCO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtJQUN2QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQVUsRUFBRSxJQUF3QixFQUFFLEVBQUU7UUFDdkQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCwrQkFBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLGdEQUFnRDtJQUNoRCxNQUFNO0lBRU4sK0JBQStCO0lBQy9CLDJCQUEyQjtJQUMzQixzQ0FBc0M7SUFDdEMsTUFBTTtJQUVOLGtDQUFrQztJQUNsQyx3QkFBd0I7SUFDeEIsb0NBQW9DO0lBQ3BDLFNBQVM7SUFDVCwyQkFBMkI7SUFDM0IsY0FBYztJQUNkLElBQUk7SUFFSixpQ0FBaUM7SUFDakMsb0ZBQW9GO0lBQ3BGLG9JQUFvSTtJQUNwSSxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLDRHQUE0RztJQUM1RyxzQ0FBc0M7SUFDdEMsa0VBQWtFO0lBQ2xFLHVEQUF1RDtJQUN2RCxzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLFNBQVM7SUFDVCxxQ0FBcUM7SUFDckMseUNBQXlDO0lBQ3pDLGlCQUFpQjtJQUNqQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLCtDQUErQztJQUMvQyxxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLDJDQUEyQztJQUMzQyx5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWixpQkFBaUI7SUFDakIseUNBQXlDO0lBQ3pDLHFEQUFxRDtJQUNyRCxvQkFBb0I7SUFDcEIsVUFBVTtJQUNWLFFBQVE7SUFDUixNQUFNO0lBQ04sSUFBSTtJQUVKLE9BQU87UUFDTCxHQUFHLEVBQUUsT0FBTztRQUNaLEdBQUcsRUFBRSxPQUFPO1FBQ1osWUFBWTtLQUNiLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7QUFFbkQsTUFBTSxPQUFPLFVBQVcsU0FBUSxVQUFVLENBQUMsTUFBTSxFQUFjLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7Q0FDMUcifQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUEwRCxNQUFNLFlBQVksQ0FBQTtBQXlGcEcsTUFBTSxPQUFPLFVBQVcsU0FBUSxPQUFPLENBQUMsTUFBTSxFQU8xQyxDQUFDLHVCQUF1QixDQUFDO0NBQzVCO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtJQUN2QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQVUsRUFBRSxJQUF3QixFQUFFLEVBQUU7UUFDdkQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCwrQkFBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLGdEQUFnRDtJQUNoRCxNQUFNO0lBRU4sK0JBQStCO0lBQy9CLDJCQUEyQjtJQUMzQixzQ0FBc0M7SUFDdEMsTUFBTTtJQUVOLGtDQUFrQztJQUNsQyx3QkFBd0I7SUFDeEIsb0NBQW9DO0lBQ3BDLFNBQVM7SUFDVCwyQkFBMkI7SUFDM0IsY0FBYztJQUNkLElBQUk7SUFFSixpQ0FBaUM7SUFDakMsb0ZBQW9GO0lBQ3BGLG9JQUFvSTtJQUNwSSxnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLDRHQUE0RztJQUM1RyxzQ0FBc0M7SUFDdEMsa0VBQWtFO0lBQ2xFLHVEQUF1RDtJQUN2RCxzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLFNBQVM7SUFDVCxxQ0FBcUM7SUFDckMseUNBQXlDO0lBQ3pDLGlCQUFpQjtJQUNqQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLCtDQUErQztJQUMvQyxxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLDJDQUEyQztJQUMzQyx5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWixpQkFBaUI7SUFDakIseUNBQXlDO0lBQ3pDLHFEQUFxRDtJQUNyRCxvQkFBb0I7SUFDcEIsVUFBVTtJQUNWLFFBQVE7SUFDUixNQUFNO0lBQ04sSUFBSTtJQUVKLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFBO0lBRXhDLE9BQU87UUFDTCxHQUFHLEVBQUUsT0FBTztRQUNaLEdBQUcsRUFBRSxPQUFPO1FBQ1osZ0JBQWdCLEVBQUUsQ0FBSSxHQUFXLEVBQUUsSUFBYSxFQUFLLEVBQUU7WUFDckQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQWtCLENBQUE7WUFDM0MsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3hCLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQTtnQkFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUN2QixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sVUFBVyxTQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQWMsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztDQUN2RyJ9
@@ -1,8 +1,3 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as VariantSchema from "effect/unstable/schema/VariantSchema";
5
- import { SqlClient } from "effect/unstable/sql/SqlClient";
6
1
  import type { Brand } from "effect/Brand";
7
2
  import * as DateTime from "effect/DateTime";
8
3
  import type { Input } from "effect/Duration";
@@ -10,6 +5,8 @@ import * as Effect from "effect/Effect";
10
5
  import * as Option from "effect/Option";
11
6
  import * as Schema from "effect/Schema";
12
7
  import type { Scope } from "effect/Scope";
8
+ import * as VariantSchema from "effect/unstable/schema/VariantSchema";
9
+ import { SqlClient } from "effect/unstable/sql/SqlClient";
13
10
  declare const Class: <Self = never>(identifier: string) => <const Fields extends VariantSchema.Struct.Fields>(fields: Fields & VariantSchema.Struct.Validate<Fields, "select" | "insert" | "update" | "json" | "jsonCreate" | "jsonUpdate">, annotations?: Schema.Annotations.Declaration<Self, readonly [Schema.Struct<VariantSchema.ExtractFields<"select", Fields, true>>]> | undefined) => [Self] extends [never] ? "Missing `Self` generic - use `class Self extends Class<Self>()({ ... })`" : VariantSchema.Class<Self, Fields, Schema.Struct<VariantSchema.ExtractFields<"select", Fields, true>>> & {
14
11
  readonly select: Schema.Struct<VariantSchema.ExtractFields<"select", Fields, false> extends infer T ? { [K in keyof T]: T[K]; } : never>;
15
12
  readonly insert: Schema.Struct<VariantSchema.ExtractFields<"insert", Fields, false> extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1]; } : never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/adapters/SQL/Model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/adapters/SQL/Model.ts"],"names":[],"mappings":"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"}