@acpus/core 0.3.0 → 0.4.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/dist/cel-ast.d.ts +37 -0
- package/dist/cel-ast.d.ts.map +1 -0
- package/dist/cel-ast.js +114 -0
- package/dist/cel-ast.js.map +1 -0
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +36 -10
- package/dist/compiler.js.map +1 -1
- package/dist/composite-contract.d.ts +46 -0
- package/dist/composite-contract.d.ts.map +1 -0
- package/dist/composite-contract.js +89 -0
- package/dist/composite-contract.js.map +1 -0
- package/dist/expression-scope.d.ts +23 -0
- package/dist/expression-scope.d.ts.map +1 -0
- package/dist/expression-scope.js +488 -0
- package/dist/expression-scope.js.map +1 -0
- package/dist/expressions-shared.d.ts +18 -0
- package/dist/expressions-shared.d.ts.map +1 -0
- package/dist/expressions-shared.js +20 -0
- package/dist/expressions-shared.js.map +1 -0
- package/dist/expressions.d.ts +1 -2
- package/dist/expressions.d.ts.map +1 -1
- package/dist/expressions.js +27 -25
- package/dist/expressions.js.map +1 -1
- package/dist/hash.d.ts +4 -1
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +80 -20
- package/dist/hash.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/expressions.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { extractReferences } from "./cel-ast.js";
|
|
2
|
+
import { EXPRESSION_PATTERN } from "./expressions-shared.js";
|
|
3
|
+
export { EXPRESSION_PATTERN, toCelParseSource } from "./expressions-shared.js";
|
|
3
4
|
/** Fields that are evaluated as raw CEL (evaluateExpression), not templates.
|
|
4
5
|
* Using ${{ }} in these fields causes a runtime CEL parse error. */
|
|
5
6
|
const RAW_CEL_FIELDS = new Set(["over", "until", "when"]);
|
|
6
|
-
const
|
|
7
|
-
const ROOT_REFERENCE_PATTERN = /(?<![\w.])([A-Za-z_][A-Za-z0-9_]*)\s*(?:\.|\()/g;
|
|
8
|
-
export const ALLOWED_ROOTS = new Set(["input", "steps", "loop", "item", "item_id", "item_index", "run_id"]);
|
|
7
|
+
export const ALLOWED_ROOTS = new Set(["input", "steps", "workflow", "loop", "item", "item_id", "item_index", "run_id"]);
|
|
9
8
|
export const ALLOWED_FUNCTIONS = new Set(["now", "len", "startsWith", "matches", "coalesce", "json"]);
|
|
10
9
|
export function createExpressionCollector(diagnostics, knownStepIds, stepKinds) {
|
|
11
10
|
const expressions = [];
|
|
@@ -23,29 +22,38 @@ export function createExpressionCollector(diagnostics, knownStepIds, stepKinds)
|
|
|
23
22
|
diagnostics.error("EXPR_EMPTY", "Expression cannot be empty.", path);
|
|
24
23
|
continue;
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
diagnostics.error("EXPR_PARSE", `Invalid CEL expression: ${errorMessage(error)}`, path);
|
|
25
|
+
const { references, functions, parseError } = extractReferences(source);
|
|
26
|
+
if (parseError) {
|
|
27
|
+
diagnostics.error("EXPR_PARSE", `Invalid CEL expression: ${parseError}`, path);
|
|
28
|
+
continue;
|
|
31
29
|
}
|
|
32
|
-
const
|
|
33
|
-
for (const
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
const stepReferences = [];
|
|
31
|
+
for (const ref of references) {
|
|
32
|
+
// Unknown root (not an allowed context variable). Functions are reported
|
|
33
|
+
// separately below so a function name is never mistaken for a root.
|
|
34
|
+
if (!ALLOWED_ROOTS.has(ref.root)) {
|
|
35
|
+
diagnostics.warning("EXPR_UNKNOWN_ROOT", `Expression root '${ref.root}' is not part of the M1 DSL context.`, path);
|
|
36
|
+
}
|
|
37
|
+
if (ref.root === "steps") {
|
|
38
|
+
const first = ref.segments[0];
|
|
39
|
+
if (first && first.kind === "field") {
|
|
40
|
+
stepReferences.push(first.name);
|
|
41
|
+
if (!knownStepIds.has(first.name)) {
|
|
42
|
+
diagnostics.error("EXPR_UNKNOWN_STEP", `Expression references unknown step '${first.name}'.`, path);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
36
45
|
}
|
|
37
46
|
}
|
|
38
|
-
for (const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
diagnostics.warning("EXPR_UNKNOWN_ROOT", `Expression root '${name}' is not part of the M1 DSL context.`, path);
|
|
47
|
+
for (const fn of functions) {
|
|
48
|
+
if (!ALLOWED_FUNCTIONS.has(fn)) {
|
|
49
|
+
diagnostics.warning("EXPR_UNKNOWN_ROOT", `Expression function '${fn}' is not part of the M1 DSL context.`, path);
|
|
42
50
|
}
|
|
43
51
|
}
|
|
44
52
|
expressions.push({
|
|
45
53
|
id: `expr_${expressions.length + 1}`,
|
|
46
54
|
source,
|
|
47
55
|
path,
|
|
48
|
-
references
|
|
56
|
+
references: stepReferences
|
|
49
57
|
});
|
|
50
58
|
}
|
|
51
59
|
}
|
|
@@ -66,12 +74,6 @@ export function createExpressionCollector(diagnostics, knownStepIds, stepKinds)
|
|
|
66
74
|
}
|
|
67
75
|
return { expressions, visit };
|
|
68
76
|
}
|
|
69
|
-
function errorMessage(error) {
|
|
70
|
-
return error instanceof Error ? error.message : String(error);
|
|
71
|
-
}
|
|
72
|
-
export function toCelParseSource(source) {
|
|
73
|
-
return source.replace(/\bloop\./g, "loop_ctx.");
|
|
74
|
-
}
|
|
75
77
|
function isRecord(value) {
|
|
76
78
|
return typeof value === "object" && value !== null;
|
|
77
79
|
}
|
package/dist/expressions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"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"}
|
package/dist/hash.d.ts
CHANGED
|
@@ -12,5 +12,8 @@ import type { IrNode } from "./types.js";
|
|
|
12
12
|
* two structurally identical Nodes to mismatch only because they live under
|
|
13
13
|
* different parent paths.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export interface IrNodeHashOptions {
|
|
16
|
+
workflow?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export declare function hashIrNode(node: IrNode, options?: IrNodeHashOptions): string;
|
|
16
19
|
//# sourceMappingURL=hash.d.ts.map
|
package/dist/hash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,YAAY,CAAC;AAInD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAEhF"}
|
package/dist/hash.js
CHANGED
|
@@ -1,40 +1,100 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* the same Node across Runs by the Forked Run inheritance rule (ADR-0007). The
|
|
7
|
-
* hash MUST be stable across re-compiles of the same source IR; it MUST change
|
|
8
|
-
* when any compiled IR field of the Node or any of its descendants differs.
|
|
9
|
-
*
|
|
10
|
-
* The hash explicitly excludes `id`, `nodePath`, and `keyTemplate` because Node
|
|
11
|
-
* Key already carries that identity; including them would tautologically force
|
|
12
|
-
* two structurally identical Nodes to mismatch only because they live under
|
|
13
|
-
* different parent paths.
|
|
14
|
-
*/
|
|
15
|
-
export function hashIrNode(node) {
|
|
16
|
-
return sha256(JSON.stringify(canonicalize(nodeShape(node))));
|
|
2
|
+
import { extractReferences } from "./cel-ast.js";
|
|
3
|
+
import { EXPRESSION_PATTERN } from "./expressions-shared.js";
|
|
4
|
+
export function hashIrNode(node, options = {}) {
|
|
5
|
+
return sha256(JSON.stringify(canonicalize(nodeShape(node, options))));
|
|
17
6
|
}
|
|
18
|
-
function nodeShape(node) {
|
|
7
|
+
function nodeShape(node, options) {
|
|
19
8
|
const shape = {
|
|
20
9
|
kind: node.kind,
|
|
21
10
|
metadata: node.metadata
|
|
22
11
|
};
|
|
12
|
+
if (options.workflow && nodeReferencesWorkflow(node))
|
|
13
|
+
shape.workflow = options.workflow;
|
|
23
14
|
if (node.outputMerge)
|
|
24
15
|
shape.outputMerge = node.outputMerge;
|
|
25
16
|
if (node.children && node.children.length > 0)
|
|
26
|
-
shape.children = node.children.map(nodeShape);
|
|
17
|
+
shape.children = node.children.map((child) => nodeShape(child, options));
|
|
27
18
|
if (node.branches && node.branches.length > 0)
|
|
28
|
-
shape.branches = node.branches.map(branchShape);
|
|
19
|
+
shape.branches = node.branches.map((branch) => branchShape(branch, options));
|
|
29
20
|
return shape;
|
|
30
21
|
}
|
|
31
|
-
function branchShape(branch) {
|
|
22
|
+
function branchShape(branch, options) {
|
|
32
23
|
return {
|
|
33
24
|
id: branch.id,
|
|
34
25
|
when: branch.when,
|
|
35
|
-
children: branch.children.map(nodeShape)
|
|
26
|
+
children: branch.children.map((child) => nodeShape(child, options))
|
|
36
27
|
};
|
|
37
28
|
}
|
|
29
|
+
function nodeReferencesWorkflow(node) {
|
|
30
|
+
if (metadataReferencesWorkflow(node.kind, node.metadata))
|
|
31
|
+
return true;
|
|
32
|
+
if (node.branches?.some((branch) => rawCelReferencesWorkflow(branch.when) || branch.children.some(nodeReferencesWorkflow)))
|
|
33
|
+
return true;
|
|
34
|
+
return node.children?.some(nodeReferencesWorkflow) ?? false;
|
|
35
|
+
}
|
|
36
|
+
function metadataReferencesWorkflow(kind, metadata) {
|
|
37
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
38
|
+
if (typeof value === "string") {
|
|
39
|
+
if (templateReferencesWorkflow(value))
|
|
40
|
+
return true;
|
|
41
|
+
if (isRawCelField(kind, key) && rawCelReferencesWorkflow(value))
|
|
42
|
+
return true;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
if (value.some((item) => valueReferencesWorkflow(item)))
|
|
47
|
+
return true;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (value && typeof value === "object") {
|
|
51
|
+
if (valueReferencesWorkflow(value))
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
function valueReferencesWorkflow(value) {
|
|
58
|
+
if (typeof value === "string")
|
|
59
|
+
return templateReferencesWorkflow(value);
|
|
60
|
+
if (Array.isArray(value))
|
|
61
|
+
return value.some(valueReferencesWorkflow);
|
|
62
|
+
if (value && typeof value === "object")
|
|
63
|
+
return Object.values(value).some(valueReferencesWorkflow);
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
function templateReferencesWorkflow(value) {
|
|
67
|
+
for (const match of value.matchAll(EXPRESSION_PATTERN)) {
|
|
68
|
+
if (expressionReferencesWorkflow(match[1]?.trim() ?? ""))
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
EXPRESSION_PATTERN.lastIndex = 0;
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
function rawCelReferencesWorkflow(value) {
|
|
75
|
+
if (typeof value !== "string")
|
|
76
|
+
return false;
|
|
77
|
+
if (EXPRESSION_PATTERN.test(value)) {
|
|
78
|
+
EXPRESSION_PATTERN.lastIndex = 0;
|
|
79
|
+
return templateReferencesWorkflow(value);
|
|
80
|
+
}
|
|
81
|
+
EXPRESSION_PATTERN.lastIndex = 0;
|
|
82
|
+
return expressionReferencesWorkflow(value.trim());
|
|
83
|
+
}
|
|
84
|
+
function expressionReferencesWorkflow(source) {
|
|
85
|
+
if (!source)
|
|
86
|
+
return false;
|
|
87
|
+
const { references, parseError } = extractReferences(source);
|
|
88
|
+
if (parseError)
|
|
89
|
+
return false;
|
|
90
|
+
return references.some((ref) => ref.root === "workflow");
|
|
91
|
+
}
|
|
92
|
+
function isRawCelField(kind, key) {
|
|
93
|
+
return (kind === "fanout" && key === "over")
|
|
94
|
+
|| (kind === "loop" && key === "until")
|
|
95
|
+
|| (kind === "guard" && key === "when")
|
|
96
|
+
|| (kind === "switch" && key === "on");
|
|
97
|
+
}
|
|
38
98
|
/**
|
|
39
99
|
* Recursively sort object keys so JSON.stringify is canonical regardless of
|
|
40
100
|
* source insertion order. Arrays are preserved in order (semantic).
|
package/dist/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,12 @@ export type { CompileSchemaDslResult, SchemaDslError, CompileSchemaDslOptions }
|
|
|
8
8
|
export type { WorkflowSourcePolicy } from "./source-policy.js";
|
|
9
9
|
export { EXPRESSION_PATTERN, ALLOWED_ROOTS, ALLOWED_FUNCTIONS, toCelParseSource, createExpressionCollector } from "./expressions.js";
|
|
10
10
|
export type { ExpressionCollector } from "./expressions.js";
|
|
11
|
+
export { extractReferences, referenceToString, isStaticReference } from "./cel-ast.js";
|
|
12
|
+
export type { ExpressionReference, ReferenceSegment, ExtractResult } from "./cel-ast.js";
|
|
13
|
+
export { validateScopedExpressions } from "./expression-scope.js";
|
|
14
|
+
export type { ScopedValidationInput } from "./expression-scope.js";
|
|
15
|
+
export { COMPOSITE_CONTRACTS, outputMergeFor, keyTemplateForKind } from "./composite-contract.js";
|
|
16
|
+
export type { CompositeContract, OutputShapeKind } from "./composite-contract.js";
|
|
11
17
|
export { parseDurationMs } from "./duration.js";
|
|
12
18
|
export type { ParseDurationOptions } from "./duration.js";
|
|
13
19
|
export { hashIrNode } from "./hash.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACzG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EACV,OAAO,EACP,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACzG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACvF,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClG,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EACV,OAAO,EACP,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,UAAU,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,9 @@ export { createSchedule } from "./schedule.js";
|
|
|
5
5
|
export { createIncludeResolver, globalWorkflowRoot, workflowSourcePolicy } from "./source-policy.js";
|
|
6
6
|
export { compileSchemaDsl } from "./schema/index.js";
|
|
7
7
|
export { EXPRESSION_PATTERN, ALLOWED_ROOTS, ALLOWED_FUNCTIONS, toCelParseSource, createExpressionCollector } from "./expressions.js";
|
|
8
|
+
export { extractReferences, referenceToString, isStaticReference } from "./cel-ast.js";
|
|
9
|
+
export { validateScopedExpressions } from "./expression-scope.js";
|
|
10
|
+
export { COMPOSITE_CONTRACTS, outputMergeFor, keyTemplateForKind } from "./composite-contract.js";
|
|
8
11
|
export { parseDurationMs } from "./duration.js";
|
|
9
12
|
export { hashIrNode } from "./hash.js";
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|