aontu 0.67.0 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alias.d.ts +12 -1
- package/dist/alias.js +176 -6
- package/dist/alias.js.map +1 -1
- package/dist/aliasname.d.ts +19 -0
- package/dist/aliasname.js +65 -0
- package/dist/aliasname.js.map +1 -0
- package/dist/aontu.d.ts +1 -1
- package/dist/aontu.js +21 -8
- package/dist/aontu.js.map +1 -1
- package/dist/aontumodel.js +1 -1
- package/dist/aontumodel.js.map +1 -1
- package/dist/cli.d.ts +4 -1
- package/dist/cli.js +29 -13
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +1 -0
- package/dist/ctx.js +1 -0
- package/dist/ctx.js.map +1 -1
- package/dist/err.js +18 -1
- package/dist/err.js.map +1 -1
- package/dist/format.js +14 -0
- package/dist/format.js.map +1 -1
- package/dist/helpdoc.js +1 -1
- package/dist/helpdoc.js.map +1 -1
- package/dist/hints.js +171 -0
- package/dist/hints.js.map +1 -1
- package/dist/lang.js +325 -38
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +10 -4
- package/dist/lsp.js +116 -7
- package/dist/lsp.js.map +1 -1
- package/dist/site.d.ts +9 -0
- package/dist/site.js +2 -1
- package/dist/site.js.map +1 -1
- package/dist/subsume.js +6 -1
- package/dist/subsume.js.map +1 -1
- package/dist/val/BagVal.d.ts +1 -0
- package/dist/val/BagVal.js +3 -0
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/EmitFuncVal.js +2 -1
- package/dist/val/EmitFuncVal.js.map +1 -1
- package/dist/val/FilterFuncVal.js +1 -1
- package/dist/val/FilterFuncVal.js.map +1 -1
- package/dist/val/FuncBaseVal.d.ts +2 -1
- package/dist/val/FuncBaseVal.js +25 -1
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/MapVal.js +10 -4
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.js +2 -1
- package/dist/val/MatchFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +3 -0
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/RecurseVal.d.ts +1 -0
- package/dist/val/RecurseVal.js +7 -3
- package/dist/val/RecurseVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +1 -0
- package/dist/val/RefVal.js +47 -18
- package/dist/val/RefVal.js.map +1 -1
- package/dist/vet.d.ts +2 -1
- package/dist/vet.js +51 -6
- package/dist/vet.js.map +1 -1
- package/package.json +1 -1
- package/skill/error-codes.md +25 -1
- package/src/alias.ts +214 -6
- package/src/aliasname.ts +95 -0
- package/src/aontu.ts +23 -9
- package/src/aontumodel.ts +1 -1
- package/src/cli.ts +35 -13
- package/src/ctx.ts +4 -1
- package/src/err.ts +19 -1
- package/src/format.ts +14 -0
- package/src/helpdoc.ts +1 -1
- package/src/hints.ts +228 -0
- package/src/lang.ts +370 -33
- package/src/lsp.ts +136 -6
- package/src/site.ts +15 -1
- package/src/subsume.ts +9 -2
- package/src/val/BagVal.ts +4 -0
- package/src/val/EmitFuncVal.ts +3 -2
- package/src/val/FilterFuncVal.ts +2 -2
- package/src/val/FuncBaseVal.ts +30 -1
- package/src/val/MapVal.ts +10 -4
- package/src/val/MatchFuncVal.ts +3 -2
- package/src/val/NilVal.ts +3 -0
- package/src/val/RecurseVal.ts +8 -3
- package/src/val/RefVal.ts +49 -19
- package/src/vet.ts +55 -6
package/dist/alias.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
import type { Val } from './type';
|
|
2
|
+
type AliasBinding = {
|
|
3
|
+
name: string;
|
|
4
|
+
row: number;
|
|
5
|
+
col: number;
|
|
6
|
+
decl: string;
|
|
7
|
+
from: string;
|
|
8
|
+
};
|
|
9
|
+
declare function aliasScope(src: string): AliasBinding[];
|
|
10
|
+
declare function aliasErrors(ctx: any, root: Val): void;
|
|
11
|
+
declare function aliasBudget(ctx: any, root: Val): Val | undefined;
|
|
2
12
|
declare function expandAliases(root: Val, snapmap: Map<string, Val>): void;
|
|
3
|
-
export { expandAliases, };
|
|
13
|
+
export { aliasBudget, aliasErrors, aliasScope, expandAliases, };
|
|
14
|
+
export type { AliasBinding, };
|
package/dist/alias.js
CHANGED
|
@@ -1,9 +1,179 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Copyright (c) 2021-2026 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.aliasBudget = aliasBudget;
|
|
5
|
+
exports.aliasErrors = aliasErrors;
|
|
6
|
+
exports.aliasScope = aliasScope;
|
|
4
7
|
exports.expandAliases = expandAliases;
|
|
8
|
+
const err_1 = require("./err");
|
|
5
9
|
const keyorder_1 = require("./keyorder");
|
|
6
10
|
const MapVal_1 = require("./val/MapVal");
|
|
11
|
+
const aliasname_1 = require("./aliasname");
|
|
12
|
+
const ALIAS_DECL_RE = new RegExp('^(' + aliasname_1.ALIAS_NAME + ')[ \\t]*=(?!=)');
|
|
13
|
+
// Whether the head IS a set is aliasSetItems's answer, not the shape's.
|
|
14
|
+
const ALIAS_TAKE_RE = /^(\{[^}]*\})[ \t]*=[ \t]*@[ \t]*"([^"]*)"/;
|
|
15
|
+
// THE NAMES A FILE BINDS, from its TEXT rather than its tree: an editor
|
|
16
|
+
// asks while the document is half-written and would not parse.
|
|
17
|
+
function aliasScope(src) {
|
|
18
|
+
const out = [];
|
|
19
|
+
const lines = src.split('\n');
|
|
20
|
+
for (let li = 0; li < lines.length; li++) {
|
|
21
|
+
const line = lines[li];
|
|
22
|
+
const lead = line.length - line.replace(/^[ \t]+/, '').length;
|
|
23
|
+
const rest = line.substring(lead);
|
|
24
|
+
const decl = line.trim();
|
|
25
|
+
const dm = ALIAS_DECL_RE.exec(rest);
|
|
26
|
+
if (null != dm) {
|
|
27
|
+
out.push({ name: dm[1], row: li + 1, col: lead + 1, decl, from: '' });
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const tm = ALIAS_TAKE_RE.exec(rest);
|
|
31
|
+
const binds = null == tm ? undefined : (0, aliasname_1.aliasSetItems)(tm[1]);
|
|
32
|
+
if (null == tm || undefined === binds) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
// The column is each item's own, so a set jumps to the name asked
|
|
36
|
+
// for rather than to the pattern.
|
|
37
|
+
let at = lead;
|
|
38
|
+
for (const b of binds) {
|
|
39
|
+
at = line.indexOf(b.local, at);
|
|
40
|
+
out.push({ name: b.local, row: li + 1, col: at + 1, decl, from: tm[2] });
|
|
41
|
+
at += b.local.length;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
// EVERY ALIAS REFERENCE NAMES A DECLARED NAME, whether or not anything
|
|
47
|
+
// reaches it. Resolution is lazy, so a reference inside a template that
|
|
48
|
+
// nothing instantiates is never tried and a misspelling compiles clean.
|
|
49
|
+
// Whether a NAME is declared does not depend on what the tree holds, so
|
|
50
|
+
// it is answered here instead. See docs/design/ALIASES.0.md
|
|
51
|
+
function aliasErrors(ctx, root) {
|
|
52
|
+
if (true !== root.isMap) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const declared = new Set(root.aliasKeys);
|
|
56
|
+
const seen = new Set();
|
|
57
|
+
const visit = (v) => {
|
|
58
|
+
if (null == v || true !== v.isVal || seen.has(v)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
seen.add(v);
|
|
62
|
+
if (true === v.isRef) {
|
|
63
|
+
const key = v.aliasKey;
|
|
64
|
+
if (undefined !== key && !declared.has(key)) {
|
|
65
|
+
ctx.adderr((0, err_1.makeNilErr)(ctx, 'no_path', v, undefined, 'resolve'));
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (true === v.isMap) {
|
|
70
|
+
for (const k of Object.keys(v.peg)) {
|
|
71
|
+
visit(v.peg[k]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (Array.isArray(v.peg)) {
|
|
75
|
+
for (const e of v.peg) {
|
|
76
|
+
visit(e);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (null != v.peg && true === v.peg.isVal) {
|
|
80
|
+
visit(v.peg);
|
|
81
|
+
}
|
|
82
|
+
if ((true === v.isMap || true === v.isList) && null != v.spread.cj) {
|
|
83
|
+
visit(v.spread.cj);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
visit(root);
|
|
87
|
+
} /* node:coverage ignore next 3 */
|
|
88
|
+
// T-1 (ALIASES.0.md sections 7 and 9). Expansion TERMINATES -- no
|
|
89
|
+
// parameters, no recursion, a finite name set -- but a name that names
|
|
90
|
+
// names expands to the product of what they hold. The budget is on
|
|
91
|
+
// EXPANDED SIZE and charged here, ahead of evaluation.
|
|
92
|
+
function aliasBudget(ctx, root) {
|
|
93
|
+
// A DOCUMENT THAT INCLUDES parses to a conjunct, not a map: the
|
|
94
|
+
// deferred terms are where an included file's names arrive, so the
|
|
95
|
+
// budget must see all of them, not only the first.
|
|
96
|
+
const maps = [];
|
|
97
|
+
const gather = (v) => {
|
|
98
|
+
if (true === v?.isMap) {
|
|
99
|
+
maps.push(v);
|
|
100
|
+
}
|
|
101
|
+
else if (true === v?.isConjunct && Array.isArray(v.peg)) {
|
|
102
|
+
for (const t of v.peg) {
|
|
103
|
+
gather(t);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
gather(root);
|
|
108
|
+
if (0 === maps.length) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
const decl = {};
|
|
112
|
+
for (const m of maps) {
|
|
113
|
+
for (const k of m.aliasKeys) {
|
|
114
|
+
decl[k] = m.peg[k];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const limit = ctx.budget.alias;
|
|
118
|
+
const size = new Map();
|
|
119
|
+
const open = new Set();
|
|
120
|
+
let over = undefined;
|
|
121
|
+
// A cycle is refused at resolution, which has not run yet, so a name
|
|
122
|
+
// already open costs nothing here rather than looping.
|
|
123
|
+
const nameSize = (key) => {
|
|
124
|
+
if (size.has(key)) {
|
|
125
|
+
return size.get(key);
|
|
126
|
+
}
|
|
127
|
+
if (open.has(key) || !(key in decl)) {
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
open.add(key);
|
|
131
|
+
const n = valSize(decl[key]);
|
|
132
|
+
open.delete(key);
|
|
133
|
+
size.set(key, n);
|
|
134
|
+
return n;
|
|
135
|
+
};
|
|
136
|
+
const valSize = (v) => {
|
|
137
|
+
if (true === v.isRef) {
|
|
138
|
+
const key = v.aliasKey;
|
|
139
|
+
return undefined === key ? 1 : 1 + nameSize(key);
|
|
140
|
+
}
|
|
141
|
+
let n = 1;
|
|
142
|
+
if (true === v.isMap) {
|
|
143
|
+
for (const k of Object.keys(v.peg)) {
|
|
144
|
+
n += valSize(v.peg[k]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else if (Array.isArray(v.peg)) {
|
|
148
|
+
for (const e of v.peg) {
|
|
149
|
+
n += valSize(e);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else if (null != v.peg && true === v.peg.isVal) {
|
|
153
|
+
n += valSize(v.peg);
|
|
154
|
+
}
|
|
155
|
+
if ((true === v.isMap || true === v.isList) && null != v.spread?.cj) {
|
|
156
|
+
n += valSize(v.spread.cj);
|
|
157
|
+
}
|
|
158
|
+
return limit < n ? limit + 1 : n;
|
|
159
|
+
};
|
|
160
|
+
let total = 0;
|
|
161
|
+
for (const m of maps) {
|
|
162
|
+
for (const k of Object.keys(m.peg)) {
|
|
163
|
+
if (!(k in decl)) {
|
|
164
|
+
total += valSize(m.peg[k]);
|
|
165
|
+
if (limit < total) {
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (limit < total) {
|
|
172
|
+
over = (0, err_1.makeNilErr)(ctx, 'alias_budget', root, undefined, 'resolve');
|
|
173
|
+
over.details = { budget: '' + limit };
|
|
174
|
+
}
|
|
175
|
+
return over;
|
|
176
|
+
}
|
|
7
177
|
function expandAliases(root, snapmap) {
|
|
8
178
|
if (true !== root.isMap) {
|
|
9
179
|
return;
|
|
@@ -15,20 +185,20 @@ function expandAliases(root, snapmap) {
|
|
|
15
185
|
}
|
|
16
186
|
seen.add(v);
|
|
17
187
|
if (true === v.isRef) {
|
|
18
|
-
const
|
|
19
|
-
if (undefined ===
|
|
188
|
+
const key = v.aliasKey;
|
|
189
|
+
if (undefined === key) {
|
|
20
190
|
return;
|
|
21
191
|
}
|
|
22
192
|
v.expansion = undefined;
|
|
23
|
-
if (stack.includes(
|
|
193
|
+
if (stack.includes(key)) {
|
|
24
194
|
return;
|
|
25
195
|
}
|
|
26
|
-
const target = snapmap.get((0, MapVal_1.spreadSnapKey)(v)) ?? root.peg[
|
|
196
|
+
const target = snapmap.get((0, MapVal_1.spreadSnapKey)(v)) ?? root.peg[key];
|
|
27
197
|
if (null == target) {
|
|
28
198
|
return;
|
|
29
199
|
}
|
|
30
200
|
v.expansion = target;
|
|
31
|
-
visit(target, [...stack,
|
|
201
|
+
visit(target, [...stack, key]);
|
|
32
202
|
return;
|
|
33
203
|
}
|
|
34
204
|
if (true === v.isMap) {
|
|
@@ -55,5 +225,5 @@ function expandAliases(root, snapmap) {
|
|
|
55
225
|
}
|
|
56
226
|
};
|
|
57
227
|
visit(root, []);
|
|
58
|
-
} /* node:coverage ignore next
|
|
228
|
+
} /* node:coverage ignore next 13 */
|
|
59
229
|
//# sourceMappingURL=alias.js.map
|
package/dist/alias.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alias.js","sourceRoot":"","sources":["../src/alias.ts"],"names":[],"mappings":";AAAA,yDAAyD;;
|
|
1
|
+
{"version":3,"file":"alias.js","sourceRoot":"","sources":["../src/alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare const ALIAS_NAME = "%[A-Za-z_][A-Za-z0-9_]*(?:-[A-Za-z0-9_]+)*";
|
|
2
|
+
declare const ALIAS_RE: RegExp;
|
|
3
|
+
declare const ALIAS_NAME_RE: RegExp;
|
|
4
|
+
declare const ALIAS_SET: string;
|
|
5
|
+
declare const ALIAS_SHORTHAND_RE: RegExp;
|
|
6
|
+
declare const RESERVED_KEY_PREFIX = "\0aontu_";
|
|
7
|
+
declare const EXPORT_DECL_NAME = "export";
|
|
8
|
+
declare function exportHoldKey(): string;
|
|
9
|
+
declare function isExportHoldKey(val: unknown): boolean;
|
|
10
|
+
type AliasBind = {
|
|
11
|
+
local: string;
|
|
12
|
+
remote: string;
|
|
13
|
+
};
|
|
14
|
+
declare function aliasScopedKey(name: string, url: string): string;
|
|
15
|
+
declare function aliasBareName(key: string): string;
|
|
16
|
+
declare function aliasPathSegment(seg: string): string;
|
|
17
|
+
declare function aliasSetItems(text: string): AliasBind[] | undefined;
|
|
18
|
+
export { ALIAS_NAME, ALIAS_RE, ALIAS_NAME_RE, ALIAS_SET, ALIAS_SHORTHAND_RE, EXPORT_DECL_NAME, RESERVED_KEY_PREFIX, exportHoldKey, isExportHoldKey, aliasScopedKey, aliasBareName, aliasPathSegment, aliasSetItems, };
|
|
19
|
+
export type { AliasBind, };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2026 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RESERVED_KEY_PREFIX = exports.EXPORT_DECL_NAME = exports.ALIAS_SHORTHAND_RE = exports.ALIAS_SET = exports.ALIAS_NAME_RE = exports.ALIAS_RE = exports.ALIAS_NAME = void 0;
|
|
5
|
+
exports.exportHoldKey = exportHoldKey;
|
|
6
|
+
exports.isExportHoldKey = isExportHoldKey;
|
|
7
|
+
exports.aliasScopedKey = aliasScopedKey;
|
|
8
|
+
exports.aliasBareName = aliasBareName;
|
|
9
|
+
exports.aliasPathSegment = aliasPathSegment;
|
|
10
|
+
exports.aliasSetItems = aliasSetItems;
|
|
11
|
+
// ONE PATTERN FOR THE ALIAS NAME. See docs/design/ALIASES.0.md
|
|
12
|
+
const ALIAS_NAME = '%[A-Za-z_][A-Za-z0-9_]*(?:-[A-Za-z0-9_]+)*';
|
|
13
|
+
exports.ALIAS_NAME = ALIAS_NAME;
|
|
14
|
+
const ALIAS_RE = new RegExp('^' + ALIAS_NAME);
|
|
15
|
+
exports.ALIAS_RE = ALIAS_RE;
|
|
16
|
+
const ALIAS_NAME_RE = new RegExp('^' + ALIAS_NAME + '$');
|
|
17
|
+
exports.ALIAS_NAME_RE = ALIAS_NAME_RE;
|
|
18
|
+
// What `export` takes and a destructure heads with: `{%}` binds none.
|
|
19
|
+
const ALIAS_ITEM = '(' + ALIAS_NAME + ')(?:[ \\t]*:[ \\t]*(' + ALIAS_NAME + '))?';
|
|
20
|
+
const ALIAS_SET = '\\{[ \\t]*(?:%|' + ALIAS_ITEM +
|
|
21
|
+
'(?:[ \\t]*,[ \\t]*' + ALIAS_ITEM + ')*)[ \\t]*\\}';
|
|
22
|
+
exports.ALIAS_SET = ALIAS_SET;
|
|
23
|
+
const ALIAS_SET_RE = new RegExp('^' + ALIAS_SET + '$');
|
|
24
|
+
const ALIAS_ITEMS_RE = new RegExp(ALIAS_ITEM, 'g');
|
|
25
|
+
// THE SHORTHAND: `{ %a %b }` is `{ a: %a, b: %b }`. Names only.
|
|
26
|
+
const ALIAS_SHORTHAND = '\\{\\s*' + ALIAS_NAME +
|
|
27
|
+
'(?:(?:\\s*,\\s*|\\s+)' + ALIAS_NAME + ')*\\s*\\}';
|
|
28
|
+
const ALIAS_SHORTHAND_RE = new RegExp('^' + ALIAS_SHORTHAND);
|
|
29
|
+
exports.ALIAS_SHORTHAND_RE = ALIAS_SHORTHAND_RE;
|
|
30
|
+
// A key carries the url of the file that declared the name.
|
|
31
|
+
const ALIAS_SCOPE = '@';
|
|
32
|
+
// THE ENGINE'S KEY NAMESPACE, refused to a source key.
|
|
33
|
+
const RESERVED_KEY_PREFIX = '\u0000aontu_';
|
|
34
|
+
exports.RESERVED_KEY_PREFIX = RESERVED_KEY_PREFIX;
|
|
35
|
+
// `export(...)` is read as a pair, its value under a key that changes
|
|
36
|
+
// with each declaration, so a field of that name is the document's.
|
|
37
|
+
const EXPORT_DECL_NAME = 'export';
|
|
38
|
+
exports.EXPORT_DECL_NAME = EXPORT_DECL_NAME;
|
|
39
|
+
const EXPORT_HOLD_KEY = RESERVED_KEY_PREFIX + 'export@';
|
|
40
|
+
let EXPORT_SEQ = 0;
|
|
41
|
+
function exportHoldKey() {
|
|
42
|
+
return EXPORT_HOLD_KEY + (++EXPORT_SEQ);
|
|
43
|
+
}
|
|
44
|
+
function isExportHoldKey(val) {
|
|
45
|
+
return 'string' === typeof val && val.startsWith(EXPORT_HOLD_KEY);
|
|
46
|
+
}
|
|
47
|
+
function aliasScopedKey(name, url) {
|
|
48
|
+
return name + ALIAS_SCOPE + url;
|
|
49
|
+
}
|
|
50
|
+
function aliasBareName(key) {
|
|
51
|
+
const at = key.indexOf(ALIAS_SCOPE);
|
|
52
|
+
return -1 === at ? key : key.substring(0, at);
|
|
53
|
+
}
|
|
54
|
+
function aliasPathSegment(seg) {
|
|
55
|
+
const name = aliasBareName(seg);
|
|
56
|
+
return ALIAS_NAME_RE.test(name) ? name : seg;
|
|
57
|
+
}
|
|
58
|
+
// Undefined where the text is not a set; the wildcard answers EMPTY.
|
|
59
|
+
function aliasSetItems(text) {
|
|
60
|
+
if (!ALIAS_SET_RE.test(text)) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return Array.from(text.matchAll(ALIAS_ITEMS_RE), (m) => ({ local: m[1], remote: m[2] ?? m[1] }));
|
|
64
|
+
} /* node:coverage ignore next 22 */
|
|
65
|
+
//# sourceMappingURL=aliasname.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aliasname.js","sourceRoot":"","sources":["../src/aliasname.ts"],"names":[],"mappings":"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"}
|
package/dist/aontu.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ import { loadProfile } from './profile';
|
|
|
23
23
|
import { desugarTemplate, resugarTemplate, markerFor } from './template';
|
|
24
24
|
import { format, unifiedDiff } from './format';
|
|
25
25
|
export type { LintFinding, FormatReport, FormatOptions } from './format';
|
|
26
|
-
declare const VERSION = "0.
|
|
26
|
+
declare const VERSION = "0.69.0";
|
|
27
27
|
declare class Aontu {
|
|
28
28
|
opts: AontuOptions;
|
|
29
29
|
lang: Lang;
|
package/dist/aontu.js
CHANGED
|
@@ -45,6 +45,7 @@ const graph_1 = require("./graph");
|
|
|
45
45
|
Object.defineProperty(exports, "graphOf", { enumerable: true, get: function () { return graph_1.graphOf; } });
|
|
46
46
|
const relation_1 = require("./relation");
|
|
47
47
|
Object.defineProperty(exports, "relationCheck", { enumerable: true, get: function () { return relation_1.relationCheck; } });
|
|
48
|
+
const alias_1 = require("./alias");
|
|
48
49
|
const view_1 = require("./view");
|
|
49
50
|
Object.defineProperty(exports, "view", { enumerable: true, get: function () { return view_1.view; } });
|
|
50
51
|
Object.defineProperty(exports, "viewSet", { enumerable: true, get: function () { return view_1.viewSet; } });
|
|
@@ -58,7 +59,7 @@ Object.defineProperty(exports, "markerFor", { enumerable: true, get: function ()
|
|
|
58
59
|
const format_1 = require("./format");
|
|
59
60
|
Object.defineProperty(exports, "format", { enumerable: true, get: function () { return format_1.format; } });
|
|
60
61
|
Object.defineProperty(exports, "unifiedDiff", { enumerable: true, get: function () { return format_1.unifiedDiff; } });
|
|
61
|
-
const VERSION = '0.
|
|
62
|
+
const VERSION = '0.69.0';
|
|
62
63
|
exports.VERSION = VERSION;
|
|
63
64
|
function genQuiet(val, aontu) {
|
|
64
65
|
return val.gen(aontu.ctx({ collect: true }));
|
|
@@ -150,14 +151,25 @@ class Aontu {
|
|
|
150
151
|
errs.push(out);
|
|
151
152
|
}
|
|
152
153
|
if (null != pval && 0 === errs.length) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
|
|
154
|
+
// T-1: EXPANDED SIZE IS CHARGED BEFORE EVALUATION, here rather
|
|
155
|
+
// than in generate, because an editor unifies on each keystroke
|
|
156
|
+
// and a document too big to evaluate must be turned away there
|
|
157
|
+
// too.
|
|
158
|
+
const over = (0, alias_1.aliasBudget)(ac, pval);
|
|
159
|
+
if (undefined !== over) {
|
|
160
|
+
out = over;
|
|
161
|
+
errs = [over];
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
let uni = new unify_1.Unify(pval, this.lang, ac, src);
|
|
165
|
+
errs = uni.err;
|
|
166
|
+
// Never nullish: Unify.res starts as the root Val, unite() returns a
|
|
167
|
+
// Val on every arm, and its catch-all turns a throwing node into an
|
|
168
|
+
// 'internal' NilVal.
|
|
169
|
+
out = uni.res;
|
|
170
|
+
out.graph = (0, graph_1.graphOf)(out);
|
|
171
|
+
}
|
|
159
172
|
out.deps = pval.deps;
|
|
160
|
-
out.graph = (0, graph_1.graphOf)(out);
|
|
161
173
|
out.err = errs;
|
|
162
174
|
ac.root = out;
|
|
163
175
|
}
|
|
@@ -177,6 +189,7 @@ class Aontu {
|
|
|
177
189
|
: 0 < ac.err.length ? undefined
|
|
178
190
|
: uval.gen(ac);
|
|
179
191
|
if (!uval.isNil && 0 === ac.err.length) {
|
|
192
|
+
(0, alias_1.aliasErrors)(ac, uval);
|
|
180
193
|
(0, relation_1.relationErrors)(ac, uval);
|
|
181
194
|
if (0 < ac.err.length) {
|
|
182
195
|
out = undefined;
|
package/dist/aontu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aontu.js","sourceRoot":"","sources":["../src/aontu.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"aontu.js","sourceRoot":"","sources":["../src/aontu.ts"],"names":[],"mappings":"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"}
|
package/dist/aontumodel.js
CHANGED
|
@@ -11,7 +11,7 @@ exports.AONTU_SCHEME = AONTU_SCHEME;
|
|
|
11
11
|
const AONTU_SOURCES = {
|
|
12
12
|
"aontu:lang/markdown": "# aontu:lang/markdown --- THE MARKDOWN PROFILE. The text profile plus\n# markdown's own two: the HTML comment form, and the template marker\n# its files carry.\n\n@\"aontu:profile\"\n\naontu: Lang: lang: \"markdown\"\naontu: Lang: indent: { unit:\" \" width:2 }\naontu: Lang: comment: block: { open:\"<!--\" close:\"-->\" }\naontu: Lang: template: { marker:\"<!---\" ext: [\"md\" \"markdown\"] }\n",
|
|
13
13
|
"aontu:lang/text": "# aontu:lang/text --- THE TEXT PROFILE. Indentation and nothing else.\n# Every language without one of its own is read under it.\n\n@\"aontu:profile\"\n\naontu: Lang: { lang:\"text\" indent: { unit:\" \" width:2 } }\n",
|
|
14
|
-
"aontu:profile": "# aontu:profile --- THE PROFILE VOCABULARY. A language declared as\n# data: its name, its indentation, its comment forms and the marker its\n# generators carry. `aontu template` and `aontu fmt` read one through\n# --profile. EXPERIMENTAL, versioned by canon-hash later.\n\n%comment = close({ open?:string prefix?:string close?:string })\n\n%profile = close({\n lang: string & length(min(1))\n indent: close({\n unit: *\" \"|string & length(min(1))\n width: *2|integer & min(0) & max(16)\n })\n comment?: close({ line?:%comment block?:%comment doc?:%comment })\n template?: close({\n marker: string & length(min(1))\n close?: string & length(min(1))\n ext?: [&: string & re(\"^[A-Za-z0-9_+-]+$\")]\n })\n})\n\n# Profile names the schema; Lang is where one lands. type() so naming\n# the schema neither generates it nor asks a document to fill it.\naontu: { Profile:type(%profile) Lang:%profile }\n",
|
|
14
|
+
"aontu:profile": "# aontu:profile --- THE PROFILE VOCABULARY. A language declared as\n# data: its name, its indentation, its comment forms and the marker its\n# generators carry. `aontu template` and `aontu fmt` read one through\n# --profile. EXPERIMENTAL, versioned by canon-hash later.\n\n%comment = close({ open?:string prefix?:string close?:string })\n\n%profile = close({\n lang: string & length(min(1))\n indent: close({\n unit: *\" \"|string & length(min(1))\n width: *2|integer & min(0) & max(16)\n })\n comment?: close({ line?:%comment block?:%comment doc?:%comment })\n template?: close({\n marker: string & length(min(1))\n close?: string & length(min(1))\n ext?: [&: string & re(\"^[A-Za-z0-9_+-]+$\")]\n })\n})\n\n# Published: a name crosses only to a document that asks for it.\nexport({ %profile, %comment })\n\n# Profile names the schema; Lang is where one lands. type() so naming\n# the schema neither generates it nor asks a document to fill it.\naontu: { Profile:type(%profile) Lang:%profile }\n",
|
|
15
15
|
"aontu:system": "# aontu:system --- the SYSTEM VOCABULARY. EXPERIMENTAL until the\n# distribution layer can version it by canon-hash.\n\naontu: System: {\n Port: type({ direction: *in|out|inout protocol?:string })\n\n Component: type({ ports?: { &: $.aontu.System.Port } })\n\n # Written out rather than Component & { kind: service }: a reference\n # to a type()-marked member does not survive the include.\n Service: type({ kind:service ports?: { &: $.aontu.System.Port } })\n\n # A grammar, not re(): the identifier shape is a quantified group\n # holding a quantifier, which re() refuses. hide()n so a schema's\n # grammar does not generate into the document it checks.\n semverPreRelease: hide(\n abnf(\n `pre-release = pre-release-id *( \".\" pre-release-id )\npre-release-id = \"0\" [ *digit alnum-tail ]\n / positive-digit *digit [ alnum-tail ] / alnum-tail\nalnum-tail = non-digit *id-char\nid-char = digit / non-digit\nnon-digit = letter / \"-\"\ndigit = \"0\" / positive-digit\npositive-digit = %x31-39\nletter = %x41-5A / %x61-7A\n`\n )\n )\n semverBuild: hide(\n abnf(\n `build = build-id *( \".\" build-id )\nbuild-id = 1*id-char\nid-char = digit / non-digit\nnon-digit = letter / \"-\"\ndigit = \"0\" / positive-digit\npositive-digit = %x31-39\nletter = %x41-5A / %x61-7A\n`\n )\n )\n\n # major minor patch pre-release build, tail defaulted.\n Semver: type(\n [\n integer & min(0)\n *0|(integer & min(0))\n *0|(integer & min(0))\n *\"\"|parse($.aontu.System.semverPreRelease)\n *\"\"|parse($.aontu.System.semverBuild)\n ] & length(5)\n )\n}\n",
|
|
16
16
|
"aontu:view": "# aontu:view --- the FIGURE VOCABULARY. EXPERIMENTAL until the\n# distribution layer can version it by canon-hash.\n\naontu: View: Figure: type({\n kind: doc|lattice|tree|matrix|graph|layer|sets|layers\n | ladder\n out: string\n\n # Every kind.\n as?: text|mermaid|dot|er|svg\n at?: string\n maxRows?: integer & min(0)\n\n # doc.\n depth?: integer & min(0)\n\n # tree, matrix, layer, graph.\n relation?: string\n relations?: [&: string]\n roots?: [&: string]\n\n # matrix.\n order?: canon|partition\n closure?: boolean\n\n # graph, layer.\n groupBy?: string\n label?: string\n layers?: [&: string]\n edges?: upward|all|none\n\n # sets, layers.\n sets?: string\n member?: string\n universe?: string\n minDegree?: integer & min(0)\n maxCols?: integer & min(0)\n minSize?: integer & min(0)\n})\n"
|
|
17
17
|
};
|
package/dist/aontumodel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aontumodel.js","sourceRoot":"","sources":["../src/aontumodel.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,iEAAiE;AACjE,uCAAuC;AACvC,iEAAiE;AACjE,MAAM;AAEN,MAAM,YAAY,GAAG,QAAQ,CAAA;QAkBpB,YAAY;AAhBrB,MAAM,aAAa,GAA2B;IAC5C,qBAAqB,EAAE,+YAA+Y;IACta,iBAAiB,EAAE,2NAA2N;IAC9O,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"aontumodel.js","sourceRoot":"","sources":["../src/aontumodel.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,iEAAiE;AACjE,uCAAuC;AACvC,iEAAiE;AACjE,MAAM;AAEN,MAAM,YAAY,GAAG,QAAQ,CAAA;QAkBpB,YAAY;AAhBrB,MAAM,aAAa,GAA2B;IAC5C,qBAAqB,EAAE,+YAA+Y;IACta,iBAAiB,EAAE,2NAA2N;IAC9O,eAAe,EAAE,2/BAA2/B;IAC5gC,cAAc,EAAE,0kDAA0kD;IAC1lD,YAAY,EAAE,wzBAAwzB;CACv0B,CAAA;QAUsB,aAAa;AARpC,MAAM,YAAY,GAAa;IAC7B,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,YAAY;CACb,CAAA;QAEqC,YAAY"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -76,10 +76,13 @@ type Servers = {
|
|
|
76
76
|
};
|
|
77
77
|
declare function serveUntilInterrupted(): Promise<void>;
|
|
78
78
|
declare function runHelp(argv: string[]): number;
|
|
79
|
+
declare function canonExplainCode(code: string): string;
|
|
80
|
+
declare function explainBody(hint: string): string;
|
|
81
|
+
declare function noTextMark(hint: string): string;
|
|
79
82
|
declare function runExplain(argv: string[]): number;
|
|
80
83
|
declare function runInit(argv: string[]): number;
|
|
81
84
|
declare const KNOWN_VERBS: string[];
|
|
82
85
|
declare function looksLikeVerb(arg: string): boolean;
|
|
83
86
|
declare function nearestVerb(word: string, verbs: string[]): string;
|
|
84
87
|
declare function main(argv: string[], servers?: Servers): void;
|
|
85
|
-
export { evalSource, main, runVet, runSubsume, runBreaking, runTrim, runRelations, runReaches, runView, runJsonSchema, runTemplate, runTrace, runRender, renderSkipped, runPkg, runModel, runPackageVerb, pkgToolOptions, serveUntilInterrupted, runHash, runGet, runHelp, runExplain, runInit, nearestVerb, looksLikeVerb, KNOWN_VERBS, runWhy, renderWhyText, runSet, runAllow, runAgentsMd, runFmt, watchChange, watchSignature, vetWaiter, deprecatedAt, };
|
|
88
|
+
export { evalSource, main, runVet, runSubsume, runBreaking, runTrim, runRelations, runReaches, runView, runJsonSchema, runTemplate, runTrace, runRender, renderSkipped, runPkg, runModel, runPackageVerb, pkgToolOptions, serveUntilInterrupted, runHash, runGet, runHelp, runExplain, runInit, nearestVerb, explainBody, noTextMark, canonExplainCode, looksLikeVerb, KNOWN_VERBS, runWhy, renderWhyText, runSet, runAllow, runAgentsMd, runFmt, watchChange, watchSignature, vetWaiter, deprecatedAt, };
|
package/dist/cli.js
CHANGED
|
@@ -28,6 +28,9 @@ exports.runHelp = runHelp;
|
|
|
28
28
|
exports.runExplain = runExplain;
|
|
29
29
|
exports.runInit = runInit;
|
|
30
30
|
exports.nearestVerb = nearestVerb;
|
|
31
|
+
exports.explainBody = explainBody;
|
|
32
|
+
exports.noTextMark = noTextMark;
|
|
33
|
+
exports.canonExplainCode = canonExplainCode;
|
|
31
34
|
exports.looksLikeVerb = looksLikeVerb;
|
|
32
35
|
exports.runWhy = runWhy;
|
|
33
36
|
exports.renderWhyText = renderWhyText;
|
|
@@ -4346,6 +4349,14 @@ function runHelp(argv) {
|
|
|
4346
4349
|
// exported; a code that extends one is registered through its prefix
|
|
4347
4350
|
// and carries that prefix's hint.
|
|
4348
4351
|
const EXPLAIN_PREFIXES = ['func:', 'op:', 'op[', 'var[', 'ref['];
|
|
4352
|
+
// A report prints the namespaced spelling in its brackets, which is the
|
|
4353
|
+
// span a reader copies. The answer names the registered one.
|
|
4354
|
+
const EXPLAIN_NAMESPACE = 'aontu/';
|
|
4355
|
+
function canonExplainCode(code) {
|
|
4356
|
+
return code.startsWith(EXPLAIN_NAMESPACE)
|
|
4357
|
+
? code.slice(EXPLAIN_NAMESPACE.length)
|
|
4358
|
+
: code;
|
|
4359
|
+
}
|
|
4349
4360
|
function explainCode(code) {
|
|
4350
4361
|
const cls = (0, hints_1.codeClass)(code);
|
|
4351
4362
|
let hint = hints_1.hints[code] ?? '';
|
|
@@ -4379,16 +4390,27 @@ function explainListText(format) {
|
|
|
4379
4390
|
codes: codes.map((code) => ({
|
|
4380
4391
|
code,
|
|
4381
4392
|
class: (0, hints_1.codeClass)(code),
|
|
4382
|
-
// Whether this port carries explanation text for the code.
|
|
4383
|
-
//
|
|
4384
|
-
//
|
|
4393
|
+
// Whether this port carries explanation text for the code. A
|
|
4394
|
+
// gate holds every registered code explained, so this reads
|
|
4395
|
+
// true throughout; it stays because the registry is
|
|
4396
|
+
// append-only and a consumer should filter rather than guess.
|
|
4385
4397
|
explained: '' !== explainCode(code).hint,
|
|
4386
4398
|
})),
|
|
4387
4399
|
}, 2);
|
|
4388
4400
|
}
|
|
4389
4401
|
const width = codes.reduce((w, c) => Math.max(w, c.length), 0);
|
|
4390
4402
|
return codes.map((c) => c.padEnd(width) + ' ' + (0, hints_1.codeClass)(c) +
|
|
4391
|
-
(
|
|
4403
|
+
noTextMark(explainCode(c).hint)).join('\n');
|
|
4404
|
+
}
|
|
4405
|
+
// The registry is append-only, so a code can be registered before its
|
|
4406
|
+
// text is written; saying so beats printing an empty block.
|
|
4407
|
+
function explainBody(hint) {
|
|
4408
|
+
return '' === hint
|
|
4409
|
+
? '(no explanation text is registered for this code)'
|
|
4410
|
+
: hint;
|
|
4411
|
+
}
|
|
4412
|
+
function noTextMark(hint) {
|
|
4413
|
+
return '' === hint ? ' (no text)' : '';
|
|
4392
4414
|
}
|
|
4393
4415
|
function runExplain(argv) {
|
|
4394
4416
|
let format = 'text';
|
|
@@ -4431,7 +4453,7 @@ function runExplain(argv) {
|
|
|
4431
4453
|
process.stderr.write(`aontu: explain needs one code\n${EXPLAIN_HELP}\n`);
|
|
4432
4454
|
return 2;
|
|
4433
4455
|
}
|
|
4434
|
-
const code = codes[0];
|
|
4456
|
+
const code = canonExplainCode(codes[0]);
|
|
4435
4457
|
const { cls, hint, registered } = explainCode(code);
|
|
4436
4458
|
if (!registered) {
|
|
4437
4459
|
// AN UNKNOWN CODE IS A USAGE ERROR AND NAMES NEAR MATCHES. A
|
|
@@ -4455,13 +4477,7 @@ function runExplain(argv) {
|
|
|
4455
4477
|
}, 2) + '\n');
|
|
4456
4478
|
return 0;
|
|
4457
4479
|
}
|
|
4458
|
-
|
|
4459
|
-
// empty block, which would read as an explanation that happened to
|
|
4460
|
-
// be blank.
|
|
4461
|
-
const body = '' === hint
|
|
4462
|
-
? '(no explanation text is registered for this code)'
|
|
4463
|
-
: hint;
|
|
4464
|
-
process.stdout.write(`code: ${code}\nclass: ${cls}\n\n${body}\n`);
|
|
4480
|
+
process.stdout.write(`code: ${code}\nclass: ${cls}\n\n${explainBody(hint)}\n`);
|
|
4465
4481
|
return 0;
|
|
4466
4482
|
}
|
|
4467
4483
|
const INIT_HELP = 'aontu init [dir] (try --help)';
|
|
@@ -4731,5 +4747,5 @@ function main(argv, servers = SERVERS) {
|
|
|
4731
4747
|
else {
|
|
4732
4748
|
runStdin(mode, format, trust).then((code) => finish(code));
|
|
4733
4749
|
}
|
|
4734
|
-
} /* node:coverage ignore next
|
|
4750
|
+
} /* node:coverage ignore next 22 */
|
|
4735
4751
|
//# sourceMappingURL=cli.js.map
|