@effect-app/infra 0.63.1 → 0.65.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.
- package/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.content +241 -0
- package/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.hash +1 -0
- package/.cache/effect/1bfd92946b11da4292f2ed99dc0e322462b60559148f9524abc20e26f70779e1.content +86 -0
- package/.cache/effect/1bfd92946b11da4292f2ed99dc0e322462b60559148f9524abc20e26f70779e1.hash +1 -0
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.content +47 -0
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.hash +1 -0
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.content +70 -0
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.hash +1 -0
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.content +170 -0
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.hash +1 -0
- package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.content +57 -0
- package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.hash +1 -0
- package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.content +11 -0
- package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.hash +1 -0
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.content +360 -0
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.hash +1 -0
- package/CHANGELOG.md +20 -0
- package/_cjs/filter.cjs +25 -52
- package/_cjs/filter.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +36 -2
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +6 -0
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +59 -5
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_src/filter.ts +20 -46
- package/_src/services/Store/Cosmos.ts +43 -21
- package/_src/services/Store/codeFilter.test.ts +54 -0
- package/_src/services/Store/service.ts +1 -0
- package/_src/services/Store/utils.ts +64 -42
- package/dist/filter.d.ts +9 -13
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +22 -38
- package/dist/services/Repository.d.ts +14 -14
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +41 -21
- package/dist/services/Store/service.d.ts +4 -0
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +1 -1
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +65 -39
- package/package.json +5 -5
package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.content
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/prelude/_ext/misc";
|
|
2
|
+
import * as tsplus_module_2 from "@effect/data/Option";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/Option";
|
|
5
|
+
import * as tsplus_module_5 from "@effect/data/ReadonlyArray";
|
|
6
|
+
import { get } from "@effect-app/prelude/utils";
|
|
7
|
+
import { OptimisticConcurrencyException } from "../../errors.js";
|
|
8
|
+
import objectHash from "object-hash";
|
|
9
|
+
export const makeETag = ({ _etag, ...e }) => ({
|
|
10
|
+
...e,
|
|
11
|
+
_etag: objectHash(e)
|
|
12
|
+
});
|
|
13
|
+
export const makeUpdateETag = (name) => (e, current) => tsplus_module_3.gen(function* ($) {
|
|
14
|
+
if (e._etag) {
|
|
15
|
+
yield* $(tsplus_module_1.encaseMaybeInEffect_(current, () => new OptimisticConcurrencyException(name, e.id, "", e._etag)));
|
|
16
|
+
}
|
|
17
|
+
if (tsplus_module_2.isSome(current) && current.value._etag !== e._etag) {
|
|
18
|
+
return yield* $(tsplus_module_3.fail(new OptimisticConcurrencyException(name, current.value.id, current.value._etag, e._etag)));
|
|
19
|
+
}
|
|
20
|
+
const newE = makeETag(e);
|
|
21
|
+
return newE;
|
|
22
|
+
});
|
|
23
|
+
export function codeFilter(filter) {
|
|
24
|
+
return (x) => filter.type === "startsWith"
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
+
? lowercaseIfString(x[filter.by]).startsWith(filter.value.toLowerCase())
|
|
27
|
+
? tsplus_module_2.some(x)
|
|
28
|
+
: tsplus_module_4.none
|
|
29
|
+
: filter.type === "endsWith"
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
? lowercaseIfString(x[filter.by]).endsWith(filter.value.toLowerCase())
|
|
32
|
+
? tsplus_module_2.some(x)
|
|
33
|
+
: tsplus_module_4.none
|
|
34
|
+
: filter.type === "contains"
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
37
|
+
? lowercaseIfString(x[filter.by]).includes(filter.value.toLowerCase())
|
|
38
|
+
? tsplus_module_2.some(x)
|
|
39
|
+
: tsplus_module_4.none
|
|
40
|
+
: filter.type === "join_find"
|
|
41
|
+
? filter.keys.some((k) => {
|
|
42
|
+
const value = get(x, k);
|
|
43
|
+
// we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
|
|
44
|
+
return (value
|
|
45
|
+
&& value.some((v) => compareCaseInsensitive(v[filter.valueKey], filter.value)));
|
|
46
|
+
})
|
|
47
|
+
? tsplus_module_2.some(x)
|
|
48
|
+
: tsplus_module_4.none
|
|
49
|
+
// TODO: support mixed or/and
|
|
50
|
+
: filter.mode === "or"
|
|
51
|
+
? filter
|
|
52
|
+
.where
|
|
53
|
+
.some((p) => {
|
|
54
|
+
const k = get(x, p.key);
|
|
55
|
+
switch (p.t) {
|
|
56
|
+
case "in":
|
|
57
|
+
return p.value.includes(k);
|
|
58
|
+
case "not-in":
|
|
59
|
+
return !p.value.includes(k);
|
|
60
|
+
case "lt":
|
|
61
|
+
return ltCaseInsensitive(k, p.value);
|
|
62
|
+
case "lte":
|
|
63
|
+
return lteCaseInsensitive(k, p.value);
|
|
64
|
+
case "gt":
|
|
65
|
+
return gtCaseInsensitive(k, p.value);
|
|
66
|
+
case "gte":
|
|
67
|
+
return gteCaseInsensitive(k, p.value);
|
|
68
|
+
case "contains":
|
|
69
|
+
return k.toLowerCase().includes(p.value.toLowerCase());
|
|
70
|
+
case "ends-with":
|
|
71
|
+
return k.toLowerCase().endsWith(p.value.toLowerCase());
|
|
72
|
+
case "starts-with":
|
|
73
|
+
return k.toLowerCase().startsWith(p.value.toLowerCase());
|
|
74
|
+
case "not-eq":
|
|
75
|
+
return !compareCaseInsensitive(k, p.value);
|
|
76
|
+
case "eq":
|
|
77
|
+
case undefined:
|
|
78
|
+
return compareCaseInsensitive(k, p.value);
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
? tsplus_module_2.some(x)
|
|
82
|
+
: tsplus_module_4.none
|
|
83
|
+
: filter
|
|
84
|
+
.where
|
|
85
|
+
.every((p) => {
|
|
86
|
+
const k = get(x, p.key);
|
|
87
|
+
switch (p.t) {
|
|
88
|
+
case "in":
|
|
89
|
+
return p.value.includes(k);
|
|
90
|
+
case "not-in":
|
|
91
|
+
return !p.value.includes(k);
|
|
92
|
+
case "lt":
|
|
93
|
+
return ltCaseInsensitive(k, p.value);
|
|
94
|
+
case "lte":
|
|
95
|
+
return lteCaseInsensitive(k, p.value);
|
|
96
|
+
case "gt":
|
|
97
|
+
return gtCaseInsensitive(k, p.value);
|
|
98
|
+
case "gte":
|
|
99
|
+
return gteCaseInsensitive(k, p.value);
|
|
100
|
+
case "contains":
|
|
101
|
+
return k.toLowerCase().includes(p.value.toLowerCase());
|
|
102
|
+
case "ends-with":
|
|
103
|
+
return k.toLowerCase().endsWith(p.value.toLowerCase());
|
|
104
|
+
case "starts-with":
|
|
105
|
+
return k.toLowerCase().startsWith(p.value.toLowerCase());
|
|
106
|
+
case "not-eq":
|
|
107
|
+
return p.key.includes(".-1.")
|
|
108
|
+
? get(x, p.key.split(".-1.")[0])
|
|
109
|
+
// TODO: or vs and
|
|
110
|
+
.every((_) => !compareCaseInsensitive(get(_, p.key.split(".-1.")[1]), p.value))
|
|
111
|
+
: !compareCaseInsensitive(k, p.value);
|
|
112
|
+
case "eq":
|
|
113
|
+
case undefined:
|
|
114
|
+
return p.key.includes(".-1.")
|
|
115
|
+
? get(x, p.key.split(".-1.")[0])
|
|
116
|
+
// TODO: or vs and
|
|
117
|
+
.some((_) => compareCaseInsensitive(get(_, p.key.split(".-1.")[1]), p.value))
|
|
118
|
+
: compareCaseInsensitive(k, p.value);
|
|
119
|
+
}
|
|
120
|
+
})
|
|
121
|
+
? tsplus_module_2.some(x)
|
|
122
|
+
: tsplus_module_4.none;
|
|
123
|
+
}
|
|
124
|
+
export function codeFilterJoinSelect(filter) {
|
|
125
|
+
return (x) => tsplus_module_5.filterMap(filter
|
|
126
|
+
.keys, (k) => {
|
|
127
|
+
const value = get(x, k);
|
|
128
|
+
// we mimic the behavior of cosmosdb; if the shape in db does not match what we're looking for, we imagine false hit
|
|
129
|
+
return value
|
|
130
|
+
? tsplus_module_2.some(tsplus_module_5.filterMap(value, (v) =>
|
|
131
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
132
|
+
compareCaseInsensitive(v[filter.valueKey], filter.value)
|
|
133
|
+
? tsplus_module_2.some({ ...v, _rootId: x.id })
|
|
134
|
+
: tsplus_module_4.none))
|
|
135
|
+
: tsplus_module_4.none;
|
|
136
|
+
})
|
|
137
|
+
.flatMap((_) => _);
|
|
138
|
+
}
|
|
139
|
+
function lowercaseIfString(val) {
|
|
140
|
+
if (typeof val === "string") {
|
|
141
|
+
return val.toLowerCase();
|
|
142
|
+
}
|
|
143
|
+
return val;
|
|
144
|
+
}
|
|
145
|
+
function compareCaseInsensitive(valA, valB) {
|
|
146
|
+
return typeof valB === "string" && typeof valA === "string"
|
|
147
|
+
? valA.toLowerCase() === valB.toLowerCase()
|
|
148
|
+
: valA === valB;
|
|
149
|
+
}
|
|
150
|
+
function ltCaseInsensitive(valA, valB) {
|
|
151
|
+
return typeof valB === "string" && typeof valA === "string"
|
|
152
|
+
? valA.toLowerCase() < valB.toLowerCase()
|
|
153
|
+
: valA < valB;
|
|
154
|
+
}
|
|
155
|
+
function lteCaseInsensitive(valA, valB) {
|
|
156
|
+
return typeof valB === "string" && typeof valA === "string"
|
|
157
|
+
? valA.toLowerCase() <= valB.toLowerCase()
|
|
158
|
+
: valA <= valB;
|
|
159
|
+
}
|
|
160
|
+
function gtCaseInsensitive(valA, valB) {
|
|
161
|
+
return typeof valB === "string" && typeof valA === "string"
|
|
162
|
+
? valA.toLowerCase() > valB.toLowerCase()
|
|
163
|
+
: valA > valB;
|
|
164
|
+
}
|
|
165
|
+
function gteCaseInsensitive(valA, valB) {
|
|
166
|
+
return typeof valB === "string" && typeof valA === "string"
|
|
167
|
+
? valA.toLowerCase() >= valB.toLowerCase()
|
|
168
|
+
: valA >= valB;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWhFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQTtBQUVwQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQ0wsQ0FBQztJQUNDLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVEsQ0FBQTtBQUNYLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQXdELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDcEcsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztJQUNwQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDWCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04scUNBQUEsT0FBTyxFQUNXLEdBQUcsRUFBRSxDQUFDLElBQUksOEJBQThCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyRixDQUFBO0tBQ0Y7SUFDRCxJQUFJLHVCQUFBLE9BQU8sQ0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDdkQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2IscUJBQVksSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtB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QUFDLFdBQVcsRUFBRTtRQUN6QyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQ3hFLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDekQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQzFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQXNCLEVBQUUsSUFBc0I7SUFDdkUsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDekMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7QUFDakIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUN4RSxPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3pELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUMxQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQTtBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0IH0gZnJvbSBcIkBlZmZlY3QtYXBwL3ByZWx1ZGUvdXRpbHNcIlxuXG5pbXBvcnQgeyBPcHRpbWlzdGljQ29uY3VycmVuY3lFeGNlcHRpb24gfSBmcm9tIFwiLi4vLi4vZXJyb3JzLmpzXCJcblxuaW1wb3J0IHR5cGUgeyBGaWx0ZXIsIEZpbHRlckpvaW5TZWxlY3QsIFBlcnNpc3RlbmNlTW9kZWxUeXBlLCBTdXBwb3J0ZWRWYWx1ZXMyIH0gZnJvbSBcIi4vc2VydmljZS5qc1wiXG5cbmltcG9ydCBvYmplY3RIYXNoIGZyb20gXCJvYmplY3QtaGFzaFwiXG5cbmV4cG9ydCBjb25zdCBtYWtlRVRhZyA9IDxFIGV4dGVuZHMgUGVyc2lzdGVuY2VNb2RlbFR5cGU8SWQ+LCBJZCBleHRlbmRzIHN0cmluZz4oXG4gIHsgX2V0YWcsIC4uLmUgfTogRVxuKTogRSA9PlxuICAoe1xuICAgIC4uLmUsXG4gICAgX2V0YWc6IG9iamVjdEhhc2goZSlcbiAgfSkgYXMgYW55XG5leHBvcnQgY29uc3QgbWFrZVVwZGF0ZUVUYWcgPVxuICAobmFtZTogc3RyaW5nKSA9PiA8RSBleHRlbmRzIFBlcnNpc3RlbmNlTW9kZWxUeXBlPElkPiwgSWQgZXh0ZW5kcyBzdHJpbmc+KGU6IEUsIGN1cnJlbnQ6IE9wdGlvbjxFPikgPT5cbiAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKigkKSB7XG4gICAgICBpZiAoZS5fZXRhZykge1xuICAgICAgICB5aWVsZCogJChcbiAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgICAuZW5jYXNlSW5FZmZlY3QoKCkgPT4gbmV3IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbihuYW1lLCBlLmlkLCBcIlwiLCBlLl9ldGFnKSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnQuaXNTb21lKCkgJiYgY3VycmVudC52YWx1ZS5fZXRhZyAhPT0gZS5fZXRhZykge1xuICAgICAgICByZXR1cm4geWllbGQqICQoXG4gICAgICAgICAgRWZmZWN0LmZhaWwobmV3IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbihuYW1lLCBjdXJyZW50LnZhbHVlLmlkLCBjdXJyZW50LnZhbHVlLl9ldGFnLCBlLl9ldGFnKSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3RSA9IG1ha2VFVGFnKGUpXG4gICAgICByZXR1cm4gbmV3RVxuICAgIH0pXG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlRmlsdGVyPEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgTkUgZXh0ZW5kcyBFPihmaWx0ZXI6IEZpbHRlcjxORT4pIHtcbiAgcmV0dXJuICh4OiBFKSA9PlxuICAgIGZpbHRlci50eXBlID09PSBcInN0YXJ0c1dpdGhcIlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgID8gbG93ZXJjYXNlSWZTdHJpbmcoKHggYXMgYW55KVtmaWx0ZXIuYnldKS5zdGFydHNXaXRoKGZpbHRlci52YWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICA/IE9wdGlvbih4IGFzIHVua25vd24gYXMgTkUpXG4gICAgICAgIDogT3B0aW9uLm5vbmVcbiAgICAgIDogZmlsdGVyLnR5cGUgPT09IFwiZW5kc1dpdGhcIlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgID8gbG93ZXJjYXNlSWZTdHJpbmcoKHggYXMgYW55KVtmaWx0ZXIuYnldKS5lbmRzV2l0aChmaWx0ZXIudmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgPyBPcHRpb24oeCBhcyB1bmtub3duIGFzIE5FKVxuICAgICAgICA6IE9wdGlvbi5ub25lXG4gICAgICA6IGZpbHRlci50eXBlID09PSBcImNvbnRhaW5zXCJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICA/IGxvd2VyY2FzZUlmU3RyaW5nKCh4IGFzIGFueSlbZmlsdGVyLmJ5XSkuaW5jbHVkZXMoZmlsdGVyLnZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgOiBmaWx0ZXIudHlwZSA9PT0gXCJqb2luX2ZpbmRcIlxuICAgICAgPyBmaWx0ZXIua2V5cy5zb21lKChrKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoeCwgaykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICAgICAgICAgIC8vIHdlIG1pbWljIHRoZSBiZWhhdmlvciBvZiBjb3Ntb3NkYjsgaWYgdGhlIHNoYXBlIGluIGRiIGRvZXMgbm90IG1hdGNoIHdoYXQgd2UncmUgbG9va2luZyBmb3IsIHdlIGltYWdpbmUgZmFsc2UgaGl0XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAmJiB2YWx1ZS5zb21lKCh2KSA9PiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKHZbZmlsdGVyLnZhbHVlS2V5XSwgZmlsdGVyLnZhbHVlKSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgLy8gVE9ETzogc3VwcG9ydCBtaXhlZCBvci9hbmRcbiAgICAgIDogZmlsdGVyLm1vZGUgPT09IFwib3JcIlxuICAgICAgPyBmaWx0ZXJcbiAgICAgICAgICAud2hlcmVcbiAgICAgICAgICAuc29tZSgocCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgayA9IGdldCh4LCBwLmtleSlcbiAgICAgICAgICAgIHN3aXRjaCAocC50KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJpblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBwLnZhbHVlLmluY2x1ZGVzKGspXG4gICAgICAgICAgICAgIGNhc2UgXCJub3QtaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gIXAudmFsdWUuaW5jbHVkZXMoaylcbiAgICAgICAgICAgICAgY2FzZSBcImx0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGx0Q2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJsdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbHRlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJndFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBndENhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZ3RlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGd0ZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiY29udGFpbnNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKChwLnZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcImVuZHMtd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoayBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoKHAudmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwic3RhcnRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoKHAudmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWVxXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJlcVwiOlxuICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgOiBmaWx0ZXJcbiAgICAgICAgICAud2hlcmVcbiAgICAgICAgICAuZXZlcnkoKHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBnZXQoeCwgcC5rZXkpXG4gICAgICAgICAgICBzd2l0Y2ggKHAudCkge1xuICAgICAgICAgICAgICBjYXNlIFwiaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcC52YWx1ZS5pbmNsdWRlcyhrKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWluXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFwLnZhbHVlLmluY2x1ZGVzKGspXG4gICAgICAgICAgICAgIGNhc2UgXCJsdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBsdENhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwibHRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGx0ZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZ3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZ3RDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImd0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBndGVDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImNvbnRhaW5zXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygocC52YWx1ZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgIGNhc2UgXCJlbmRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKChwLnZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcInN0YXJ0cy13aXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKChwLnZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcIm5vdC1lcVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBwLmtleS5pbmNsdWRlcyhcIi4tMS5cIilcbiAgICAgICAgICAgICAgICAgID8gKGdldCh4LCBwLmtleS5zcGxpdChcIi4tMS5cIilbMF0pIGFzIGFueVtdKVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBvciB2cyBhbmRcbiAgICAgICAgICAgICAgICAgICAgLmV2ZXJ5KChfKSA9PiAhY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShnZXQoXywgcC5rZXkuc3BsaXQoXCIuLTEuXCIpWzFdISksIHAudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgOiAhY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZXFcIjpcbiAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHAua2V5LmluY2x1ZGVzKFwiLi0xLlwiKVxuICAgICAgICAgICAgICAgICAgPyAoZ2V0KHgsIHAua2V5LnNwbGl0KFwiLi0xLlwiKVswXSkgYXMgYW55W10pXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG9yIHZzIGFuZFxuICAgICAgICAgICAgICAgICAgICAuc29tZSgoXykgPT4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShnZXQoXywgcC5rZXkuc3BsaXQoXCIuLTEuXCIpWzFdISksIHAudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgOiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgIDogT3B0aW9uLm5vbmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZGVGaWx0ZXJKb2luU2VsZWN0PEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgTkU+KFxuICBmaWx0ZXI6IEZpbHRlckpvaW5TZWxlY3Rcbikge1xuICByZXR1cm4gKHg6IEUpID0+XG4gICAgZmlsdGVyXG4gICAgICAua2V5c1xuICAgICAgLmZpbHRlck1hcCgoaykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldCh4LCBrKVxuICAgICAgICAvLyB3ZSBtaW1pYyB0aGUgYmVoYXZpb3Igb2YgY29zbW9zZGI7IGlmIHRoZSBzaGFwZSBpbiBkYiBkb2VzIG5vdCBtYXRjaCB3aGF0IHdlJ3JlIGxvb2tpbmcgZm9yLCB3ZSBpbWFnaW5lIGZhbHNlIGhpdFxuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICA/IE9wdGlvbihcbiAgICAgICAgICAgICh2YWx1ZSBhcyByZWFkb25seSBORVtdKS5maWx0ZXJNYXAoKHYpID0+XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmUoKHYgYXMgYW55KVtmaWx0ZXIudmFsdWVLZXldLCBmaWx0ZXIudmFsdWUpXG4gICAgICAgICAgICAgICAgPyBPcHRpb24oeyAuLi52LCBfcm9vdElkOiB4LmlkIH0pXG4gICAgICAgICAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICA6IE9wdGlvbi5ub25lXG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKF8pID0+IF8pXG59XG5cbmZ1bmN0aW9uIGxvd2VyY2FzZUlmU3RyaW5nPFQ+KHZhbDogVCkge1xuICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB2YWwudG9Mb3dlckNhc2UoKVxuICB9XG4gIHJldHVybiB2YWxcbn1cblxuZnVuY3Rpb24gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZSh2YWxBOiB1bmtub3duLCB2YWxCOiB1bmtub3duKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsQiA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgdmFsQSA9PT0gXCJzdHJpbmdcIlxuICAgID8gdmFsQS50b0xvd2VyQ2FzZSgpID09PSB2YWxCLnRvTG93ZXJDYXNlKClcbiAgICA6IHZhbEEgPT09IHZhbEJcbn1cblxuZnVuY3Rpb24gbHRDYXNlSW5zZW5zaXRpdmUodmFsQTogU3VwcG9ydGVkVmFsdWVzMiwgdmFsQjogU3VwcG9ydGVkVmFsdWVzMikge1xuICByZXR1cm4gdHlwZW9mIHZhbEIgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbEEgPT09IFwic3RyaW5nXCJcbiAgICA/IHZhbEEudG9Mb3dlckNhc2UoKSA8IHZhbEIudG9Mb3dlckNhc2UoKVxuICAgIDogdmFsQSA8IHZhbEJcbn1cblxuZnVuY3Rpb24gbHRlQ2FzZUluc2Vuc2l0aXZlKHZhbEE6IFN1cHBvcnRlZFZhbHVlczIsIHZhbEI6IFN1cHBvcnRlZFZhbHVlczIpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWxCID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWxBID09PSBcInN0cmluZ1wiXG4gICAgPyB2YWxBLnRvTG93ZXJDYXNlKCkgPD0gdmFsQi50b0xvd2VyQ2FzZSgpXG4gICAgOiB2YWxBIDw9IHZhbEJcbn1cblxuZnVuY3Rpb24gZ3RDYXNlSW5zZW5zaXRpdmUodmFsQTogU3VwcG9ydGVkVmFsdWVzMiwgdmFsQjogU3VwcG9ydGVkVmFsdWVzMikge1xuICByZXR1cm4gdHlwZW9mIHZhbEIgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbEEgPT09IFwic3RyaW5nXCJcbiAgICA/IHZhbEEudG9Mb3dlckNhc2UoKSA+IHZhbEIudG9Mb3dlckNhc2UoKVxuICAgIDogdmFsQSA+IHZhbEJcbn1cblxuZnVuY3Rpb24gZ3RlQ2FzZUluc2Vuc2l0aXZlKHZhbEE6IFN1cHBvcnRlZFZhbHVlczIsIHZhbEI6IFN1cHBvcnRlZFZhbHVlczIpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWxCID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWxBID09PSBcInN0cmluZ1wiXG4gICAgPyB2YWxBLnRvTG93ZXJDYXNlKCkgPj0gdmFsQi50b0xvd2VyQ2FzZSgpXG4gICAgOiB2YWxBID49IHZhbEJcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
84a172eae432ab308b0da7a1450443906102c34d10c90afdf2a73f756cf96a30
|
package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.content
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/infra/filter";
|
|
2
|
+
import { makeFilters } from "../../filter.js";
|
|
3
|
+
import { buildWhereCosmosQuery } from "./Cosmos.js";
|
|
4
|
+
const f_ = makeFilters();
|
|
5
|
+
export function makeSomethingFilter_(filter) {
|
|
6
|
+
return filter(f_);
|
|
7
|
+
}
|
|
8
|
+
export function somethingsWhere(makeWhere, mode) {
|
|
9
|
+
return makeSomethingFilter_((f) => {
|
|
10
|
+
const m = makeWhere ? makeWhere(f) : [];
|
|
11
|
+
return ({
|
|
12
|
+
mode,
|
|
13
|
+
where: (Array.isArray(m) ? m : [m])
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
test("works", () => {
|
|
18
|
+
expect(buildWhereCosmosQuery(somethingsWhere((_) => _("b", (_) => "b2")), "Somethings", "importedMarkerId", undefined, 10))
|
|
19
|
+
.toEqual({
|
|
20
|
+
"parameters": [
|
|
21
|
+
{
|
|
22
|
+
"name": "@id",
|
|
23
|
+
"value": "importedMarkerId"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "@v0",
|
|
27
|
+
"value": "b2"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"query": `
|
|
31
|
+
SELECT f
|
|
32
|
+
FROM Somethings AS f
|
|
33
|
+
|
|
34
|
+
WHERE f.id != @id AND LOWER(f.b) = LOWER(@v0)
|
|
35
|
+
OFFSET 0 LIMIT 10`
|
|
36
|
+
});
|
|
37
|
+
expect(buildWhereCosmosQuery(somethingsWhere((_) => _("d.-1.a", (_) => tsplus_module_1.$isnt(_, "a2"))), "Somethings", "importedMarkerId", undefined, 10))
|
|
38
|
+
.toEqual({
|
|
39
|
+
"parameters": [
|
|
40
|
+
{
|
|
41
|
+
"name": "@id",
|
|
42
|
+
"value": "importedMarkerId"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "@v0",
|
|
46
|
+
"value": "a2"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"query": `
|
|
50
|
+
SELECT f
|
|
51
|
+
FROM Somethings AS f
|
|
52
|
+
JOIN d IN f.d
|
|
53
|
+
WHERE f.id != @id AND LOWER(d.a) <> LOWER(@v0)
|
|
54
|
+
OFFSET 0 LIMIT 10`
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL0Nvc21vcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRW5ELE1BQU0sRUFBRSxHQUFHLFdBQVcsRUFBYSxDQUFBO0FBR25DLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFxRDtJQUN4RixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsU0FFZ0MsRUFDaEMsSUFBbUI7SUFFbkIsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDdkMsT0FBTyxDQUFDO1lBQ04sSUFBSTtZQUNKLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQW1DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWlDO1NBQ3RHLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQWVELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO0lBQ2pCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDMUIsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMzQyxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxFQUFFLENBQ0gsQ0FBQztTQUNDLE9BQU8sQ0FBQztRQUNQLFlBQVksRUFBRTtZQUNaO2dCQUNFLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRSxrQkFBa0I7YUFDNUI7WUFDRDtnQkFDRSxNQUFNLEVBQUUsS0FBSztnQkFDYixPQUFPLEVBQUUsSUFBSTthQUNkO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7Ozs7O3NCQUtPO0tBQ2pCLENBQUMsQ0FBQTtJQUVKLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDMUIsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxzQkFBQSxDQUFDLEVBQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUN6RCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxFQUFFLENBQ0gsQ0FBQztTQUNDLE9BQU8sQ0FBQztRQUNQLFlBQVksRUFBRTtZQUNaO2dCQUNFLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRSxrQkFBa0I7YUFDNUI7WUFDRDtnQkFDRSxNQUFNLEVBQUUsS0FBSztnQkFDYixPQUFPLEVBQUUsSUFBSTthQUNkO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7Ozs7O3NCQUtPO0tBQ2pCLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdG9yZVdoZXJlRmlsdGVyLCBXaGVyZSB9IGZyb20gXCJAZWZmZWN0LWFwcC9pbmZyYS9zZXJ2aWNlcy9TdG9yZVwiXG5pbXBvcnQgeyBtYWtlRmlsdGVycyB9IGZyb20gXCIuLi8uLi9maWx0ZXIuanNcIlxuaW1wb3J0IHsgYnVpbGRXaGVyZUNvc21vc1F1ZXJ5IH0gZnJvbSBcIi4vQ29zbW9zLmpzXCJcblxuY29uc3QgZl8gPSBtYWtlRmlsdGVyczxTb21ldGhpbmc+KClcbmV4cG9ydCB0eXBlIFNvbWV0aGluZ1doZXJlRmlsdGVyID0gdHlwZW9mIGZfXG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlU29tZXRoaW5nRmlsdGVyXyhmaWx0ZXI6IChmOiBTb21ldGhpbmdXaGVyZUZpbHRlcikgPT4gU3RvcmVXaGVyZUZpbHRlcikge1xuICByZXR1cm4gZmlsdGVyKGZfKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZXRoaW5nc1doZXJlKFxuICBtYWtlV2hlcmU6IChcbiAgICBmOiBTb21ldGhpbmdXaGVyZUZpbHRlclxuICApID0+IFdoZXJlIHwgW1doZXJlLCAuLi5XaGVyZVtdXSxcbiAgbW9kZT86IFwib3JcIiB8IFwiYW5kXCJcbikge1xuICByZXR1cm4gbWFrZVNvbWV0aGluZ0ZpbHRlcl8oKGYpID0+IHtcbiAgICBjb25zdCBtID0gbWFrZVdoZXJlID8gbWFrZVdoZXJlKGYpIDogW11cbiAgICByZXR1cm4gKHtcbiAgICAgIG1vZGUsXG4gICAgICB3aGVyZTogKEFycmF5LmlzQXJyYXkobSkgPyBtIGFzIHVua25vd24gYXMgW1doZXJlLCAuLi5XaGVyZVtdXSA6IFttXSkgYXMgcmVhZG9ubHkgW1doZXJlLCAuLi5XaGVyZVtdXVxuICAgIH0pXG4gIH0pXG59XG5cbnR5cGUgU29tZXRoaW5nRWxzZSA9IHtcbiAgYTogc3RyaW5nXG4gIGI6IG51bWJlclxufVxuXG50eXBlIFNvbWV0aGluZyA9IHtcbiAgYTogbnVtYmVyXG4gIGlkOiBzdHJpbmdcbiAgYjogc3RyaW5nXG4gIGM6IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGQ6IHJlYWRvbmx5IFNvbWV0aGluZ0Vsc2VbXVxufVxuXG50ZXN0KFwid29ya3NcIiwgKCkgPT4ge1xuICBleHBlY3QoYnVpbGRXaGVyZUNvc21vc1F1ZXJ5KFxuICAgIHNvbWV0aGluZ3NXaGVyZSgoXykgPT4gXyhcImJcIiwgKF8pID0+IFwiYjJcIikpLFxuICAgIFwiU29tZXRoaW5nc1wiLFxuICAgIFwiaW1wb3J0ZWRNYXJrZXJJZFwiLFxuICAgIHVuZGVmaW5lZCxcbiAgICAxMFxuICApKVxuICAgIC50b0VxdWFsKHtcbiAgICAgIFwicGFyYW1ldGVyc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJAaWRcIixcbiAgICAgICAgICBcInZhbHVlXCI6IFwiaW1wb3J0ZWRNYXJrZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJAdjBcIixcbiAgICAgICAgICBcInZhbHVlXCI6IFwiYjJcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJxdWVyeVwiOiBgXG4gICAgU0VMRUNUIGZcbiAgICBGUk9NIFNvbWV0aGluZ3MgQVMgZlxuICAgIFxuICAgIFdIRVJFIGYuaWQgIT0gQGlkIEFORCBMT1dFUihmLmIpID0gTE9XRVIoQHYwKVxuICAgIE9GRlNFVCAwIExJTUlUIDEwYFxuICAgIH0pXG5cbiAgZXhwZWN0KGJ1aWxkV2hlcmVDb3Ntb3NRdWVyeShcbiAgICBzb21ldGhpbmdzV2hlcmUoKF8pID0+IF8oXCJkLi0xLmFcIiwgKF8pID0+IF8uJGlzbnQoXCJhMlwiKSkpLFxuICAgIFwiU29tZXRoaW5nc1wiLFxuICAgIFwiaW1wb3J0ZWRNYXJrZXJJZFwiLFxuICAgIHVuZGVmaW5lZCxcbiAgICAxMFxuICApKVxuICAgIC50b0VxdWFsKHtcbiAgICAgIFwicGFyYW1ldGVyc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJAaWRcIixcbiAgICAgICAgICBcInZhbHVlXCI6IFwiaW1wb3J0ZWRNYXJrZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJAdjBcIixcbiAgICAgICAgICBcInZhbHVlXCI6IFwiYTJcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJxdWVyeVwiOiBgXG4gICAgU0VMRUNUIGZcbiAgICBGUk9NIFNvbWV0aGluZ3MgQVMgZlxuICAgIEpPSU4gZCBJTiBmLmRcbiAgICBXSEVSRSBmLmlkICE9IEBpZCBBTkQgTE9XRVIoZC5hKSA8PiBMT1dFUihAdjApXG4gICAgT0ZGU0VUIDAgTElNSVQgMTBgXG4gICAgfSlcbn0pXG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4e41249ba004a7c0dc89e9306f2fcedc66585f6a43cff02e094f0d73d723bf8d
|
package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.content
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/prelude/utils";
|
|
2
|
+
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
3
|
+
import * as tsplus_module_3 from "@effect/data/Debug";
|
|
4
|
+
/**
|
|
5
|
+
* @tsplus fluent effect/io/Effect instrument
|
|
6
|
+
*/
|
|
7
|
+
export function instr(self, name, properties) {
|
|
8
|
+
return tsplus_module_3.untraced(() => tsplus_module_2.logSpan(tsplus_module_2.tap(self, () => tsplus_module_2.logAnnotate(tsplus_module_2.logDebug(`instrumented`), "properties", tsplus_module_1.RecordPretty(tsplus_module_1.object$((properties || {}))))), name));
|
|
9
|
+
// trackMetric(name, time, properties))
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvaW5zdHJ1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQVUsSUFBcUIsRUFBRSxJQUFZLEVBQUUsVUFBbUM7SUFDckcsT0FBTyx5QkFBZSxHQUFHLEVBQUUsQ0FDekIsd0JBQUEsb0JBQUEsSUFBSSxFQUNHLEdBQUcsRUFBRSxDQUFDLDRCQUFBLHlCQUFnQixjQUFjLENBQUMsRUFBYSxZQUFZLHVEQUFFLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxHQUFXLENBQUMsRUFDMUYsSUFBSSxDQUFDLENBQ2pCLENBQUE7SUFDRCx1Q0FBdUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHRzcGx1cyBmbHVlbnQgZWZmZWN0L2lvL0VmZmVjdCBpbnN0cnVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnN0cjxSLCBFLCBBPihzZWxmOiBFZmZlY3Q8UiwgRSwgQT4sIG5hbWU6IHN0cmluZywgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgcmV0dXJuIERlYnVnLnVudHJhY2VkKCgpID0+XG4gICAgc2VsZlxuICAgICAgLnRhcCgoKSA9PiBFZmZlY3QubG9nRGVidWcoYGluc3RydW1lbnRlZGApLmxvZ0Fubm90YXRlKFwicHJvcGVydGllc1wiLCAocHJvcGVydGllcyB8fCB7fSkuJCQucHJldHR5KSlcbiAgICAgIC5sb2dTcGFuKG5hbWUpXG4gIClcbiAgLy8gdHJhY2tNZXRyaWMobmFtZSwgdGltZSwgcHJvcGVydGllcykpXG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0958fd132e2c918acec7e021223aec95701d820ac3efbcb7b6f5c96200d7c3ad
|