aontu 0.52.0 → 0.53.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/README.md +88 -0
- package/bin/aontu-mcp.js +4 -0
- package/dist/agentsmd.d.ts +16 -0
- package/dist/agentsmd.js +107 -0
- package/dist/agentsmd.js.map +1 -0
- package/dist/aontu.d.ts +14 -3
- package/dist/aontu.js +145 -4
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +44 -1
- package/dist/cli.js +2401 -44
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +16 -0
- package/dist/ctx.js +44 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.d.ts +22 -0
- package/dist/diff.js +141 -0
- package/dist/diff.js.map +1 -0
- package/dist/err.d.ts +3 -1
- package/dist/err.js +48 -8
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +16 -0
- package/dist/graph.js +73 -0
- package/dist/graph.js.map +1 -0
- package/dist/hcanon.d.ts +3 -0
- package/dist/hcanon.js +146 -0
- package/dist/hcanon.js.map +1 -0
- package/dist/hints.js +223 -5
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +20 -0
- package/dist/jsonschema.js +391 -0
- package/dist/jsonschema.js.map +1 -0
- package/dist/lang.js +698 -35
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +9 -2
- package/dist/lsp.js +262 -46
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.d.ts +20 -0
- package/dist/mcp-server.js +147 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +42 -0
- package/dist/mcp.js +814 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mod-tool.d.ts +58 -0
- package/dist/mod-tool.js +498 -0
- package/dist/mod-tool.js.map +1 -0
- package/dist/mod.d.ts +31 -0
- package/dist/mod.js +250 -0
- package/dist/mod.js.map +1 -0
- package/dist/patch.d.ts +44 -0
- package/dist/patch.js +506 -0
- package/dist/patch.js.map +1 -0
- package/dist/provenance.d.ts +40 -0
- package/dist/provenance.js +335 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +27 -0
- package/dist/query.js +294 -0
- package/dist/query.js.map +1 -0
- package/dist/reach.d.ts +14 -0
- package/dist/reach.js +140 -0
- package/dist/reach.js.map +1 -0
- package/dist/relation.d.ts +19 -0
- package/dist/relation.js +305 -0
- package/dist/relation.js.map +1 -0
- package/dist/report-sarif.d.ts +14 -0
- package/dist/report-sarif.js +102 -0
- package/dist/report-sarif.js.map +1 -0
- package/dist/site.d.ts +4 -0
- package/dist/site.js +31 -0
- package/dist/site.js.map +1 -1
- package/dist/std.d.ts +1 -0
- package/dist/std.js +73 -0
- package/dist/std.js.map +1 -0
- package/dist/subsume.d.ts +39 -0
- package/dist/subsume.js +526 -0
- package/dist/subsume.js.map +1 -0
- package/dist/trim.d.ts +19 -0
- package/dist/trim.js +155 -0
- package/dist/trim.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +17 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.d.ts +3 -1
- package/dist/unify.js +287 -18
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +9 -1
- package/dist/utility.js +122 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +33 -0
- package/dist/val/AggFuncVal.js +202 -0
- package/dist/val/AggFuncVal.js.map +1 -0
- package/dist/val/ArithFuncVal.d.ts +31 -0
- package/dist/val/ArithFuncVal.js +62 -0
- package/dist/val/ArithFuncVal.js.map +1 -0
- package/dist/val/BagVal.d.ts +5 -0
- package/dist/val/BagVal.js +96 -5
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +9 -1
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +19 -0
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.d.ts +48 -1
- package/dist/val/ConstraintVal.js +1501 -110
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/CopyFuncVal.d.ts +1 -2
- package/dist/val/CopyFuncVal.js +7 -0
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.d.ts +1 -0
- package/dist/val/Decimal.js +13 -0
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.d.ts +11 -0
- package/dist/val/DeprecateFuncVal.js +47 -0
- package/dist/val/DeprecateFuncVal.js.map +1 -0
- package/dist/val/DisjunctVal.js +130 -21
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.d.ts +15 -0
- package/dist/val/EachFuncVal.js +75 -0
- package/dist/val/EachFuncVal.js.map +1 -0
- package/dist/val/ExpectVal.d.ts +1 -0
- package/dist/val/ExpectVal.js +41 -4
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FeatureVal.js +1 -1
- package/dist/val/FeatureVal.js.map +1 -1
- package/dist/val/FilterFuncVal.d.ts +15 -0
- package/dist/val/FilterFuncVal.js +91 -0
- package/dist/val/FilterFuncVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +6 -1
- package/dist/val/FuncBaseVal.js +178 -2
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/IdFuncVal.d.ts +13 -0
- package/dist/val/IdFuncVal.js +54 -0
- package/dist/val/IdFuncVal.js.map +1 -0
- package/dist/val/JunctionVal.js +7 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.d.ts +1 -1
- package/dist/val/KeyFuncVal.js +38 -30
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +117 -17
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +102 -8
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.d.ts +15 -0
- package/dist/val/MatchFuncVal.js +107 -0
- package/dist/val/MatchFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +24 -0
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -1
- package/dist/val/OpBaseVal.js +24 -2
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/OpenFuncVal.js +4 -1
- package/dist/val/OpenFuncVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +15 -0
- package/dist/val/PackFuncVal.js +108 -0
- package/dist/val/PackFuncVal.js.map +1 -0
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.d.ts +13 -0
- package/dist/val/PlaceVal.js +131 -0
- package/dist/val/PlaceVal.js.map +1 -0
- package/dist/val/PlusOpVal.js +11 -2
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -2
- package/dist/val/PrefVal.js +78 -23
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +1 -1
- package/dist/val/RefVal.js +158 -30
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +36 -0
- package/dist/val/ReferFuncVal.js +303 -0
- package/dist/val/ReferFuncVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +1 -2
- package/dist/val/ScalarKindVal.js +0 -11
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TypeFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +9 -2
- package/dist/val/Val.js +150 -4
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.d.ts +6 -0
- package/dist/val/arith.js +170 -0
- package/dist/val/arith.js.map +1 -0
- package/dist/vet.d.ts +45 -0
- package/dist/vet.js +776 -0
- package/dist/vet.js.map +1 -0
- package/dist/walk.d.ts +2 -0
- package/dist/walk.js +91 -0
- package/dist/walk.js.map +1 -0
- package/grammar/aontu.gbnf +130 -0
- package/grammar/aontu.lark +113 -0
- package/package.json +30 -15
- package/skill/SKILL.md +37 -0
- package/skill/error-codes.md +62 -0
- package/skill/examples.md +99 -0
- package/skill/grammar-card.md +57 -0
- package/src/agentsmd.ts +135 -0
- package/src/aontu.ts +192 -4
- package/src/cli.ts +2858 -71
- package/src/ctx.ts +81 -0
- package/src/diff.ts +196 -0
- package/src/err.ts +52 -8
- package/src/graph.ts +135 -0
- package/src/hcanon.ts +169 -0
- package/src/hints.ts +271 -5
- package/src/jsonschema.ts +511 -0
- package/src/lang.ts +779 -37
- package/src/lsp.ts +281 -47
- package/src/mcp-server.ts +187 -0
- package/src/mcp.ts +993 -0
- package/src/mod-tool.ts +679 -0
- package/src/mod.ts +344 -0
- package/src/patch.ts +624 -0
- package/src/provenance.ts +430 -0
- package/src/query.ts +379 -0
- package/src/reach.ts +184 -0
- package/src/relation.ts +395 -0
- package/src/report-sarif.ts +137 -0
- package/src/site.ts +36 -1
- package/src/std.ts +73 -0
- package/src/subsume.ts +690 -0
- package/src/trim.ts +195 -0
- package/src/tsconfig.json +10 -4
- package/src/type.ts +51 -2
- package/src/unify.ts +311 -16
- package/src/utility.ts +139 -1
- package/src/val/AggFuncVal.ts +319 -0
- package/src/val/ArithFuncVal.ts +108 -0
- package/src/val/BagVal.ts +101 -4
- package/src/val/CloseFuncVal.ts +9 -1
- package/src/val/ConjunctVal.ts +20 -0
- package/src/val/ConstraintVal.ts +1699 -116
- package/src/val/CopyFuncVal.ts +7 -1
- package/src/val/Decimal.ts +15 -0
- package/src/val/DeprecateFuncVal.ts +84 -0
- package/src/val/DisjunctVal.ts +139 -28
- package/src/val/EachFuncVal.ts +133 -0
- package/src/val/ExpectVal.ts +43 -6
- package/src/val/FeatureVal.ts +1 -1
- package/src/val/FilterFuncVal.ts +154 -0
- package/src/val/FuncBaseVal.ts +200 -3
- package/src/val/HideFuncVal.ts +0 -2
- package/src/val/IdFuncVal.ts +91 -0
- package/src/val/JunctionVal.ts +7 -1
- package/src/val/KeyFuncVal.ts +39 -35
- package/src/val/ListVal.ts +125 -18
- package/src/val/LowerFuncVal.ts +0 -1
- package/src/val/MapVal.ts +110 -8
- package/src/val/MatchFuncVal.ts +176 -0
- package/src/val/MoveFuncVal.ts +0 -2
- package/src/val/NilVal.ts +25 -0
- package/src/val/OpBaseVal.ts +26 -3
- package/src/val/OpenFuncVal.ts +4 -2
- package/src/val/PackFuncVal.ts +175 -0
- package/src/val/PathFuncVal.ts +0 -1
- package/src/val/PlaceVal.ts +193 -0
- package/src/val/PlusOpVal.ts +11 -2
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +79 -36
- package/src/val/RefVal.ts +163 -30
- package/src/val/ReferFuncVal.ts +387 -0
- package/src/val/ScalarKindVal.ts +0 -13
- package/src/val/TopVal.ts +0 -1
- package/src/val/TypeFuncVal.ts +0 -2
- package/src/val/UpperFuncVal.ts +0 -1
- package/src/val/Val.ts +213 -3
- package/src/val/VarVal.ts +0 -1
- package/src/val/arith.ts +316 -0
- package/src/vet.ts +992 -0
- package/src/walk.ts +99 -0
package/dist/unify.js
CHANGED
|
@@ -1,15 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Copyright (c) 2021-2023 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.unite = exports.Unify = void 0;
|
|
4
|
+
exports.withDepth = exports.unite = exports.Unify = void 0;
|
|
5
|
+
exports.mergeEntities = mergeEntities;
|
|
5
6
|
const ctx_1 = require("./ctx");
|
|
6
7
|
const type_1 = require("./type");
|
|
7
8
|
const err_1 = require("./err");
|
|
9
|
+
const PlaceVal_1 = require("./val/PlaceVal");
|
|
8
10
|
const lang_1 = require("./lang");
|
|
9
11
|
const utility_1 = require("./utility");
|
|
10
12
|
const top_1 = require("./val/top");
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
+
// The evaluation budgets live on the context (ctx.budget: passes,
|
|
14
|
+
// revisits, depth), defaulted there to the shared spec-visible
|
|
15
|
+
// constants test/spec/budget.tsv pins in both ports (9 / 999 / 1000)
|
|
16
|
+
// and configurable through the trust profile (G5, docs/trust.md) —
|
|
17
|
+
// deterministically: a budget is an integer count of engine events,
|
|
18
|
+
// never wall-clock.
|
|
19
|
+
//
|
|
20
|
+
// Why the revisit default is 999: how many times one (Val, path) pair
|
|
21
|
+
// may be re-unified within a single fixpoint pass before the evaluator
|
|
22
|
+
// calls it non-convergence (`unify_cycle`). The old false positive here
|
|
23
|
+
// -- a legal model with many sibling conjunct terms at one path, each
|
|
24
|
+
// re-running the TOP self-unify -- is fixed by the per-pass memo below
|
|
25
|
+
// (_tcc/_tpi); test/spec/budget.tsv drives 1200 sibling terms through
|
|
26
|
+
// both engines as the regression guard.
|
|
27
|
+
//
|
|
28
|
+
// Why the depth default is 1000: the whole shared suite peaks at 603
|
|
29
|
+
// (the deliberately extreme 1200-sibling-term fixture; ordinary
|
|
30
|
+
// documents are two orders below), and V8 exhausts its call stack
|
|
31
|
+
// somewhere past depth ~1500 in this evaluator. 1000 sits above every
|
|
32
|
+
// real document and below the host limit, so the budget -- not the
|
|
33
|
+
// host -- decides the verdict.
|
|
34
|
+
// Charge a DIRECT `Val.unify` recursion to the same depth budget that
|
|
35
|
+
// `unite` enforces. Function and operator arguments evaluate through
|
|
36
|
+
// `arg.unify(top(), ...)` rather than through the dispatcher, so without
|
|
37
|
+
// this the counter stays flat while the JavaScript stack keeps growing:
|
|
38
|
+
// a 1500-deep `upper(upper(...))` resolved in TypeScript while Go — which
|
|
39
|
+
// routes its arguments through the counted dispatcher — reported
|
|
40
|
+
// `unify_cycle`. Returns the budget nil instead of running when the
|
|
41
|
+
// budget is spent.
|
|
42
|
+
const withDepth = (ctx, a, b, run) => {
|
|
43
|
+
if (ctx.budget.depth <= ctx._depth.n) {
|
|
44
|
+
return (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
|
|
45
|
+
}
|
|
46
|
+
ctx._depth.n++;
|
|
47
|
+
try {
|
|
48
|
+
return run();
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
ctx._depth.n--;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.withDepth = withDepth;
|
|
13
55
|
// Vals should only have to unify downwards (in .unify) over Vals they understand.
|
|
14
56
|
// and for complex Vals, TOP, which means self unify if not yet done
|
|
15
57
|
const unite = (ctx, a, b, whence) => {
|
|
@@ -28,15 +70,39 @@ const unite = (ctx, a, b, whence) => {
|
|
|
28
70
|
if (a.done)
|
|
29
71
|
return a;
|
|
30
72
|
}
|
|
31
|
-
|
|
73
|
+
// ... and NOT on an instrumented run (G7 provenance). Both arms
|
|
74
|
+
// below answer with one operand and never reach the recorder at
|
|
75
|
+
// the tail, so an equal pair — two positions of one entity that
|
|
76
|
+
// agree, a clone meeting its source — contributed silently and
|
|
77
|
+
// `why` named one site where the Go port, whose recorder wraps the
|
|
78
|
+
// whole dispatcher, named both. Instrumented runs pay the slow
|
|
79
|
+
// path knowingly; uninstrumented ones pay one undefined check.
|
|
80
|
+
else if (b !== undefined && b !== null && undefined === ctx.prov) {
|
|
32
81
|
if (a.done && b.done) {
|
|
33
|
-
if (a.id === b.id)
|
|
82
|
+
if (a.id === b.id) {
|
|
83
|
+
// The deprecation record survives the fast path (G3).
|
|
84
|
+
if (null == a.deprecation && null != b.deprecation) {
|
|
85
|
+
a.deprecation = b.deprecation;
|
|
86
|
+
}
|
|
34
87
|
return a;
|
|
88
|
+
}
|
|
35
89
|
if (a.constructor === b.constructor && a.peg === b.peg
|
|
36
90
|
&& !a.isNil && !b.isNil
|
|
37
91
|
&& !a.isMap && !a.isList
|
|
38
92
|
&& !a.isConjunct && !a.isDisjunct
|
|
39
|
-
&& !a.isRef && !a.isPref && !a.isFunc && !a.isExpect
|
|
93
|
+
&& !a.isRef && !a.isPref && !a.isFunc && !a.isExpect
|
|
94
|
+
// NOT two TOPs (G4 phase 1): every top has the same
|
|
95
|
+
// (absent) peg, so this path treated any two as the same
|
|
96
|
+
// value — true of the unit itself, false of a unit
|
|
97
|
+
// CARRYING AN IDENTITY, and `id(x) & id(y)` is two of
|
|
98
|
+
// those. The slow path answers the same thing for two
|
|
99
|
+
// plain tops, and refuses the pair for two named ones.
|
|
100
|
+
&& !a.isTop && !b.isTop) {
|
|
101
|
+
// The deprecation record survives the fast path too (G3):
|
|
102
|
+
// `deprecate(5) & 5` short-circuits here.
|
|
103
|
+
if (null == a.deprecation && null != b.deprecation) {
|
|
104
|
+
a.deprecation = b.deprecation;
|
|
105
|
+
}
|
|
40
106
|
return a;
|
|
41
107
|
}
|
|
42
108
|
}
|
|
@@ -55,12 +121,22 @@ const unite = (ctx, a, b, whence) => {
|
|
|
55
121
|
// NOTE: if this error occurs "unreasonably", attemp to avoid unnecesary unification
|
|
56
122
|
// See for example PrefVal peg.id equality inspection.
|
|
57
123
|
const sawCount = ctx.seen[saw] ?? 0;
|
|
58
|
-
if (
|
|
124
|
+
if (ctx.budget.depth <= ctx._depth.n) {
|
|
125
|
+
// Structural recursion budget. Without it, deep nesting exhausts the
|
|
126
|
+
// V8 call stack and the catch-all below reports a RangeError as
|
|
127
|
+
// `internal` — a verdict that depends on the host's stack size
|
|
128
|
+
// rather than on the document, which is exactly what the
|
|
129
|
+
// determinism clause forbids (docs/trust.md). Tripping here instead
|
|
130
|
+
// makes it a stated budget error, like the pass budget.
|
|
131
|
+
out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
|
|
132
|
+
}
|
|
133
|
+
else if (ctx.budget.revisits < sawCount) {
|
|
59
134
|
// console.log('SAW', sawCount, saw, a?.id, a?.canon, b?.id, b?.canon, ctx.cc)
|
|
60
135
|
out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
|
|
61
136
|
}
|
|
62
137
|
else {
|
|
63
138
|
ctx.seen[saw] = sawCount + 1;
|
|
139
|
+
ctx._depth.n++;
|
|
64
140
|
try {
|
|
65
141
|
let unified = false;
|
|
66
142
|
// Dispatch ladder. Structure note:
|
|
@@ -106,7 +182,19 @@ const unite = (ctx, a, b, whence) => {
|
|
|
106
182
|
|| b.isPref
|
|
107
183
|
|| b.isVar
|
|
108
184
|
|| b.isFunc
|
|
109
|
-
|| b.isExpect
|
|
185
|
+
|| b.isExpect
|
|
186
|
+
// The refer residual (G4 phase 2) DRIVES, like the other
|
|
187
|
+
// residuals here: its peer is a plain string, which knows
|
|
188
|
+
// nothing about entity addresses, so letting the string drive
|
|
189
|
+
// dropped the address and left the constraint standing.
|
|
190
|
+
|| b.isRefer
|
|
191
|
+
// An operator holding a HOLE (G8 phase 3) drives for the same
|
|
192
|
+
// reason: its peer is what FILLS it, and a scalar asked to
|
|
193
|
+
// unify with `_ + 2` sees an operator rather than a hole and
|
|
194
|
+
// refuses it on kind. Narrow to placeheld operators on
|
|
195
|
+
// purpose -- every other operator meets its peer the way it
|
|
196
|
+
// always has, through the conjunct fold that drives it.
|
|
197
|
+
|| (b.isOp && (0, PlaceVal_1.hasPlace)(b))) {
|
|
110
198
|
out = b.unify(a, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }) : ctx);
|
|
111
199
|
unified = true;
|
|
112
200
|
why = 'bv';
|
|
@@ -165,8 +253,49 @@ const unite = (ctx, a, b, whence) => {
|
|
|
165
253
|
...(err instanceof RangeError ? { overflow: true } : {}),
|
|
166
254
|
});
|
|
167
255
|
}
|
|
256
|
+
finally {
|
|
257
|
+
ctx._depth.n--;
|
|
258
|
+
}
|
|
168
259
|
}
|
|
169
260
|
ctx.explain && (0, utility_1.explainClose)(te, out);
|
|
261
|
+
// The provenance record (G7 phase 3), at the one place every meet
|
|
262
|
+
// passes through — the same reason the deprecation rider below lives
|
|
263
|
+
// here. Off by default: an uninstrumented run pays this one property
|
|
264
|
+
// load, and an instrumented one pays site materialisation knowingly.
|
|
265
|
+
if (undefined !== ctx.prov) {
|
|
266
|
+
ctx.prov.record(ctx.path, a, b, out);
|
|
267
|
+
}
|
|
268
|
+
// The IDENTITY survives every meet (G4 phase 1), by the same
|
|
269
|
+
// channel and for the same reason as the deprecation record below.
|
|
270
|
+
// TWO DIFFERENT NAMES on one node is a contradiction, not a merge:
|
|
271
|
+
// one node cannot be two entities, and the error names both sites.
|
|
272
|
+
if (null != out && true === out.isVal && !out.isNil) {
|
|
273
|
+
const ae = null != a ? a.entity : undefined;
|
|
274
|
+
const be = null != b ? b.entity : undefined;
|
|
275
|
+
if (null != ae && null != be && ae !== be) {
|
|
276
|
+
out = (0, err_1.makeNilErr)(ctx, 'id_conflict', a, b);
|
|
277
|
+
}
|
|
278
|
+
else if (!out.isTop) {
|
|
279
|
+
const e = ae ?? be;
|
|
280
|
+
if (null != e) {
|
|
281
|
+
out.entity = e;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
// The deprecation record survives EVERY meet (G3 phase 4): the
|
|
286
|
+
// boolean marks have their own sweeps (ConjunctVal, the bag walks),
|
|
287
|
+
// but a record lost in one meet shape is a use the tooling never
|
|
288
|
+
// warns about, so it rides here, at the one place all meets pass
|
|
289
|
+
// through. First record wins; TOP and nil stay clean (TOP is the
|
|
290
|
+
// unit, and an error needs no deprecation).
|
|
291
|
+
if (null != out && true === out.isVal &&
|
|
292
|
+
!out.isTop && !out.isNil && null == out.deprecation) {
|
|
293
|
+
const dep = (null != a ? a.deprecation : undefined) ??
|
|
294
|
+
(null != b ? b.deprecation : undefined);
|
|
295
|
+
if (null != dep) {
|
|
296
|
+
out.deprecation = dep;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
170
299
|
return out;
|
|
171
300
|
};
|
|
172
301
|
exports.unite = unite;
|
|
@@ -196,6 +325,93 @@ function residuePaths(v, max) {
|
|
|
196
325
|
visit(v, true);
|
|
197
326
|
return out;
|
|
198
327
|
}
|
|
328
|
+
// IDENTITY-MERGE (G4 phase 1): every node in one evaluation carrying
|
|
329
|
+
// the same id is unified with every other. Declaring two nodes the
|
|
330
|
+
// same entity MEANS unifying them, so this is not a lookup table —
|
|
331
|
+
// it is a meet, and a contradiction between two declarations is an
|
|
332
|
+
// ordinary conflict naming both sites.
|
|
333
|
+
//
|
|
334
|
+
// Run once per fixpoint pass, after the pass's own unification: a
|
|
335
|
+
// position picks up the representative, the representative picks up
|
|
336
|
+
// the position, and the two converge across passes exactly as chained
|
|
337
|
+
// references do, inside the same `maxcc` bound.
|
|
338
|
+
//
|
|
339
|
+
// The tree stays a TREE. Every declared position holds the merged
|
|
340
|
+
// value and generation emits it at each path — duplication, as
|
|
341
|
+
// references generate today. Identity adds addressing, not a new
|
|
342
|
+
// shape.
|
|
343
|
+
// The ctx DESCENDS with the walk, so the merge's meet happens at the
|
|
344
|
+
// position's own path: a contribution `$.b.k` picked up from `$.a.k`
|
|
345
|
+
// is recorded against `$.b.k`, which is where a reader asking `why`
|
|
346
|
+
// stands. Merging under the root ctx instead filed every contribution
|
|
347
|
+
// at the top and left the positions themselves with an empty record —
|
|
348
|
+
// and the Go port, whose bag loops derive the base from the value's
|
|
349
|
+
// own path, already answered the useful way.
|
|
350
|
+
function mergeEntities(ctx, root) {
|
|
351
|
+
const reg = ctx.entities;
|
|
352
|
+
// COLLECT, then APPLY — the same walk twice, not two walks. A single
|
|
353
|
+
// pass merges each position into the representative as it meets it,
|
|
354
|
+
// which leaves the positions it already passed holding the pre-merge
|
|
355
|
+
// value: `a: id(x) & {k:1}` kept `{k:1}` while `b: id(x) & {j:2}`
|
|
356
|
+
// became `{j:2,k:1}`, and the two sites disagreed about what the one
|
|
357
|
+
// entity is. The representative is therefore settled over the WHOLE
|
|
358
|
+
// tree before any position is written.
|
|
359
|
+
//
|
|
360
|
+
// `write` is which half is running. One function rather than two
|
|
361
|
+
// because the two halves differ in three lines and agree in the walk
|
|
362
|
+
// — and a walk written twice is a walk that drifts.
|
|
363
|
+
const walk = (node, seen, nctx, write) => {
|
|
364
|
+
if (null == node || true !== node.isVal) {
|
|
365
|
+
return node;
|
|
366
|
+
}
|
|
367
|
+
const name = node.entity;
|
|
368
|
+
if (null != name) {
|
|
369
|
+
if (write) {
|
|
370
|
+
// The SUBSTITUTION happens before the seen-guard, not after.
|
|
371
|
+
// Two positions of one entity hold the SAME object once a pass
|
|
372
|
+
// has merged them, so a guard that ran first would visit the
|
|
373
|
+
// first position, replace it with a newer representative, and
|
|
374
|
+
// then skip the second as already-seen — leaving it on the
|
|
375
|
+
// older value. That is exactly what a `refer(t)` flow
|
|
376
|
+
// produces: it writes a new representative mid-pass, and every
|
|
377
|
+
// position must take it.
|
|
378
|
+
const rep = reg.get(name);
|
|
379
|
+
if (null != rep && rep !== node) {
|
|
380
|
+
node = rep;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
const rep = reg.get(name);
|
|
385
|
+
reg.set(name, null == rep || rep === node ? node :
|
|
386
|
+
unite(nctx, node, rep, 'entity'));
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
// The guard bounds the DESCENT, which is all it was ever for: a
|
|
390
|
+
// unified tree is a graph, and a subtree is worth walking once.
|
|
391
|
+
if (seen.has(node)) {
|
|
392
|
+
return node;
|
|
393
|
+
}
|
|
394
|
+
seen.add(node);
|
|
395
|
+
if ((true === node.isMap || true === node.isList) && null != node.peg) {
|
|
396
|
+
for (const k of Object.keys(node.peg)) {
|
|
397
|
+
const out = walk(node.peg[k], seen, nctx.descend(k), write);
|
|
398
|
+
if (write) {
|
|
399
|
+
node.peg[k] = out;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
return node;
|
|
404
|
+
};
|
|
405
|
+
walk(root, new Set(), ctx, false);
|
|
406
|
+
// NOTHING TO APPLY. The collect half is also the "does this document
|
|
407
|
+
// use identity at all?" answer, so a document that never says `id()`
|
|
408
|
+
// pays for one walk per pass rather than two — and the writing half
|
|
409
|
+
// never runs over a tree it cannot change.
|
|
410
|
+
if (0 === reg.size) {
|
|
411
|
+
return root;
|
|
412
|
+
}
|
|
413
|
+
return walk(root, new Set(), ctx, true);
|
|
414
|
+
}
|
|
199
415
|
class Unify {
|
|
200
416
|
constructor(root, lang, ctx, src) {
|
|
201
417
|
this.lang = lang || new lang_1.Lang();
|
|
@@ -233,24 +449,77 @@ class Unify {
|
|
|
233
449
|
uctx.err = this.err;
|
|
234
450
|
uctx.explain = this.explain;
|
|
235
451
|
uctx.snapmap = new Map();
|
|
452
|
+
uctx.entities = new Map();
|
|
236
453
|
const explain = null == ctx?.explain ? undefined : ctx?.explain;
|
|
237
454
|
const te = explain && (0, utility_1.explainOpen)(uctx, explain, 'root', res);
|
|
238
455
|
// NOTE: if true === res.done already, then this loop never needs to run.
|
|
239
|
-
let maxcc =
|
|
456
|
+
let maxcc = uctx.budget.passes;
|
|
240
457
|
let prevCanon = undefined;
|
|
458
|
+
let lastCanon = undefined;
|
|
459
|
+
let settle = false;
|
|
241
460
|
for (; this.cc < maxcc && type_1.DONE !== res.dc; this.cc++) {
|
|
242
461
|
// console.log('CC', this.cc, res.canon)
|
|
243
462
|
uctx.cc = this.cc;
|
|
244
463
|
uctx.seen = {};
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
464
|
+
// THE STAGING RULE (G8 phase 0,
|
|
465
|
+
// docs/capability-review/g8-generation.md), stated once, here,
|
|
466
|
+
// for every value whose answer depends on WHERE IT IS. Such a
|
|
467
|
+
// value residuates while the model is still moving and fires on
|
|
468
|
+
// the first pass whose input is IDENTICAL to the previous
|
|
469
|
+
// pass's input: nothing moved, so nothing will move it again,
|
|
470
|
+
// and the position it reports is the position it ends at.
|
|
471
|
+
//
|
|
472
|
+
// Why the whole model and not the value's own path. A spread, a
|
|
473
|
+
// reference or a `move` can place a value under a path it has
|
|
474
|
+
// already been driven at and THEN change what encloses it --
|
|
475
|
+
// `move` hides its source one pass AFTER it copies it, and a
|
|
476
|
+
// `key()` that answered on the strength of its path alone would
|
|
477
|
+
// answer for the ghost. Stability of the model is the only
|
|
478
|
+
// signal that says every such rearrangement is finished.
|
|
479
|
+
uctx.settle = settle;
|
|
480
|
+
// Snapshot BEFORE the final pass (the loop condition has
|
|
481
|
+
// already established the tree is not done), so exhaustion can
|
|
482
|
+
// tell "still refining" from "stable residue" below. Taken at
|
|
483
|
+
// the final pass's ENTRY rather than the previous pass's exit
|
|
484
|
+
// — the same value when the budget allows two passes, and the
|
|
485
|
+
// only possible value when the trust profile sets passes to 1,
|
|
486
|
+
// where the old placement (cc === maxcc - 2, never true) made
|
|
487
|
+
// exhaustion silent, exactly the truncation docs/trust.md
|
|
488
|
+
// forbids. `lastCanon` IS that entry canon whenever a previous
|
|
489
|
+
// pass rendered one, so this costs nothing extra.
|
|
490
|
+
if (this.cc === maxcc - 1) {
|
|
491
|
+
prevCanon = lastCanon ?? res.canon;
|
|
248
492
|
}
|
|
249
|
-
|
|
250
|
-
//
|
|
251
|
-
//
|
|
252
|
-
|
|
253
|
-
|
|
493
|
+
res = unite(te ? uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }) : uctx, res, (0, top_1.top)(), 'unify');
|
|
494
|
+
// MULTI-ERROR COLLECTION (G2 phase 6): the pass loop CONTINUES
|
|
495
|
+
// past an erroring pass, so independent failures a later pass
|
|
496
|
+
// would reach are collected in the same run — the break that
|
|
497
|
+
// stood here made every multi-error report truncated at the
|
|
498
|
+
// first erroring pass.
|
|
499
|
+
//
|
|
500
|
+
// What controls the cascade the design feared: a nil is
|
|
501
|
+
// ABSORBING (unite's isNil arms return the existing nil, no new
|
|
502
|
+
// error), so one failure stays ONE NilVal however many later
|
|
503
|
+
// meets touch it — a reference resolving to a failed target
|
|
504
|
+
// takes the same nil identity, which is exactly what lets the
|
|
505
|
+
// report layer dedup by identity. The probes that established
|
|
506
|
+
// this (fan-in refs, spread templates, disjunct trials, nested
|
|
507
|
+
// conjuncts) are pinned as vet.tsv's multi-* rows in both
|
|
508
|
+
// ports.
|
|
509
|
+
// The identity merge, after the pass's own unification: the
|
|
510
|
+
// positions this pass produced are what there is to merge.
|
|
511
|
+
res = mergeEntities(uctx, res);
|
|
512
|
+
// The staging signal for the NEXT pass, rendered here rather
|
|
513
|
+
// than at the top of the loop so a model that is FINISHED is
|
|
514
|
+
// never rendered at all: canon walks references, and the only
|
|
515
|
+
// trees that close a cycle are hand-built ones (the pass loop
|
|
516
|
+
// is what a test drives them through), which converge in one
|
|
517
|
+
// pass and must not be walked to decide a question that no
|
|
518
|
+
// longer arises.
|
|
519
|
+
if (type_1.DONE !== res.dc) {
|
|
520
|
+
const nowCanon = res.canon;
|
|
521
|
+
settle = undefined !== lastCanon && lastCanon === nowCanon;
|
|
522
|
+
lastCanon = nowCanon;
|
|
254
523
|
}
|
|
255
524
|
uctx = uctx.clone({ root: res });
|
|
256
525
|
}
|
|
@@ -276,6 +545,6 @@ class Unify {
|
|
|
276
545
|
}
|
|
277
546
|
this.res = res;
|
|
278
547
|
}
|
|
279
|
-
} /* node:coverage ignore next
|
|
548
|
+
} /* node:coverage ignore next 10 */
|
|
280
549
|
exports.Unify = Unify;
|
|
281
550
|
//# sourceMappingURL=unify.js.map
|
package/dist/unify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unify.js","sourceRoot":"","sources":["../src/unify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unify.js","sourceRoot":"","sources":["../src/unify.ts"],"names":[],"mappings":"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"}
|
package/dist/utility.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { Val } from './type';
|
|
2
2
|
declare function propagateMarks(source: Val, target: Val): void;
|
|
3
|
+
declare function collectDeprecations(root: Val): Array<{
|
|
4
|
+
val: Val;
|
|
5
|
+
path: string[];
|
|
6
|
+
}>;
|
|
7
|
+
declare function walkBagVals(root: Val, fn: (v: Val, path: string[]) => void): void;
|
|
8
|
+
declare function deprecationMessage(d: Record<string, string>): string;
|
|
9
|
+
declare function constantIdFunc(v: any, seen?: Set<any>): any;
|
|
10
|
+
declare function canonRiders(v: Val): string;
|
|
3
11
|
declare function formatPath(path: Val | string[], absolute?: boolean): string;
|
|
4
12
|
type WalkApply = (key: string | number | undefined, val: Val, parent: Val | undefined, path: (string | number)[]) => Val;
|
|
5
13
|
/**
|
|
@@ -12,4 +20,4 @@ declare function ec(t: any[] | undefined | null, why: string): (string | null)[]
|
|
|
12
20
|
declare function explainClose(t: any[] | undefined | null, out?: Val): void;
|
|
13
21
|
declare function formatExplain(t: any[], d?: number): string;
|
|
14
22
|
declare function items(o: any): any[][];
|
|
15
|
-
export { items, propagateMarks, formatPath, walk, WalkApply, explainOpen, ec, explainClose, formatExplain, };
|
|
23
|
+
export { items, propagateMarks, constantIdFunc, canonRiders, collectDeprecations, walkBagVals, deprecationMessage, formatPath, walk, WalkApply, explainOpen, ec, explainClose, formatExplain, };
|
package/dist/utility.js
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.items = items;
|
|
5
5
|
exports.propagateMarks = propagateMarks;
|
|
6
|
+
exports.constantIdFunc = constantIdFunc;
|
|
7
|
+
exports.canonRiders = canonRiders;
|
|
8
|
+
exports.collectDeprecations = collectDeprecations;
|
|
9
|
+
exports.walkBagVals = walkBagVals;
|
|
10
|
+
exports.deprecationMessage = deprecationMessage;
|
|
6
11
|
exports.formatPath = formatPath;
|
|
7
12
|
exports.walk = walk;
|
|
8
13
|
exports.explainOpen = explainOpen;
|
|
@@ -25,6 +30,122 @@ function propagateMarks(source, target) {
|
|
|
25
30
|
target.mark[name] = target.mark[name] || source.mark[name];
|
|
26
31
|
}
|
|
27
32
|
}
|
|
33
|
+
// Collect every value in the tree carrying the deprecation record (G3
|
|
34
|
+
// phase 4), with its path — the one walk behind vet's `deprecated`
|
|
35
|
+
// warnings and the LSP's Deprecated tags. The record travels on meets
|
|
36
|
+
// (the unite rider) and clones, so this sees the declaration and every
|
|
37
|
+
// use resolving through it. The non-Val guard is for a bag's raw peg
|
|
38
|
+
// entries, which degenerate parses can leave behind.
|
|
39
|
+
function collectDeprecations(root) {
|
|
40
|
+
const out = [];
|
|
41
|
+
walkBagVals(root, (v, path) => {
|
|
42
|
+
if (null != v.deprecation) {
|
|
43
|
+
out.push({ val: v, path });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
// Visit every Val reachable through bag children, with its path — the
|
|
49
|
+
// walk under collectDeprecations and vet's default-validity lint. The
|
|
50
|
+
// non-Val guard is for a bag's raw peg entries, which degenerate
|
|
51
|
+
// parses can leave behind (pinned by the collect-deprecations direct
|
|
52
|
+
// test, ts/test/coverage3.test.ts).
|
|
53
|
+
function walkBagVals(root, fn) {
|
|
54
|
+
const walk = (v, path) => {
|
|
55
|
+
if (null == v || true !== v.isVal) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
fn(v, path);
|
|
59
|
+
if ((true === v.isMap || true === v.isList) && null != v.peg) {
|
|
60
|
+
for (const k of Object.keys(v.peg)) {
|
|
61
|
+
walk(v.peg[k], [...path, k]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
walk(root, []);
|
|
66
|
+
}
|
|
67
|
+
// The one-line prose for a deprecation record, shared by vet's warning
|
|
68
|
+
// findings and the LSP's tagged diagnostics.
|
|
69
|
+
function deprecationMessage(d) {
|
|
70
|
+
const msg = 'string' === typeof d.msg ? d.msg : '';
|
|
71
|
+
return 'deprecated' + ('' === msg ? '' : ': ' + msg) +
|
|
72
|
+
('string' === typeof d.use ? ' (use ' + d.use + ')' : '') +
|
|
73
|
+
('string' === typeof d.since ? ' (since ' + d.since + ')' : '');
|
|
74
|
+
}
|
|
75
|
+
// SPREAD TEMPLATES MAY NOT STAMP ONE ID ONTO EVERY CHILD (G4 phase
|
|
76
|
+
// 1, clearing rule 3). `&: id(svc/thing) & {…}` says that every child
|
|
77
|
+
// of the bag IS the entity `svc/thing`, and the identity merge then
|
|
78
|
+
// unifies all of them into one another: an author who wrote a
|
|
79
|
+
// per-child template would get a single merged blob, and any two
|
|
80
|
+
// children that disagreed about a field would fail at a site that
|
|
81
|
+
// explains nothing.
|
|
82
|
+
//
|
|
83
|
+
// A PATH-DEPENDENT argument is allowed, and is how the author says
|
|
84
|
+
// what they meant: `&: id(key()) & {…}` names each child distinctly,
|
|
85
|
+
// resolved per destination by the existing spreadClone machinery.
|
|
86
|
+
// Duck-typed on the `isIdFunc` flag rather than imported: this file
|
|
87
|
+
// is below the Val classes, and the identity function sits above
|
|
88
|
+
// them.
|
|
89
|
+
function constantIdFunc(v, seen) {
|
|
90
|
+
if (null == v || true !== v.isVal) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const s = seen ?? new Set();
|
|
94
|
+
if (s.has(v)) {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
s.add(v);
|
|
98
|
+
if (true === v.isIdFunc && true !== v.isPathDependent) {
|
|
99
|
+
return v;
|
|
100
|
+
}
|
|
101
|
+
const peg = v.peg;
|
|
102
|
+
if (null != peg && 'object' === typeof peg) {
|
|
103
|
+
for (const k of Object.keys(peg)) {
|
|
104
|
+
const found = constantIdFunc(peg[k], s);
|
|
105
|
+
if (undefined !== found) {
|
|
106
|
+
return found;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return constantIdFunc(v.spread?.cj, s);
|
|
111
|
+
}
|
|
112
|
+
// The IDENTITY wrapper (G4 phase 1): `id("svc/auth")&{…}`, written
|
|
113
|
+
// as the conjunct an author writes, so canon reparses to the same
|
|
114
|
+
// entity. This deliberately differs from the type/hide MARKS, which
|
|
115
|
+
// canon drops (test/spec/marks.tsv, row `type-canon`): identity is
|
|
116
|
+
// semantic content, and G6's canon-hash must see it — two documents
|
|
117
|
+
// that disagree about which entity a node IS do not mean the same
|
|
118
|
+
// thing and must not hash alike.
|
|
119
|
+
//
|
|
120
|
+
// The name is JSON-quoted whatever it spells: `-` is not a bare-text
|
|
121
|
+
// character (test/spec/op-chars.tsv pins `a:6-2` as a parse error), so
|
|
122
|
+
// an unquoted `id(team-pay)` would not reparse.
|
|
123
|
+
function canonEntity(v) {
|
|
124
|
+
const c = v.canon;
|
|
125
|
+
const e = v.entity;
|
|
126
|
+
return null == e ? c : 'id(' + JSON.stringify(e) + ')&' + c;
|
|
127
|
+
}
|
|
128
|
+
// The canonical form of a value, wrapped in the RIDERS it carries —
|
|
129
|
+
// the identity (G4 phase 1) and the deprecation record (G3 phase 4) —
|
|
130
|
+
// reparseably, so `id(name) & x` and `deprecate(x, m)` survive canon.
|
|
131
|
+
// Bags render their children through this (MapVal/ListVal canon),
|
|
132
|
+
// which is where a marked FIELD — the realistic case — lives.
|
|
133
|
+
//
|
|
134
|
+
// The riders render HERE and not in the value's own `canon` for the
|
|
135
|
+
// same reason the guard at the MapVal call site tests the isVal flag:
|
|
136
|
+
// a bag's canon recursion visits each child once, and a child that
|
|
137
|
+
// wrapped itself as well would render its subtree twice per level —
|
|
138
|
+
// 2^depth on a nested document.
|
|
139
|
+
function canonRiders(v) {
|
|
140
|
+
const c = canonEntity(v);
|
|
141
|
+
const d = v.deprecation;
|
|
142
|
+
if (null == d) {
|
|
143
|
+
return c;
|
|
144
|
+
}
|
|
145
|
+
const keys = Object.keys(d).sort();
|
|
146
|
+
const rec = keys.map((k) => JSON.stringify(k) + ':' + JSON.stringify(d[k])).join(',');
|
|
147
|
+
return 'deprecate(' + c + ('' === rec ? '' : ',{' + rec + '}') + ')';
|
|
148
|
+
}
|
|
28
149
|
function formatPath(path, absolute) {
|
|
29
150
|
let parts;
|
|
30
151
|
if (Array.isArray(path)) {
|
|
@@ -142,5 +263,5 @@ function items(o) {
|
|
|
142
263
|
else {
|
|
143
264
|
return [];
|
|
144
265
|
}
|
|
145
|
-
} /* node:coverage ignore next
|
|
266
|
+
} /* node:coverage ignore next 18 */
|
|
146
267
|
//# sourceMappingURL=utility.js.map
|
package/dist/utility.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":";AAAA,yDAAyD;;
|
|
1
|
+
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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"}
|