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
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
4
|
+
type AggOp = 'sum' | 'least' | 'greatest';
|
|
5
|
+
declare class AggFuncVal extends FuncBaseVal {
|
|
6
|
+
isAggFunc: boolean;
|
|
7
|
+
staged: boolean;
|
|
8
|
+
op: AggOp;
|
|
9
|
+
constructor(spec: ValSpec, ctx: AontuContext | undefined, op: AggOp);
|
|
10
|
+
funcname(): AggOp;
|
|
11
|
+
prepare(_ctx: AontuContext, _args: Val[]): null;
|
|
12
|
+
unify(peer: Val, ctx: AontuContext): Val;
|
|
13
|
+
resolve(ctx: AontuContext, args: Val[]): Val;
|
|
14
|
+
}
|
|
15
|
+
declare class PickFuncVal extends FuncBaseVal {
|
|
16
|
+
isPickFunc: boolean;
|
|
17
|
+
staged: boolean;
|
|
18
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
19
|
+
funcname(): string;
|
|
20
|
+
prepare(_ctx: AontuContext, _args: Val[]): null;
|
|
21
|
+
unify(peer: Val, ctx: AontuContext): Val;
|
|
22
|
+
resolve(ctx: AontuContext, args: Val[]): Val;
|
|
23
|
+
}
|
|
24
|
+
declare class SumFuncVal extends AggFuncVal {
|
|
25
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
26
|
+
}
|
|
27
|
+
declare class LeastFuncVal extends AggFuncVal {
|
|
28
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
29
|
+
}
|
|
30
|
+
declare class GreatestFuncVal extends AggFuncVal {
|
|
31
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
32
|
+
}
|
|
33
|
+
export { AggFuncVal, PickFuncVal, SumFuncVal, LeastFuncVal, GreatestFuncVal, };
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.GreatestFuncVal = exports.LeastFuncVal = exports.SumFuncVal = exports.PickFuncVal = exports.AggFuncVal = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const IntegerVal_1 = require("./IntegerVal");
|
|
7
|
+
const ListVal_1 = require("./ListVal");
|
|
8
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
9
|
+
const arith_1 = require("./arith");
|
|
10
|
+
const numcmp_1 = require("./numcmp");
|
|
11
|
+
// The children of a bag, in the order the aggregate sees them: source
|
|
12
|
+
// order for a list, sorted-key order for a map -- `each`'s order, and
|
|
13
|
+
// for the same reason (a map has no order of its own, so the language
|
|
14
|
+
// picks one and states it).
|
|
15
|
+
function bagChildren(data) {
|
|
16
|
+
if (true === data?.isList) {
|
|
17
|
+
return data.peg;
|
|
18
|
+
}
|
|
19
|
+
if (true === data?.isMap) {
|
|
20
|
+
return Object.keys(data.peg).sort().map((k) => data.peg[k]);
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
class AggFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
25
|
+
constructor(spec, ctx, op) {
|
|
26
|
+
super(spec, ctx);
|
|
27
|
+
this.isAggFunc = true;
|
|
28
|
+
// THE STAGING RULE (G8 phase 0). A total over a bag that is still
|
|
29
|
+
// being merged into is a total of the wrong bag -- the same reason
|
|
30
|
+
// `filter` and `each` wait.
|
|
31
|
+
this.staged = true;
|
|
32
|
+
this.op = op;
|
|
33
|
+
}
|
|
34
|
+
// NO `make` OVERRIDE, matching the other STAGED funcs (pack, each,
|
|
35
|
+
// filter, match): a staged call returns `residuate` before `unify`
|
|
36
|
+
// ever reaches the rebuild branch, so an override there would be
|
|
37
|
+
// unreachable code pretending to be a contract. The base's `make`
|
|
38
|
+
// raises `func:<name>` if that ever stops being true, which is the
|
|
39
|
+
// loud answer rather than a value that silently lost its operation.
|
|
40
|
+
funcname() {
|
|
41
|
+
return this.op;
|
|
42
|
+
}
|
|
43
|
+
// The base does not drive the argument: `unify` drives it by hand,
|
|
44
|
+
// because a staged func must advance what it is waiting on every
|
|
45
|
+
// pass rather than only on the pass it fires.
|
|
46
|
+
prepare(_ctx, _args) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
unify(peer, ctx) {
|
|
50
|
+
const ready = this.driveStagedArgs(ctx, 1);
|
|
51
|
+
if (!ready || !ctx.settle) {
|
|
52
|
+
return this.residuate(peer, ctx);
|
|
53
|
+
}
|
|
54
|
+
return super.unify(peer, ctx);
|
|
55
|
+
}
|
|
56
|
+
resolve(ctx, args) {
|
|
57
|
+
const children = bagChildren(args?.[0]);
|
|
58
|
+
if (undefined === children) {
|
|
59
|
+
return this.place((0, err_1.makeNilErr)(ctx, 'aggregate_data', this, undefined, this.op));
|
|
60
|
+
}
|
|
61
|
+
if ('sum' === this.op) {
|
|
62
|
+
// Zero is addition's identity, so an empty bag has an answer and
|
|
63
|
+
// it is an integer -- the narrowest kind, which the first real
|
|
64
|
+
// operand then widens under R5 exactly as `add(0, x)` would.
|
|
65
|
+
let total = new IntegerVal_1.IntegerVal({ peg: 0 });
|
|
66
|
+
for (const child of children) {
|
|
67
|
+
total = (0, arith_1.arith)(ctx, 'add', this, total, child, this.op);
|
|
68
|
+
// A refusal inside the fold IS the answer: adding on past a
|
|
69
|
+
// non-numeric child or an overflow would report the wrong
|
|
70
|
+
// reason, or none.
|
|
71
|
+
if (true === total.isNil) {
|
|
72
|
+
return this.place(total);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return this.place(total);
|
|
76
|
+
}
|
|
77
|
+
if (0 === children.length) {
|
|
78
|
+
return this.place((0, err_1.makeNilErr)(ctx, 'aggregate_empty', this, undefined, this.op));
|
|
79
|
+
}
|
|
80
|
+
const want = 'least' === this.op ? -1 : 1;
|
|
81
|
+
let best = undefined;
|
|
82
|
+
for (const child of children) {
|
|
83
|
+
const c = unpref(child);
|
|
84
|
+
if (!(c?.isVal && c.isScalar && 'string' !== typeof c.peg &&
|
|
85
|
+
'boolean' !== typeof c.peg && !c.isNull)) {
|
|
86
|
+
return this.place((0, err_1.makeNilErr)(ctx, 'invalid-arg', this, undefined, this.op));
|
|
87
|
+
}
|
|
88
|
+
// The EXACT comparator (numcmp), never binary64: a bigdecimal and
|
|
89
|
+
// an integer in one bag must order by their values and not by
|
|
90
|
+
// whatever their float images happen to be.
|
|
91
|
+
if (undefined === best || want === (0, numcmp_1.cmpNumeric)(c, best)) {
|
|
92
|
+
best = c;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// The winner is returned as itself, so it keeps its own kind: the
|
|
96
|
+
// least of a bag of bigdecimals is a bigdecimal.
|
|
97
|
+
return this.place(best.clone(ctx));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.AggFuncVal = AggFuncVal;
|
|
101
|
+
// A pref child contributes its preferred value, and therefore that
|
|
102
|
+
// value's kind too -- the rule `+` and the arithmetic family apply to
|
|
103
|
+
// operands, applied here to bag members.
|
|
104
|
+
function unpref(v) {
|
|
105
|
+
while (v?.isPref) {
|
|
106
|
+
v = v.peg;
|
|
107
|
+
}
|
|
108
|
+
return v;
|
|
109
|
+
}
|
|
110
|
+
// PROJECTION: `pick(d, k)` -- one element per child of `d`, being that
|
|
111
|
+
// child's `k`.
|
|
112
|
+
//
|
|
113
|
+
// The other half of the review's finding I: "`_.field` is unspellable,
|
|
114
|
+
// `filter` cannot see into lists, `unique()`-by-field is reserved but
|
|
115
|
+
// absent -- so 'no two services share a port' and 'unique event ids'
|
|
116
|
+
// cannot be said." Without it the aggregates above cannot reach the
|
|
117
|
+
// case that motivated them, because `sum` needs a bag of NUMBERS and a
|
|
118
|
+
// model holds a bag of RECORDS:
|
|
119
|
+
//
|
|
120
|
+
// total: sum(pick($.lines, amountCents))
|
|
121
|
+
//
|
|
122
|
+
// IT IS NOT `each` WITH A CLEVER TEMPLATE. `each(d, t)` MEETS each
|
|
123
|
+
// child with `t`, and a meet cannot select: `each($.lines, _.amount)`
|
|
124
|
+
// asks for a child that is simultaneously the whole record and one of
|
|
125
|
+
// its fields, which is why every spelling of it answers `no_path`.
|
|
126
|
+
// Selection is a different operation and gets its own verb.
|
|
127
|
+
//
|
|
128
|
+
// A CHILD MISSING THE KEY IS AN ERROR, not a silently shorter list.
|
|
129
|
+
// Skipping would make `sum(pick(...))` quietly total the wrong set of
|
|
130
|
+
// records -- the failure mode an aggregate exists to prevent -- so the
|
|
131
|
+
// refusal names the child (`pick_key`).
|
|
132
|
+
class PickFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
133
|
+
constructor(spec, ctx) {
|
|
134
|
+
super(spec, ctx);
|
|
135
|
+
this.isPickFunc = true;
|
|
136
|
+
// The bag must settle before it is projected, exactly as it must
|
|
137
|
+
// before it is folded.
|
|
138
|
+
this.staged = true;
|
|
139
|
+
}
|
|
140
|
+
funcname() {
|
|
141
|
+
return 'pick';
|
|
142
|
+
}
|
|
143
|
+
// The base drives neither argument: the DATA is driven by hand below
|
|
144
|
+
// (a staged func must advance what it waits on every pass), and the
|
|
145
|
+
// KEY is a bare word, which the parser has already made a string.
|
|
146
|
+
prepare(_ctx, _args) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
unify(peer, ctx) {
|
|
150
|
+
const ready = this.driveStagedArgs(ctx, 1);
|
|
151
|
+
if (!ready || !ctx.settle) {
|
|
152
|
+
return this.residuate(peer, ctx);
|
|
153
|
+
}
|
|
154
|
+
return super.unify(peer, ctx);
|
|
155
|
+
}
|
|
156
|
+
resolve(ctx, args) {
|
|
157
|
+
const children = bagChildren(args?.[0]);
|
|
158
|
+
const key = args?.[1];
|
|
159
|
+
if (undefined === children) {
|
|
160
|
+
return this.place((0, err_1.makeNilErr)(ctx, 'aggregate_data', this, undefined, 'pick'));
|
|
161
|
+
}
|
|
162
|
+
// The key is a STRING for a map child and the decimal spelling of an
|
|
163
|
+
// index for a list child -- the same rule a reference segment
|
|
164
|
+
// follows, so `pick(d, 0)` and `$.d.0.x` agree about what `0` names.
|
|
165
|
+
const name = null == key?.peg ? undefined :
|
|
166
|
+
'string' === typeof key.peg ? key.peg :
|
|
167
|
+
'number' === typeof key.peg && key.isInteger ? String(key.peg) :
|
|
168
|
+
undefined;
|
|
169
|
+
if (undefined === name) {
|
|
170
|
+
return this.place((0, err_1.makeNilErr)(ctx, 'invalid-arg', this, undefined, 'pick'));
|
|
171
|
+
}
|
|
172
|
+
const peg = [];
|
|
173
|
+
for (const child of children) {
|
|
174
|
+
const c = child;
|
|
175
|
+
const got = true === c?.isMap ? c.peg[name] :
|
|
176
|
+
true === c?.isList ? c.peg[Number(name)] :
|
|
177
|
+
undefined;
|
|
178
|
+
if (null == got) {
|
|
179
|
+
return this.place((0, err_1.makeNilErr)(ctx, 'pick_key', this, undefined, 'pick', { key: name }));
|
|
180
|
+
}
|
|
181
|
+
peg.push(got.clone(ctx.descend(String(peg.length))));
|
|
182
|
+
}
|
|
183
|
+
return this.place(new ListVal_1.ListVal({ peg }, ctx));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.PickFuncVal = PickFuncVal;
|
|
187
|
+
// The three the registry names. Each is its operation and nothing else.
|
|
188
|
+
class SumFuncVal extends AggFuncVal {
|
|
189
|
+
constructor(spec, ctx) { super(spec, ctx, 'sum'); }
|
|
190
|
+
}
|
|
191
|
+
exports.SumFuncVal = SumFuncVal;
|
|
192
|
+
class LeastFuncVal extends AggFuncVal {
|
|
193
|
+
constructor(spec, ctx) { super(spec, ctx, 'least'); }
|
|
194
|
+
}
|
|
195
|
+
exports.LeastFuncVal = LeastFuncVal;
|
|
196
|
+
class GreatestFuncVal extends AggFuncVal {
|
|
197
|
+
constructor(spec, ctx) {
|
|
198
|
+
super(spec, ctx, 'greatest');
|
|
199
|
+
}
|
|
200
|
+
} /* node:coverage ignore next 9 */
|
|
201
|
+
exports.GreatestFuncVal = GreatestFuncVal;
|
|
202
|
+
//# sourceMappingURL=AggFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AggFuncVal.js","sourceRoot":"","sources":["../../src/val/AggFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
4
|
+
import type { ArithOp } from './arith';
|
|
5
|
+
declare class ArithFuncVal extends FuncBaseVal {
|
|
6
|
+
isArithFunc: boolean;
|
|
7
|
+
op: ArithOp;
|
|
8
|
+
constructor(spec: ValSpec, ctx: AontuContext | undefined, op: ArithOp);
|
|
9
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
10
|
+
funcname(): ArithOp;
|
|
11
|
+
resolve(ctx: AontuContext | undefined, args: Val[]): Val;
|
|
12
|
+
}
|
|
13
|
+
declare class AddFuncVal extends ArithFuncVal {
|
|
14
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
15
|
+
}
|
|
16
|
+
declare class SubFuncVal extends ArithFuncVal {
|
|
17
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
18
|
+
}
|
|
19
|
+
declare class MulFuncVal extends ArithFuncVal {
|
|
20
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
21
|
+
}
|
|
22
|
+
declare class DivFuncVal extends ArithFuncVal {
|
|
23
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
24
|
+
}
|
|
25
|
+
declare class ModFuncVal extends ArithFuncVal {
|
|
26
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
27
|
+
}
|
|
28
|
+
declare class RemFuncVal extends ArithFuncVal {
|
|
29
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
30
|
+
}
|
|
31
|
+
export { ArithFuncVal, AddFuncVal, SubFuncVal, MulFuncVal, DivFuncVal, ModFuncVal, RemFuncVal, };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RemFuncVal = exports.ModFuncVal = exports.DivFuncVal = exports.MulFuncVal = exports.SubFuncVal = exports.AddFuncVal = exports.ArithFuncVal = void 0;
|
|
5
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
6
|
+
const arith_1 = require("./arith");
|
|
7
|
+
// ONE CLASS FOR SIX FUNCTIONS, because every rule they obey is a rule
|
|
8
|
+
// about arithmetic rather than about any one operation (see arith.ts).
|
|
9
|
+
// Six near-identical classes would be six places for the exact ladder,
|
|
10
|
+
// the zero divisor and the storage contract to drift apart, and the
|
|
11
|
+
// number tower's whole point is that they cannot.
|
|
12
|
+
//
|
|
13
|
+
// The op is carried on the instance and answered by `funcname()`, which
|
|
14
|
+
// is what canon renders and what an error names. The six one-line
|
|
15
|
+
// subclasses below exist only because the parser's registry constructs
|
|
16
|
+
// with `new funcval({peg: args})` and has nowhere to put a name; every
|
|
17
|
+
// line of behaviour is here.
|
|
18
|
+
class ArithFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
19
|
+
constructor(spec, ctx, op) {
|
|
20
|
+
super(spec, ctx);
|
|
21
|
+
this.isArithFunc = true;
|
|
22
|
+
this.op = op;
|
|
23
|
+
}
|
|
24
|
+
// Rebuilt as its own class, carrying its own op: residuation must not
|
|
25
|
+
// turn a `sub` into a bare arithmetic call with no operation.
|
|
26
|
+
make(_ctx, spec) {
|
|
27
|
+
return new this.constructor(spec, undefined, this.op);
|
|
28
|
+
}
|
|
29
|
+
funcname() {
|
|
30
|
+
return this.op;
|
|
31
|
+
}
|
|
32
|
+
resolve(ctx, args) {
|
|
33
|
+
return this.place((0, arith_1.arith)(ctx, this.op, this, args?.[0], args?.[1]));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ArithFuncVal = ArithFuncVal;
|
|
37
|
+
// The six the registry names. Each is its operation and nothing else.
|
|
38
|
+
class AddFuncVal extends ArithFuncVal {
|
|
39
|
+
constructor(spec, ctx) { super(spec, ctx, 'add'); }
|
|
40
|
+
}
|
|
41
|
+
exports.AddFuncVal = AddFuncVal;
|
|
42
|
+
class SubFuncVal extends ArithFuncVal {
|
|
43
|
+
constructor(spec, ctx) { super(spec, ctx, 'sub'); }
|
|
44
|
+
}
|
|
45
|
+
exports.SubFuncVal = SubFuncVal;
|
|
46
|
+
class MulFuncVal extends ArithFuncVal {
|
|
47
|
+
constructor(spec, ctx) { super(spec, ctx, 'mul'); }
|
|
48
|
+
}
|
|
49
|
+
exports.MulFuncVal = MulFuncVal;
|
|
50
|
+
class DivFuncVal extends ArithFuncVal {
|
|
51
|
+
constructor(spec, ctx) { super(spec, ctx, 'div'); }
|
|
52
|
+
}
|
|
53
|
+
exports.DivFuncVal = DivFuncVal;
|
|
54
|
+
class ModFuncVal extends ArithFuncVal {
|
|
55
|
+
constructor(spec, ctx) { super(spec, ctx, 'mod'); }
|
|
56
|
+
}
|
|
57
|
+
exports.ModFuncVal = ModFuncVal;
|
|
58
|
+
class RemFuncVal extends ArithFuncVal {
|
|
59
|
+
constructor(spec, ctx) { super(spec, ctx, 'rem'); }
|
|
60
|
+
} /* node:coverage ignore next 11 */
|
|
61
|
+
exports.RemFuncVal = RemFuncVal;
|
|
62
|
+
//# sourceMappingURL=ArithFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArithFuncVal.js","sourceRoot":"","sources":["../../src/val/ArithFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAYpD,+CAA2C;AAC3C,mCAA+B;AAI/B,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,kDAAkD;AAClD,EAAE;AACF,wEAAwE;AACxE,kEAAkE;AAClE,uEAAuE;AACvE,uEAAuE;AACvE,6BAA6B;AAC7B,MAAM,YAAa,SAAQ,yBAAW;IAQpC,YACE,IAAa,EACb,GAA6B,EAC7B,EAAW;QAEX,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAZlB,gBAAW,GAAG,IAAI,CAAA;QAahB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAGD,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAK,IAAI,CAAC,WAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAA6B,EAAE,IAAW;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;CAWF;QA8BC,YAAY;AA3Bd,sEAAsE;AACtE,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAyBC,UAAU;AAvBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAsBC,UAAU;AApBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAmBC,UAAU;AAjBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAgBC,UAAU;AAdZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAaC,UAAU;AAXZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E,CAAC,kCAAkC;QAUlC,UAAU"}
|
package/dist/val/BagVal.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ declare abstract class BagVal extends FeatureVal {
|
|
|
13
13
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
14
14
|
clone(ctx: AontuContext, spec?: ValSpec): Val;
|
|
15
15
|
handleExpectedVal(key: string, val: Val, parent: Val, ctx: AontuContext): Val;
|
|
16
|
+
same(peer: any): boolean;
|
|
16
17
|
gen(ctx: AontuContext): any;
|
|
17
18
|
}
|
|
18
19
|
export { BagVal, };
|
|
20
|
+
export declare function sizingResidue(v: any): {
|
|
21
|
+
con: any;
|
|
22
|
+
bag: any;
|
|
23
|
+
} | undefined;
|
package/dist/val/BagVal.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.BagVal = void 0;
|
|
5
|
+
exports.sizingResidue = sizingResidue;
|
|
5
6
|
const utility_1 = require("../utility");
|
|
6
7
|
const err_1 = require("../err");
|
|
7
8
|
const Val_1 = require("./Val");
|
|
@@ -26,17 +27,82 @@ class BagVal extends FeatureVal_1.FeatureVal {
|
|
|
26
27
|
return bag;
|
|
27
28
|
}
|
|
28
29
|
handleExpectedVal(key, val, parent, ctx) {
|
|
29
|
-
|
|
30
|
+
// A MARKED value is carried, never expected (ADR-005 era, BUGS.md
|
|
31
|
+
// §12's include form): a type()/hide()-marked child legitimately
|
|
32
|
+
// participates in unification without ever generating — that is
|
|
33
|
+
// the marks contract — so wrapping one as an expectation turned a
|
|
34
|
+
// schema field arriving through an include's map meet into a
|
|
35
|
+
// bogus `mapval_spread_required` naming a spread that exists in
|
|
36
|
+
// neither file. The bag's gen already skips marked children.
|
|
37
|
+
//
|
|
38
|
+
// An OPERATOR is carried too (BUGS.md §36): an expression is a
|
|
39
|
+
// computation that resolves by itself once its operands do — the
|
|
40
|
+
// bag's own-key loop drives it every pass — so `m:{y:.x+1}`
|
|
41
|
+
// arriving as a peer key must keep computing exactly as it does
|
|
42
|
+
// written inline. Wrapping it froze the op (an expectation only
|
|
43
|
+
// advances when a peer arrives) and the residue then reported the
|
|
44
|
+
// phantom `mapval_spread_required` naming a spread that exists
|
|
45
|
+
// nowhere. An op that truly never resolves is honest *_no_gen
|
|
46
|
+
// residue naming the expression itself.
|
|
47
|
+
if (val.isGenable || val.isOp || val.mark.type || val.mark.hide) {
|
|
30
48
|
return val;
|
|
31
49
|
}
|
|
32
|
-
|
|
50
|
+
// An expectation baked into a combined spread template (the
|
|
51
|
+
// 'map-self' meet of two unequal templates) is re-wrapped FRESH, so
|
|
52
|
+
// key/parent name THIS bag and the template's own node is never
|
|
53
|
+
// stored at a destination.
|
|
54
|
+
const expectVal = new ExpectVal_1.ExpectVal({ peg: val.isExpect ? val.peg : val }, ctx);
|
|
33
55
|
expectVal.key = key;
|
|
34
56
|
expectVal.parent = parent;
|
|
35
57
|
return expectVal;
|
|
36
58
|
}
|
|
59
|
+
// TWO BAGS ARE THE SAME VALUE WHEN THEY HAVE THE SAME SHAPE. Val.same
|
|
60
|
+
// falls back to object IDENTITY, which no two separately built maps
|
|
61
|
+
// share -- so `x:*{a:1}|{a:number}` met by `x:{a:2}` left
|
|
62
|
+
// `{"a":2}|{"a":2}`, a disjunction of one value spelled twice, past
|
|
63
|
+
// the DisjunctVal dedup. Generation's old member FOLD hid that
|
|
64
|
+
// (folding a value with itself is that value); ADR-007 does not, and
|
|
65
|
+
// a disjunction whose alternatives are all the SAME value is
|
|
66
|
+
// resolved, not ambiguous. Canon prints the collapse too, which is
|
|
67
|
+
// the more honest text.
|
|
68
|
+
//
|
|
69
|
+
// Structural, and deliberately strict: container kind, closedness,
|
|
70
|
+
// the marks, the optional keys and the key set must all agree before
|
|
71
|
+
// the children are compared pairwise. Recursion terminates because a
|
|
72
|
+
// reference is not a bag -- RefVal keeps the identity comparison.
|
|
73
|
+
same(peer) {
|
|
74
|
+
if (this === peer) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if (null == peer || true !== peer.isBag) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (this.isMap !== peer.isMap ||
|
|
81
|
+
this.closed !== peer.closed ||
|
|
82
|
+
this.mark.type !== peer.mark.type ||
|
|
83
|
+
this.mark.hide !== peer.mark.hide) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const keys = Object.keys(this.peg);
|
|
87
|
+
if (keys.length !== Object.keys(peer.peg).length) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (this.optionalKeys.length !== peer.optionalKeys.length ||
|
|
91
|
+
this.optionalKeys.some((k) => !peer.optionalKeys.includes(k))) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
for (const k of keys) {
|
|
95
|
+
const mine = this.peg[k];
|
|
96
|
+
const theirs = peer.peg[k];
|
|
97
|
+
if (null == mine || null == theirs || !mine.same(theirs)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
37
103
|
gen(ctx) {
|
|
38
104
|
let out = this.isMap ? {} : [];
|
|
39
|
-
if (this.mark.type || this.mark.hide) {
|
|
105
|
+
if ((this.mark.type || this.mark.hide) && true !== ctx?.probe) {
|
|
40
106
|
return undefined;
|
|
41
107
|
}
|
|
42
108
|
// Maps emit their keys in CODE POINT order so the generated output
|
|
@@ -54,7 +120,7 @@ class BagVal extends FeatureVal_1.FeatureVal {
|
|
|
54
120
|
for (let item of entries) {
|
|
55
121
|
const p = item[0];
|
|
56
122
|
const child = item[1];
|
|
57
|
-
if (child.mark.type || child.mark.hide) {
|
|
123
|
+
if ((child.mark.type || child.mark.hide) && true !== ctx?.probe) {
|
|
58
124
|
continue;
|
|
59
125
|
}
|
|
60
126
|
const optional = this.optionalKeys.includes('' + p);
|
|
@@ -78,13 +144,22 @@ class BagVal extends FeatureVal_1.FeatureVal {
|
|
|
78
144
|
}
|
|
79
145
|
put(cval);
|
|
80
146
|
}
|
|
147
|
+
// A CONJUNCT IS GENERABLE WHEN IT IS A SETTLED SIZING RESIDUE
|
|
148
|
+
// (the review's finding C, use-cases/BUGS.md §16). `length` and
|
|
149
|
+
// `unique` over a container keep the readings more members could
|
|
150
|
+
// still change, so `a: length(3) a:[1,2,3]` is a conjunct of the
|
|
151
|
+
// atom and the list right up to generation -- which is where the
|
|
152
|
+
// atom decides, in ConjunctVal.gen. Any OTHER conjunct is
|
|
153
|
+
// unresolved and falls through to the residue error below,
|
|
154
|
+
// exactly as before.
|
|
81
155
|
else if (child.isScalar
|
|
82
156
|
|| child.isMap
|
|
83
157
|
|| child.isList
|
|
84
158
|
|| child.isPref
|
|
85
159
|
|| child.isRef
|
|
86
160
|
|| child.isDisjunct
|
|
87
|
-
|| child.isNil
|
|
161
|
+
|| child.isNil
|
|
162
|
+
|| undefined !== sizingResidue(child)) {
|
|
88
163
|
// An optional child is generated in an isolated collect context so an
|
|
89
164
|
// unresolved inner value (a bare type that survived unification, e.g.
|
|
90
165
|
// an absent optional sub-map's `field: string`) is dropped rather than
|
|
@@ -132,4 +207,20 @@ class BagVal extends FeatureVal_1.FeatureVal {
|
|
|
132
207
|
}
|
|
133
208
|
} /* node:coverage ignore next 6 */
|
|
134
209
|
exports.BagVal = BagVal;
|
|
210
|
+
// A conjunct of exactly one sizing constraint and one container: the
|
|
211
|
+
// shape ConstraintVal.admitContainer leaves when its reading is still
|
|
212
|
+
// provisional, and the one ConjunctVal.gen knows how to finish. Kept
|
|
213
|
+
// here rather than as a flag on the conjunct because it is a question
|
|
214
|
+
// about the TERMS, and they can change until the meet converges.
|
|
215
|
+
function sizingResidue(v) {
|
|
216
|
+
if (true !== v?.isConjunct || 2 !== v.peg?.length) {
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
const [a, b] = v.peg;
|
|
220
|
+
const con = true === a?.isConstraint ? a :
|
|
221
|
+
true === b?.isConstraint ? b : undefined;
|
|
222
|
+
const bag = true === a?.isConstraint ? b : a;
|
|
223
|
+
return undefined !== con && (true === bag?.isMap || true === bag?.isList) ?
|
|
224
|
+
{ con, bag } : undefined;
|
|
225
|
+
}
|
|
135
226
|
//# sourceMappingURL=BagVal.js.map
|
package/dist/val/BagVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagVal.js","sourceRoot":"","sources":["../../src/val/BagVal.ts"],"names":[],"mappings":";AAAA,yDAAyD
|
|
1
|
+
{"version":3,"file":"BagVal.js","sourceRoot":"","sources":["../../src/val/BagVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/CloseFuncVal.js
CHANGED
|
@@ -17,11 +17,19 @@ class CloseFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
17
17
|
return 'close';
|
|
18
18
|
}
|
|
19
19
|
resolve(ctx, args) {
|
|
20
|
-
|
|
20
|
+
let argval = args[0];
|
|
21
21
|
if (null == argval) {
|
|
22
22
|
return (0, err_1.makeNilErr)(ctx, 'no_first_arg', this, undefined, 'close');
|
|
23
23
|
}
|
|
24
24
|
if (argval.isMap || argval.isList) {
|
|
25
|
+
// The in-place write is safe BECAUSE of the per-destination
|
|
26
|
+
// instantiation rule (ADR-005): everywhere a close() call is
|
|
27
|
+
// multiplied — a pack/each template, a spread constraint — the
|
|
28
|
+
// clone now owns its argument (`dup`), so `closed` lands on that
|
|
29
|
+
// instance alone. Cloning the bag here instead was tried and
|
|
30
|
+
// rejected: the re-path it implies corrupts the source
|
|
31
|
+
// attribution of children inside nested spread templates (the
|
|
32
|
+
// 06-k8s use case's env findings named the wrong path).
|
|
25
33
|
argval.closed = true;
|
|
26
34
|
// console.log('CLOSED', argval.canon)
|
|
27
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloseFuncVal.js","sourceRoot":"","sources":["../../src/val/CloseFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,+CAA2C;AAI3C,MAAM,YAAa,SAAQ,yBAAW;IAGpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,gBAAW,GAAG,IAAI,CAAA;QAOhB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,
|
|
1
|
+
{"version":3,"file":"CloseFuncVal.js","sourceRoot":"","sources":["../../src/val/CloseFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,+CAA2C;AAI3C,MAAM,YAAa,SAAQ,yBAAW;IAGpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,gBAAW,GAAG,IAAI,CAAA;QAOhB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,MAAM,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,4DAA4D;YAC5D,6DAA6D;YAC7D,+DAA+D;YAC/D,iEAAiE;YACjE,6DAA6D;YAC7D,uDAAuD;YACvD,8DAA8D;YAC9D,wDAAwD;YACvD,MAAiB,CAAC,MAAM,GAAG,IAAI,CAAA;YAChC,sCAAsC;QACxC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAEF,CAAC,iCAAiC;QAIjC,YAAY"}
|
|
@@ -10,7 +10,7 @@ declare class ConjunctVal extends JunctionVal {
|
|
|
10
10
|
unify(peer: Val, ctx: AontuContext): Val;
|
|
11
11
|
clone(ctx: AontuContext, spec?: ValSpec): Val;
|
|
12
12
|
getJunctionSymbol(): string;
|
|
13
|
-
gen(ctx?: AontuContext):
|
|
13
|
+
gen(ctx?: AontuContext): any;
|
|
14
14
|
}
|
|
15
15
|
declare function norm(terms: Val[]): Val[];
|
|
16
16
|
export { norm, ConjunctVal, };
|
package/dist/val/ConjunctVal.js
CHANGED
|
@@ -8,6 +8,7 @@ const err_1 = require("../err");
|
|
|
8
8
|
const unify_1 = require("../unify");
|
|
9
9
|
const err_2 = require("../err");
|
|
10
10
|
const JunctionVal_1 = require("./JunctionVal");
|
|
11
|
+
const BagVal_1 = require("./BagVal");
|
|
11
12
|
const utility_1 = require("../utility");
|
|
12
13
|
const top_1 = require("./top");
|
|
13
14
|
// TODO: move main logic to op/conjunct
|
|
@@ -140,6 +141,24 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
140
141
|
return '&';
|
|
141
142
|
}
|
|
142
143
|
gen(ctx) {
|
|
144
|
+
// A RESIDUATED SIZING ATOM DECIDES HERE (the review's finding C,
|
|
145
|
+
// use-cases/BUGS.md §16). `length`/`unique` over a container keep
|
|
146
|
+
// the readings that MORE MEMBERS COULD STILL CHANGE -- an upper
|
|
147
|
+
// bound satisfied, a lower bound violated, distinctness so far --
|
|
148
|
+
// rather than deciding against whatever the container held when it
|
|
149
|
+
// first settled (ConstraintVal.admitContainer). Generation is where
|
|
150
|
+
// no more members can arrive, so it is where the provisional
|
|
151
|
+
// reading becomes the verdict: the container generates if the atom
|
|
152
|
+
// is satisfied, and the atom's OWN refusal is raised if it is not.
|
|
153
|
+
//
|
|
154
|
+
// Without this the conjunct would report `conjunct` for a document
|
|
155
|
+
// whose only fault is a length -- the constraint's message is the
|
|
156
|
+
// one the author needs.
|
|
157
|
+
const residue = (0, BagVal_1.sizingResidue)(this);
|
|
158
|
+
if (undefined !== residue) {
|
|
159
|
+
const settled = residue.con.settleContainer(residue.bag, ctx);
|
|
160
|
+
return true === settled?.isNil ? undefined : settled.gen(ctx);
|
|
161
|
+
}
|
|
143
162
|
// Unresolved conjunct cannot be generated, so always an error.
|
|
144
163
|
let nil = (0, err_1.makeNilErr)(ctx, 'conjunct', this, // (formatPath(this.peg, this.absolute) as any),
|
|
145
164
|
undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
|