aontu 0.62.0 → 0.63.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 +1 -1
- package/dist/agentsmd.js +0 -27
- package/dist/agentsmd.js.map +1 -1
- package/dist/alias.js.map +1 -1
- package/dist/allow.js +0 -92
- package/dist/allow.js.map +1 -1
- package/dist/aontu.d.ts +1 -1
- package/dist/aontu.js +1 -79
- package/dist/aontu.js.map +1 -1
- package/dist/aontumodel.d.ts +4 -0
- package/dist/aontumodel.js +33 -0
- package/dist/aontumodel.js.map +1 -0
- package/dist/cli.js +101 -620
- package/dist/cli.js.map +1 -1
- package/dist/ctx.js +0 -48
- package/dist/ctx.js.map +1 -1
- package/dist/diff.js +0 -32
- package/dist/diff.js.map +1 -1
- package/dist/err.js +0 -40
- package/dist/err.js.map +1 -1
- package/dist/escape.js +0 -45
- package/dist/escape.js.map +1 -1
- package/dist/exactjson.d.ts +0 -35
- package/dist/exactjson.js +0 -131
- package/dist/exactjson.js.map +1 -1
- package/dist/format.js +13 -203
- package/dist/format.js.map +1 -1
- package/dist/grammar.d.ts +9 -0
- package/dist/grammar.js +54 -0
- package/dist/grammar.js.map +1 -0
- package/dist/graph.js +0 -26
- package/dist/graph.js.map +1 -1
- package/dist/hcanon.js +0 -82
- package/dist/hcanon.js.map +1 -1
- package/dist/helpdoc.js +1 -1
- package/dist/helpdoc.js.map +1 -1
- package/dist/hints.d.ts +0 -6
- package/dist/hints.js +54 -55
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.js +0 -114
- package/dist/jsonschema.js.map +1 -1
- package/dist/keyorder.d.ts +0 -7
- package/dist/keyorder.js +0 -41
- package/dist/keyorder.js.map +1 -1
- package/dist/lang.js +17 -915
- package/dist/lang.js.map +1 -1
- package/dist/lower.js +11 -61
- package/dist/lower.js.map +1 -1
- package/dist/lsp-server.js +0 -16
- package/dist/lsp-server.js.map +1 -1
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +12 -159
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.js +0 -26
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp.js +0 -113
- package/dist/mcp.js.map +1 -1
- package/dist/mod-tool.js +0 -130
- package/dist/mod-tool.js.map +1 -1
- package/dist/mod.js +0 -162
- package/dist/mod.js.map +1 -1
- package/dist/patch.js +0 -217
- package/dist/patch.js.map +1 -1
- package/dist/provenance.js +0 -140
- package/dist/provenance.js.map +1 -1
- package/dist/query.js +0 -75
- package/dist/query.js.map +1 -1
- package/dist/reach.js +0 -43
- package/dist/reach.js.map +1 -1
- package/dist/relation.js +0 -61
- package/dist/relation.js.map +1 -1
- package/dist/render.js +20 -135
- package/dist/render.js.map +1 -1
- package/dist/report-sarif.d.ts +0 -11
- package/dist/report-sarif.js +0 -28
- package/dist/report-sarif.js.map +1 -1
- package/dist/sig.js +0 -35
- package/dist/sig.js.map +1 -1
- package/dist/sigdecl.js +1 -1
- package/dist/sigdecl.js.map +1 -1
- package/dist/siggate.js +0 -4
- package/dist/siggate.js.map +1 -1
- package/dist/site.js +3 -29
- package/dist/site.js.map +1 -1
- package/dist/subsume.d.ts +0 -10
- package/dist/subsume.js +0 -137
- package/dist/subsume.js.map +1 -1
- package/dist/template.d.ts +2 -1
- package/dist/template.js +58 -138
- package/dist/template.js.map +1 -1
- package/dist/trim.js +0 -41
- package/dist/trim.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.js +12 -242
- package/dist/unify.js.map +1 -1
- package/dist/utility.js +0 -22
- package/dist/utility.js.map +1 -1
- package/dist/val/AbnfFuncVal.d.ts +18 -0
- package/dist/val/AbnfFuncVal.js +132 -0
- package/dist/val/AbnfFuncVal.js.map +1 -0
- package/dist/val/AbsentVal.d.ts +11 -0
- package/dist/val/AbsentVal.js +30 -0
- package/dist/val/AbsentVal.js.map +1 -0
- package/dist/val/AggFuncVal.d.ts +10 -1
- package/dist/val/AggFuncVal.js +104 -116
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/ArithFuncVal.js +0 -12
- package/dist/val/ArithFuncVal.js.map +1 -1
- package/dist/val/BagVal.js +1 -78
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/BigDecimalVal.js +0 -16
- package/dist/val/BigDecimalVal.js.map +1 -1
- package/dist/val/BigIntegerVal.js +0 -16
- package/dist/val/BigIntegerVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +0 -9
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/CmpFuncVal.js +2 -59
- package/dist/val/CmpFuncVal.js.map +1 -1
- package/dist/val/ConjunctVal.js +0 -29
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.js +0 -500
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/ContainerKindVal.js +0 -2
- package/dist/val/ContainerKindVal.js.map +1 -1
- package/dist/val/CopyFuncVal.js +0 -3
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.js +0 -179
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.js +0 -152
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.js +0 -3
- package/dist/val/EachFuncVal.js.map +1 -1
- package/dist/val/EmitFuncVal.d.ts +1 -1
- package/dist/val/EmitFuncVal.js +6 -119
- package/dist/val/EmitFuncVal.js.map +1 -1
- package/dist/val/ExpectVal.js +0 -62
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FilterFuncVal.js +0 -25
- package/dist/val/FilterFuncVal.js.map +1 -1
- package/dist/val/FuncBaseVal.d.ts +1 -0
- package/dist/val/FuncBaseVal.js +7 -127
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/GraphAtomVal.js +0 -15
- package/dist/val/GraphAtomVal.js.map +1 -1
- package/dist/val/HideFuncVal.js +0 -13
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/IntegerVal.js +0 -61
- package/dist/val/IntegerVal.js.map +1 -1
- package/dist/val/JunctionVal.js +0 -20
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.js +0 -46
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +0 -57
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js +0 -11
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +0 -151
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.js +0 -27
- package/dist/val/MatchFuncVal.js.map +1 -1
- package/dist/val/{FormFuncVal.d.ts → MaybeFuncVal.d.ts} +5 -5
- package/dist/val/MaybeFuncVal.js +50 -0
- package/dist/val/MaybeFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js +0 -18
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +0 -60
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/NomFuncVal.js +8 -42
- package/dist/val/NomFuncVal.js.map +1 -1
- package/dist/val/NumberVal.js +0 -15
- package/dist/val/NumberVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -0
- package/dist/val/OpBaseVal.js +3 -15
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/PackFuncVal.js +0 -34
- package/dist/val/PackFuncVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +0 -6
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PathVal.js +0 -41
- package/dist/val/PathVal.js.map +1 -1
- package/dist/val/PlaceVal.js +0 -25
- package/dist/val/PlaceVal.js.map +1 -1
- package/dist/val/PlusOpVal.d.ts +1 -7
- package/dist/val/PlusOpVal.js +13 -74
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js +0 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.js +0 -167
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RecurseVal.js +0 -55
- package/dist/val/RecurseVal.js.map +1 -1
- package/dist/val/RefVal.js +0 -282
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.js +0 -232
- package/dist/val/ReferFuncVal.js.map +1 -1
- package/dist/val/ScalarKindVal.js +0 -49
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/ScalarVal.js +0 -11
- package/dist/val/ScalarVal.js.map +1 -1
- package/dist/val/StrFuncVal.js +0 -18
- package/dist/val/StrFuncVal.js.map +1 -1
- package/dist/val/SuperFuncVal.js +0 -32
- package/dist/val/SuperFuncVal.js.map +1 -1
- package/dist/val/TopVal.js +0 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TranslateFuncVal.js +1 -3
- package/dist/val/TranslateFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js +0 -11
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +1 -0
- package/dist/val/Val.js +2 -133
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js +0 -12
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.js +0 -37
- package/dist/val/arith.js.map +1 -1
- package/dist/val/caserange.js +0 -61
- package/dist/val/caserange.js.map +1 -1
- package/dist/val/members.js +0 -6
- package/dist/val/members.js.map +1 -1
- package/dist/val/numcmp.js +0 -11
- package/dist/val/numcmp.js.map +1 -1
- package/dist/val/numkind.js +0 -145
- package/dist/val/numkind.js.map +1 -1
- package/dist/val/valutil.js +0 -16
- package/dist/val/valutil.js.map +1 -1
- package/dist/vet.js +0 -461
- package/dist/vet.js.map +1 -1
- package/dist/view.js +0 -414
- package/dist/view.js.map +1 -1
- package/dist/walk.js +0 -41
- package/dist/walk.js.map +1 -1
- package/grammar/aontu.abnf +8 -6
- package/grammar/aontu.gbnf +4 -4
- package/grammar/aontu.lark +4 -4
- package/grammar/aontu.tmLanguage.json +1 -1
- package/package.json +4 -2
- package/src/agentsmd.ts +0 -35
- package/src/alias.ts +0 -39
- package/src/allow.ts +1 -96
- package/src/aontu.ts +3 -110
- package/src/aontumodel.ts +32 -0
- package/src/cli.ts +113 -682
- package/src/ctx.ts +0 -103
- package/src/diff.ts +0 -40
- package/src/err.ts +0 -40
- package/src/escape.ts +0 -46
- package/src/exactjson.ts +0 -131
- package/src/format.ts +14 -257
- package/src/grammar.ts +72 -0
- package/src/graph.ts +0 -61
- package/src/hcanon.ts +0 -82
- package/src/helpdoc.ts +1 -1
- package/src/hints.ts +66 -57
- package/src/jsonschema.ts +0 -123
- package/src/keyorder.ts +0 -42
- package/src/lang.ts +19 -931
- package/src/lower.ts +12 -62
- package/src/lsp-server.ts +0 -16
- package/src/lsp.ts +12 -180
- package/src/mcp-server.ts +0 -31
- package/src/mcp.ts +0 -130
- package/src/mod-tool.ts +0 -158
- package/src/mod.ts +0 -178
- package/src/patch.ts +0 -232
- package/src/provenance.ts +0 -183
- package/src/query.ts +0 -84
- package/src/reach.ts +0 -53
- package/src/relation.ts +0 -84
- package/src/render.ts +20 -172
- package/src/report-sarif.ts +0 -48
- package/src/sig.ts +0 -35
- package/src/sigdecl.ts +1 -1
- package/src/siggate.ts +0 -30
- package/src/site.ts +3 -29
- package/src/subsume.ts +1 -161
- package/src/template.ts +69 -140
- package/src/trim.ts +0 -53
- package/src/type.ts +2 -45
- package/src/unify.ts +13 -251
- package/src/utility.ts +0 -31
- package/src/val/AbnfFuncVal.ts +181 -0
- package/src/val/AbsentVal.ts +54 -0
- package/src/val/AggFuncVal.ts +152 -188
- package/src/val/ArithFuncVal.ts +0 -20
- package/src/val/BagVal.ts +1 -78
- package/src/val/BigDecimalVal.ts +0 -16
- package/src/val/BigIntegerVal.ts +0 -16
- package/src/val/CloseFuncVal.ts +0 -9
- package/src/val/CmpFuncVal.ts +4 -166
- package/src/val/ConjunctVal.ts +0 -33
- package/src/val/ConstraintVal.ts +2 -537
- package/src/val/ContainerKindVal.ts +0 -18
- package/src/val/CopyFuncVal.ts +0 -5
- package/src/val/Decimal.ts +1 -185
- package/src/val/DeprecateFuncVal.ts +0 -10
- package/src/val/DisjunctVal.ts +0 -157
- package/src/val/EachFuncVal.ts +0 -40
- package/src/val/EmitFuncVal.ts +8 -208
- package/src/val/ExpectVal.ts +0 -62
- package/src/val/FilterFuncVal.ts +0 -55
- package/src/val/FuncBaseVal.ts +9 -130
- package/src/val/GraphAtomVal.ts +0 -42
- package/src/val/HideFuncVal.ts +0 -15
- package/src/val/IntegerVal.ts +0 -61
- package/src/val/JunctionVal.ts +0 -20
- package/src/val/KeyFuncVal.ts +0 -48
- package/src/val/ListVal.ts +0 -59
- package/src/val/LowerFuncVal.ts +0 -12
- package/src/val/MapVal.ts +0 -151
- package/src/val/MatchFuncVal.ts +0 -59
- package/src/val/MaybeFuncVal.ts +86 -0
- package/src/val/MoveFuncVal.ts +0 -20
- package/src/val/NilVal.ts +0 -60
- package/src/val/NomFuncVal.ts +8 -95
- package/src/val/NumberVal.ts +0 -16
- package/src/val/OpBaseVal.ts +4 -17
- package/src/val/PackFuncVal.ts +0 -63
- package/src/val/PathFuncVal.ts +0 -32
- package/src/val/PathVal.ts +0 -66
- package/src/val/PlaceVal.ts +0 -45
- package/src/val/PlusOpVal.ts +18 -75
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +0 -179
- package/src/val/RecurseVal.ts +0 -81
- package/src/val/RefVal.ts +1 -285
- package/src/val/ReferFuncVal.ts +0 -255
- package/src/val/ScalarKindVal.ts +0 -50
- package/src/val/ScalarVal.ts +0 -12
- package/src/val/StrFuncVal.ts +0 -44
- package/src/val/SuperFuncVal.ts +0 -42
- package/src/val/TopVal.ts +0 -1
- package/src/val/TranslateFuncVal.ts +1 -51
- package/src/val/UpperFuncVal.ts +0 -12
- package/src/val/Val.ts +3 -192
- package/src/val/VarVal.ts +0 -15
- package/src/val/arith.ts +0 -92
- package/src/val/caserange.ts +0 -62
- package/src/val/members.ts +0 -23
- package/src/val/numcmp.ts +1 -27
- package/src/val/numkind.ts +0 -149
- package/src/val/valutil.ts +0 -16
- package/src/vet.ts +1 -582
- package/src/view.ts +0 -507
- package/src/walk.ts +0 -41
- package/dist/std.d.ts +0 -3
- package/dist/std.js +0 -672
- package/dist/std.js.map +0 -1
- package/dist/val/FormFuncVal.js +0 -55
- package/dist/val/FormFuncVal.js.map +0 -1
- package/dist/val/NamerFuncVal.d.ts +0 -12
- package/dist/val/NamerFuncVal.js +0 -176
- package/dist/val/NamerFuncVal.js.map +0 -1
- package/src/std.ts +0 -683
package/dist/patch.js
CHANGED
|
@@ -9,59 +9,6 @@ exports.spanHolds = spanHolds;
|
|
|
9
9
|
exports.verifiedSite = verifiedSite;
|
|
10
10
|
exports.spanValue = spanValue;
|
|
11
11
|
exports.patch = patch;
|
|
12
|
-
// OVERLAY PATCH (G7 phase 5,
|
|
13
|
-
// docs/capability-review/g7-machine-access.md): change a document by
|
|
14
|
-
// APPENDING to an overlay, not by rewriting the file.
|
|
15
|
-
//
|
|
16
|
-
// This is the stage that needs no rewriter. An overlay entry is just
|
|
17
|
-
// another conjunct, and unification is order-independent, so appending
|
|
18
|
-
// `services: auth: owner: "identity-2"` to a second file and
|
|
19
|
-
// evaluating both is exactly the same value as writing it into the
|
|
20
|
-
// first — with no parsing of the target, no comment or layout damage,
|
|
21
|
-
// and nothing to preserve. The spec pins that equivalence rather than
|
|
22
|
-
// asserting it.
|
|
23
|
-
//
|
|
24
|
-
// What an overlay CANNOT do is change a PINNED value: the lattice
|
|
25
|
-
// refuses 5 against 3, and the report says so with the pinning site,
|
|
26
|
-
// which `why` then locates. That left the loop "set → conflict → why →
|
|
27
|
-
// edit the pinning site" with its last step manual — and since the
|
|
28
|
-
// commonest vet failure of all is "the data pins the wrong value",
|
|
29
|
-
// `set` was unable to repair the very case it existed for.
|
|
30
|
-
//
|
|
31
|
-
// IN-PLACE REPLACE (`--in-place`) closes that. The G7 design deferred
|
|
32
|
-
// it behind two prerequisites: an evaluated-path → contributing-span
|
|
33
|
-
// map, and a comment-and-layout-preserving CST. The first now exists —
|
|
34
|
-
// `why` is that map, and sites carry `len` and `src` since a site was
|
|
35
|
-
// given an extent. The second turns out NOT to be needed for the case
|
|
36
|
-
// that matters, and the reason is worth stating: a CST is what you need
|
|
37
|
-
// to RE-SERIALISE a document, and a targeted span splice serialises
|
|
38
|
-
// nothing. It replaces `len` code units at one offset and leaves every
|
|
39
|
-
// other byte — every comment, every blank line, every alignment space —
|
|
40
|
-
// exactly as the author left it, because it never looks at them.
|
|
41
|
-
//
|
|
42
|
-
// What makes the splice safe rather than merely plausible is that the
|
|
43
|
-
// site carries `src`, the text it claims to cover. The span is VERIFIED
|
|
44
|
-
// against it before a byte is written, so the corrupting arithmetic
|
|
45
|
-
// this repository has already shipped once — `port: 0x1F` reporting
|
|
46
|
-
// canon `"31"` at column 7, and `(col, canon.length)` writing
|
|
47
|
-
// `port: 5x1F` — cannot be reached: `0x1F` is four code units and says
|
|
48
|
-
// so, and if the text at the span is anything else the edit is refused
|
|
49
|
-
// rather than guessed.
|
|
50
|
-
//
|
|
51
|
-
// Replace is never WORSE than append. Where the value is not a single
|
|
52
|
-
// editable literal in this overlay — a spread template governing other
|
|
53
|
-
// keys, a reference whose site is the `$` and not the target, two
|
|
54
|
-
// statements pinning the same path, a literal in an included file — the
|
|
55
|
-
// splice is refused and the assignment is APPENDED exactly as it would
|
|
56
|
-
// have been without the flag, plus one `warning` finding naming the
|
|
57
|
-
// case and the site it came from. Warnings never move a verdict, so
|
|
58
|
-
// `--in-place` cannot turn a run that would have succeeded into one
|
|
59
|
-
// that fails; it can only rewrite where rewriting is safe, and explain
|
|
60
|
-
// itself where it is not.
|
|
61
|
-
//
|
|
62
|
-
// The verdict is G2's, unchanged: `vet(entry, overlay)` already asks
|
|
63
|
-
// exactly the right question — does this document hold against that
|
|
64
|
-
// truth, and if not, where — so `set` adds a writer, not a report.
|
|
65
12
|
const vet_1 = require("./vet");
|
|
66
13
|
const query_1 = require("./query");
|
|
67
14
|
const aontu_1 = require("./aontu");
|
|
@@ -80,21 +27,10 @@ function parseAssignment(text) {
|
|
|
80
27
|
}
|
|
81
28
|
return { path, value };
|
|
82
29
|
}
|
|
83
|
-
// The path-flattened conjunct one assignment becomes:
|
|
84
|
-
// `$.a.b = 1` is `"a": "b": 1`. Keys are QUOTED — a segment may be a
|
|
85
|
-
// word the grammar spells otherwise (`if`), a number, or a name with
|
|
86
|
-
// a space in it, and quoting one key is the same value as writing it
|
|
87
|
-
// bare.
|
|
88
30
|
function overlayLine(path, value) {
|
|
89
31
|
return (0, query_1.pathParts)(path).map((p) => JSON.stringify(p)).join(': ') +
|
|
90
32
|
': ' + value;
|
|
91
33
|
}
|
|
92
|
-
// The character offset of a 1-based (row, col) in `src`, or -1 when the
|
|
93
|
-
// text has no such position. Columns are UTF-16 code units, which is
|
|
94
|
-
// what a site carries and what a JavaScript string index already is —
|
|
95
|
-
// so this is the inverse of the site arithmetic, not a reinterpretation
|
|
96
|
-
// of it (go/patch.go converts to a byte offset, because Go strings are
|
|
97
|
-
// bytes; both address the same character).
|
|
98
34
|
function offsetAt(src, row, col) {
|
|
99
35
|
if (row < 1 || col < 1) {
|
|
100
36
|
return -1;
|
|
@@ -116,87 +52,18 @@ function spanAt(src, site) {
|
|
|
116
52
|
const off = offsetAt(src, site.row, site.col);
|
|
117
53
|
return off < 0 ? undefined : src.slice(off, off + site.len);
|
|
118
54
|
}
|
|
119
|
-
// DOES THE TEXT AT THIS SITE SAY WHAT THE SITE CLAIMS IT SAYS?
|
|
120
|
-
//
|
|
121
|
-
// The last check before a splice, and the one that makes the write
|
|
122
|
-
// PROVABLE rather than argued. Exported so it can be exercised with a
|
|
123
|
-
// site the engine would never produce — an out-of-range position, a
|
|
124
|
-
// span over different text — which is the only way to test a guard whose
|
|
125
|
-
// whole purpose is to catch a state the rest of the code says cannot
|
|
126
|
-
// happen. (go/patch.go has the twin, tested the same way.)
|
|
127
55
|
function spanHolds(src, site, expect) {
|
|
128
|
-
// THE SITE'S OWN LENGTH IS PART OF ITS CLAIM, and is checked before
|
|
129
|
-
// the text is. A site whose `len` disagrees with the text it says it
|
|
130
|
-
// covers CONTRADICTS ITSELF, which is exactly the state this guard
|
|
131
|
-
// exists to catch — and a zero-length span would otherwise compare
|
|
132
|
-
// equal against nothing and then splice nothing, INSERTING the new
|
|
133
|
-
// value rather than replacing anything.
|
|
134
|
-
//
|
|
135
|
-
// Both ports compare in UTF-16 code units, which is what a site's
|
|
136
|
-
// `len` counts. That is free here and is not in Go, where a string is
|
|
137
|
-
// bytes (go/patch.go converts).
|
|
138
56
|
if ('' === expect || site.len !== expect.length) {
|
|
139
57
|
return false;
|
|
140
58
|
}
|
|
141
59
|
return spanAt(src, site) === expect;
|
|
142
60
|
}
|
|
143
|
-
// WHY IS THE VALUE AT THIS PATH WHAT IT IS, and is exactly one of the
|
|
144
|
-
// answers a literal this overlay can edit in place?
|
|
145
|
-
//
|
|
146
|
-
// The four refusals below are not defensive padding; each is a real
|
|
147
|
-
// document shape that the probe corpus produced, and each would corrupt
|
|
148
|
-
// something different if the splice ran anyway:
|
|
149
|
-
//
|
|
150
|
-
// - a SPREAD contribution's site is inside the template, which
|
|
151
|
-
// governs every other key too, so rewriting it there changes keys
|
|
152
|
-
// the author did not name;
|
|
153
|
-
// - a REFERENCE's site is the `$` that starts the path and has length
|
|
154
|
-
// 1, so splicing over it writes the new value INTO the path
|
|
155
|
-
// expression (`$.base` becomes `5.base`) — and the value the author
|
|
156
|
-
// wants changed lives at the target anyway;
|
|
157
|
-
// - TWO literals at one path (a duplicate key, two files merged) give
|
|
158
|
-
// no single place to edit, and picking either silently is picking
|
|
159
|
-
// for the author;
|
|
160
|
-
// - a literal in an INCLUDED file is editable, but not by
|
|
161
|
-
// `--overlay <this file>`: the write would land in a document the
|
|
162
|
-
// caller did not name.
|
|
163
|
-
//
|
|
164
|
-
// A PREFERENCE is not refused here for the same reason it is not
|
|
165
|
-
// replaced: appending already overrides a default correctly, so the
|
|
166
|
-
// caller loses nothing by falling through to it.
|
|
167
61
|
function editableLiteral(overlaySrc, path, overlayPath) {
|
|
168
|
-
// THE AUTHORITY IS THE OVERLAY TEXT ALONE, WITH INCLUDES DENIED.
|
|
169
|
-
//
|
|
170
|
-
// The splice happens in the text this function was handed, so what it
|
|
171
|
-
// has to establish is that the contribution is IN that text — and the
|
|
172
|
-
// site's `file` cannot establish it. Two ways it fails: a caller of
|
|
173
|
-
// the library API need not pass `overlayPath`, leaving nothing to
|
|
174
|
-
// compare against; and the Go port names the ENTRY document for an
|
|
175
|
-
// included value anyway (issue #66), so the comparison is the overlay
|
|
176
|
-
// against itself. Either way an included literal's (row, col, len,
|
|
177
|
-
// src) can COINCIDE with different text at the same coordinates here
|
|
178
|
-
// — an include holding `a: 42` at 1:4 and an overlay holding `x: 42`
|
|
179
|
-
// at 1:4 — and the span verification cannot tell them apart, because
|
|
180
|
-
// the text really does match. The splice then rewrites `x` while
|
|
181
|
-
// reporting a replacement of `$.a`, in both ports.
|
|
182
|
-
//
|
|
183
|
-
// Denying includes removes the ambiguity at its source rather than
|
|
184
|
-
// detecting it: what resolves is what this text says by itself. An
|
|
185
|
-
// overlay that loads other documents therefore cannot be edited in
|
|
186
|
-
// place at all — the conservative answer, and the assignment still
|
|
187
|
-
// appends. It costs nothing in the shape `set` is for, an overlay it
|
|
188
|
-
// owns and appends to, and it does not depend on file attribution, so
|
|
189
|
-
// both ports agree without waiting on #66.
|
|
190
62
|
const alone = (0, query_1.why)(overlaySrc, path, {
|
|
191
63
|
trust: { include: 'none' },
|
|
192
64
|
...(null == overlayPath ? {} : { path: overlayPath }),
|
|
193
65
|
});
|
|
194
66
|
if (true !== alone.ok || null == alone.record) {
|
|
195
|
-
// Nothing here BY ITSELF. Two very different reasons, and they earn
|
|
196
|
-
// different answers: the path may simply not be in this overlay, in
|
|
197
|
-
// which case appending is the whole of the answer and nothing has
|
|
198
|
-
// gone wrong — or it may be here only because something was loaded,
|
|
199
|
-
// which is the case above and has to say so.
|
|
200
67
|
const withLoads = (0, query_1.why)(overlaySrc, path, null == overlayPath ? undefined : { path: overlayPath });
|
|
201
68
|
if (true !== withLoads.ok || null == withLoads.record) {
|
|
202
69
|
return { site: undefined, finding: undefined };
|
|
@@ -214,14 +81,6 @@ function editableLiteral(overlaySrc, path, overlayPath) {
|
|
|
214
81
|
// would claim a possibility the type does not have — and the
|
|
215
82
|
// coverage gate says so, an arm nothing can take.
|
|
216
83
|
const conjuncts = record.conjuncts;
|
|
217
|
-
// A VALUE REACHED THROUGH A REFERENCE IS NOT THIS PATH'S TO EDIT.
|
|
218
|
-
// Provenance travels through clones now, so `n: $.base` against
|
|
219
|
-
// `base: 7` reports the literal `7` -- correctly, and at the site
|
|
220
|
-
// where it was written, which is `base`'s line and not `n`'s. A
|
|
221
|
-
// splice there would rewrite the REFERENT: every other reader of
|
|
222
|
-
// `$.base` changes with it, and the path the caller named does not
|
|
223
|
-
// move at all. The reference is what stands here, so the reference
|
|
224
|
-
// is what has to be edited, wherever it points.
|
|
225
84
|
const refs = conjuncts.filter((c) => 'ref' === c.role);
|
|
226
85
|
if (0 < refs.length) {
|
|
227
86
|
return {
|
|
@@ -255,17 +114,6 @@ function editableLiteral(overlaySrc, path, overlayPath) {
|
|
|
255
114
|
}
|
|
256
115
|
return verifiedSite(overlaySrc, path, literals[0]);
|
|
257
116
|
}
|
|
258
|
-
// THE SPAN MUST CHECK OUT before anything splices. The refusal arm is
|
|
259
|
-
// unreachable through `patch` since ADR-018: the pipe (`x: hello |>
|
|
260
|
-
// upper`) was the one spelling that synthesised a contribution the
|
|
261
|
-
// parser never sited, and denying includes means every WRITTEN
|
|
262
|
-
// contribution's coordinates describe this text by construction. The
|
|
263
|
-
// verification is kept rather than deleted — splicing without it would
|
|
264
|
-
// corrupt the file (a contribution with no `src` would splice ZERO
|
|
265
|
-
// characters, INSERTING the new value into the middle of a line) — and
|
|
266
|
-
// this last step is its own exported seam so the refusal can be tested
|
|
267
|
-
// directly, against conjuncts the engine would never produce, on the
|
|
268
|
-
// same footing as `spanHolds` itself.
|
|
269
117
|
function verifiedSite(overlaySrc, path, one) {
|
|
270
118
|
if (!spanHolds(overlaySrc, one.site, one.src)) {
|
|
271
119
|
const finding = notEditable('patch_span_mismatch', path, 'the overlay does not hold ' + JSON.stringify(one.src) + ' at ' +
|
|
@@ -276,29 +124,6 @@ function verifiedSite(overlaySrc, path, one) {
|
|
|
276
124
|
finding.class = 'internal';
|
|
277
125
|
return { site: undefined, finding };
|
|
278
126
|
}
|
|
279
|
-
// DOES THE SPAN MEAN THE WHOLE CONTRIBUTION?
|
|
280
|
-
//
|
|
281
|
-
// This is the check that `role === 'literal'` looks like it makes and
|
|
282
|
-
// does not. A site names the TOKEN it points at, so a COMPOUND value
|
|
283
|
-
// reports its OPENING token while its canon is the whole thing:
|
|
284
|
-
// `min(1)` is a literal-role contribution whose src is `min`, `1+2`
|
|
285
|
-
// reports `1`, `$.k+1` reports `$`, `{b:1}` reports `{` and `[1,2]`
|
|
286
|
-
// reports `[`. Splicing over any of those writes the new value INTO
|
|
287
|
-
// the expression — `a: 5(1)`, `a: 5+2`, `a: 5.k+1` — which is the
|
|
288
|
-
// same class of corruption as the canon-length arithmetic, reached by
|
|
289
|
-
// a different route.
|
|
290
|
-
//
|
|
291
|
-
// Rather than enumerate the shapes (a list is a thing to be
|
|
292
|
-
// incomplete about), ASK THE ENGINE: parse `src` on its own and
|
|
293
|
-
// require the value it means to be the value the contribution
|
|
294
|
-
// contributed. That is exactly the property a splice needs — this
|
|
295
|
-
// text, alone, is this value — and it is decided by the same unifier
|
|
296
|
-
// that produced the contribution, so it cannot drift from it.
|
|
297
|
-
//
|
|
298
|
-
// It also gets the interesting case right without special-casing it:
|
|
299
|
-
// `0x1F` canons to `31`, which is not its own spelling, but IS the
|
|
300
|
-
// contribution's canon, so a hex literal is editable while `min` is
|
|
301
|
-
// not.
|
|
302
127
|
const span = spanValue(one.src);
|
|
303
128
|
if (null == span || span.canon !== one.canon) {
|
|
304
129
|
return {
|
|
@@ -309,11 +134,6 @@ function verifiedSite(overlaySrc, path, one) {
|
|
|
309
134
|
'value', [one]),
|
|
310
135
|
};
|
|
311
136
|
}
|
|
312
|
-
// AN ABSTRACT CONTRIBUTION IS NOT A PIN. `a: integer` and
|
|
313
|
-
// `a: above(0)` state a constraint, and appending already narrows
|
|
314
|
-
// them — that is the one case the status report notes `set` could
|
|
315
|
-
// always repair. Replacing them would silently DISCARD a constraint
|
|
316
|
-
// the author wrote, to no benefit, so this falls through to append.
|
|
317
137
|
if (true !== span.concrete) {
|
|
318
138
|
return {
|
|
319
139
|
site: undefined,
|
|
@@ -333,20 +153,7 @@ function verifiedSite(overlaySrc, path, one) {
|
|
|
333
153
|
finding: undefined,
|
|
334
154
|
};
|
|
335
155
|
}
|
|
336
|
-
// What does this source text mean ON ITS OWN, and is it a value rather
|
|
337
|
-
// than a constraint? Undefined when it does not stand alone at all
|
|
338
|
-
// (`$` from a path, an unbalanced `{`).
|
|
339
|
-
//
|
|
340
|
-
// The wrapper key is arbitrary and the document it makes is thrown
|
|
341
|
-
// away; what is wanted is the unifier's own reading of the fragment.
|
|
342
156
|
function spanValue(src) {
|
|
343
|
-
// NO COLLECTING CONTEXT: `unify` THROWS on a source it cannot read,
|
|
344
|
-
// so a ctx.err check here is a branch nothing can reach — the catch
|
|
345
|
-
// below is the only path a bad fragment takes. (A first draft had
|
|
346
|
-
// both, and the coverage gate called the pair what it was.) What the
|
|
347
|
-
// nil test still earns is the fragment that PARSES and means nothing:
|
|
348
|
-
// `$` is a path with no target, and answers a nil rather than
|
|
349
|
-
// throwing.
|
|
350
157
|
let canon;
|
|
351
158
|
try {
|
|
352
159
|
const root = new aontu_1.Aontu().unify('v: ' + src);
|
|
@@ -370,11 +177,6 @@ function spanValue(src) {
|
|
|
370
177
|
}
|
|
371
178
|
return { canon, concrete: true };
|
|
372
179
|
}
|
|
373
|
-
// A refusal to replace, as a WARNING: the assignment still appends, so
|
|
374
|
-
// nothing about the run got worse and the verdict must not move
|
|
375
|
-
// (ts/src/vet.ts, "warnings never touch the verdict"). What the finding
|
|
376
|
-
// adds is the reason, which is the whole value of asking for --in-place
|
|
377
|
-
// over plain set.
|
|
378
180
|
function notEditable(code, path, why, from) {
|
|
379
181
|
return {
|
|
380
182
|
code,
|
|
@@ -397,12 +199,6 @@ function notEditable(code, path, why, from) {
|
|
|
397
199
|
})),
|
|
398
200
|
};
|
|
399
201
|
}
|
|
400
|
-
// Append the assignments to the overlay and answer what the result
|
|
401
|
-
// holds. The report's verdict is the vet verdict of the ENTRY against
|
|
402
|
-
// the new overlay: `valid` when it holds and is concrete, `incomplete`
|
|
403
|
-
// when nothing contradicts but the truth is not yet satisfied,
|
|
404
|
-
// `invalid` when the overlay contradicts a pinned value, `error` when
|
|
405
|
-
// the entry itself does not stand up.
|
|
406
202
|
function patch(entrySrc, overlaySrc, assignments, opts) {
|
|
407
203
|
const options = opts ?? {};
|
|
408
204
|
const appended = [];
|
|
@@ -436,9 +232,6 @@ function patch(entrySrc, overlaySrc, assignments, opts) {
|
|
|
436
232
|
notes.push(found.finding);
|
|
437
233
|
}
|
|
438
234
|
if (null != found.site) {
|
|
439
|
-
// Two assignments naming the same path would splice the same
|
|
440
|
-
// span twice. The second is the one the author wrote last, so
|
|
441
|
-
// it wins — and the first is dropped rather than layered.
|
|
442
235
|
const at = offsetAt(overlaySrc, found.site.row, found.site.col);
|
|
443
236
|
const dup = edits.findIndex((e) => e.at === at);
|
|
444
237
|
const edit = { at, len: found.site.from.length, to: a.value };
|
|
@@ -456,10 +249,6 @@ function patch(entrySrc, overlaySrc, assignments, opts) {
|
|
|
456
249
|
appended.push(overlayLine(a.path, a.value));
|
|
457
250
|
}
|
|
458
251
|
const overlay = joinOverlay(applyEdits(overlaySrc, edits), appended);
|
|
459
|
-
// The file names ride as URLs as well as base paths, so a finding
|
|
460
|
-
// names the entry and the overlay rather than vet's generic
|
|
461
|
-
// `schema`/`data` labels — with two documents that both belong to
|
|
462
|
-
// the caller, "which file" is the whole question.
|
|
463
252
|
const report = (0, vet_1.vet)(entrySrc, overlay, {
|
|
464
253
|
trust: options.trust,
|
|
465
254
|
textExt: options.textExt,
|
|
@@ -479,8 +268,6 @@ function patch(entrySrc, overlaySrc, assignments, opts) {
|
|
|
479
268
|
findings: notes.concat(report.findings),
|
|
480
269
|
};
|
|
481
270
|
}
|
|
482
|
-
// Apply the collected splices back to front, so an earlier edit's
|
|
483
|
-
// offset is never invalidated by a later one having already run.
|
|
484
271
|
function applyEdits(src, edits) {
|
|
485
272
|
if (0 === edits.length) {
|
|
486
273
|
return src;
|
|
@@ -491,10 +278,6 @@ function applyEdits(src, edits) {
|
|
|
491
278
|
}
|
|
492
279
|
return out;
|
|
493
280
|
}
|
|
494
|
-
// One line per assignment, after whatever the overlay already said. A
|
|
495
|
-
// trailing newline is kept when the file had one and added when it
|
|
496
|
-
// did not: a file that does not end in a newline is still a file, and
|
|
497
|
-
// appending to it must not join two entries into one line.
|
|
498
281
|
function joinOverlay(overlaySrc, appended) {
|
|
499
282
|
if (0 === appended.length) {
|
|
500
283
|
return overlaySrc;
|
package/dist/patch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
|
package/dist/provenance.js
CHANGED
|
@@ -6,73 +6,8 @@ exports.markSpread = markSpread;
|
|
|
6
6
|
// Set on a spread template's per-key clone, at the one place a spread
|
|
7
7
|
// is applied (MapVal/ListVal.unify). Nothing else reads it.
|
|
8
8
|
exports.FROM_SPREAD = '_fromSpread';
|
|
9
|
-
// THE AUTHORED MARK, and it is a property of the VALUE rather than a
|
|
10
|
-
// set of ids held beside it (the review's finding E). A contribution
|
|
11
|
-
// is a value the author wrote, and the recorder used to decide that by
|
|
12
|
-
// looking the operand's id up in a set stamped over the parsed tree --
|
|
13
|
-
// which is true of the parsed tree and of nothing derived from it. So
|
|
14
|
-
// every value that reached a path through a CLONE was dark: a default
|
|
15
|
-
// flowing into a `pack()`-generated child, a shape carried by a `$ref`,
|
|
16
|
-
// a value a spread template stamped. `why` answered "(no contributions:
|
|
17
|
-
// nothing met at this path)" over a value it had just printed, with
|
|
18
|
-
// exit 0 -- a false statement, and the one an audit surface may not
|
|
19
|
-
// make (use-cases/BUGS.md §23, §24).
|
|
20
|
-
//
|
|
21
|
-
// A clone of a written value IS that written value, re-instantiated
|
|
22
|
-
// somewhere else: it carries the author's site, so it can be pointed
|
|
23
|
-
// at. Val.clone therefore carries this mark, exactly as it carries the
|
|
24
|
-
// site -- provenance is part of the clone contract, not a recorder
|
|
25
|
-
// bolted beside it. Values the engine MINTS (a kind lifted while a
|
|
26
|
-
// disjunct trials its members, a fold's intermediate) are constructed
|
|
27
|
-
// rather than cloned and stay unmarked, which is what keeps the record
|
|
28
|
-
// to what the author can edit.
|
|
29
|
-
//
|
|
30
|
-
// The mark is only ever SET by an instrumented run (`why` calls
|
|
31
|
-
// writtenFrom; nothing else does), so an ordinary evaluation pays one
|
|
32
|
-
// undefined property read per clone.
|
|
33
9
|
exports.WRITTEN = '_written';
|
|
34
|
-
// THE CONTAINER A VALUE IS PART OF, when the two stand at the SAME
|
|
35
|
-
// path: a junction's members, a preference's inner value, a function's
|
|
36
|
-
// arguments, an operator's operands. `*1|integer` is one thing the
|
|
37
|
-
// author wrote, and `*1` is not a second thing beside it.
|
|
38
|
-
//
|
|
39
|
-
// The recorder already knew that where the container itself met
|
|
40
|
-
// something -- contributing it marked its members `inside` and the
|
|
41
|
-
// filter dropped them. But the container only appears as an operand
|
|
42
|
-
// when the fixpoint happens to meet it whole; where it resolves
|
|
43
|
-
// member-wise instead (a later sibling of a spread, a default reaching
|
|
44
|
-
// a generated child) the members arrived alone and the record split
|
|
45
|
-
// one written value into two contributions at two columns. Which
|
|
46
|
-
// happened was decided by evaluation order, so `why` answered
|
|
47
|
-
// differently for identical statements (use-cases/BUGS.md §22).
|
|
48
|
-
//
|
|
49
|
-
// So the relation is recorded as a fact about the DOCUMENT, at
|
|
50
|
-
// stamping time, and an operand is reported as the outermost written
|
|
51
|
-
// value it is part of. NOT set for a bag's children (they stand at
|
|
52
|
-
// their own, deeper paths) nor for a conjunct's terms (a conjunct is
|
|
53
|
-
// the statement that several things must all hold, and each term is
|
|
54
|
-
// one of them -- which is exactly what the author needs shown).
|
|
55
10
|
exports.INNER_OF = '_innerOf';
|
|
56
|
-
// Mark a spread clone and everything inside it, so a contribution
|
|
57
|
-
// several levels down a template is still known to have come from the
|
|
58
|
-
// template. ONLY on an instrumented run: the walk is O(template) per
|
|
59
|
-
// key per pass, which is real money on a large model and buys nothing
|
|
60
|
-
// when no one is recording.
|
|
61
|
-
//
|
|
62
|
-
// THE GUARD IS A CYCLE GUARD, NOT A "DONE" FLAG, and that distinction
|
|
63
|
-
// is the whole of the review's finding E for sibling position. A
|
|
64
|
-
// template is applied once per destination, and the fixpoint advances
|
|
65
|
-
// values IN PLACE between those applications (AGENTS.md, the mutation
|
|
66
|
-
// caveat): by the time the second key is spread, the template's
|
|
67
|
-
// `replicas` child is no longer the disjunction the first key saw but
|
|
68
|
-
// the value that meet produced. Skipping the walk because the
|
|
69
|
-
// CONTAINER was already marked left every one of those replacements
|
|
70
|
-
// unmarked, so `why` at the first sibling reported the written
|
|
71
|
-
// `*1|integer` as one contribution and at the second reported `*1` and
|
|
72
|
-
// `integer` as two -- identical statements, different answers, decided
|
|
73
|
-
// by which key the fixpoint reached first (use-cases/BUGS.md §22).
|
|
74
|
-
// Marking is idempotent, so re-walking costs a pass and changes
|
|
75
|
-
// nothing where nothing moved.
|
|
76
11
|
function markSpread(v, seen) {
|
|
77
12
|
const marked = seen ?? new Set();
|
|
78
13
|
if (null == v || true !== v.isVal || marked.has(v)) {
|
|
@@ -112,10 +47,6 @@ function samePathKids(v) {
|
|
|
112
47
|
return Array.isArray(v.peg)
|
|
113
48
|
? v.peg.filter((k) => null != k && true === k.isVal) : [];
|
|
114
49
|
}
|
|
115
|
-
// Order contributions the way the document reads: by file, then row,
|
|
116
|
-
// then column, with the canon as the last tiebreak so the order is
|
|
117
|
-
// total even for two values written at the same position (which a
|
|
118
|
-
// merged duplicate key can produce).
|
|
119
50
|
function cmpSite(a, b) {
|
|
120
51
|
return a.site.file.localeCompare(b.site.file) ||
|
|
121
52
|
a.site.row - b.site.row ||
|
|
@@ -137,20 +68,8 @@ function roleOf(v) {
|
|
|
137
68
|
class Provenance {
|
|
138
69
|
constructor() {
|
|
139
70
|
this.paths = new Map();
|
|
140
|
-
// id -> the written container it names, for INNER_OF. The mark on a
|
|
141
|
-
// value is the container's ID rather than the container itself: a
|
|
142
|
-
// Val holding another Val as an own property is a reference cycle
|
|
143
|
-
// through the tree, and enough of the engine walks a value's own
|
|
144
|
-
// properties that one is not safe to introduce.
|
|
145
71
|
this.containers = new Map();
|
|
146
72
|
}
|
|
147
|
-
// Stamp the parsed tree with the AUTHORED mark: everything the
|
|
148
|
-
// author wrote, before unification starts. A value minted during
|
|
149
|
-
// unification — a kind lifted from a leaf while a disjunct trials
|
|
150
|
-
// its members, a fold's intermediate — is the engine's own work, not
|
|
151
|
-
// a contribution the author can be pointed at. A CLONE of a marked
|
|
152
|
-
// value keeps the mark (see WRITTEN above), because it is the same
|
|
153
|
-
// written value somewhere else. Called once, before unify, by `why`.
|
|
154
73
|
writtenFrom(v) {
|
|
155
74
|
if (null == v || true !== v.isVal || true === v[exports.WRITTEN]) {
|
|
156
75
|
return;
|
|
@@ -195,9 +114,6 @@ class Provenance {
|
|
|
195
114
|
}
|
|
196
115
|
}
|
|
197
116
|
contribute(rec, v) {
|
|
198
|
-
// TOP is the unit element and a nil is a failure, neither of which
|
|
199
|
-
// is information the author wrote. A value an earlier meet MADE is
|
|
200
|
-
// an intermediate; the source that made it is already recorded.
|
|
201
117
|
if (null == v || true !== v.isVal || true === v.isTop || true === v.isNil ||
|
|
202
118
|
rec.made.has(v.id) || rec.seen.has(v.id)) {
|
|
203
119
|
return;
|
|
@@ -217,11 +133,6 @@ class Provenance {
|
|
|
217
133
|
if (true !== v[exports.WRITTEN] && true !== v[exports.FROM_SPREAD]) {
|
|
218
134
|
return;
|
|
219
135
|
}
|
|
220
|
-
// A CONJUNCT is not one contribution, it is the statement that
|
|
221
|
-
// several must all hold — duplicate keys merged at parse, an
|
|
222
|
-
// explicit `a & b`. Its own site is nowhere (the merge has no
|
|
223
|
-
// source position), while its terms each have one, which is what
|
|
224
|
-
// the author needs to be shown.
|
|
225
136
|
if (true === v.isConjunct && Array.isArray(v.peg)) {
|
|
226
137
|
rec.seen.add(v.id);
|
|
227
138
|
for (const term of v.peg) {
|
|
@@ -246,18 +157,6 @@ class Provenance {
|
|
|
246
157
|
...(true === v.isPref ? { rank: v.rank } : {}),
|
|
247
158
|
});
|
|
248
159
|
}
|
|
249
|
-
// THE VALUE THAT STANDS at a path is a contribution when nothing met
|
|
250
|
-
// there and the author wrote it. A meet is where information
|
|
251
|
-
// vanishes, so a meet is what the recorder watches -- but a
|
|
252
|
-
// generator PLACES a value without meeting anything, and `why` then
|
|
253
|
-
// answered "(no contributions: nothing met at this path)" over a
|
|
254
|
-
// value it had just printed. That is literally true and practically
|
|
255
|
-
// false: the author is asking where the value came from, and it came
|
|
256
|
-
// from somewhere they can be shown (use-cases/BUGS.md §23).
|
|
257
|
-
//
|
|
258
|
-
// Only when the record is otherwise EMPTY. Where something did meet,
|
|
259
|
-
// the standing value is that meet's result -- an intermediate, and
|
|
260
|
-
// the recorder's oldest rule is that a result is not a source.
|
|
261
160
|
stands(path, v) {
|
|
262
161
|
const key = path.join('.');
|
|
263
162
|
const rec = this.paths.get(key);
|
|
@@ -266,50 +165,11 @@ class Provenance {
|
|
|
266
165
|
}
|
|
267
166
|
this.record(path, v, undefined, undefined);
|
|
268
167
|
}
|
|
269
|
-
// The record at one path. Empty when nothing met there and nothing
|
|
270
|
-
// the author wrote stands there either — which is a true and useful
|
|
271
|
-
// answer rather than an error.
|
|
272
|
-
//
|
|
273
|
-
// ONLY WHOLE WRITTEN VALUES are contributions. A Val's own unify
|
|
274
|
-
// re-enters `unite` at the same path — a disjunct trials each member
|
|
275
|
-
// there, a constraint meets its atoms there — and those members are
|
|
276
|
-
// PARTS OF one written value, not further values beside it. That is
|
|
277
|
-
// settled BEFORE a member is ever pushed, by the INNER_OF fact
|
|
278
|
-
// stamped over the document (see `contribute`), which is why no
|
|
279
|
-
// filter runs here: a per-path "inside" set used to do it, and it
|
|
280
|
-
// could only work where the container itself happened to meet
|
|
281
|
-
// something at the same path — the order-dependence finding E
|
|
282
|
-
// records.
|
|
283
168
|
at(path) {
|
|
284
169
|
const rec = this.paths.get(path.join('.'));
|
|
285
170
|
if (null == rec) {
|
|
286
171
|
return [];
|
|
287
172
|
}
|
|
288
|
-
// SOURCE ORDER, not meet order: the two are the same in simple
|
|
289
|
-
// cases and diverge with the fixpoint's fold order, which is an
|
|
290
|
-
// engine detail and a parity risk. Sites are parse data, identical
|
|
291
|
-
// in both ports, so ordering by them makes the record read as the
|
|
292
|
-
// document reads and pins it across implementations.
|
|
293
|
-
// ONE WRITTEN TOKEN IS ONE CONTRIBUTION, and the SITE is what
|
|
294
|
-
// identifies it -- not the val id, and not the canon.
|
|
295
|
-
//
|
|
296
|
-
// Not the id, because provenance travels through clones now: a
|
|
297
|
-
// written value and a clone of it are the same statement in the
|
|
298
|
-
// same place, and a path that met both would list it twice.
|
|
299
|
-
//
|
|
300
|
-
// Not the canon, because the same written value reaches a path at
|
|
301
|
-
// different stages of narrowing -- `3|(1|2)` as the author wrote
|
|
302
|
-
// it and `3|1|2` after a fold -- and both name one token.
|
|
303
|
-
//
|
|
304
|
-
// Not the role either: the role says how the value REACHED this
|
|
305
|
-
// path, not which value it is, and one written value can reach a
|
|
306
|
-
// path both ways (a template applied to a key whose value is also
|
|
307
|
-
// written there). Keeping the literal would throw away the more
|
|
308
|
-
// informative half, so the roles have a precedence.
|
|
309
|
-
//
|
|
310
|
-
// ONLY WHERE THE SITE IS REAL. An unsited contribution (row -1)
|
|
311
|
-
// cannot be told apart from another unsited one, so those are kept
|
|
312
|
-
// as they come rather than collapsed into whichever arrived first.
|
|
313
173
|
const shown = new Map();
|
|
314
174
|
const order = ['spread', 'ref', 'pref', 'literal'];
|
|
315
175
|
const out = [];
|
package/dist/provenance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
|