@effect-app/infra 0.210.11 → 0.211.0

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 (61) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/_cjs/services/RepositoryBase.cjs +0 -22
  3. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  4. package/_cjs/services/Store/Cosmos/query.cjs +0 -137
  5. package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
  6. package/_cjs/services/Store/Cosmos.cjs +5 -35
  7. package/_cjs/services/Store/Cosmos.cjs.map +1 -1
  8. package/_cjs/services/Store/Disk.cjs +0 -1
  9. package/_cjs/services/Store/Disk.cjs.map +1 -1
  10. package/_cjs/services/Store/Memory.cjs +0 -6
  11. package/_cjs/services/Store/Memory.cjs.map +1 -1
  12. package/_cjs/services/Store/service.cjs.map +1 -1
  13. package/_cjs/services/Store/utils.cjs +1 -106
  14. package/_cjs/services/Store/utils.cjs.map +1 -1
  15. package/dist/services/RepositoryBase.d.ts +3 -60
  16. package/dist/services/RepositoryBase.d.ts.map +1 -1
  17. package/dist/services/RepositoryBase.js +1 -22
  18. package/dist/services/Store/Cosmos/query.d.ts +1 -45
  19. package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
  20. package/dist/services/Store/Cosmos/query.js +1 -145
  21. package/dist/services/Store/Cosmos.d.ts.map +1 -1
  22. package/dist/services/Store/Cosmos.js +18 -61
  23. package/dist/services/Store/Disk.d.ts.map +1 -1
  24. package/dist/services/Store/Disk.js +1 -2
  25. package/dist/services/Store/Memory.d.ts.map +1 -1
  26. package/dist/services/Store/Memory.js +2 -10
  27. package/dist/services/Store/filterApi/query.d.ts +1 -1
  28. package/dist/services/Store/filterApi/query.d.ts.map +1 -1
  29. package/dist/services/Store/service.d.ts +1 -38
  30. package/dist/services/Store/service.d.ts.map +1 -1
  31. package/dist/services/Store/service.js +1 -1
  32. package/dist/services/Store/utils.d.ts +1 -6
  33. package/dist/services/Store/utils.d.ts.map +1 -1
  34. package/dist/services/Store/utils.js +3 -140
  35. package/dist/services/query/dsl.d.ts +2 -2
  36. package/dist/services/query/dsl.d.ts.map +1 -1
  37. package/package.json +4 -14
  38. package/src/services/RepositoryBase.ts +1 -34
  39. package/src/services/Store/Cosmos/query.ts +1 -203
  40. package/src/services/Store/Cosmos.ts +38 -135
  41. package/src/services/Store/Disk.ts +0 -1
  42. package/src/services/Store/Memory.ts +2 -17
  43. package/src/services/Store/Redis.ts.bak +2 -4
  44. package/src/services/Store/filterApi/query.ts +2 -2
  45. package/src/services/Store/service.ts +1 -35
  46. package/src/services/Store/utils.ts +3 -152
  47. package/src/services/query/dsl.ts +4 -4
  48. package/_cjs/filter.cjs +0 -363
  49. package/_cjs/filter.cjs.map +0 -1
  50. package/_cjs/services/Store/Cosmos.test.cjs +0 -55
  51. package/_cjs/services/Store/Cosmos.test.cjs.map +0 -1
  52. package/_cjs/services/Store/codeFilter.test.cjs +0 -63
  53. package/_cjs/services/Store/codeFilter.test.cjs.map +0 -1
  54. package/dist/filter.d.ts +0 -142
  55. package/dist/filter.d.ts.map +0 -1
  56. package/dist/filter.js +0 -248
  57. package/dist/services/Store/Cosmos.test.d.ts.map +0 -1
  58. package/dist/services/Store/codeFilter.test.d.ts.map +0 -1
  59. package/src/filter.ts +0 -420
  60. package/src/services/Store/Cosmos.test.ts +0 -94
  61. package/src/services/Store/codeFilter.test.ts +0 -166
@@ -1,9 +1,8 @@
1
- import { Effect, Option, ReadonlyArray } from "effect-app"
2
- import { get } from "effect-app/utils"
1
+ import { Effect, Option } from "effect-app"
3
2
  import objectHash from "object-hash"
4
3
  import { OptimisticConcurrencyException } from "../../errors.js"
5
4
  import { codeFilter3_ } from "./codeFilter.js"
6
- import type { Filter, FilterJoinSelect, PersistenceModelType, SupportedValues2 } from "./service.js"
5
+ import type { Filter, PersistenceModelType, SupportedValues2 } from "./service.js"
7
6
 
8
7
  export const makeETag = <E extends PersistenceModelType<Id>, Id extends string>(
9
8
  { _etag, ...e }: E
@@ -37,155 +36,7 @@ export const makeUpdateETag =
37
36
  })
38
37
 
39
38
  export function codeFilter<E extends { id: string }, NE extends E>(filter: Filter<NE>) {
40
- return (x: E) =>
41
- filter.type === "new-kid"
42
- ? codeFilter3_(filter.build(), x) ? Option.some(x as unknown as NE) : Option.none()
43
- : filter.type === "startsWith"
44
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
- ? lowercaseIfString((x as any)[filter.by]).startsWith(filter.value.toLowerCase())
46
- ? Option.some(x as unknown as NE)
47
- : Option.none()
48
- : filter.type === "endsWith"
49
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
- ? lowercaseIfString((x as any)[filter.by]).endsWith(filter.value.toLowerCase())
51
- ? Option.some(x as unknown as NE)
52
- : Option.none()
53
- : filter.type === "contains"
54
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
56
- ? lowercaseIfString((x as any)[filter.by]).includes(filter.value.toLowerCase())
57
- ? Option.some(x as unknown as NE)
58
- : Option.none()
59
- : filter.type === "join_find"
60
- ? filter.keys.some((k) => {
61
- const value = get(x, k) as Record<string, unknown>[]
62
- // we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
63
- return (
64
- value
65
- && value.some((v) => compare(v[filter.valueKey], filter.value))
66
- )
67
- })
68
- ? Option.some(x as unknown as NE)
69
- : Option.none()
70
- // TODO: support mixed or/and
71
- : filter.mode === "or"
72
- ? filter
73
- .where
74
- .some((p) => {
75
- const k = get(x, p.key)
76
- switch (p.t) {
77
- case "in":
78
- return p.value.includes(k)
79
- case "not-in":
80
- return !p.value.includes(k)
81
- case "lt":
82
- return lowerThan(k, p.value)
83
- case "lte":
84
- return lowerThanExclusive(k, p.value)
85
- case "gt":
86
- return greaterThan(k, p.value)
87
- case "gte":
88
- return greaterThanExclusive(k, p.value)
89
- case "includes":
90
- return (k as Array<string>).includes(p.value)
91
- case "not-includes":
92
- return !(k as Array<string>).includes(p.value)
93
- case "contains":
94
- return (k as string).toLowerCase().includes(p.value.toLowerCase())
95
- case "ends-with":
96
- return (k as string).toLowerCase().endsWith(p.value.toLowerCase())
97
- case "starts-with":
98
- return (k as string).toLowerCase().startsWith(p.value.toLowerCase())
99
- case "not-contains":
100
- return !(k as string).toLowerCase().includes(p.value.toLowerCase())
101
- case "not-ends-with":
102
- return !(k as string).toLowerCase().endsWith(p.value.toLowerCase())
103
- case "not-starts-with":
104
- return !(k as string).toLowerCase().startsWith(p.value.toLowerCase())
105
- case "not-eq":
106
- return !compare(k, p.value)
107
- case "eq":
108
- case undefined:
109
- return compare(k, p.value)
110
- }
111
- })
112
- ? Option.some(x as unknown as NE)
113
- : Option.none()
114
- : filter
115
- .where
116
- .every((p) => {
117
- const k = get(x, p.key)
118
- switch (p.t) {
119
- case "in":
120
- return p.value.includes(k)
121
- case "not-in":
122
- return !p.value.includes(k)
123
- case "lt":
124
- return lowerThan(k, p.value)
125
- case "lte":
126
- return lowerThanExclusive(k, p.value)
127
- case "gt":
128
- return greaterThan(k, p.value)
129
- case "gte":
130
- return greaterThanExclusive(k, p.value)
131
- case "includes":
132
- return (k as Array<string>).includes(p.value)
133
- case "not-includes":
134
- return !(k as Array<string>).includes(p.value)
135
- case "contains":
136
- return (k as string).toLowerCase().includes(p.value.toLowerCase())
137
- case "ends-with":
138
- return (k as string).toLowerCase().endsWith(p.value.toLowerCase())
139
- case "starts-with":
140
- return (k as string).toLowerCase().startsWith(p.value.toLowerCase())
141
- case "not-contains":
142
- return !(k as string).toLowerCase().includes(p.value.toLowerCase())
143
- case "not-ends-with":
144
- return !(k as string).toLowerCase().endsWith(p.value.toLowerCase())
145
- case "not-starts-with":
146
- return !(k as string).toLowerCase().startsWith(p.value.toLowerCase())
147
- case "not-eq":
148
- return p.key.includes(".-1.")
149
- ? (get(x, p.key.split(".-1.")[0]) as any[])
150
- // TODO: or vs and
151
- .every((_) => !compare(get(_, p.key.split(".-1.")[1]!), p.value))
152
- : !compare(k, p.value)
153
- case "eq":
154
- case undefined:
155
- return p.key.includes(".-1.")
156
- ? (get(x, p.key.split(".-1.")[0]) as any[])
157
- // TODO: or vs and
158
- .some((_) => compare(get(_, p.key.split(".-1.")[1]!), p.value))
159
- : compare(k, p.value)
160
- }
161
- })
162
- ? Option.some(x as unknown as NE)
163
- : Option.none()
164
- }
165
-
166
- export function codeFilterJoinSelect<E extends { id: string }, NE>(
167
- filter: FilterJoinSelect
168
- ) {
169
- return (x: E) =>
170
- ReadonlyArray
171
- .filterMap(
172
- filter
173
- .keys,
174
- (k) => {
175
- const value = get(x, k)
176
- // we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
177
- return value
178
- ? Option.some(
179
- ReadonlyArray.filterMap(value as readonly NE[], (v) =>
180
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
181
- compare((v as any)[filter.valueKey], filter.value)
182
- ? Option.some({ ...v, _rootId: x.id })
183
- : Option.none())
184
- )
185
- : Option.none()
186
- }
187
- )
188
- .flatMap((_) => _)
39
+ return (x: E) => codeFilter3_(filter.build(), x) ? Option.some(x as unknown as NE) : Option.none()
189
40
  }
190
41
 
191
42
  export function lowercaseIfString<T>(val: T) {
@@ -251,11 +251,11 @@ export type FilterWheres = {
251
251
  <
252
252
  TFieldValues extends FieldValues,
253
253
  TFieldName extends FieldPath<TFieldValues>,
254
- V extends FieldPathValue<TFieldValues, TFieldName>
254
+ V extends string
255
255
  >(
256
256
  path: TFieldName,
257
257
  op: "startsWith" | "endsWith" | "contains" | "notContains" | "notStartsWith" | "notEndsWith",
258
- value: V // only strings?
258
+ value: V
259
259
  ): (
260
260
  current: Query<TFieldValues>
261
261
  ) => QueryWhere<TFieldValues>
@@ -322,11 +322,11 @@ export type FilterContinuations = {
322
322
  <
323
323
  TFieldValues extends FieldValues,
324
324
  TFieldName extends FieldPath<TFieldValues>,
325
- V extends FieldPathValue<TFieldValues, TFieldName>
325
+ V extends string
326
326
  >(
327
327
  path: TFieldName,
328
328
  op: "startsWith" | "endsWith" | "contains" | "notContains" | "notStartsWith" | "notEndsWith",
329
- value: V // only strings?
329
+ value: V
330
330
  ): (
331
331
  current: QueryWhere<TFieldValues>
332
332
  ) => QueryWhere<TFieldValues>
package/_cjs/filter.cjs DELETED
@@ -1,363 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.$contains = $contains;
7
- exports.$endsWith = $endsWith;
8
- exports.$gt = $gt;
9
- exports.$gte = $gte;
10
- exports.$in = $in;
11
- exports.$includes = $includes;
12
- exports.$is = $is;
13
- exports.$isnt = $isnt;
14
- exports.$lt = $lt;
15
- exports.$lte = $lte;
16
- exports.$notContains = $notContains;
17
- exports.$notEndsWith = $notEndsWith;
18
- exports.$notIn = $notIn;
19
- exports.$notIncludes = $notIncludes;
20
- exports.$notStartsWith = $notStartsWith;
21
- exports.$startsWith = $startsWith;
22
- exports.Filters = void 0;
23
- exports.makeFilters = makeFilters;
24
- exports.makeWhereFilter = makeWhereFilter;
25
- function makeWhereFilter() {
26
- const f = makeWhereFilter_();
27
- return f;
28
- }
29
- function makeHelpers() {
30
- const helpers = makeHelpers_();
31
- return helpers;
32
- }
33
- function makeHelpers_() {
34
- return {
35
- in(path, value) {
36
- return {
37
- key: path,
38
- value,
39
- t: "in"
40
- };
41
- },
42
- notIn(path, value) {
43
- return {
44
- key: path,
45
- value,
46
- t: "not-in"
47
- };
48
- },
49
- includes(path, value) {
50
- return {
51
- key: path,
52
- value,
53
- t: "includes"
54
- };
55
- },
56
- notIncludes(path, value) {
57
- return {
58
- key: path,
59
- value,
60
- t: "not-includes"
61
- };
62
- },
63
- eq(path, value) {
64
- return {
65
- key: path,
66
- value,
67
- t: "eq"
68
- };
69
- },
70
- notEq(path, value) {
71
- return {
72
- key: path,
73
- value,
74
- t: "not-eq"
75
- };
76
- },
77
- gt(path, value) {
78
- return {
79
- key: path,
80
- value,
81
- t: "gt"
82
- };
83
- },
84
- gte(path, value) {
85
- return {
86
- key: path,
87
- value,
88
- t: "gte"
89
- };
90
- },
91
- lt(path, value) {
92
- return {
93
- key: path,
94
- value,
95
- t: "lt"
96
- };
97
- },
98
- lte(path, value) {
99
- return {
100
- key: path,
101
- value,
102
- t: "lte"
103
- };
104
- }
105
- };
106
- }
107
- function makeWhereFilter_() {
108
- const helpers = makeHelpers();
109
- const f = Object.assign(helpers.eq, helpers);
110
- return f;
111
- }
112
- function $in(_, ...v) {
113
- return $$in(v);
114
- }
115
- function $notIn(_, ...v) {
116
- return $$notIn(v);
117
- }
118
- function $is(_, v) {
119
- return $$is(v);
120
- }
121
- function $includes(_, v) {
122
- return $$includes(v);
123
- }
124
- function $notIncludes(_, v) {
125
- return $$notIncludes(v);
126
- }
127
- function $isnt(_, v) {
128
- return $$isnt(v);
129
- }
130
- function $gt(_, v) {
131
- return $$gt(v);
132
- }
133
- function $gte(_, v) {
134
- return $$gte(v);
135
- }
136
- function $lt(_, v) {
137
- return $$lt(v);
138
- }
139
- function $lte(_, v) {
140
- return $$lte(v);
141
- }
142
- function $is__(v) {
143
- return _ => $is(_, v);
144
- }
145
- function $isnt__(v) {
146
- return _ => $isnt(_, v);
147
- }
148
- function $includes__(v) {
149
- return _ => $includes(_, v);
150
- }
151
- function $notIncludes__(v) {
152
- return _ => $notIncludes(_, v);
153
- }
154
- function $lt__(v) {
155
- return _ => $lt(_, v);
156
- }
157
- function $lte__(v) {
158
- return _ => $lte(_, v);
159
- }
160
- function $gt__(v) {
161
- return _ => $gt(_, v);
162
- }
163
- function $gte__(v) {
164
- return _ => $gte(_, v);
165
- }
166
- function $in__(...v) {
167
- return _ => $in(_, ...v);
168
- }
169
- function $notIn__(...v) {
170
- return _ => $notIn(_, ...v);
171
- }
172
- function $startsWith__(v) {
173
- return _ => $startsWith(_, v);
174
- }
175
- function $endsWith__(v) {
176
- return _ => $endsWith(_, v);
177
- }
178
- function $contains__(v) {
179
- return _ => $contains(_, v);
180
- }
181
- const Filters = exports.Filters = {
182
- is: $is__,
183
- isnt: $isnt__,
184
- in: $in__,
185
- notIn: $notIn__,
186
- gt: $gt__,
187
- gte: $gte__,
188
- lt: $lt__,
189
- lte: $lte__,
190
- contains: $contains__,
191
- endsWith: $endsWith__,
192
- startsWith: $startsWith__,
193
- includes: $includes__,
194
- notIncludes: $notIncludes__
195
- };
196
- function $notStartsWith(_, v) {
197
- return $$notStartsWith(v);
198
- }
199
- function $notEndsWith(_, v) {
200
- return $$notEndsWith(v);
201
- }
202
- function $notContains(_, v) {
203
- return $$notContains(v);
204
- }
205
- function $startsWith(_, v) {
206
- return $$startsWith(v);
207
- }
208
- function $endsWith(_, v) {
209
- return $$endsWith(v);
210
- }
211
- function $contains(_, v) {
212
- return $$contains(v);
213
- }
214
- function $$in(v) {
215
- return {
216
- t: "in",
217
- v
218
- };
219
- }
220
- function $$notIn(v) {
221
- return {
222
- t: "not-in",
223
- v
224
- };
225
- }
226
- function $$is(v) {
227
- return {
228
- t: "eq",
229
- v
230
- };
231
- }
232
- function $$isnt(v) {
233
- return {
234
- t: "not-eq",
235
- v
236
- };
237
- }
238
- function $$includes(v) {
239
- return {
240
- t: "includes",
241
- v
242
- };
243
- }
244
- function $$notIncludes(v) {
245
- return {
246
- t: "not-includes",
247
- v
248
- };
249
- }
250
- function $$lt(v) {
251
- return {
252
- t: "lt",
253
- v
254
- };
255
- }
256
- function $$lte(v) {
257
- return {
258
- t: "lte",
259
- v
260
- };
261
- }
262
- function $$gt(v) {
263
- return {
264
- t: "gt",
265
- v
266
- };
267
- }
268
- function $$gte(v) {
269
- return {
270
- t: "gte",
271
- v
272
- };
273
- }
274
- function $$contains(v) {
275
- return {
276
- t: "contains",
277
- v
278
- };
279
- }
280
- function $$startsWith(v) {
281
- return {
282
- t: "starts-with",
283
- v
284
- };
285
- }
286
- function $$endsWith(v) {
287
- return {
288
- t: "ends-with",
289
- v
290
- };
291
- }
292
- function $$notContains(v) {
293
- return {
294
- t: "not-contains",
295
- v
296
- };
297
- }
298
- function $$notStartsWith(v) {
299
- return {
300
- t: "not-starts-with",
301
- v
302
- };
303
- }
304
- function $$notEndsWith(v) {
305
- return {
306
- t: "not-ends-with",
307
- v
308
- };
309
- }
310
- function f(p, b) {
311
- if (typeof b === "function") b = b(undefined);
312
- const obj = typeof b === "object" && b !== null;
313
- return makeFilter(p, obj ? b.v : b, obj ? b.t ?? "eq" : "eq");
314
- }
315
- function makeFilter(path, value, t) {
316
- return {
317
- key: path,
318
- t,
319
- value
320
- };
321
- }
322
- function makeFilters() {
323
- function test(p, v) {
324
- return f(p, v);
325
- }
326
- return test;
327
- }
328
- // export function makeFilter<TFieldValues extends FieldValues>() {
329
- // const f = makeFilter_<TFieldValues>()
330
- // return f as WhereFilterHelper<TFieldValues>
331
- // }
332
- // export interface WhereFilterHelper<TFieldValues extends FieldValues> extends ReturnType<typeof makeFilter_<TFieldValues>> {}
333
- // function makeFilter_<TFieldValues extends FieldValues>() {
334
- // function eq<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
335
- // path: TFieldName,
336
- // value: V
337
- // ) {
338
- // return { key: path, value, t: "eq" as const }
339
- // }
340
- // const f = Object.assign(eq satisfies (...args: any[]) => Where, {
341
- // in<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
342
- // path: TFieldName,
343
- // value: readonly V[]
344
- // ) {
345
- // return { key: path, value, t: "in" as const }
346
- // },
347
- // notIn<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
348
- // path: TFieldName,
349
- // value: readonly V[]
350
- // ) {
351
- // return { key: path, value, t: "not-in" as const }
352
- // },
353
- // eq,
354
- // notEq<TFieldName extends FieldPath<TFieldValues>, V extends FieldPathValue<TFieldValues, TFieldName>>(
355
- // path: TFieldName,
356
- // value: V
357
- // ) {
358
- // return { key: path, value, t: "not-eq" as const }
359
- // }
360
- // } satisfies Record<string, (...args: any[]) => Where>)
361
- // return f
362
- // }
363
- //# sourceMappingURL=filter.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter.cjs","names":["makeWhereFilter","f","makeWhereFilter_","makeHelpers","helpers","makeHelpers_","in","path","value","key","t","notIn","includes","notIncludes","eq","notEq","gt","gte","lt","lte","Object","assign","$in","_","v","$$in","$notIn","$$notIn","$is","$$is","$includes","$$includes","$notIncludes","$$notIncludes","$isnt","$$isnt","$gt","$$gt","$gte","$$gte","$lt","$$lt","$lte","$$lte","$is__","$isnt__","$includes__","$notIncludes__","$lt__","$lte__","$gt__","$gte__","$in__","$notIn__","$startsWith__","$startsWith","$endsWith__","$endsWith","$contains__","$contains","Filters","exports","is","isnt","contains","endsWith","startsWith","$notStartsWith","$$notStartsWith","$notEndsWith","$$notEndsWith","$notContains","$$notContains","$$startsWith","$$endsWith","$$contains","p","b","undefined","obj","makeFilter","makeFilters","test"],"sources":["../src/filter.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUM,SAAUA,eAAeA,CAAA;EAC7B,MAAMC,CAAC,GAAGC,gBAAgB,EAAgB;EAC1C,OAAOD,CAA8B;AACvC;AAEA,SAASE,WAAWA,CAAA;EAClB,MAAMC,OAAO,GAAGC,YAAY,EAAgB;EAC5C,OAAOD,OAAqC;AAC9C;AAIA,SAASC,YAAYA,CAAA;EAInB,OAAO;IACLC,EAAEA,CAEAC,IAAgB,EAChBC,KAAmB;MAEnB,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAa,CAAE;IAC/C,CAAC;IACDC,KAAKA,CAEHJ,IAAgB,EAChBC,KAAmB;MAEnB,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAiB,CAAE;IACnD,CAAC;IACDE,QAAQA,CAENL,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAmB,CAAE;IACrD,CAAC;IACDG,WAAWA,CAETN,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAuB,CAAE;IACzD,CAAC;IACDI,EAAEA,CAEAP,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAa,CAAE;IAC/C,CAAC;IACDK,KAAKA,CAEHR,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAiB,CAAE;IACnD,CAAC;IACDM,EAAEA,CAEAT,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAa,CAAE;IAC/C,CAAC;IACDO,GAAGA,CAEDV,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAc,CAAE;IAChD,CAAC;IACDQ,EAAEA,CAEAX,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAa,CAAE;IAC/C,CAAC;IACDS,GAAGA,CAEDZ,IAAgB,EAChBC,KAAQ;MAER,OAAO;QAAEC,GAAG,EAAEF,IAAI;QAAEC,KAAK;QAAEE,CAAC,EAAE;MAAc,CAAE;IAChD;GACmD;AACvD;AAEA,SAASR,gBAAgBA,CAAA;EACvB,MAAME,OAAO,GAAGD,WAAW,EAAgB;EAC3C,MAAMF,CAAC,GAAGmB,MAAM,CAACC,MAAM,CAACjB,OAAO,CAACU,EAAE,EAAEV,OAAO,CAAC;EAC5C,OAAOH,CAAC;AACV;AA6BM,SAAUqB,GAAGA,CACjBC,CAAI,EACJ,GAAGC,CAAS;EAEZ,OAAOC,IAAI,CAACD,CAAC,CAAC;AAChB;AAEM,SAAUE,MAAMA,CACpBH,CAAI,EACJ,GAAGC,CAAS;EAEZ,OAAOG,OAAO,CAACH,CAAC,CAAC;AACnB;AAEM,SAAUI,GAAGA,CAAiBL,CAAI,EAAEC,CAAI;EAC5C,OAAOK,IAAI,CAACL,CAAC,CAAC;AAChB;AAEM,SAAUM,SAASA,CAAgDP,CAAI,EAAEC,CAAI;EACjF,OAAOO,UAAU,CAACP,CAAC,CAAC;AACtB;AAEM,SAAUQ,YAAYA,CAC1BT,CAAI,EACJC,CAAI;EAEJ,OAAOS,aAAa,CAACT,CAAC,CAAC;AACzB;AAEM,SAAUU,KAAKA,CAAiBX,CAAI,EAAEC,CAAI;EAC9C,OAAOW,MAAM,CAACX,CAAC,CAAC;AAClB;AAEM,SAAUY,GAAGA,CAAiBb,CAAI,EAAEC,CAAI;EAC5C,OAAOa,IAAI,CAACb,CAAC,CAAC;AAChB;AAEM,SAAUc,IAAIA,CAAiBf,CAAI,EAAEC,CAAI;EAC7C,OAAOe,KAAK,CAACf,CAAC,CAAC;AACjB;AAEM,SAAUgB,GAAGA,CAAiBjB,CAAI,EAAEC,CAAI;EAC5C,OAAOiB,IAAI,CAACjB,CAAC,CAAC;AAChB;AAEM,SAAUkB,IAAIA,CAAiBnB,CAAI,EAAEC,CAAI;EAC7C,OAAOmB,KAAK,CAACnB,CAAC,CAAC;AACjB;AAEA,SAASoB,KAAKA,CAAiBpB,CAAI;EACjC,OAAQD,CAAI,IAAKK,GAAG,CAACL,CAAC,EAAEC,CAAC,CAAC;AAC5B;AAEA,SAASqB,OAAOA,CAAiBrB,CAAI;EACnC,OAAQD,CAAI,IAAKW,KAAK,CAACX,CAAC,EAAEC,CAAC,CAAC;AAC9B;AAEA,SAASsB,WAAWA,CAAgDtB,CAAI;EACtE,OAAQD,CAAI,IAAKO,SAAS,CAACP,CAAC,EAAEC,CAAC,CAAC;AAClC;AAEA,SAASuB,cAAcA,CAAgDvB,CAAI;EACzE,OAAQD,CAAI,IAAKS,YAAY,CAACT,CAAC,EAAEC,CAAC,CAAC;AACrC;AAEA,SAASwB,KAAKA,CAAiBxB,CAAI;EACjC,OAAQD,CAAI,IAAKiB,GAAG,CAACjB,CAAC,EAAEC,CAAC,CAAC;AAC5B;AAEA,SAASyB,MAAMA,CAAiBzB,CAAI;EAClC,OAAQD,CAAI,IAAKmB,IAAI,CAACnB,CAAC,EAAEC,CAAC,CAAC;AAC7B;AAEA,SAAS0B,KAAKA,CAAiB1B,CAAI;EACjC,OAAQD,CAAI,IAAKa,GAAG,CAACb,CAAC,EAAEC,CAAC,CAAC;AAC5B;AAEA,SAAS2B,MAAMA,CAAiB3B,CAAI;EAClC,OAAQD,CAAI,IAAKe,IAAI,CAACf,CAAC,EAAEC,CAAC,CAAC;AAC7B;AAEA,SAAS4B,KAAKA,CACZ,GAAG5B,CAAS;EAEZ,OAAQD,CAAI,IAAKD,GAAG,CAACC,CAAC,EAAE,GAAGC,CAAC,CAAC;AAC/B;AAEA,SAAS6B,QAAQA,CACf,GAAG7B,CAAS;EAEZ,OAAQD,CAAI,IAAKG,MAAM,CAACH,CAAC,EAAE,GAAGC,CAAC,CAAC;AAClC;AAEA,SAAS8B,aAAaA,CAAgC9B,CAAI;EACxD,OAAQD,CAAI,IAAKgC,WAAW,CAAChC,CAAC,EAAEC,CAAC,CAAC;AACpC;AAEA,SAASgC,WAAWA,CAAgChC,CAAI;EACtD,OAAQD,CAAI,IAAKkC,SAAS,CAAClC,CAAC,EAAEC,CAAC,CAAC;AAClC;AAEA,SAASkC,WAAWA,CAAgClC,CAAI;EACtD,OAAQD,CAAI,IAAKoC,SAAS,CAACpC,CAAC,EAAEC,CAAC,CAAC;AAClC;AAEO,MAAMoC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACrBE,EAAE,EAAElB,KAAK;EACTmB,IAAI,EAAElB,OAAO;EACbvC,EAAE,EAAE8C,KAAK;EACTzC,KAAK,EAAE0C,QAAQ;EACfrC,EAAE,EAAEkC,KAAK;EACTjC,GAAG,EAAEkC,MAAM;EACXjC,EAAE,EAAE8B,KAAK;EACT7B,GAAG,EAAE8B,MAAM;EACXe,QAAQ,EAAEN,WAAW;EACrBO,QAAQ,EAAET,WAAW;EACrBU,UAAU,EAAEZ,aAAa;EACzB1C,QAAQ,EAAEkC,WAAW;EACrBjC,WAAW,EAAEkC;CACd;AAEK,SAAUoB,cAAcA,CAAgC5C,CAAI,EAAEC,CAAI;EACtE,OAAO4C,eAAe,CAAC5C,CAAC,CAAC;AAC3B;AAEM,SAAU6C,YAAYA,CAAgC9C,CAAI,EAAEC,CAAI;EACpE,OAAO8C,aAAa,CAAC9C,CAAC,CAAC;AACzB;AAEM,SAAU+C,YAAYA,CAAgChD,CAAI,EAAEC,CAAI;EACpE,OAAOgD,aAAa,CAAChD,CAAC,CAAC;AACzB;AAEM,SAAU+B,WAAWA,CAAgChC,CAAI,EAAEC,CAAI;EACnE,OAAOiD,YAAY,CAACjD,CAAC,CAAC;AACxB;AAEM,SAAUiC,SAASA,CAAgClC,CAAI,EAAEC,CAAI;EACjE,OAAOkD,UAAU,CAAClD,CAAC,CAAC;AACtB;AAEM,SAAUmC,SAASA,CAAgCpC,CAAI,EAAEC,CAAI;EACjE,OAAOmD,UAAU,CAACnD,CAAC,CAAC;AACtB;AAEA,SAASC,IAAIA,CAA2BD,CAAI;EAC1C,OAAO;IAAEd,CAAC,EAAE,IAAa;IAAEc;EAAC,CAAE;AAChC;AAEA,SAASG,OAAOA,CAA2BH,CAAI;EAC7C,OAAO;IAAEd,CAAC,EAAE,QAAiB;IAAEc;EAAC,CAAE;AACpC;AACA,SAASK,IAAIA,CAAIL,CAAI;EACnB,OAAO;IAAEd,CAAC,EAAE,IAAa;IAAEc;EAAC,CAAE;AAChC;AACA,SAASW,MAAMA,CAAIX,CAAI;EACrB,OAAO;IAAEd,CAAC,EAAE,QAAiB;IAAEc;EAAC,CAAE;AACpC;AACA,SAASO,UAAUA,CAAIP,CAAI;EACzB,OAAO;IAAEd,CAAC,EAAE,UAAmB;IAAEc;EAAC,CAAE;AACtC;AACA,SAASS,aAAaA,CAAIT,CAAI;EAC5B,OAAO;IAAEd,CAAC,EAAE,cAAuB;IAAEc;EAAC,CAAE;AAC1C;AAEA,SAASiB,IAAIA,CAAIjB,CAAI;EACnB,OAAO;IAAEd,CAAC,EAAE,IAAa;IAAEc;EAAC,CAAE;AAChC;AAEA,SAASmB,KAAKA,CAAInB,CAAI;EACpB,OAAO;IAAEd,CAAC,EAAE,KAAc;IAAEc;EAAC,CAAE;AACjC;AACA,SAASa,IAAIA,CAAIb,CAAI;EACnB,OAAO;IAAEd,CAAC,EAAE,IAAa;IAAEc;EAAC,CAAE;AAChC;AAEA,SAASe,KAAKA,CAAIf,CAAI;EACpB,OAAO;IAAEd,CAAC,EAAE,KAAc;IAAEc;EAAC,CAAE;AACjC;AAEA,SAASmD,UAAUA,CAAmBnD,CAAI;EACxC,OAAO;IAAEd,CAAC,EAAE,UAAmB;IAAEc;EAAC,CAAE;AACtC;AACA,SAASiD,YAAYA,CAAmBjD,CAAI;EAC1C,OAAO;IAAEd,CAAC,EAAE,aAAsB;IAAEc;EAAC,CAAE;AACzC;AACA,SAASkD,UAAUA,CAAmBlD,CAAI;EACxC,OAAO;IAAEd,CAAC,EAAE,WAAoB;IAAEc;EAAC,CAAE;AACvC;AAEA,SAASgD,aAAaA,CAAmBhD,CAAI;EAC3C,OAAO;IAAEd,CAAC,EAAE,cAAuB;IAAEc;EAAC,CAAE;AAC1C;AACA,SAAS4C,eAAeA,CAAmB5C,CAAI;EAC7C,OAAO;IAAEd,CAAC,EAAE,iBAA0B;IAAEc;EAAC,CAAE;AAC7C;AACA,SAAS8C,aAAaA,CAAmB9C,CAAI;EAC3C,OAAO;IAAEd,CAAC,EAAE,eAAwB;IAAEc;EAAC,CAAE;AAC3C;AAUA,SAASvB,CAACA,CAAC2E,CAAS,EAAEC,CAAM;EAC1B,IAAI,OAAOA,CAAC,KAAK,UAAU,EAAEA,CAAC,GAAGA,CAAC,CAACC,SAAS,CAAC;EAC7C,MAAMC,GAAG,GAAG,OAAOF,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI;EAC/C,OAAOG,UAAU,CAACJ,CAAC,EAAEG,GAAG,GAAGF,CAAC,CAACrD,CAAC,GAAGqD,CAAC,EAAEE,GAAG,GAAGF,CAAC,CAACnE,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC;AAC/D;AAEA,SAASsE,UAAUA,CAA8CzE,IAAY,EAAEC,KAAU,EAAEE,CAAI;EAC7F,OAAO;IAAED,GAAG,EAAEF,IAAI;IAAEG,CAAC;IAAEF;EAAK,CAAE;AAChC;AASM,SAAUyE,WAAWA,CAAA;EAmBzB,SAASC,IAAIA,CAACN,CAAS,EAAEpD,CAAM;IAC7B,OAAOvB,CAAC,CAAC2E,CAAC,EAAEpD,CAAC,CAAQ;EACvB;EACA,OAAO0D,IAAI;AACb;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeSomethingFilter_ = makeSomethingFilter_;
7
- exports.somethingsWhere = somethingsWhere;
8
- var _filter = require("../../filter.cjs");
9
- var _query = require("./Cosmos/query.cjs");
10
- const f_ = (0, _filter.makeFilters)();
11
- function makeSomethingFilter_(filter) {
12
- return filter(f_);
13
- }
14
- function somethingsWhere(makeWhere, mode) {
15
- return makeSomethingFilter_(f => {
16
- const m = makeWhere ? makeWhere(f) : [];
17
- return {
18
- mode,
19
- where: Array.isArray(m) ? m : [m]
20
- };
21
- });
22
- }
23
- test("works", () => {
24
- expect((0, _query.buildWhereCosmosQuery)(somethingsWhere(_ => _("b", _ => "b2")), "Somethings", "importedMarkerId", {}, undefined, 10)).toEqual({
25
- "parameters": [{
26
- "name": "@id",
27
- "value": "importedMarkerId"
28
- }, {
29
- "name": "@v0",
30
- "value": "b2"
31
- }],
32
- "query": `
33
- SELECT f
34
- FROM Somethings f
35
-
36
- WHERE f.id != @id AND f.b = @v0
37
- OFFSET 0 LIMIT 10`
38
- });
39
- expect((0, _query.buildWhereCosmosQuery)(somethingsWhere(_ => _("d.-1.a", _filter.Filters.isnt("a2"))), "Somethings", "importedMarkerId", {}, undefined, 10)).toEqual({
40
- "parameters": [{
41
- "name": "@id",
42
- "value": "importedMarkerId"
43
- }, {
44
- "name": "@v0",
45
- "value": "a2"
46
- }],
47
- "query": `
48
- SELECT f
49
- FROM Somethings f
50
- JOIN d IN f.d
51
- WHERE f.id != @id AND d.a <> @v0
52
- OFFSET 0 LIMIT 10`
53
- });
54
- });
55
- //# sourceMappingURL=Cosmos.test.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cosmos.test.cjs","names":["_filter","require","_query","f_","makeFilters","makeSomethingFilter_","filter","somethingsWhere","makeWhere","mode","f","m","where","Array","isArray","test","expect","buildWhereCosmosQuery","_","undefined","toEqual","Filters","isnt"],"sources":["../../../src/services/Store/Cosmos.test.ts"],"sourcesContent":[null],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,EAAE,GAAG,IAAAC,mBAAW,GAAa;AAG7B,SAAUC,oBAAoBA,CAACC,MAAqD;EACxF,OAAOA,MAAM,CAACH,EAAE,CAAC;AACnB;AAEM,SAAUI,eAAeA,CAC7BC,SAEgC,EAChCC,IAAmB;EAEnB,OAAOJ,oBAAoB,CAAEK,CAAC,IAAI;IAChC,MAAMC,CAAC,GAAGH,SAAS,GAAGA,SAAS,CAACE,CAAC,CAAC,GAAG,EAAE;IACvC,OAAQ;MACND,IAAI;MACJG,KAAK,EAAGC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,GAAGA,CAAmC,GAAG,CAACA,CAAC;KACpE;EACH,CAAC,CAAC;AACJ;AAeAI,IAAI,CAAC,OAAO,EAAE,MAAK;EACjBC,MAAM,CAAC,IAAAC,4BAAqB,EAC1BV,eAAe,CAAEW,CAAC,IAAKA,CAAC,CAAC,GAAG,EAAGA,CAAC,IAAK,IAAI,CAAC,CAAC,EAC3C,YAAY,EACZ,kBAAkB,EAClB,EAAE,EACFC,SAAS,EACT,EAAE,CACH,CAAC,CACCC,OAAO,CAAC;IACP,YAAY,EAAE,CACZ;MACE,MAAM,EAAE,KAAK;MACb,OAAO,EAAE;KACV,EACD;MACE,MAAM,EAAE,KAAK;MACb,OAAO,EAAE;KACV,CACF;IACD,OAAO,EAAE;;;;;;GAMV,CAAC;EAEJJ,MAAM,CAAC,IAAAC,4BAAqB,EAC1BV,eAAe,CAAEW,CAAC,IAAKA,CAAC,CAAC,QAAQ,EAAEG,eAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EACvD,YAAY,EACZ,kBAAkB,EAClB,EAAE,EACFH,SAAS,EACT,EAAE,CACH,CAAC,CACCC,OAAO,CAAC;IACP,YAAY,EAAE,CACZ;MACE,MAAM,EAAE,KAAK;MACb,OAAO,EAAE;KACV,EACD;MACE,MAAM,EAAE,KAAK;MACb,OAAO,EAAE;KACV,CACF;IACD,OAAO,EAAE;;;;;;GAMV,CAAC;AACN,CAAC,CAAC"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeSomethingFilter_ = makeSomethingFilter_;
7
- exports.somethingsWhere = somethingsWhere;
8
- var _effectApp = require("effect-app");
9
- var _filter = require("../../filter.cjs");
10
- var _utils = require("./utils.cjs");
11
- const somethings = [{
12
- a: 1,
13
- b: "b",
14
- c: ["c"],
15
- d: [{
16
- a: "a2",
17
- b: 1
18
- }, {
19
- a: "a",
20
- b: 1
21
- }],
22
- id: "1"
23
- }, {
24
- a: 2,
25
- b: "b2",
26
- c: ["c2"],
27
- d: [{
28
- a: "a4",
29
- b: 2
30
- }, {
31
- a: "a5",
32
- b: 2
33
- }],
34
- id: "2"
35
- }];
36
- const f_ = (0, _filter.makeFilters)();
37
- function makeSomethingFilter_(filter) {
38
- return filter(f_);
39
- }
40
- function somethingsWhere(makeWhere, mode) {
41
- return makeSomethingFilter_(f => {
42
- const m = makeWhere ? makeWhere(f) : [];
43
- return {
44
- mode,
45
- where: Array.isArray(m) ? m : [m]
46
- };
47
- });
48
- }
49
- test("works", () => {
50
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _ => "b2"))))).toEqual([somethings[1]]);
51
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _filter.Filters.contains("b")))))).toEqual([somethings[0], somethings[1]]);
52
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _filter.Filters.contains("2")))))).toEqual([somethings[1]]);
53
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _filter.Filters.endsWith("b")))))).toEqual([somethings[0]]);
54
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _filter.Filters.endsWith("2")))))).toEqual([somethings[1]]);
55
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _filter.Filters.startsWith("b")))))).toEqual([somethings[0], somethings[1]]);
56
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _filter.Filters.startsWith("2")))))).toEqual([]);
57
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("b", _ => "b"))))).toEqual([somethings[0]]);
58
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("c", _filter.Filters.includes("c")))))).toEqual([somethings[0]]);
59
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("d.-1.a", _ => "a5"))))).toEqual([somethings[1]]);
60
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("d.-1.a", _ => "a"))))).toEqual([somethings[0]]);
61
- expect(_effectApp.ReadonlyArray.filterMap(somethings, (0, _utils.codeFilter)(somethingsWhere(_ => _("d.-1.a", _filter.Filters.isnt("a")))))).toEqual([somethings[1]]);
62
- });
63
- //# sourceMappingURL=codeFilter.test.cjs.map