@dxos/effect 0.8.4-main.f5c0578 → 0.8.4-main.fbb7a13
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/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
- package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +417 -237
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing.mjs +38 -0
- package/dist/lib/browser/testing.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +417 -237
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing.mjs +38 -0
- package/dist/lib/node-esm/testing.mjs.map +7 -0
- package/dist/types/src/RuntimeProvider.d.ts +21 -0
- package/dist/types/src/RuntimeProvider.d.ts.map +1 -0
- package/dist/types/src/ast.d.ts +36 -22
- package/dist/types/src/ast.d.ts.map +1 -1
- package/dist/types/src/atom-kvs.d.ts +19 -0
- package/dist/types/src/atom-kvs.d.ts.map +1 -0
- package/dist/types/src/context.d.ts +2 -1
- package/dist/types/src/context.d.ts.map +1 -1
- package/dist/types/src/dynamic-runtime.d.ts +56 -0
- package/dist/types/src/dynamic-runtime.d.ts.map +1 -0
- package/dist/types/src/dynamic-runtime.test.d.ts +2 -0
- package/dist/types/src/dynamic-runtime.test.d.ts.map +1 -0
- package/dist/types/src/errors.d.ts +35 -1
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +5 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/interrupt.test.d.ts +2 -0
- package/dist/types/src/interrupt.test.d.ts.map +1 -0
- package/dist/types/src/{jsonPath.d.ts → json-path.d.ts} +12 -4
- package/dist/types/src/json-path.d.ts.map +1 -0
- package/dist/types/src/json-path.test.d.ts +2 -0
- package/dist/types/src/json-path.test.d.ts.map +1 -0
- package/dist/types/src/otel.d.ts +17 -0
- package/dist/types/src/otel.d.ts.map +1 -0
- package/dist/types/src/otel.test.d.ts +2 -0
- package/dist/types/src/otel.test.d.ts.map +1 -0
- package/dist/types/src/resource.d.ts +6 -2
- package/dist/types/src/resource.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts +25 -2
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/url.d.ts +3 -1
- package/dist/types/src/url.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -9
- package/src/RuntimeProvider.ts +35 -0
- package/src/ast.test.ts +12 -9
- package/src/ast.ts +119 -92
- package/src/atom-kvs.ts +35 -0
- package/src/context.ts +2 -1
- package/src/dynamic-runtime.test.ts +465 -0
- package/src/dynamic-runtime.ts +195 -0
- package/src/errors.test.ts +1 -1
- package/src/errors.ts +90 -22
- package/src/index.ts +5 -3
- package/src/interrupt.test.ts +35 -0
- package/src/{jsonPath.test.ts → json-path.test.ts} +47 -8
- package/src/{jsonPath.ts → json-path.ts} +29 -4
- package/src/layers.test.ts +10 -4
- package/src/otel.test.ts +126 -0
- package/src/otel.ts +45 -0
- package/src/resource.test.ts +3 -3
- package/src/resource.ts +10 -5
- package/src/sanity.test.ts +30 -15
- package/src/testing.ts +33 -2
- package/src/url.test.ts +1 -1
- package/src/url.ts +5 -2
- package/dist/types/src/jsonPath.d.ts.map +0 -1
- package/dist/types/src/jsonPath.test.d.ts +0 -2
- package/dist/types/src/jsonPath.test.d.ts.map +0 -1
|
@@ -1,70 +1,63 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
__export
|
|
4
|
+
} from "./chunk-HSLMI22Q.mjs";
|
|
2
5
|
|
|
3
6
|
// src/ast.ts
|
|
4
|
-
import
|
|
5
|
-
import
|
|
7
|
+
import * as Function from "effect/Function";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
9
|
+
import * as Schema from "effect/Schema";
|
|
10
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
6
11
|
import { invariant } from "@dxos/invariant";
|
|
7
12
|
import { isNonNullable } from "@dxos/util";
|
|
8
13
|
var __dxlog_file = "/__w/dxos/dxos/packages/common/effect/src/ast.ts";
|
|
9
|
-
var
|
|
10
|
-
if (SchemaAST.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
if (SchemaAST.isBooleanKeyword(node)) {
|
|
20
|
-
return "boolean";
|
|
21
|
-
}
|
|
22
|
-
if (SchemaAST.isEnums(node)) {
|
|
23
|
-
return "enum";
|
|
24
|
-
}
|
|
25
|
-
if (SchemaAST.isLiteral(node)) {
|
|
26
|
-
return "literal";
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var isSimpleType = (node) => !!getSimpleType(node);
|
|
30
|
-
(function(SimpleType2) {
|
|
31
|
-
SimpleType2.getDefaultValue = (type) => {
|
|
32
|
-
switch (type) {
|
|
33
|
-
case "string": {
|
|
34
|
-
return "";
|
|
35
|
-
}
|
|
36
|
-
case "number": {
|
|
37
|
-
return 0;
|
|
38
|
-
}
|
|
39
|
-
case "boolean": {
|
|
40
|
-
return false;
|
|
14
|
+
var reduceRefinements = (type, refinements = []) => {
|
|
15
|
+
if (SchemaAST.isRefinement(type)) {
|
|
16
|
+
const annotations = type.annotations;
|
|
17
|
+
const filter = type.filter;
|
|
18
|
+
const nextType = {
|
|
19
|
+
...type.from,
|
|
20
|
+
annotations: {
|
|
21
|
+
...type.annotations,
|
|
22
|
+
...annotations
|
|
41
23
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
24
|
+
};
|
|
25
|
+
return reduceRefinements(nextType, [
|
|
26
|
+
...refinements,
|
|
27
|
+
filter
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
type,
|
|
32
|
+
refinements
|
|
49
33
|
};
|
|
50
|
-
}
|
|
51
|
-
var
|
|
34
|
+
};
|
|
35
|
+
var getBaseType = (prop) => {
|
|
36
|
+
const encoded = SchemaAST.encodedBoundAST(prop.type);
|
|
37
|
+
const unwrapped = prop.isOptional && encoded._tag === "Union" ? encoded.types[0] : encoded;
|
|
38
|
+
return reduceRefinements(unwrapped);
|
|
39
|
+
};
|
|
40
|
+
var getProperties = (ast) => {
|
|
41
|
+
const properties = SchemaAST.getPropertySignatures(ast);
|
|
42
|
+
return properties.map((prop) => ({
|
|
43
|
+
...getBaseType(prop),
|
|
44
|
+
name: prop.name,
|
|
45
|
+
isOptional: prop.isOptional,
|
|
46
|
+
isReadonly: prop.isReadonly
|
|
47
|
+
}));
|
|
48
|
+
};
|
|
49
|
+
var VisitResult = /* @__PURE__ */ (function(VisitResult2) {
|
|
52
50
|
VisitResult2[VisitResult2["CONTINUE"] = 0] = "CONTINUE";
|
|
53
51
|
VisitResult2[VisitResult2["SKIP"] = 1] = "SKIP";
|
|
54
52
|
VisitResult2[VisitResult2["EXIT"] = 2] = "EXIT";
|
|
55
53
|
return VisitResult2;
|
|
56
|
-
}({});
|
|
57
|
-
var defaultTest = isSimpleType;
|
|
54
|
+
})({});
|
|
58
55
|
var visit = (node, testOrVisitor, visitor) => {
|
|
59
|
-
|
|
60
|
-
visitNode(node, defaultTest, testOrVisitor);
|
|
61
|
-
} else {
|
|
62
|
-
visitNode(node, testOrVisitor, visitor);
|
|
63
|
-
}
|
|
56
|
+
visitNode(node, testOrVisitor, visitor);
|
|
64
57
|
};
|
|
65
58
|
var visitNode = (node, test, visitor, path = [], depth = 0) => {
|
|
66
|
-
const
|
|
67
|
-
const result =
|
|
59
|
+
const $result = test?.(node, path, depth);
|
|
60
|
+
const result = $result === void 0 ? 0 : typeof $result === "boolean" ? $result ? 0 : 1 : $result;
|
|
68
61
|
if (result === 2) {
|
|
69
62
|
return result;
|
|
70
63
|
}
|
|
@@ -117,6 +110,12 @@ var findNode = (node, test) => {
|
|
|
117
110
|
return child;
|
|
118
111
|
}
|
|
119
112
|
}
|
|
113
|
+
for (const prop of getIndexSignatures(node)) {
|
|
114
|
+
const child = findNode(prop.type, test);
|
|
115
|
+
if (child) {
|
|
116
|
+
return child;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
120
119
|
} else if (SchemaAST.isTupleType(node)) {
|
|
121
120
|
for (const [_, element] of node.elements.entries()) {
|
|
122
121
|
const child = findNode(element.type, test);
|
|
@@ -125,12 +124,13 @@ var findNode = (node, test) => {
|
|
|
125
124
|
}
|
|
126
125
|
}
|
|
127
126
|
} else if (SchemaAST.isUnion(node)) {
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
if (isLiteralUnion(node)) {
|
|
128
|
+
return void 0;
|
|
129
|
+
}
|
|
130
|
+
for (const type of node.types) {
|
|
131
|
+
const child = findNode(type, test);
|
|
132
|
+
if (child) {
|
|
133
|
+
return child;
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
} else if (SchemaAST.isRefinement(node)) {
|
|
@@ -143,7 +143,7 @@ var findProperty = (schema, path) => {
|
|
|
143
143
|
const typeNode = findNode(node, SchemaAST.isTypeLiteral);
|
|
144
144
|
invariant(typeNode, void 0, {
|
|
145
145
|
F: __dxlog_file,
|
|
146
|
-
L:
|
|
146
|
+
L: 235,
|
|
147
147
|
S: void 0,
|
|
148
148
|
A: [
|
|
149
149
|
"typeNode",
|
|
@@ -168,16 +168,16 @@ var defaultAnnotations = {
|
|
|
168
168
|
["NumberKeyword"]: SchemaAST.numberKeyword,
|
|
169
169
|
["BooleanKeyword"]: SchemaAST.booleanKeyword
|
|
170
170
|
};
|
|
171
|
-
var
|
|
172
|
-
const id = pipe(SchemaAST.getIdentifierAnnotation(node), Option.getOrUndefined);
|
|
173
|
-
const value = pipe(SchemaAST.getAnnotation(annotationId)(node), Option.getOrUndefined);
|
|
171
|
+
var getAnnotation2 = (annotationId, noDefault = true) => (node) => {
|
|
172
|
+
const id = Function.pipe(SchemaAST.getIdentifierAnnotation(node), Option.getOrUndefined);
|
|
173
|
+
const value = Function.pipe(SchemaAST.getAnnotation(annotationId)(node), Option.getOrUndefined);
|
|
174
174
|
if (noDefault && (value === defaultAnnotations[node._tag]?.annotations[annotationId] || value === id)) {
|
|
175
175
|
return void 0;
|
|
176
176
|
}
|
|
177
177
|
return value;
|
|
178
178
|
};
|
|
179
179
|
var findAnnotation = (node, annotationId, noDefault = true) => {
|
|
180
|
-
const getAnnotationById =
|
|
180
|
+
const getAnnotationById = getAnnotation2(annotationId, noDefault);
|
|
181
181
|
const getBaseAnnotation = (node2) => {
|
|
182
182
|
const value = getAnnotationById(node2);
|
|
183
183
|
if (value !== void 0) {
|
|
@@ -197,13 +197,22 @@ var isOption = (node) => {
|
|
|
197
197
|
var isLiteralUnion = (node) => {
|
|
198
198
|
return SchemaAST.isUnion(node) && node.types.every(SchemaAST.isLiteral);
|
|
199
199
|
};
|
|
200
|
+
var isArrayType = (node) => {
|
|
201
|
+
return SchemaAST.isTupleType(node) && node.elements.length === 0 && node.rest.length === 1;
|
|
202
|
+
};
|
|
203
|
+
var getArrayElementType = (node) => {
|
|
204
|
+
return isArrayType(node) ? node.rest.at(0)?.type : void 0;
|
|
205
|
+
};
|
|
206
|
+
var isTupleType2 = (node) => {
|
|
207
|
+
return SchemaAST.isTupleType(node) && node.elements.length > 0;
|
|
208
|
+
};
|
|
200
209
|
var isDiscriminatedUnion = (node) => {
|
|
201
210
|
return SchemaAST.isUnion(node) && !!getDiscriminatingProps(node)?.length;
|
|
202
211
|
};
|
|
203
212
|
var getDiscriminatingProps = (node) => {
|
|
204
213
|
invariant(SchemaAST.isUnion(node), void 0, {
|
|
205
214
|
F: __dxlog_file,
|
|
206
|
-
L:
|
|
215
|
+
L: 353,
|
|
207
216
|
S: void 0,
|
|
208
217
|
A: [
|
|
209
218
|
"SchemaAST.isUnion(node)",
|
|
@@ -221,7 +230,7 @@ var getDiscriminatingProps = (node) => {
|
|
|
221
230
|
var getDiscriminatedType = (node, value = {}) => {
|
|
222
231
|
invariant(SchemaAST.isUnion(node), void 0, {
|
|
223
232
|
F: __dxlog_file,
|
|
224
|
-
L:
|
|
233
|
+
L: 377,
|
|
225
234
|
S: void 0,
|
|
226
235
|
A: [
|
|
227
236
|
"SchemaAST.isUnion(node)",
|
|
@@ -230,7 +239,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
230
239
|
});
|
|
231
240
|
invariant(value, void 0, {
|
|
232
241
|
F: __dxlog_file,
|
|
233
|
-
L:
|
|
242
|
+
L: 378,
|
|
234
243
|
S: void 0,
|
|
235
244
|
A: [
|
|
236
245
|
"value",
|
|
@@ -245,7 +254,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
245
254
|
const match = SchemaAST.getPropertySignatures(type).filter((prop) => props?.includes(prop.name.toString())).every((prop) => {
|
|
246
255
|
invariant(SchemaAST.isLiteral(prop.type), void 0, {
|
|
247
256
|
F: __dxlog_file,
|
|
248
|
-
L:
|
|
257
|
+
L: 389,
|
|
249
258
|
S: void 0,
|
|
250
259
|
A: [
|
|
251
260
|
"SchemaAST.isLiteral(prop.type)",
|
|
@@ -263,7 +272,7 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
263
272
|
const literal = SchemaAST.getPropertySignatures(type).find((p) => p.name.toString() === prop);
|
|
264
273
|
invariant(SchemaAST.isLiteral(literal.type), void 0, {
|
|
265
274
|
F: __dxlog_file,
|
|
266
|
-
L:
|
|
275
|
+
L: 407,
|
|
267
276
|
S: void 0,
|
|
268
277
|
A: [
|
|
269
278
|
"SchemaAST.isLiteral(literal.type)",
|
|
@@ -280,10 +289,14 @@ var getDiscriminatedType = (node, value = {}) => {
|
|
|
280
289
|
const schema = Schema.Struct(fields);
|
|
281
290
|
return schema.ast;
|
|
282
291
|
};
|
|
292
|
+
var isNestedType = (node) => {
|
|
293
|
+
return SchemaAST.isDeclaration(node) || SchemaAST.isObjectKeyword(node) || SchemaAST.isTypeLiteral(node) || // TODO(wittjosiah): Tuples are actually arrays.
|
|
294
|
+
isTupleType2(node) || isDiscriminatedUnion(node);
|
|
295
|
+
};
|
|
283
296
|
var mapAst = (ast, f) => {
|
|
284
297
|
switch (ast._tag) {
|
|
285
298
|
case "TypeLiteral": {
|
|
286
|
-
return new SchemaAST.TypeLiteral(ast.propertySignatures.map((prop) => new SchemaAST.PropertySignature(prop.name, f(prop.type, prop.name), prop.isOptional, prop.isReadonly, prop.annotations)), ast.indexSignatures);
|
|
299
|
+
return new SchemaAST.TypeLiteral(ast.propertySignatures.map((prop) => new SchemaAST.PropertySignature(prop.name, f(prop.type, prop.name), prop.isOptional, prop.isReadonly, prop.annotations)), ast.indexSignatures, ast.annotations);
|
|
287
300
|
}
|
|
288
301
|
case "Union": {
|
|
289
302
|
return SchemaAST.Union.make(ast.types.map(f), ast.annotations);
|
|
@@ -300,148 +313,76 @@ var mapAst = (ast, f) => {
|
|
|
300
313
|
}
|
|
301
314
|
}
|
|
302
315
|
};
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
// src/jsonPath.ts
|
|
309
|
-
import { Option as Option2, Schema as Schema2 } from "effect";
|
|
310
|
-
import { JSONPath } from "jsonpath-plus";
|
|
311
|
-
import { invariant as invariant2 } from "@dxos/invariant";
|
|
312
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/effect/src/jsonPath.ts";
|
|
313
|
-
var PATH_REGEX = /^($|[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*|\[\d+\](?:\.)?)*$)/;
|
|
314
|
-
var PROP_REGEX = /^\w+$/;
|
|
315
|
-
var JsonPath = Schema2.String.pipe(Schema2.pattern(PATH_REGEX)).annotations({
|
|
316
|
-
title: "JSON path",
|
|
317
|
-
description: "JSON path to a property"
|
|
318
|
-
});
|
|
319
|
-
var JsonProp = Schema2.NonEmptyString.pipe(Schema2.pattern(PROP_REGEX, {
|
|
320
|
-
message: () => "Property name must contain only letters, numbers, and underscores"
|
|
321
|
-
}));
|
|
322
|
-
var isJsonPath = (value) => {
|
|
323
|
-
return Option2.isSome(Schema2.validateOption(JsonPath)(value));
|
|
324
|
-
};
|
|
325
|
-
var createJsonPath = (path) => {
|
|
326
|
-
const candidatePath = path.map((p, i) => {
|
|
327
|
-
if (typeof p === "number") {
|
|
328
|
-
return `[${p}]`;
|
|
329
|
-
} else {
|
|
330
|
-
return i === 0 ? p : `.${p}`;
|
|
331
|
-
}
|
|
332
|
-
}).join("");
|
|
333
|
-
invariant2(isJsonPath(candidatePath), `Invalid JsonPath: ${candidatePath}`, {
|
|
334
|
-
F: __dxlog_file2,
|
|
335
|
-
L: 63,
|
|
336
|
-
S: void 0,
|
|
337
|
-
A: [
|
|
338
|
-
"isJsonPath(candidatePath)",
|
|
339
|
-
"`Invalid JsonPath: ${candidatePath}`"
|
|
340
|
-
]
|
|
341
|
-
});
|
|
342
|
-
return candidatePath;
|
|
343
|
-
};
|
|
344
|
-
var fromEffectValidationPath = (effectPath) => {
|
|
345
|
-
const jsonPath = effectPath.replace(/\.\[(\d+)\]/g, "[$1]");
|
|
346
|
-
invariant2(isJsonPath(jsonPath), `Invalid JsonPath: ${jsonPath}`, {
|
|
347
|
-
F: __dxlog_file2,
|
|
348
|
-
L: 74,
|
|
349
|
-
S: void 0,
|
|
350
|
-
A: [
|
|
351
|
-
"isJsonPath(jsonPath)",
|
|
352
|
-
"`Invalid JsonPath: ${jsonPath}`"
|
|
353
|
-
]
|
|
354
|
-
});
|
|
355
|
-
return jsonPath;
|
|
356
|
-
};
|
|
357
|
-
var splitJsonPath = (path) => {
|
|
358
|
-
if (!isJsonPath(path)) {
|
|
359
|
-
return [];
|
|
316
|
+
var getIndexSignatures = (ast) => {
|
|
317
|
+
const annotation = SchemaAST.getSurrogateAnnotation(ast);
|
|
318
|
+
if (Option.isSome(annotation)) {
|
|
319
|
+
return getIndexSignatures(annotation.value);
|
|
360
320
|
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
321
|
+
switch (ast._tag) {
|
|
322
|
+
case "TypeLiteral":
|
|
323
|
+
return ast.indexSignatures.slice();
|
|
324
|
+
case "Suspend":
|
|
325
|
+
return getIndexSignatures(ast.f());
|
|
326
|
+
case "Refinement":
|
|
327
|
+
return getIndexSignatures(ast.from);
|
|
328
|
+
}
|
|
329
|
+
return [];
|
|
368
330
|
};
|
|
369
331
|
|
|
370
|
-
// src/
|
|
371
|
-
import
|
|
372
|
-
import {
|
|
373
|
-
var
|
|
374
|
-
var
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Parse URL params.
|
|
385
|
-
*/
|
|
386
|
-
parse(_url) {
|
|
387
|
-
const url = new URL(_url);
|
|
388
|
-
return Object.entries(this._schema.fields).reduce((params, [key, type]) => {
|
|
389
|
-
let value = url.searchParams.get(decamelize(key));
|
|
390
|
-
if (value == null) {
|
|
391
|
-
value = url.searchParams.get(key);
|
|
392
|
-
}
|
|
393
|
-
if (value != null) {
|
|
394
|
-
if (SchemaAST2.isNumberKeyword(type.ast)) {
|
|
395
|
-
params[key] = parseInt(value);
|
|
396
|
-
} else if (SchemaAST2.isBooleanKeyword(type.ast)) {
|
|
397
|
-
params[key] = value === "true" || value === "1";
|
|
398
|
-
} else {
|
|
399
|
-
params[key] = value;
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
return params;
|
|
403
|
-
}, {});
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Return URL with encoded params.
|
|
407
|
-
*/
|
|
408
|
-
create(_url, params) {
|
|
409
|
-
const url = new URL(_url);
|
|
410
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
411
|
-
if (value !== void 0) {
|
|
412
|
-
const field = this._schema.fields[key];
|
|
413
|
-
if (field) {
|
|
414
|
-
const { key: serializedKey } = pipe2(getParamKeyAnnotation(field.ast), Option3.getOrElse(() => ({
|
|
415
|
-
key: decamelize(key)
|
|
416
|
-
})));
|
|
417
|
-
url.searchParams.set(serializedKey, String(value));
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
});
|
|
421
|
-
return url;
|
|
422
|
-
}
|
|
332
|
+
// src/atom-kvs.ts
|
|
333
|
+
import * as BrowserKeyValueStore from "@effect/platform-browser/BrowserKeyValueStore";
|
|
334
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
335
|
+
var defaultRuntime = Atom.runtime(BrowserKeyValueStore.layerLocalStorage);
|
|
336
|
+
var createKvsStore = (options) => {
|
|
337
|
+
const runtime2 = options.runtime ?? defaultRuntime;
|
|
338
|
+
return Atom.kvs({
|
|
339
|
+
runtime: runtime2,
|
|
340
|
+
key: options.key,
|
|
341
|
+
schema: options.schema,
|
|
342
|
+
defaultValue: options.defaultValue
|
|
343
|
+
}).pipe(Atom.keepAlive);
|
|
423
344
|
};
|
|
424
345
|
|
|
425
346
|
// src/context.ts
|
|
426
|
-
import
|
|
347
|
+
import * as Effect from "effect/Effect";
|
|
427
348
|
import { Context } from "@dxos/context";
|
|
428
|
-
var
|
|
349
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/effect/src/context.ts";
|
|
429
350
|
var contextFromScope = () => Effect.gen(function* () {
|
|
430
351
|
const ctx = new Context(void 0, {
|
|
431
|
-
F:
|
|
432
|
-
L:
|
|
352
|
+
F: __dxlog_file2,
|
|
353
|
+
L: 13
|
|
433
354
|
});
|
|
434
355
|
yield* Effect.addFinalizer(() => Effect.promise(() => ctx.dispose()));
|
|
435
356
|
return ctx;
|
|
436
357
|
});
|
|
437
358
|
|
|
359
|
+
// src/dynamic-runtime.ts
|
|
360
|
+
var dynamic_runtime_exports = {};
|
|
361
|
+
__export(dynamic_runtime_exports, {
|
|
362
|
+
make: () => make
|
|
363
|
+
});
|
|
364
|
+
import * as Context2 from "effect/Context";
|
|
365
|
+
import * as Effect3 from "effect/Effect";
|
|
366
|
+
import * as Exit2 from "effect/Exit";
|
|
367
|
+
import * as Option3 from "effect/Option";
|
|
368
|
+
import * as Runtime2 from "effect/Runtime";
|
|
369
|
+
|
|
438
370
|
// src/errors.ts
|
|
439
|
-
import
|
|
371
|
+
import * as Cause from "effect/Cause";
|
|
372
|
+
import * as Chunk from "effect/Chunk";
|
|
373
|
+
import * as Effect2 from "effect/Effect";
|
|
374
|
+
import * as Exit from "effect/Exit";
|
|
375
|
+
import * as GlobalValue from "effect/GlobalValue";
|
|
376
|
+
import * as Option2 from "effect/Option";
|
|
377
|
+
import * as Runtime from "effect/Runtime";
|
|
440
378
|
var spanSymbol = Symbol.for("effect/SpanAnnotation");
|
|
441
379
|
var originalSymbol = Symbol.for("effect/OriginalAnnotation");
|
|
442
380
|
var spanToTrace = GlobalValue.globalValue("effect/Tracer/spanToTrace", () => /* @__PURE__ */ new WeakMap());
|
|
443
381
|
var locationRegex = /\((.*)\)/g;
|
|
444
382
|
var prettyErrorStack = (error, appendStacks = []) => {
|
|
383
|
+
if (typeof error !== "object" || error === null) {
|
|
384
|
+
return error;
|
|
385
|
+
}
|
|
445
386
|
const span = error[spanSymbol];
|
|
446
387
|
const lines = typeof error.stack === "string" ? error.stack.split("\n") : [];
|
|
447
388
|
const out = [];
|
|
@@ -487,7 +428,7 @@ var prettyErrorStack = (error, appendStacks = []) => {
|
|
|
487
428
|
} else {
|
|
488
429
|
out.push(` at ${current.name}`);
|
|
489
430
|
}
|
|
490
|
-
current =
|
|
431
|
+
current = Option2.getOrUndefined(current.parent);
|
|
491
432
|
i++;
|
|
492
433
|
}
|
|
493
434
|
}
|
|
@@ -506,105 +447,344 @@ var prettyErrorStack = (error, appendStacks = []) => {
|
|
|
506
447
|
});
|
|
507
448
|
return error;
|
|
508
449
|
};
|
|
509
|
-
var
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
if (Cause.isEmpty(exit.cause)) {
|
|
515
|
-
throw new Error("Fiber failed without a cause");
|
|
516
|
-
} else if (Cause.isInterrupted(exit.cause)) {
|
|
517
|
-
throw new Error("Fiber was interrupted");
|
|
450
|
+
var causeToError = (cause) => {
|
|
451
|
+
if (Cause.isEmpty(cause)) {
|
|
452
|
+
return new Error("Fiber failed without a cause");
|
|
453
|
+
} else if (Cause.isInterruptedOnly(cause)) {
|
|
454
|
+
return new Error("Fiber was interrupted");
|
|
518
455
|
} else {
|
|
519
456
|
const errors = [
|
|
520
|
-
...Chunk.toArray(Cause.failures(
|
|
521
|
-
...Chunk.toArray(Cause.defects(
|
|
457
|
+
...Chunk.toArray(Cause.failures(cause)),
|
|
458
|
+
...Chunk.toArray(Cause.defects(cause))
|
|
522
459
|
];
|
|
523
460
|
const getStackFrames = () => {
|
|
524
|
-
const o =
|
|
461
|
+
const o = new Error();
|
|
525
462
|
Error.captureStackTrace(o, getStackFrames);
|
|
526
463
|
return o.stack.split("\n").slice(1);
|
|
527
464
|
};
|
|
528
465
|
const stackFrames = getStackFrames();
|
|
529
466
|
const newErrors = errors.map((error) => prettyErrorStack(error, stackFrames));
|
|
530
467
|
if (newErrors.length === 1) {
|
|
531
|
-
|
|
468
|
+
return newErrors[0];
|
|
532
469
|
} else {
|
|
533
|
-
|
|
470
|
+
return new AggregateError(newErrors);
|
|
534
471
|
}
|
|
535
472
|
}
|
|
536
473
|
};
|
|
474
|
+
var throwCause = (cause) => {
|
|
475
|
+
throw causeToError(cause);
|
|
476
|
+
};
|
|
477
|
+
var unwrapExit = (exit) => {
|
|
478
|
+
if (Exit.isSuccess(exit)) {
|
|
479
|
+
return exit.value;
|
|
480
|
+
}
|
|
481
|
+
return throwCause(exit.cause);
|
|
482
|
+
};
|
|
483
|
+
var runAndForwardErrors = async (effect, options) => {
|
|
484
|
+
const exit = await Effect2.runPromiseExit(effect, options);
|
|
485
|
+
return unwrapExit(exit);
|
|
486
|
+
};
|
|
487
|
+
var runInRuntime = async (runtime2, effect, options) => {
|
|
488
|
+
const exit = await Runtime.runPromiseExit(runtime2, effect, options);
|
|
489
|
+
return unwrapExit(exit);
|
|
490
|
+
};
|
|
491
|
+
var promiseWithCauseCapture = (evaluate) => Effect2.promise(async (signal) => {
|
|
492
|
+
try {
|
|
493
|
+
const result = await evaluate(signal);
|
|
494
|
+
return Effect2.succeed(result);
|
|
495
|
+
} catch (err) {
|
|
496
|
+
return Effect2.die(err);
|
|
497
|
+
}
|
|
498
|
+
}).pipe(Effect2.flatten);
|
|
537
499
|
|
|
538
|
-
// src/
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
return yield* effect;
|
|
500
|
+
// src/dynamic-runtime.ts
|
|
501
|
+
var validateTags = (context, tags) => Effect3.gen(function* () {
|
|
502
|
+
const missingTags = [];
|
|
503
|
+
for (const tag of tags) {
|
|
504
|
+
const option = Context2.getOption(context, tag);
|
|
505
|
+
if (Option3.isNone(option)) {
|
|
506
|
+
missingTags.push(tag.key);
|
|
546
507
|
}
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
508
|
+
}
|
|
509
|
+
if (missingTags.length > 0) {
|
|
510
|
+
return yield* Effect3.die(new Error(`Missing required tags in runtime: ${missingTags.join(", ")}`));
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
function make(managedRuntime, tags) {
|
|
514
|
+
const managedRuntimeAny = managedRuntime;
|
|
515
|
+
let cachedRuntime;
|
|
516
|
+
let validatedRuntimePromise;
|
|
517
|
+
const getValidatedRuntimeAsync = async () => {
|
|
518
|
+
if (!validatedRuntimePromise) {
|
|
519
|
+
validatedRuntimePromise = managedRuntimeAny.runPromise(Effect3.gen(function* () {
|
|
520
|
+
const rt = yield* managedRuntimeAny.runtimeEffect;
|
|
521
|
+
yield* validateTags(rt.context, tags);
|
|
522
|
+
return rt;
|
|
523
|
+
}));
|
|
553
524
|
}
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
525
|
+
return validatedRuntimePromise;
|
|
526
|
+
};
|
|
527
|
+
const getValidatedRuntime = () => {
|
|
528
|
+
const validationExit = managedRuntimeAny.runSyncExit(Effect3.gen(function* () {
|
|
529
|
+
const rt = yield* managedRuntimeAny.runtimeEffect;
|
|
530
|
+
yield* validateTags(rt.context, tags);
|
|
531
|
+
return rt;
|
|
532
|
+
}));
|
|
533
|
+
return unwrapExit(validationExit);
|
|
534
|
+
};
|
|
535
|
+
return {
|
|
536
|
+
managedRuntime: managedRuntimeAny,
|
|
537
|
+
runPromise: async (effect) => {
|
|
538
|
+
const runtime2 = await getValidatedRuntimeAsync();
|
|
539
|
+
return Runtime2.runPromise(runtime2)(effect);
|
|
540
|
+
},
|
|
541
|
+
runSync: (effect) => {
|
|
542
|
+
const runtime2 = getValidatedRuntime();
|
|
543
|
+
return Runtime2.runSync(runtime2)(effect);
|
|
544
|
+
},
|
|
545
|
+
runSyncExit: (effect) => {
|
|
546
|
+
const validationExit = managedRuntimeAny.runSyncExit(Effect3.gen(function* () {
|
|
547
|
+
const rt = yield* managedRuntimeAny.runtimeEffect;
|
|
548
|
+
yield* validateTags(rt.context, tags);
|
|
549
|
+
return rt;
|
|
550
|
+
}));
|
|
551
|
+
if (Exit2.isSuccess(validationExit)) {
|
|
552
|
+
const runtime2 = validationExit.value;
|
|
553
|
+
return Runtime2.runSyncExit(runtime2)(effect);
|
|
554
|
+
}
|
|
555
|
+
return validationExit;
|
|
556
|
+
},
|
|
557
|
+
runPromiseExit: async (effect) => {
|
|
558
|
+
try {
|
|
559
|
+
const runtime2 = await getValidatedRuntimeAsync();
|
|
560
|
+
return Runtime2.runPromiseExit(runtime2)(effect);
|
|
561
|
+
} catch (error) {
|
|
562
|
+
return Exit2.die(error);
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
runFork: (effect) => {
|
|
566
|
+
const runtime2 = getValidatedRuntime();
|
|
567
|
+
return Runtime2.runFork(runtime2)(effect);
|
|
568
|
+
},
|
|
569
|
+
runtimeEffect: Effect3.gen(function* () {
|
|
570
|
+
if (cachedRuntime) {
|
|
571
|
+
return cachedRuntime;
|
|
572
|
+
}
|
|
573
|
+
const rt = yield* managedRuntimeAny.runtimeEffect;
|
|
574
|
+
yield* validateTags(rt.context, tags);
|
|
575
|
+
const runtime2 = rt;
|
|
576
|
+
cachedRuntime = runtime2;
|
|
577
|
+
return runtime2;
|
|
578
|
+
}).pipe(Effect3.catchAll(() => (
|
|
579
|
+
// This should never happen since validateTags uses Effect.die
|
|
580
|
+
Effect3.die(new Error("Unexpected error in runtimeEffect validation"))
|
|
581
|
+
))),
|
|
582
|
+
dispose: async () => {
|
|
583
|
+
await managedRuntimeAny.dispose();
|
|
584
|
+
}
|
|
585
|
+
};
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
// src/json-path.ts
|
|
589
|
+
import * as Option4 from "effect/Option";
|
|
590
|
+
import * as Schema2 from "effect/Schema";
|
|
591
|
+
import { JSONPath } from "jsonpath-plus";
|
|
592
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
593
|
+
import { getDeep, setDeep } from "@dxos/util";
|
|
594
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/effect/src/json-path.ts";
|
|
595
|
+
var PATH_REGEX = /^($|[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*|\[\d+\](?:\.)?)*$)/;
|
|
596
|
+
var PROP_REGEX = /^\w+$/;
|
|
597
|
+
var JsonPath = Schema2.String.pipe(Schema2.pattern(PATH_REGEX)).annotations({
|
|
598
|
+
title: "JSON path",
|
|
599
|
+
description: "JSON path to a property"
|
|
600
|
+
});
|
|
601
|
+
var JsonProp = Schema2.NonEmptyString.pipe(Schema2.pattern(PROP_REGEX, {
|
|
602
|
+
message: () => "Property name must contain only letters, numbers, and underscores"
|
|
603
|
+
}));
|
|
604
|
+
var isJsonPath = (value) => {
|
|
605
|
+
return Option4.isSome(Schema2.validateOption(JsonPath)(value));
|
|
606
|
+
};
|
|
607
|
+
var createJsonPath = (path) => {
|
|
608
|
+
const candidatePath = path.map((p, i) => {
|
|
609
|
+
if (typeof p === "number") {
|
|
610
|
+
return `[${p}]`;
|
|
558
611
|
} else {
|
|
559
|
-
return
|
|
612
|
+
return i === 0 ? p : `.${p}`;
|
|
560
613
|
}
|
|
614
|
+
}).join("");
|
|
615
|
+
invariant2(isJsonPath(candidatePath), `Invalid JsonPath: ${candidatePath}`, {
|
|
616
|
+
F: __dxlog_file3,
|
|
617
|
+
L: 69,
|
|
618
|
+
S: void 0,
|
|
619
|
+
A: [
|
|
620
|
+
"isJsonPath(candidatePath)",
|
|
621
|
+
"`Invalid JsonPath: ${candidatePath}`"
|
|
622
|
+
]
|
|
623
|
+
});
|
|
624
|
+
return candidatePath;
|
|
625
|
+
};
|
|
626
|
+
var fromEffectValidationPath = (effectPath) => {
|
|
627
|
+
const jsonPath = effectPath.replace(/\.\[(\d+)\]/g, "[$1]");
|
|
628
|
+
invariant2(isJsonPath(jsonPath), `Invalid JsonPath: ${jsonPath}`, {
|
|
629
|
+
F: __dxlog_file3,
|
|
630
|
+
L: 80,
|
|
631
|
+
S: void 0,
|
|
632
|
+
A: [
|
|
633
|
+
"isJsonPath(jsonPath)",
|
|
634
|
+
"`Invalid JsonPath: ${jsonPath}`"
|
|
635
|
+
]
|
|
561
636
|
});
|
|
562
|
-
|
|
563
|
-
|
|
637
|
+
return jsonPath;
|
|
638
|
+
};
|
|
639
|
+
var splitJsonPath = (path) => {
|
|
640
|
+
if (!isJsonPath(path)) {
|
|
641
|
+
return [];
|
|
642
|
+
}
|
|
643
|
+
return path.match(/[a-zA-Z_$][\w$]*|\[\d+\]/g)?.map((part) => part.replace(/[[\]]/g, "")).map((part) => {
|
|
644
|
+
const parsed = Number.parseInt(part, 10);
|
|
645
|
+
return Number.isNaN(parsed) ? part : parsed;
|
|
646
|
+
}) ?? [];
|
|
647
|
+
};
|
|
648
|
+
var getField = (object, path) => {
|
|
649
|
+
return JSONPath({
|
|
650
|
+
path,
|
|
651
|
+
json: object
|
|
652
|
+
})[0];
|
|
653
|
+
};
|
|
654
|
+
var getValue = (obj, path) => {
|
|
655
|
+
return getDeep(obj, splitJsonPath(path));
|
|
656
|
+
};
|
|
657
|
+
var setValue = (obj, path, value) => {
|
|
658
|
+
return setDeep(obj, splitJsonPath(path), value);
|
|
659
|
+
};
|
|
564
660
|
|
|
565
661
|
// src/resource.ts
|
|
566
|
-
import
|
|
567
|
-
var
|
|
662
|
+
import * as Effect4 from "effect/Effect";
|
|
663
|
+
var acquireReleaseResource = (getResource) => Effect4.acquireRelease(Effect4.gen(function* () {
|
|
568
664
|
const resource = getResource();
|
|
569
665
|
yield* Effect4.promise(async () => {
|
|
570
|
-
resource.open?.();
|
|
666
|
+
await resource.open?.();
|
|
571
667
|
return void 0;
|
|
572
668
|
});
|
|
573
669
|
return resource;
|
|
574
670
|
}), (resource) => Effect4.promise(async () => {
|
|
575
|
-
resource.close?.();
|
|
671
|
+
await resource.close?.();
|
|
576
672
|
return void 0;
|
|
577
673
|
}));
|
|
674
|
+
|
|
675
|
+
// src/url.ts
|
|
676
|
+
import * as Function2 from "effect/Function";
|
|
677
|
+
import * as Option5 from "effect/Option";
|
|
678
|
+
import * as SchemaAST2 from "effect/SchemaAST";
|
|
679
|
+
import { decamelize } from "@dxos/util";
|
|
680
|
+
var ParamKeyAnnotationId = Symbol.for("@dxos/schema/annotation/ParamKey");
|
|
681
|
+
var getParamKeyAnnotation = SchemaAST2.getAnnotation(ParamKeyAnnotationId);
|
|
682
|
+
var ParamKeyAnnotation = (value) => (self) => self.annotations({
|
|
683
|
+
[ParamKeyAnnotationId]: value
|
|
684
|
+
});
|
|
685
|
+
var UrlParser = class {
|
|
686
|
+
_schema;
|
|
687
|
+
constructor(_schema) {
|
|
688
|
+
this._schema = _schema;
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* Parse URL params.
|
|
692
|
+
*/
|
|
693
|
+
parse(_url) {
|
|
694
|
+
const url = new URL(_url);
|
|
695
|
+
return Object.entries(this._schema.fields).reduce((params, [key, type]) => {
|
|
696
|
+
let value = url.searchParams.get(decamelize(key));
|
|
697
|
+
if (value == null) {
|
|
698
|
+
value = url.searchParams.get(key);
|
|
699
|
+
}
|
|
700
|
+
if (value != null) {
|
|
701
|
+
if (SchemaAST2.isNumberKeyword(type.ast)) {
|
|
702
|
+
params[key] = parseInt(value);
|
|
703
|
+
} else if (SchemaAST2.isBooleanKeyword(type.ast)) {
|
|
704
|
+
params[key] = value === "true" || value === "1";
|
|
705
|
+
} else {
|
|
706
|
+
params[key] = value;
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
return params;
|
|
710
|
+
}, {});
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Return URL with encoded params.
|
|
714
|
+
*/
|
|
715
|
+
create(_url, params) {
|
|
716
|
+
const url = new URL(_url);
|
|
717
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
718
|
+
if (value !== void 0) {
|
|
719
|
+
const field = this._schema.fields[key];
|
|
720
|
+
if (field) {
|
|
721
|
+
const { key: serializedKey } = Function2.pipe(getParamKeyAnnotation(field.ast), Option5.getOrElse(() => ({
|
|
722
|
+
key: decamelize(key)
|
|
723
|
+
})));
|
|
724
|
+
url.searchParams.set(serializedKey, String(value));
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
});
|
|
728
|
+
return url;
|
|
729
|
+
}
|
|
730
|
+
};
|
|
731
|
+
|
|
732
|
+
// src/RuntimeProvider.ts
|
|
733
|
+
var RuntimeProvider_exports = {};
|
|
734
|
+
__export(RuntimeProvider_exports, {
|
|
735
|
+
currentRuntime: () => currentRuntime,
|
|
736
|
+
provide: () => provide2,
|
|
737
|
+
runPromise: () => runPromise2
|
|
738
|
+
});
|
|
739
|
+
import * as Effect5 from "effect/Effect";
|
|
740
|
+
import * as Runtime3 from "effect/Runtime";
|
|
741
|
+
var currentRuntime = () => Effect5.runtime().pipe(Effect5.map(Effect5.succeed));
|
|
742
|
+
var runPromise2 = (provider) => async (effect) => {
|
|
743
|
+
const runtime2 = await runAndForwardErrors(provider);
|
|
744
|
+
return unwrapExit(await effect.pipe(Runtime3.runPromiseExit(runtime2)));
|
|
745
|
+
};
|
|
746
|
+
var provide2 = (runtimeProvider) => (effect) => Effect5.flatMap(runtimeProvider, (runtime2) => Effect5.provide(effect, runtime2));
|
|
578
747
|
export {
|
|
748
|
+
dynamic_runtime_exports as DynamicRuntime,
|
|
579
749
|
JsonPath,
|
|
580
750
|
JsonProp,
|
|
581
751
|
ParamKeyAnnotation,
|
|
582
|
-
|
|
583
|
-
TestHelpers,
|
|
752
|
+
RuntimeProvider_exports as RuntimeProvider,
|
|
584
753
|
UrlParser,
|
|
585
754
|
VisitResult,
|
|
586
|
-
|
|
755
|
+
acquireReleaseResource,
|
|
756
|
+
causeToError,
|
|
587
757
|
contextFromScope,
|
|
588
758
|
createJsonPath,
|
|
759
|
+
createKvsStore,
|
|
589
760
|
findAnnotation,
|
|
590
761
|
findNode,
|
|
591
762
|
findProperty,
|
|
592
763
|
fromEffectValidationPath,
|
|
593
|
-
getAnnotation,
|
|
764
|
+
getAnnotation2 as getAnnotation,
|
|
765
|
+
getArrayElementType,
|
|
766
|
+
getBaseType,
|
|
594
767
|
getDiscriminatedType,
|
|
595
768
|
getDiscriminatingProps,
|
|
596
769
|
getField,
|
|
597
770
|
getParamKeyAnnotation,
|
|
598
|
-
|
|
771
|
+
getProperties,
|
|
772
|
+
getValue,
|
|
599
773
|
isArrayType,
|
|
600
774
|
isDiscriminatedUnion,
|
|
601
775
|
isJsonPath,
|
|
602
776
|
isLiteralUnion,
|
|
777
|
+
isNestedType,
|
|
603
778
|
isOption,
|
|
604
|
-
|
|
779
|
+
isTupleType2 as isTupleType,
|
|
605
780
|
mapAst,
|
|
781
|
+
promiseWithCauseCapture,
|
|
606
782
|
runAndForwardErrors,
|
|
783
|
+
runInRuntime,
|
|
784
|
+
setValue,
|
|
607
785
|
splitJsonPath,
|
|
786
|
+
throwCause,
|
|
787
|
+
unwrapExit,
|
|
608
788
|
visit
|
|
609
789
|
};
|
|
610
790
|
//# sourceMappingURL=index.mjs.map
|