@xemahq/dsl 0.1.1
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/LICENSE +201 -0
- package/dist/deliverable-spec/index.d.ts +3 -0
- package/dist/deliverable-spec/index.d.ts.map +1 -0
- package/dist/deliverable-spec/index.js +19 -0
- package/dist/deliverable-spec/index.js.map +1 -0
- package/dist/deliverable-spec/lib/schema.d.ts +151 -0
- package/dist/deliverable-spec/lib/schema.d.ts.map +1 -0
- package/dist/deliverable-spec/lib/schema.js +139 -0
- package/dist/deliverable-spec/lib/schema.js.map +1 -0
- package/dist/deliverable-spec/lib/types.d.ts +8 -0
- package/dist/deliverable-spec/lib/types.d.ts.map +1 -0
- package/dist/deliverable-spec/lib/types.js +3 -0
- package/dist/deliverable-spec/lib/types.js.map +1 -0
- package/dist/payload-codec/index.d.ts +8 -0
- package/dist/payload-codec/index.d.ts.map +1 -0
- package/dist/payload-codec/index.js +27 -0
- package/dist/payload-codec/index.js.map +1 -0
- package/dist/payload-codec/lib/blob-store.d.ts +37 -0
- package/dist/payload-codec/lib/blob-store.d.ts.map +1 -0
- package/dist/payload-codec/lib/blob-store.js +0 -0
- package/dist/payload-codec/lib/blob-store.js.map +1 -0
- package/dist/payload-codec/lib/codec-context.d.ts +6 -0
- package/dist/payload-codec/lib/codec-context.d.ts.map +1 -0
- package/dist/payload-codec/lib/codec-context.js +16 -0
- package/dist/payload-codec/lib/codec-context.js.map +1 -0
- package/dist/payload-codec/lib/codec.d.ts +51 -0
- package/dist/payload-codec/lib/codec.d.ts.map +1 -0
- package/dist/payload-codec/lib/codec.js +330 -0
- package/dist/payload-codec/lib/codec.js.map +1 -0
- package/dist/payload-codec/lib/enums.d.ts +18 -0
- package/dist/payload-codec/lib/enums.d.ts.map +1 -0
- package/dist/payload-codec/lib/enums.js +23 -0
- package/dist/payload-codec/lib/enums.js.map +1 -0
- package/dist/payload-codec/lib/errors.d.ts +18 -0
- package/dist/payload-codec/lib/errors.d.ts.map +1 -0
- package/dist/payload-codec/lib/errors.js +39 -0
- package/dist/payload-codec/lib/errors.js.map +1 -0
- package/dist/payload-codec/lib/http-blob-store.d.ts +21 -0
- package/dist/payload-codec/lib/http-blob-store.d.ts.map +1 -0
- package/dist/payload-codec/lib/http-blob-store.js +139 -0
- package/dist/payload-codec/lib/http-blob-store.js.map +1 -0
- package/dist/payload-codec/lib/lru-cache.d.ts +12 -0
- package/dist/payload-codec/lib/lru-cache.d.ts.map +1 -0
- package/dist/payload-codec/lib/lru-cache.js +59 -0
- package/dist/payload-codec/lib/lru-cache.js.map +1 -0
- package/dist/schema/action.schema.json +181 -0
- package/dist/schema/reusable-workflow.schema.json +46 -0
- package/dist/schema/workflow.schema.json +373 -0
- package/dist/workflow/index.d.ts +14 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +49 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/lib/action-input-validator.d.ts +10 -0
- package/dist/workflow/lib/action-input-validator.d.ts.map +1 -0
- package/dist/workflow/lib/action-input-validator.js +69 -0
- package/dist/workflow/lib/action-input-validator.js.map +1 -0
- package/dist/workflow/lib/compiler/action-shape.d.ts +5 -0
- package/dist/workflow/lib/compiler/action-shape.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/action-shape.js +43 -0
- package/dist/workflow/lib/compiler/action-shape.js.map +1 -0
- package/dist/workflow/lib/compiler/canonical-json.d.ts +3 -0
- package/dist/workflow/lib/compiler/canonical-json.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/canonical-json.js +45 -0
- package/dist/workflow/lib/compiler/canonical-json.js.map +1 -0
- package/dist/workflow/lib/compiler/compile.d.ts +4 -0
- package/dist/workflow/lib/compiler/compile.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/compile.js +794 -0
- package/dist/workflow/lib/compiler/compile.js.map +1 -0
- package/dist/workflow/lib/compiler/concurrency.d.ts +5 -0
- package/dist/workflow/lib/compiler/concurrency.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/concurrency.js +104 -0
- package/dist/workflow/lib/compiler/concurrency.js.map +1 -0
- package/dist/workflow/lib/compiler/dag.d.ts +10 -0
- package/dist/workflow/lib/compiler/dag.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/dag.js +74 -0
- package/dist/workflow/lib/compiler/dag.js.map +1 -0
- package/dist/workflow/lib/compiler/index.d.ts +6 -0
- package/dist/workflow/lib/compiler/index.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/index.js +14 -0
- package/dist/workflow/lib/compiler/index.js.map +1 -0
- package/dist/workflow/lib/compiler/inputs.d.ts +4 -0
- package/dist/workflow/lib/compiler/inputs.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/inputs.js +108 -0
- package/dist/workflow/lib/compiler/inputs.js.map +1 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.d.ts +9 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.js +76 -0
- package/dist/workflow/lib/compiler/installation-resource-validator.js.map +1 -0
- package/dist/workflow/lib/compiler/manifest-source.d.ts +4 -0
- package/dist/workflow/lib/compiler/manifest-source.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/manifest-source.js +100 -0
- package/dist/workflow/lib/compiler/manifest-source.js.map +1 -0
- package/dist/workflow/lib/compiler/matrix.d.ts +4 -0
- package/dist/workflow/lib/compiler/matrix.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/matrix.js +76 -0
- package/dist/workflow/lib/compiler/matrix.js.map +1 -0
- package/dist/workflow/lib/compiler/mount-plan.d.ts +4 -0
- package/dist/workflow/lib/compiler/mount-plan.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/mount-plan.js +96 -0
- package/dist/workflow/lib/compiler/mount-plan.js.map +1 -0
- package/dist/workflow/lib/compiler/payload-reach-in.d.ts +14 -0
- package/dist/workflow/lib/compiler/payload-reach-in.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/payload-reach-in.js +273 -0
- package/dist/workflow/lib/compiler/payload-reach-in.js.map +1 -0
- package/dist/workflow/lib/compiler/permissions.d.ts +6 -0
- package/dist/workflow/lib/compiler/permissions.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/permissions.js +43 -0
- package/dist/workflow/lib/compiler/permissions.js.map +1 -0
- package/dist/workflow/lib/compiler/retry-timeout.d.ts +6 -0
- package/dist/workflow/lib/compiler/retry-timeout.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/retry-timeout.js +64 -0
- package/dist/workflow/lib/compiler/retry-timeout.js.map +1 -0
- package/dist/workflow/lib/compiler/review-step.d.ts +18 -0
- package/dist/workflow/lib/compiler/review-step.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/review-step.js +247 -0
- package/dist/workflow/lib/compiler/review-step.js.map +1 -0
- package/dist/workflow/lib/compiler/types.d.ts +42 -0
- package/dist/workflow/lib/compiler/types.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/types.js +3 -0
- package/dist/workflow/lib/compiler/types.js.map +1 -0
- package/dist/workflow/lib/compiler/variable-requirements.d.ts +5 -0
- package/dist/workflow/lib/compiler/variable-requirements.d.ts.map +1 -0
- package/dist/workflow/lib/compiler/variable-requirements.js +119 -0
- package/dist/workflow/lib/compiler/variable-requirements.js.map +1 -0
- package/dist/workflow/lib/deliverable-spec-keys.d.ts +3 -0
- package/dist/workflow/lib/deliverable-spec-keys.d.ts.map +1 -0
- package/dist/workflow/lib/deliverable-spec-keys.js +90 -0
- package/dist/workflow/lib/deliverable-spec-keys.js.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/index.d.ts +23 -0
- package/dist/workflow/lib/dispatch-inputs/index.d.ts.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/index.js +106 -0
- package/dist/workflow/lib/dispatch-inputs/index.js.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.d.ts +3 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.d.ts.map +1 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.js +43 -0
- package/dist/workflow/lib/dispatch-inputs/to-json-schema.js.map +1 -0
- package/dist/workflow/lib/duration.d.ts +2 -0
- package/dist/workflow/lib/duration.d.ts.map +1 -0
- package/dist/workflow/lib/duration.js +26 -0
- package/dist/workflow/lib/duration.js.map +1 -0
- package/dist/workflow/lib/errors.d.ts +9 -0
- package/dist/workflow/lib/errors.d.ts.map +1 -0
- package/dist/workflow/lib/errors.js +28 -0
- package/dist/workflow/lib/errors.js.map +1 -0
- package/dist/workflow/lib/expression/ast.d.ts +61 -0
- package/dist/workflow/lib/expression/ast.d.ts.map +1 -0
- package/dist/workflow/lib/expression/ast.js +34 -0
- package/dist/workflow/lib/expression/ast.js.map +1 -0
- package/dist/workflow/lib/expression/context.d.ts +63 -0
- package/dist/workflow/lib/expression/context.d.ts.map +1 -0
- package/dist/workflow/lib/expression/context.js +32 -0
- package/dist/workflow/lib/expression/context.js.map +1 -0
- package/dist/workflow/lib/expression/evaluator.d.ts +5 -0
- package/dist/workflow/lib/expression/evaluator.d.ts.map +1 -0
- package/dist/workflow/lib/expression/evaluator.js +291 -0
- package/dist/workflow/lib/expression/evaluator.js.map +1 -0
- package/dist/workflow/lib/expression/index.d.ts +9 -0
- package/dist/workflow/lib/expression/index.d.ts.map +1 -0
- package/dist/workflow/lib/expression/index.js +26 -0
- package/dist/workflow/lib/expression/index.js.map +1 -0
- package/dist/workflow/lib/expression/interpolation.d.ts +9 -0
- package/dist/workflow/lib/expression/interpolation.d.ts.map +1 -0
- package/dist/workflow/lib/expression/interpolation.js +51 -0
- package/dist/workflow/lib/expression/interpolation.js.map +1 -0
- package/dist/workflow/lib/expression/parser.d.ts +4 -0
- package/dist/workflow/lib/expression/parser.d.ts.map +1 -0
- package/dist/workflow/lib/expression/parser.js +203 -0
- package/dist/workflow/lib/expression/parser.js.map +1 -0
- package/dist/workflow/lib/expression/template.d.ts +18 -0
- package/dist/workflow/lib/expression/template.d.ts.map +1 -0
- package/dist/workflow/lib/expression/template.js +63 -0
- package/dist/workflow/lib/expression/template.js.map +1 -0
- package/dist/workflow/lib/expression/tokenizer.d.ts +3 -0
- package/dist/workflow/lib/expression/tokenizer.d.ts.map +1 -0
- package/dist/workflow/lib/expression/tokenizer.js +153 -0
- package/dist/workflow/lib/expression/tokenizer.js.map +1 -0
- package/dist/workflow/lib/expression/tokens.d.ts +25 -0
- package/dist/workflow/lib/expression/tokens.d.ts.map +1 -0
- package/dist/workflow/lib/expression/tokens.js +24 -0
- package/dist/workflow/lib/expression/tokens.js.map +1 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.d.ts +5 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.d.ts.map +1 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.js +138 -0
- package/dist/workflow/lib/expression/walk-artifact-refs.js.map +1 -0
- package/dist/workflow/lib/installation-resource-kind.d.ts +14 -0
- package/dist/workflow/lib/installation-resource-kind.d.ts.map +1 -0
- package/dist/workflow/lib/installation-resource-kind.js +59 -0
- package/dist/workflow/lib/installation-resource-kind.js.map +1 -0
- package/dist/workflow/lib/schemas-loader.d.ts +4 -0
- package/dist/workflow/lib/schemas-loader.d.ts.map +1 -0
- package/dist/workflow/lib/schemas-loader.js +36 -0
- package/dist/workflow/lib/schemas-loader.js.map +1 -0
- package/dist/workflow/lib/serializer.d.ts +3 -0
- package/dist/workflow/lib/serializer.d.ts.map +1 -0
- package/dist/workflow/lib/serializer.js +15 -0
- package/dist/workflow/lib/serializer.js.map +1 -0
- package/dist/workflow/lib/types.d.ts +179 -0
- package/dist/workflow/lib/types.d.ts.map +1 -0
- package/dist/workflow/lib/types.js +3 -0
- package/dist/workflow/lib/types.js.map +1 -0
- package/dist/workflow/lib/validate.d.ts +8 -0
- package/dist/workflow/lib/validate.d.ts.map +1 -0
- package/dist/workflow/lib/validate.js +119 -0
- package/dist/workflow/lib/validate.js.map +1 -0
- package/dist/workspace-manifest/index.d.ts +6 -0
- package/dist/workspace-manifest/index.d.ts.map +1 -0
- package/dist/workspace-manifest/index.js +22 -0
- package/dist/workspace-manifest/index.js.map +1 -0
- package/dist/workspace-manifest/lib/compile.d.ts +8 -0
- package/dist/workspace-manifest/lib/compile.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/compile.js +439 -0
- package/dist/workspace-manifest/lib/compile.js.map +1 -0
- package/dist/workspace-manifest/lib/interpolate.d.ts +12 -0
- package/dist/workspace-manifest/lib/interpolate.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/interpolate.js +81 -0
- package/dist/workspace-manifest/lib/interpolate.js.map +1 -0
- package/dist/workspace-manifest/lib/resolve-extends.d.ts +10 -0
- package/dist/workspace-manifest/lib/resolve-extends.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/resolve-extends.js +108 -0
- package/dist/workspace-manifest/lib/resolve-extends.js.map +1 -0
- package/dist/workspace-manifest/lib/schema.d.ts +710 -0
- package/dist/workspace-manifest/lib/schema.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/schema.js +355 -0
- package/dist/workspace-manifest/lib/schema.js.map +1 -0
- package/dist/workspace-manifest/lib/types.d.ts +153 -0
- package/dist/workspace-manifest/lib/types.d.ts.map +1 -0
- package/dist/workspace-manifest/lib/types.js +10 -0
- package/dist/workspace-manifest/lib/types.js.map +1 -0
- package/package.json +79 -0
- package/schema/action.schema.json +181 -0
- package/schema/reusable-workflow.schema.json +46 -0
- package/schema/workflow.schema.json +373 -0
- package/src/deliverable-spec/index.ts +19 -0
- package/src/deliverable-spec/lib/schema.ts +248 -0
- package/src/deliverable-spec/lib/types.ts +26 -0
- package/src/payload-codec/index.ts +40 -0
- package/src/payload-codec/lib/blob-store.ts +0 -0
- package/src/payload-codec/lib/codec-context.ts +38 -0
- package/src/payload-codec/lib/codec.ts +593 -0
- package/src/payload-codec/lib/enums.ts +58 -0
- package/src/payload-codec/lib/errors.ts +54 -0
- package/src/payload-codec/lib/http-blob-store.ts +257 -0
- package/src/payload-codec/lib/lru-cache.ts +81 -0
- package/src/workflow/index.ts +98 -0
- package/src/workflow/lib/action-input-validator.ts +160 -0
- package/src/workflow/lib/compiler/action-shape.ts +71 -0
- package/src/workflow/lib/compiler/canonical-json.ts +53 -0
- package/src/workflow/lib/compiler/compile.ts +1518 -0
- package/src/workflow/lib/compiler/concurrency.ts +223 -0
- package/src/workflow/lib/compiler/dag.ts +108 -0
- package/src/workflow/lib/compiler/index.ts +10 -0
- package/src/workflow/lib/compiler/inputs.ts +199 -0
- package/src/workflow/lib/compiler/installation-resource-validator.ts +114 -0
- package/src/workflow/lib/compiler/manifest-source.ts +176 -0
- package/src/workflow/lib/compiler/matrix.ts +135 -0
- package/src/workflow/lib/compiler/mount-plan.ts +202 -0
- package/src/workflow/lib/compiler/payload-reach-in.ts +497 -0
- package/src/workflow/lib/compiler/permissions.ts +64 -0
- package/src/workflow/lib/compiler/retry-timeout.ts +105 -0
- package/src/workflow/lib/compiler/review-step.ts +517 -0
- package/src/workflow/lib/compiler/types.ts +170 -0
- package/src/workflow/lib/compiler/variable-requirements.ts +208 -0
- package/src/workflow/lib/deliverable-spec-keys.ts +109 -0
- package/src/workflow/lib/dispatch-inputs/index.ts +160 -0
- package/src/workflow/lib/dispatch-inputs/to-json-schema.ts +60 -0
- package/src/workflow/lib/duration.ts +48 -0
- package/src/workflow/lib/errors.ts +37 -0
- package/src/workflow/lib/expression/ast.ts +108 -0
- package/src/workflow/lib/expression/context.ts +148 -0
- package/src/workflow/lib/expression/evaluator.ts +492 -0
- package/src/workflow/lib/expression/index.ts +28 -0
- package/src/workflow/lib/expression/interpolation.ts +84 -0
- package/src/workflow/lib/expression/parser.ts +264 -0
- package/src/workflow/lib/expression/template.ts +117 -0
- package/src/workflow/lib/expression/tokenizer.ts +200 -0
- package/src/workflow/lib/expression/tokens.ts +30 -0
- package/src/workflow/lib/expression/walk-artifact-refs.ts +232 -0
- package/src/workflow/lib/installation-resource-kind.ts +107 -0
- package/src/workflow/lib/schemas-loader.ts +64 -0
- package/src/workflow/lib/serializer.ts +30 -0
- package/src/workflow/lib/types.ts +361 -0
- package/src/workflow/lib/validate.ts +199 -0
- package/src/workspace-manifest/index.ts +27 -0
- package/src/workspace-manifest/lib/compile.ts +608 -0
- package/src/workspace-manifest/lib/interpolate.ts +140 -0
- package/src/workspace-manifest/lib/resolve-extends.ts +260 -0
- package/src/workspace-manifest/lib/schema.ts +612 -0
- package/src/workspace-manifest/lib/types.ts +392 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractZodTopLevelObjectKeys = extractZodTopLevelObjectKeys;
|
|
4
|
+
exports.extractJsonSchemaTopLevelKeys = extractJsonSchemaTopLevelKeys;
|
|
5
|
+
function extractZodTopLevelObjectKeys(source) {
|
|
6
|
+
if (!source || source.trim().length === 0)
|
|
7
|
+
return null;
|
|
8
|
+
const body = sliceTopLevelObjectBody(source);
|
|
9
|
+
if (body === null)
|
|
10
|
+
return null;
|
|
11
|
+
return Object.freeze(parseObjectKeysAtTopLevel(body));
|
|
12
|
+
}
|
|
13
|
+
function extractJsonSchemaTopLevelKeys(source) {
|
|
14
|
+
let parsed;
|
|
15
|
+
if (typeof source === 'string') {
|
|
16
|
+
if (source.trim().length === 0)
|
|
17
|
+
return null;
|
|
18
|
+
try {
|
|
19
|
+
parsed = JSON.parse(source);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
parsed = source;
|
|
27
|
+
}
|
|
28
|
+
if (!isPlainObject(parsed))
|
|
29
|
+
return null;
|
|
30
|
+
const properties = parsed['properties'];
|
|
31
|
+
if (!isPlainObject(properties))
|
|
32
|
+
return null;
|
|
33
|
+
const keys = Object.keys(properties);
|
|
34
|
+
return Object.freeze(keys);
|
|
35
|
+
}
|
|
36
|
+
function isPlainObject(v) {
|
|
37
|
+
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
38
|
+
}
|
|
39
|
+
function sliceTopLevelObjectBody(source) {
|
|
40
|
+
const match = /z\.object\s*\(\s*\{/.exec(source);
|
|
41
|
+
if (!match)
|
|
42
|
+
return null;
|
|
43
|
+
const start = match.index + match[0].length;
|
|
44
|
+
let depth = 1;
|
|
45
|
+
for (let i = start; i < source.length; i += 1) {
|
|
46
|
+
const ch = source[i];
|
|
47
|
+
if (ch === '{')
|
|
48
|
+
depth += 1;
|
|
49
|
+
else if (ch === '}' && --depth === 0)
|
|
50
|
+
return source.slice(start, i);
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
function parseObjectKeysAtTopLevel(body) {
|
|
55
|
+
const keys = [];
|
|
56
|
+
const depth = { brace: 0, paren: 0 };
|
|
57
|
+
for (let i = 0; i < body.length; i += 1) {
|
|
58
|
+
if (updateDepth(depth, body[i]))
|
|
59
|
+
continue;
|
|
60
|
+
if (depth.brace !== 0 || depth.paren !== 0)
|
|
61
|
+
continue;
|
|
62
|
+
if (i !== 0 && body[i] !== '\n' && body[i] !== ',')
|
|
63
|
+
continue;
|
|
64
|
+
const rest = body.slice(i === 0 ? 0 : i + 1);
|
|
65
|
+
const keyMatch = /^\s*([A-Za-z_$][A-Za-z0-9_$]*)\s*:/.exec(rest);
|
|
66
|
+
if (keyMatch?.[1])
|
|
67
|
+
keys.push(keyMatch[1]);
|
|
68
|
+
}
|
|
69
|
+
return keys;
|
|
70
|
+
}
|
|
71
|
+
function updateDepth(depth, ch) {
|
|
72
|
+
if (ch === '{') {
|
|
73
|
+
depth.brace += 1;
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
if (ch === '}') {
|
|
77
|
+
depth.brace = Math.max(0, depth.brace - 1);
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
if (ch === '(') {
|
|
81
|
+
depth.paren += 1;
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
if (ch === ')') {
|
|
85
|
+
depth.paren = Math.max(0, depth.paren - 1);
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=deliverable-spec-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable-spec-keys.js","sourceRoot":"","sources":["../../../src/workflow/lib/deliverable-spec-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare enum DispatchInputFieldType {
|
|
2
|
+
String = "string",
|
|
3
|
+
Number = "number",
|
|
4
|
+
Integer = "integer",
|
|
5
|
+
Boolean = "boolean",
|
|
6
|
+
Object = "object",
|
|
7
|
+
Array = "array"
|
|
8
|
+
}
|
|
9
|
+
export interface DispatchInputDescriptor {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
readonly type: DispatchInputFieldType;
|
|
12
|
+
readonly required: boolean;
|
|
13
|
+
readonly description: string | null;
|
|
14
|
+
readonly enumValues: readonly string[] | null;
|
|
15
|
+
readonly format: DispatchInputStringFormat | null;
|
|
16
|
+
readonly itemType: DispatchInputFieldType | null;
|
|
17
|
+
readonly defaultValue: unknown;
|
|
18
|
+
}
|
|
19
|
+
export declare enum DispatchInputStringFormat {
|
|
20
|
+
Multiline = "multiline"
|
|
21
|
+
}
|
|
22
|
+
export declare function extractDispatchInputDescriptors(parsedDocument: unknown): readonly DispatchInputDescriptor[];
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/workflow/lib/dispatch-inputs/index.ts"],"names":[],"mappings":"AA4BA,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAMD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9C,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAElD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,oBAAY,yBAAyB;IACnC,SAAS,cAAc;CACxB;AAYD,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,OAAO,GACtB,SAAS,uBAAuB,EAAE,CASpC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DispatchInputStringFormat = exports.DispatchInputFieldType = void 0;
|
|
4
|
+
exports.extractDispatchInputDescriptors = extractDispatchInputDescriptors;
|
|
5
|
+
var DispatchInputFieldType;
|
|
6
|
+
(function (DispatchInputFieldType) {
|
|
7
|
+
DispatchInputFieldType["String"] = "string";
|
|
8
|
+
DispatchInputFieldType["Number"] = "number";
|
|
9
|
+
DispatchInputFieldType["Integer"] = "integer";
|
|
10
|
+
DispatchInputFieldType["Boolean"] = "boolean";
|
|
11
|
+
DispatchInputFieldType["Object"] = "object";
|
|
12
|
+
DispatchInputFieldType["Array"] = "array";
|
|
13
|
+
})(DispatchInputFieldType || (exports.DispatchInputFieldType = DispatchInputFieldType = {}));
|
|
14
|
+
var DispatchInputStringFormat;
|
|
15
|
+
(function (DispatchInputStringFormat) {
|
|
16
|
+
DispatchInputStringFormat["Multiline"] = "multiline";
|
|
17
|
+
})(DispatchInputStringFormat || (exports.DispatchInputStringFormat = DispatchInputStringFormat = {}));
|
|
18
|
+
function extractDispatchInputDescriptors(parsedDocument) {
|
|
19
|
+
const inputs = readDispatchInputsBag(parsedDocument);
|
|
20
|
+
if (!inputs)
|
|
21
|
+
return [];
|
|
22
|
+
const descriptors = [];
|
|
23
|
+
for (const [name, raw] of Object.entries(inputs)) {
|
|
24
|
+
const descriptor = toDescriptor(name, raw);
|
|
25
|
+
if (descriptor !== null)
|
|
26
|
+
descriptors.push(descriptor);
|
|
27
|
+
}
|
|
28
|
+
return descriptors;
|
|
29
|
+
}
|
|
30
|
+
function readDispatchInputsBag(parsedDocument) {
|
|
31
|
+
if (!parsedDocument || typeof parsedDocument !== 'object')
|
|
32
|
+
return null;
|
|
33
|
+
const doc = parsedDocument;
|
|
34
|
+
const on = doc['on'];
|
|
35
|
+
if (!on || typeof on !== 'object')
|
|
36
|
+
return null;
|
|
37
|
+
const wfDispatch = on['workflow_dispatch'];
|
|
38
|
+
if (!wfDispatch || typeof wfDispatch !== 'object')
|
|
39
|
+
return null;
|
|
40
|
+
const inputs = wfDispatch['inputs'];
|
|
41
|
+
if (!inputs || typeof inputs !== 'object' || Array.isArray(inputs)) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return inputs;
|
|
45
|
+
}
|
|
46
|
+
function toDescriptor(name, raw) {
|
|
47
|
+
if (!raw || typeof raw !== 'object')
|
|
48
|
+
return null;
|
|
49
|
+
const field = raw;
|
|
50
|
+
const type = parseFieldType(field['type']);
|
|
51
|
+
if (type === null)
|
|
52
|
+
return null;
|
|
53
|
+
const required = field['required'] === true;
|
|
54
|
+
const description = typeof field['description'] === 'string' ? field['description'] : null;
|
|
55
|
+
const enumValues = parseEnumValues(field['enum']);
|
|
56
|
+
const format = parseStringFormat(field['format']);
|
|
57
|
+
const itemType = parseItemType(field['items']);
|
|
58
|
+
return {
|
|
59
|
+
name,
|
|
60
|
+
type,
|
|
61
|
+
required,
|
|
62
|
+
description,
|
|
63
|
+
enumValues,
|
|
64
|
+
format,
|
|
65
|
+
itemType,
|
|
66
|
+
defaultValue: field['default'] ?? undefined,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function parseFieldType(value) {
|
|
70
|
+
if (typeof value !== 'string')
|
|
71
|
+
return null;
|
|
72
|
+
switch (value) {
|
|
73
|
+
case 'string':
|
|
74
|
+
return DispatchInputFieldType.String;
|
|
75
|
+
case 'number':
|
|
76
|
+
return DispatchInputFieldType.Number;
|
|
77
|
+
case 'integer':
|
|
78
|
+
return DispatchInputFieldType.Integer;
|
|
79
|
+
case 'boolean':
|
|
80
|
+
return DispatchInputFieldType.Boolean;
|
|
81
|
+
case 'object':
|
|
82
|
+
return DispatchInputFieldType.Object;
|
|
83
|
+
case 'array':
|
|
84
|
+
return DispatchInputFieldType.Array;
|
|
85
|
+
default:
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function parseEnumValues(value) {
|
|
90
|
+
if (!Array.isArray(value) || value.length === 0)
|
|
91
|
+
return null;
|
|
92
|
+
const strings = value.filter((v) => typeof v === 'string');
|
|
93
|
+
return strings.length === value.length ? strings : null;
|
|
94
|
+
}
|
|
95
|
+
function parseStringFormat(value) {
|
|
96
|
+
if (value === 'multiline')
|
|
97
|
+
return DispatchInputStringFormat.Multiline;
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
function parseItemType(value) {
|
|
101
|
+
if (!value || typeof value !== 'object')
|
|
102
|
+
return null;
|
|
103
|
+
const items = value;
|
|
104
|
+
return parseFieldType(items['type']);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/workflow/lib/dispatch-inputs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-json-schema.d.ts","sourceRoot":"","sources":["../../../../src/workflow/lib/dispatch-inputs/to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,SAAS,CAAC;AAgBjB,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,SAAS,uBAAuB,EAAE,GAC9C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBnC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dispatchInputsToJsonSchema = dispatchInputsToJsonSchema;
|
|
4
|
+
const index_1 = require("./index");
|
|
5
|
+
function dispatchInputsToJsonSchema(descriptors) {
|
|
6
|
+
const properties = {};
|
|
7
|
+
const required = [];
|
|
8
|
+
for (const d of descriptors) {
|
|
9
|
+
properties[d.name] = descriptorToProperty(d);
|
|
10
|
+
if (d.required)
|
|
11
|
+
required.push(d.name);
|
|
12
|
+
}
|
|
13
|
+
const schema = {
|
|
14
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties,
|
|
17
|
+
additionalProperties: false,
|
|
18
|
+
};
|
|
19
|
+
if (required.length > 0) {
|
|
20
|
+
schema['required'] = required;
|
|
21
|
+
}
|
|
22
|
+
return Object.freeze(schema);
|
|
23
|
+
}
|
|
24
|
+
function descriptorToProperty(d) {
|
|
25
|
+
const prop = { type: d.type };
|
|
26
|
+
if (d.description) {
|
|
27
|
+
prop['description'] = d.description;
|
|
28
|
+
}
|
|
29
|
+
if (d.enumValues && d.enumValues.length > 0) {
|
|
30
|
+
prop['enum'] = [...d.enumValues];
|
|
31
|
+
}
|
|
32
|
+
if (d.format === index_1.DispatchInputStringFormat.Multiline) {
|
|
33
|
+
prop['x-widget'] = 'multiline';
|
|
34
|
+
}
|
|
35
|
+
if (d.type === index_1.DispatchInputFieldType.Array && d.itemType) {
|
|
36
|
+
prop['items'] = { type: d.itemType };
|
|
37
|
+
}
|
|
38
|
+
if (d.defaultValue !== undefined) {
|
|
39
|
+
prop['default'] = d.defaultValue;
|
|
40
|
+
}
|
|
41
|
+
return prop;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=to-json-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-json-schema.js","sourceRoot":"","sources":["../../../../src/workflow/lib/dispatch-inputs/to-json-schema.ts"],"names":[],"mappings":";;AAoBA,gEAmBC;AAvCD,mCAIiB;AAgBjB,SAAgB,0BAA0B,CACxC,WAA+C;IAE/C,MAAM,UAAU,GAA4C,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,MAAM,GAA4B;QACtC,OAAO,EAAE,8CAA8C;QACvD,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,CAA0B;IACtD,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,iCAAyB,CAAC,SAAS,EAAE,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,8BAAsB,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/duration.ts"],"names":[],"mappings":"AAqBA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA0BvD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDurationMs = parseDurationMs;
|
|
4
|
+
const workflow_1 = require("@xemahq/kernel-contracts/workflow");
|
|
5
|
+
const errors_1 = require("./errors");
|
|
6
|
+
const MAX_HOURS = 8760;
|
|
7
|
+
function parseDurationMs(literal) {
|
|
8
|
+
const match = /^([1-9][0-9]*)(s|m|h)$/.exec(literal);
|
|
9
|
+
if (!match) {
|
|
10
|
+
throw new errors_1.WorkflowDslError(workflow_1.WorkflowErrorCode.DSL_SCHEMA_INVALID, `Duration literal does not match pattern <int><s|m|h>: ${literal}`, { literal });
|
|
11
|
+
}
|
|
12
|
+
const value = Number.parseInt(match[1], 10);
|
|
13
|
+
const unit = match[2];
|
|
14
|
+
if (unit === 'h' && value > MAX_HOURS) {
|
|
15
|
+
throw new errors_1.WorkflowDslError(workflow_1.WorkflowErrorCode.DSL_SCHEMA_INVALID, `Duration exceeds cap of ${MAX_HOURS}h: ${literal}`, { literal, maxHours: MAX_HOURS });
|
|
16
|
+
}
|
|
17
|
+
switch (unit) {
|
|
18
|
+
case 's':
|
|
19
|
+
return value * 1_000;
|
|
20
|
+
case 'm':
|
|
21
|
+
return value * 60_000;
|
|
22
|
+
case 'h':
|
|
23
|
+
return value * 3_600_000;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/workflow/lib/duration.ts"],"names":[],"mappings":";;AAqBA,0CA0BC;AA/CD,gEAAsE;AACtE,qCAA4C;AAkB5C,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,SAAgB,eAAe,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,yBAAgB,CACxB,4BAAiB,CAAC,kBAAkB,EACpC,yDAAyD,OAAO,EAAE,EAClE,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAoB,CAAC;IACzC,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,yBAAgB,CACxB,4BAAiB,CAAC,kBAAkB,EACpC,2BAA2B,SAAS,MAAM,OAAO,EAAE,EACnD,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CACjC,CAAC;IACJ,CAAC;IACD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,KAAK,CAAC;QACvB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,MAAM,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,SAAS,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WorkflowErrorCode } from '@xemahq/kernel-contracts/workflow';
|
|
2
|
+
export declare class WorkflowDslError extends Error {
|
|
3
|
+
readonly code: WorkflowErrorCode;
|
|
4
|
+
readonly details: Readonly<Record<string, unknown>>;
|
|
5
|
+
constructor(code: WorkflowErrorCode, message: string, details?: Readonly<Record<string, unknown>>);
|
|
6
|
+
toJSON(): Readonly<Record<string, unknown>>;
|
|
7
|
+
}
|
|
8
|
+
export declare function isWorkflowDslError(err: unknown): err is WorkflowDslError;
|
|
9
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAOtE,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAGlD,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IASjD,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAQ5C;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,gBAAgB,CAExE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkflowDslError = void 0;
|
|
4
|
+
exports.isWorkflowDslError = isWorkflowDslError;
|
|
5
|
+
class WorkflowDslError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
details;
|
|
8
|
+
constructor(code, message, details = {}) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'WorkflowDslError';
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.details = details;
|
|
13
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
14
|
+
}
|
|
15
|
+
toJSON() {
|
|
16
|
+
return {
|
|
17
|
+
name: this.name,
|
|
18
|
+
code: this.code,
|
|
19
|
+
message: this.message,
|
|
20
|
+
details: this.details,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.WorkflowDslError = WorkflowDslError;
|
|
25
|
+
function isWorkflowDslError(err) {
|
|
26
|
+
return err instanceof WorkflowDslError;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/workflow/lib/errors.ts"],"names":[],"mappings":";;;AAkCA,gDAEC;AA7BD,MAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAoB;IACxB,OAAO,CAAoC;IAEpD,YACE,IAAuB,EACvB,OAAe,EACf,UAA6C,EAAE;QAE/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAxBD,4CAwBC;AAGD,SAAgB,kBAAkB,CAAC,GAAY;IAC7C,OAAO,GAAG,YAAY,gBAAgB,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare enum ExpressionNodeKind {
|
|
2
|
+
LITERAL = "literal",
|
|
3
|
+
IDENTIFIER = "identifier",
|
|
4
|
+
MEMBER = "member",
|
|
5
|
+
INDEX = "index",
|
|
6
|
+
CALL = "call",
|
|
7
|
+
UNARY_NOT = "unary-not",
|
|
8
|
+
BINARY_EQ = "binary-eq",
|
|
9
|
+
BINARY_NEQ = "binary-neq",
|
|
10
|
+
BINARY_AND = "binary-and",
|
|
11
|
+
BINARY_OR = "binary-or"
|
|
12
|
+
}
|
|
13
|
+
export declare enum ExpressionRoot {
|
|
14
|
+
NEEDS = "needs",
|
|
15
|
+
MATRIX = "matrix",
|
|
16
|
+
INPUTS = "inputs",
|
|
17
|
+
VARS = "vars",
|
|
18
|
+
SECRETS = "secrets",
|
|
19
|
+
TRIGGER = "trigger",
|
|
20
|
+
JOB = "job",
|
|
21
|
+
XEMA = "xema"
|
|
22
|
+
}
|
|
23
|
+
export declare enum ExpressionFunction {
|
|
24
|
+
FROM_JSON = "fromJSON",
|
|
25
|
+
TO_JSON = "toJSON",
|
|
26
|
+
FORMAT = "format"
|
|
27
|
+
}
|
|
28
|
+
export type ExpressionNode = LiteralNode | IdentifierNode | MemberNode | IndexNode | CallNode | UnaryNotNode | BinaryNode;
|
|
29
|
+
export interface LiteralNode {
|
|
30
|
+
readonly kind: ExpressionNodeKind.LITERAL;
|
|
31
|
+
readonly value: string | number | boolean | null;
|
|
32
|
+
}
|
|
33
|
+
export interface IdentifierNode {
|
|
34
|
+
readonly kind: ExpressionNodeKind.IDENTIFIER;
|
|
35
|
+
readonly name: string;
|
|
36
|
+
}
|
|
37
|
+
export interface MemberNode {
|
|
38
|
+
readonly kind: ExpressionNodeKind.MEMBER;
|
|
39
|
+
readonly target: ExpressionNode;
|
|
40
|
+
readonly property: string;
|
|
41
|
+
}
|
|
42
|
+
export interface IndexNode {
|
|
43
|
+
readonly kind: ExpressionNodeKind.INDEX;
|
|
44
|
+
readonly target: ExpressionNode;
|
|
45
|
+
readonly index: ExpressionNode;
|
|
46
|
+
}
|
|
47
|
+
export interface CallNode {
|
|
48
|
+
readonly kind: ExpressionNodeKind.CALL;
|
|
49
|
+
readonly callee: ExpressionFunction;
|
|
50
|
+
readonly args: readonly ExpressionNode[];
|
|
51
|
+
}
|
|
52
|
+
export interface UnaryNotNode {
|
|
53
|
+
readonly kind: ExpressionNodeKind.UNARY_NOT;
|
|
54
|
+
readonly operand: ExpressionNode;
|
|
55
|
+
}
|
|
56
|
+
export interface BinaryNode {
|
|
57
|
+
readonly kind: ExpressionNodeKind.BINARY_EQ | ExpressionNodeKind.BINARY_NEQ | ExpressionNodeKind.BINARY_AND | ExpressionNodeKind.BINARY_OR;
|
|
58
|
+
readonly left: ExpressionNode;
|
|
59
|
+
readonly right: ExpressionNode;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../../src/workflow/lib/expression/ast.ts"],"names":[],"mappings":"AAGA,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAGD,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IAOb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,GAAG,QAAQ;IAQX,IAAI,SAAS;CACd;AAGD,oBAAY,kBAAkB;IAC5B,SAAS,aAAa;IACtB,OAAO,WAAW;IAUlB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,cAAc,GACd,UAAU,GACV,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,CAAC;AAEf,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EACT,kBAAkB,CAAC,SAAS,GAC5B,kBAAkB,CAAC,UAAU,GAC7B,kBAAkB,CAAC,UAAU,GAC7B,kBAAkB,CAAC,SAAS,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpressionFunction = exports.ExpressionRoot = exports.ExpressionNodeKind = void 0;
|
|
4
|
+
var ExpressionNodeKind;
|
|
5
|
+
(function (ExpressionNodeKind) {
|
|
6
|
+
ExpressionNodeKind["LITERAL"] = "literal";
|
|
7
|
+
ExpressionNodeKind["IDENTIFIER"] = "identifier";
|
|
8
|
+
ExpressionNodeKind["MEMBER"] = "member";
|
|
9
|
+
ExpressionNodeKind["INDEX"] = "index";
|
|
10
|
+
ExpressionNodeKind["CALL"] = "call";
|
|
11
|
+
ExpressionNodeKind["UNARY_NOT"] = "unary-not";
|
|
12
|
+
ExpressionNodeKind["BINARY_EQ"] = "binary-eq";
|
|
13
|
+
ExpressionNodeKind["BINARY_NEQ"] = "binary-neq";
|
|
14
|
+
ExpressionNodeKind["BINARY_AND"] = "binary-and";
|
|
15
|
+
ExpressionNodeKind["BINARY_OR"] = "binary-or";
|
|
16
|
+
})(ExpressionNodeKind || (exports.ExpressionNodeKind = ExpressionNodeKind = {}));
|
|
17
|
+
var ExpressionRoot;
|
|
18
|
+
(function (ExpressionRoot) {
|
|
19
|
+
ExpressionRoot["NEEDS"] = "needs";
|
|
20
|
+
ExpressionRoot["MATRIX"] = "matrix";
|
|
21
|
+
ExpressionRoot["INPUTS"] = "inputs";
|
|
22
|
+
ExpressionRoot["VARS"] = "vars";
|
|
23
|
+
ExpressionRoot["SECRETS"] = "secrets";
|
|
24
|
+
ExpressionRoot["TRIGGER"] = "trigger";
|
|
25
|
+
ExpressionRoot["JOB"] = "job";
|
|
26
|
+
ExpressionRoot["XEMA"] = "xema";
|
|
27
|
+
})(ExpressionRoot || (exports.ExpressionRoot = ExpressionRoot = {}));
|
|
28
|
+
var ExpressionFunction;
|
|
29
|
+
(function (ExpressionFunction) {
|
|
30
|
+
ExpressionFunction["FROM_JSON"] = "fromJSON";
|
|
31
|
+
ExpressionFunction["TO_JSON"] = "toJSON";
|
|
32
|
+
ExpressionFunction["FORMAT"] = "format";
|
|
33
|
+
})(ExpressionFunction || (exports.ExpressionFunction = ExpressionFunction = {}));
|
|
34
|
+
//# sourceMappingURL=ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../src/workflow/lib/expression/ast.ts"],"names":[],"mappings":";;;AAGA,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;IACvB,+CAAyB,CAAA;IACzB,+CAAyB,CAAA;IACzB,6CAAuB,CAAA;AACzB,CAAC,EAXW,kBAAkB,kCAAlB,kBAAkB,QAW7B;AAGD,IAAY,cAsBX;AAtBD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IAOb,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,6BAAW,CAAA;IAQX,+BAAa,CAAA;AACf,CAAC,EAtBW,cAAc,8BAAd,cAAc,QAsBzB;AAGD,IAAY,kBAaX;AAbD,WAAY,kBAAkB;IAC5B,4CAAsB,CAAA;IACtB,wCAAkB,CAAA;IAUlB,uCAAiB,CAAA;AACnB,CAAC,EAbW,kBAAkB,kCAAlB,kBAAkB,QAa7B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { TriggerPayload } from '@xemahq/kernel-contracts/workflow';
|
|
2
|
+
export type PayloadCache = ReadonlyMap<string, unknown>;
|
|
3
|
+
export interface ExpressionContext {
|
|
4
|
+
readonly needs: Readonly<Record<string, NeedsEntry>>;
|
|
5
|
+
readonly matrix: Readonly<Record<string, unknown>>;
|
|
6
|
+
readonly inputs: Readonly<Record<string, unknown>>;
|
|
7
|
+
readonly vars: Readonly<Record<string, unknown>>;
|
|
8
|
+
readonly secrets: Readonly<Record<string, string>>;
|
|
9
|
+
readonly trigger: TriggerPayload;
|
|
10
|
+
readonly job: {
|
|
11
|
+
readonly outputs: Readonly<Record<string, unknown>>;
|
|
12
|
+
};
|
|
13
|
+
readonly xema: XemaContext;
|
|
14
|
+
readonly payloadCache: PayloadCache;
|
|
15
|
+
}
|
|
16
|
+
export interface NeedsEntry {
|
|
17
|
+
readonly outputs: Readonly<Record<string, unknown>>;
|
|
18
|
+
}
|
|
19
|
+
export interface XemaContext {
|
|
20
|
+
readonly org: {
|
|
21
|
+
readonly id: string;
|
|
22
|
+
};
|
|
23
|
+
readonly project: {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
};
|
|
26
|
+
readonly run: {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly attempt: number;
|
|
29
|
+
readonly startedAtIso: string;
|
|
30
|
+
readonly correlationId: string;
|
|
31
|
+
readonly actor: XemaActor;
|
|
32
|
+
};
|
|
33
|
+
readonly workflow: {
|
|
34
|
+
readonly key: string;
|
|
35
|
+
readonly version: string;
|
|
36
|
+
};
|
|
37
|
+
readonly job: {
|
|
38
|
+
readonly key: string;
|
|
39
|
+
readonly attempt: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface XemaActor {
|
|
43
|
+
readonly subject: string | null;
|
|
44
|
+
readonly kind: XemaActorKind;
|
|
45
|
+
}
|
|
46
|
+
export declare enum XemaActorKind {
|
|
47
|
+
User = "user",
|
|
48
|
+
System = "system",
|
|
49
|
+
Webhook = "webhook",
|
|
50
|
+
Schedule = "schedule"
|
|
51
|
+
}
|
|
52
|
+
export declare const EMPTY_CONTEXT_SEEDS: {
|
|
53
|
+
readonly needs: Readonly<Record<string, NeedsEntry>>;
|
|
54
|
+
readonly matrix: Readonly<Record<string, unknown>>;
|
|
55
|
+
readonly vars: Readonly<Record<string, unknown>>;
|
|
56
|
+
readonly secrets: Readonly<Record<string, string>>;
|
|
57
|
+
readonly job: {
|
|
58
|
+
readonly outputs: Readonly<Record<string, unknown>>;
|
|
59
|
+
};
|
|
60
|
+
readonly payloadCache: PayloadCache;
|
|
61
|
+
readonly xema: XemaContext;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/workflow/lib/expression/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAiBxE,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAOxD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAMjD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAKnD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAKjC,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC;IAOtE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAS3B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AASD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAEzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IAExB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAQD,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAGD,eAAO,MAAM,mBAAmB;oBACF,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;qBACnC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;mBACnC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;sBAC9B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;kBACR;QACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACrD;2BAM2C,YAAY;mBAkBlD,WAAW;CACT,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EMPTY_CONTEXT_SEEDS = exports.XemaActorKind = void 0;
|
|
4
|
+
var XemaActorKind;
|
|
5
|
+
(function (XemaActorKind) {
|
|
6
|
+
XemaActorKind["User"] = "user";
|
|
7
|
+
XemaActorKind["System"] = "system";
|
|
8
|
+
XemaActorKind["Webhook"] = "webhook";
|
|
9
|
+
XemaActorKind["Schedule"] = "schedule";
|
|
10
|
+
})(XemaActorKind || (exports.XemaActorKind = XemaActorKind = {}));
|
|
11
|
+
exports.EMPTY_CONTEXT_SEEDS = {
|
|
12
|
+
needs: Object.freeze({}),
|
|
13
|
+
matrix: Object.freeze({}),
|
|
14
|
+
vars: Object.freeze({}),
|
|
15
|
+
secrets: Object.freeze({}),
|
|
16
|
+
job: Object.freeze({ outputs: Object.freeze({}) }),
|
|
17
|
+
payloadCache: new Map(),
|
|
18
|
+
xema: Object.freeze({
|
|
19
|
+
org: Object.freeze({ id: '' }),
|
|
20
|
+
project: Object.freeze({ id: '' }),
|
|
21
|
+
run: Object.freeze({
|
|
22
|
+
id: '',
|
|
23
|
+
attempt: 0,
|
|
24
|
+
startedAtIso: '',
|
|
25
|
+
correlationId: '',
|
|
26
|
+
actor: Object.freeze({ subject: null, kind: XemaActorKind.System }),
|
|
27
|
+
}),
|
|
28
|
+
workflow: Object.freeze({ key: '', version: '' }),
|
|
29
|
+
job: Object.freeze({ key: '', attempt: 0 }),
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/workflow/lib/expression/context.ts"],"names":[],"mappings":";;;AA2GA,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;AACvB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAGY,QAAA,mBAAmB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAyC;IAChE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAsC;IAC9D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAsC;IAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAqC;IAC9D,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAEhD;IAMD,YAAY,EAAE,IAAI,GAAG,EAAmC;IAMxD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAClC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,CAAC;YACV,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,EAAE;YACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;SACpE,CAAC;QACF,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACjD,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KAC5C,CAAgB;CACT,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ExpressionNode } from './ast';
|
|
2
|
+
import type { ExpressionContext } from './context';
|
|
3
|
+
export declare function compileExpression(source: string): ExpressionNode;
|
|
4
|
+
export declare function evaluateExpression(node: ExpressionNode, ctx: ExpressionContext): unknown;
|
|
5
|
+
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../../src/workflow/lib/expression/evaluator.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,cAAc,EAQpB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAUnD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAUhE;AAWD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAsBxF"}
|