aontu 0.63.0 → 0.65.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 +8 -8
- package/dist/agentsmd.js +3 -3
- package/dist/agentsmd.js.map +1 -1
- package/dist/aontu.d.ts +3 -3
- package/dist/aontu.js +4 -6
- package/dist/aontu.js.map +1 -1
- package/dist/aontumodel.js +6 -12
- package/dist/aontumodel.js.map +1 -1
- package/dist/casing.d.ts +5 -0
- package/dist/casing.js +90 -0
- package/dist/casing.js.map +1 -0
- package/dist/cli.d.ts +16 -3
- package/dist/cli.js +653 -455
- package/dist/cli.js.map +1 -1
- package/dist/compat.d.ts +7 -0
- package/dist/compat.js +113 -0
- package/dist/compat.js.map +1 -0
- package/dist/helpdoc.js +5 -5
- package/dist/helpdoc.js.map +1 -1
- package/dist/hints.js +14 -5
- package/dist/hints.js.map +1 -1
- package/dist/lang.d.ts +1 -0
- package/dist/lang.js +8 -0
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +1 -1
- package/dist/mcp.js +0 -36
- package/dist/mcp.js.map +1 -1
- package/dist/mod.d.ts +18 -3
- package/dist/mod.js +117 -46
- package/dist/mod.js.map +1 -1
- package/dist/pkg-net.d.ts +227 -0
- package/dist/pkg-net.js +1598 -0
- package/dist/pkg-net.js.map +1 -0
- package/dist/pkg-zip.d.ts +8 -0
- package/dist/pkg-zip.js +196 -0
- package/dist/pkg-zip.js.map +1 -0
- package/dist/pkg.d.ts +159 -0
- package/dist/pkg.js +767 -0
- package/dist/pkg.js.map +1 -0
- package/dist/profile.d.ts +9 -0
- package/dist/profile.js +28 -0
- package/dist/profile.js.map +1 -0
- package/dist/report-sarif.js +1 -1
- package/dist/report-sarif.js.map +1 -1
- package/dist/subsume.d.ts +3 -1
- package/dist/subsume.js +2 -0
- package/dist/subsume.js.map +1 -1
- package/dist/trace.d.ts +21 -0
- package/dist/trace.js +107 -0
- package/dist/trace.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/unify.js +1 -6
- package/dist/unify.js.map +1 -1
- package/dist/val/CmpFuncVal.d.ts +2 -0
- package/dist/val/CmpFuncVal.js +47 -13
- package/dist/val/CmpFuncVal.js.map +1 -1
- package/dist/val/NomFuncVal.js +11 -13
- package/dist/val/NomFuncVal.js.map +1 -1
- package/dist/val/ReferFuncVal.js +3 -0
- package/dist/val/ReferFuncVal.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +3 -3
- package/skill/error-codes.md +4 -4
- package/skill/examples.md +4 -4
- package/skill/grammar-card.md +1 -1
- package/skill/init/check.sh +2 -2
- package/skill/tasks.md +14 -12
- package/src/agentsmd.ts +3 -3
- package/src/aontu.ts +3 -8
- package/src/aontumodel.ts +6 -12
- package/src/casing.ts +95 -0
- package/src/cli.ts +758 -495
- package/src/compat.ts +148 -0
- package/src/helpdoc.ts +5 -5
- package/src/hints.ts +14 -7
- package/src/lang.ts +9 -1
- package/src/mcp.ts +0 -39
- package/src/mod.ts +142 -51
- package/src/pkg-net.ts +1945 -0
- package/src/pkg-zip.ts +228 -0
- package/src/pkg.ts +1018 -0
- package/src/profile.ts +42 -0
- package/src/report-sarif.ts +1 -1
- package/src/subsume.ts +2 -2
- package/src/trace.ts +157 -0
- package/src/unify.ts +1 -6
- package/src/val/CmpFuncVal.ts +66 -20
- package/src/val/NomFuncVal.ts +3 -5
- package/src/val/ReferFuncVal.ts +4 -0
- package/dist/lower.d.ts +0 -23
- package/dist/lower.js +0 -528
- package/dist/lower.js.map +0 -1
- package/dist/mod-tool.d.ts +0 -58
- package/dist/mod-tool.js +0 -403
- package/dist/mod-tool.js.map +0 -1
- package/dist/render.d.ts +0 -53
- package/dist/render.js +0 -432
- package/dist/render.js.map +0 -1
- package/src/lower.ts +0 -586
- package/src/mod-tool.ts +0 -561
- package/src/render.ts +0 -580
package/dist/lower.js
DELETED
|
@@ -1,528 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.splitWords = splitWords;
|
|
5
|
-
exports.lowerASCII = lowerASCII;
|
|
6
|
-
exports.upperASCII = upperASCII;
|
|
7
|
-
exports.capitalise = capitalise;
|
|
8
|
-
exports.caseName = caseName;
|
|
9
|
-
exports.ident = ident;
|
|
10
|
-
exports.quote = quote;
|
|
11
|
-
exports.literal = literal;
|
|
12
|
-
exports.typeExpr = typeExpr;
|
|
13
|
-
exports.lowerHeader = lowerHeader;
|
|
14
|
-
exports.lowerDecl = lowerDecl;
|
|
15
|
-
const exactjson_1 = require("./exactjson");
|
|
16
|
-
function ln(at, text) {
|
|
17
|
-
return { k: 'line', at, n: [text] };
|
|
18
|
-
}
|
|
19
|
-
const BLANK = { k: 'blank' };
|
|
20
|
-
// --- identifiers -------------------------------------------------------
|
|
21
|
-
function isUpper(c) {
|
|
22
|
-
return 'A' <= c && c <= 'Z';
|
|
23
|
-
}
|
|
24
|
-
function isLower(c) {
|
|
25
|
-
return 'a' <= c && c <= 'z';
|
|
26
|
-
}
|
|
27
|
-
function isDigit(c) {
|
|
28
|
-
return '0' <= c && c <= '9';
|
|
29
|
-
}
|
|
30
|
-
function isASCII(c) {
|
|
31
|
-
return c.codePointAt(0) < 0x80;
|
|
32
|
-
}
|
|
33
|
-
function splitWords(name) {
|
|
34
|
-
const words = [];
|
|
35
|
-
let cur = '';
|
|
36
|
-
const chars = Array.from(name);
|
|
37
|
-
for (let i = 0; i < chars.length; i++) {
|
|
38
|
-
const c = chars[i];
|
|
39
|
-
if ('_' === c || '-' === c || ' ' === c) {
|
|
40
|
-
if ('' !== cur) {
|
|
41
|
-
words.push(cur);
|
|
42
|
-
}
|
|
43
|
-
cur = '';
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
if ('' !== cur) {
|
|
47
|
-
const prev = chars[i - 1];
|
|
48
|
-
const next = chars[i + 1];
|
|
49
|
-
const boundary = isASCII(c) && isASCII(prev) && ((isUpper(c) && (isLower(prev) || isDigit(prev))) ||
|
|
50
|
-
(isDigit(c) !== isDigit(prev)) ||
|
|
51
|
-
(isUpper(c) && isUpper(prev) && undefined !== next && isLower(next)));
|
|
52
|
-
if (boundary) {
|
|
53
|
-
words.push(cur);
|
|
54
|
-
cur = '';
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
cur += c;
|
|
58
|
-
}
|
|
59
|
-
if ('' !== cur) {
|
|
60
|
-
words.push(cur);
|
|
61
|
-
}
|
|
62
|
-
return words;
|
|
63
|
-
}
|
|
64
|
-
function lowerASCII(s) {
|
|
65
|
-
return Array.from(s).map((c) => isUpper(c) ? String.fromCharCode(c.charCodeAt(0) + 32) : c).join('');
|
|
66
|
-
}
|
|
67
|
-
function upperASCII(s) {
|
|
68
|
-
return Array.from(s).map((c) => isLower(c) ? String.fromCharCode(c.charCodeAt(0) - 32) : c).join('');
|
|
69
|
-
}
|
|
70
|
-
// A word capitalised: the acronym set wins, so `id` is `ID` under a
|
|
71
|
-
// profile that lists it and `Id` under one that does not.
|
|
72
|
-
function capitalise(word, acronyms) {
|
|
73
|
-
const low = lowerASCII(word);
|
|
74
|
-
for (const a of acronyms) {
|
|
75
|
-
if (lowerASCII(a) === low) {
|
|
76
|
-
return a;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const chars = Array.from(low);
|
|
80
|
-
return upperASCII(chars[0]) + chars.slice(1).join('');
|
|
81
|
-
}
|
|
82
|
-
// THE CASE STYLES of aontu:render's %case, over the words.
|
|
83
|
-
function caseName(name, style, acronyms) {
|
|
84
|
-
if ('as-is' === style) {
|
|
85
|
-
return name;
|
|
86
|
-
}
|
|
87
|
-
const words = splitWords(name);
|
|
88
|
-
if (0 === words.length) {
|
|
89
|
-
return name;
|
|
90
|
-
}
|
|
91
|
-
if ('snake' === style) {
|
|
92
|
-
return words.map(lowerASCII).join('_');
|
|
93
|
-
}
|
|
94
|
-
if ('screaming' === style) {
|
|
95
|
-
return words.map(upperASCII).join('_');
|
|
96
|
-
}
|
|
97
|
-
if ('kebab' === style) {
|
|
98
|
-
return words.map(lowerASCII).join('-');
|
|
99
|
-
}
|
|
100
|
-
const caps = words.map((w) => capitalise(w, acronyms));
|
|
101
|
-
if ('pascal' === style) {
|
|
102
|
-
return caps.join('');
|
|
103
|
-
}
|
|
104
|
-
// camel: the first word lower, and never an acronym.
|
|
105
|
-
return lowerASCII(words[0]) + caps.slice(1).join('');
|
|
106
|
-
}
|
|
107
|
-
function ident(name, role, ctx, path, bare) {
|
|
108
|
-
const rules = ctx.profile.ident ?? {};
|
|
109
|
-
const style = rules.case?.[role] ?? 'as-is';
|
|
110
|
-
const acronyms = rules.acronyms ?? [];
|
|
111
|
-
let out = caseName(name, style, acronyms);
|
|
112
|
-
if (bare && (rules.reserved ?? []).includes(out)) {
|
|
113
|
-
ctx.lossy.push({
|
|
114
|
-
unit: ctx.unit, path, tier: 1, construct: 'reserved',
|
|
115
|
-
reason: out + ' is reserved in ' + ctx.profile.lang + '; renamed ' + out + '_',
|
|
116
|
-
});
|
|
117
|
-
out += '_';
|
|
118
|
-
}
|
|
119
|
-
return out;
|
|
120
|
-
}
|
|
121
|
-
// --- literals ----------------------------------------------------------
|
|
122
|
-
function hex4(n) {
|
|
123
|
-
return '\\u' + n.toString(16).padStart(4, '0');
|
|
124
|
-
}
|
|
125
|
-
// A string literal: the profile's quote, and one pass over the code
|
|
126
|
-
// points through its escape table. A control character the table does
|
|
127
|
-
// not name is a \u escape; so are the quote and the backslash when the
|
|
128
|
-
// table is silent about them; everything else, non-ASCII and astral
|
|
129
|
-
// included, is verbatim.
|
|
130
|
-
function quote(s, profile) {
|
|
131
|
-
const q = profile.str?.quote ?? '"';
|
|
132
|
-
const table = profile.str?.escape ?? {};
|
|
133
|
-
let out = q;
|
|
134
|
-
for (const c of Array.from(s)) {
|
|
135
|
-
const cp = c.codePointAt(0);
|
|
136
|
-
const esc = table[String(cp)];
|
|
137
|
-
if ('string' === typeof esc) {
|
|
138
|
-
out += esc;
|
|
139
|
-
}
|
|
140
|
-
else if (cp < 0x20 || 0x7f === cp || c === q || '\\' === c) {
|
|
141
|
-
out += hex4(cp);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
out += c;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return out + q;
|
|
148
|
-
}
|
|
149
|
-
// A literal value as the target spells it: a string quoted, a number
|
|
150
|
-
// through exactJSON (no second number formatter), a boolean as is, and
|
|
151
|
-
// null as the family's null.
|
|
152
|
-
function literal(v, ctx) {
|
|
153
|
-
if ('string' === typeof v) {
|
|
154
|
-
return quote(v, ctx.profile);
|
|
155
|
-
}
|
|
156
|
-
if (null === v) {
|
|
157
|
-
return 'go' === ctx.family ? 'nil' : 'null';
|
|
158
|
-
}
|
|
159
|
-
if ('boolean' === typeof v) {
|
|
160
|
-
return v ? 'true' : 'false';
|
|
161
|
-
}
|
|
162
|
-
return (0, exactjson_1.exactJSON)(v);
|
|
163
|
-
}
|
|
164
|
-
function form(ctx, name) {
|
|
165
|
-
return ctx.profile.types?.[name] ?? { open: '', close: '', prec: 9, childPrec: 0 };
|
|
166
|
-
}
|
|
167
|
-
function under(inner, f) {
|
|
168
|
-
return inner.prec < f.childPrec ? '(' + inner.text + ')' : inner.text;
|
|
169
|
-
}
|
|
170
|
-
function loss(ctx, path, construct, reason) {
|
|
171
|
-
ctx.lossy.push({ unit: ctx.unit, path, tier: 1, construct, reason });
|
|
172
|
-
}
|
|
173
|
-
// The primitive kind a literal set shares, for a family with no
|
|
174
|
-
// literal type: strings, integers, floats, booleans, null, or any.
|
|
175
|
-
function litPrim(of) {
|
|
176
|
-
const kinds = of.map((v) => null === v ? 'null' : typeof v);
|
|
177
|
-
const first = kinds[0];
|
|
178
|
-
if (!kinds.every((k) => k === first)) {
|
|
179
|
-
return 'any';
|
|
180
|
-
}
|
|
181
|
-
if ('number' === first) {
|
|
182
|
-
return of.every((v) => Number.isInteger(v)) ? 'int' : 'float';
|
|
183
|
-
}
|
|
184
|
-
return 'string' === first ? 'string' : 'boolean' === first ? 'bool' : 'null';
|
|
185
|
-
}
|
|
186
|
-
function prim(ctx, name) {
|
|
187
|
-
return ctx.profile.types?.prim?.[name] ?? name;
|
|
188
|
-
}
|
|
189
|
-
// THE TYPE EXPRESSION, from the profile's type forms (D6): an atom has
|
|
190
|
-
// prec 9; a form is `open + inner + close`, its precedence its own, its
|
|
191
|
-
// inner parenthesised below childPrec. A `text` leaf is verbatim
|
|
192
|
-
// target syntax and tier 3, as a text declaration is.
|
|
193
|
-
function typeExpr(t, ctx, path) {
|
|
194
|
-
const k = t.k;
|
|
195
|
-
if ('prim' === k) {
|
|
196
|
-
return { text: prim(ctx, t.prim), prec: 9 };
|
|
197
|
-
}
|
|
198
|
-
if ('ref' === k) {
|
|
199
|
-
return { text: ident(t.name, 'record', ctx, path, false), prec: 9 };
|
|
200
|
-
}
|
|
201
|
-
if ('text' === k) {
|
|
202
|
-
ctx.lossy.push({
|
|
203
|
-
unit: ctx.unit, path, tier: 3, construct: 'text',
|
|
204
|
-
reason: 'verbatim ' + t.lang + ': the renderer checks nothing in it',
|
|
205
|
-
});
|
|
206
|
-
return { text: t.text, prec: 9 };
|
|
207
|
-
}
|
|
208
|
-
if ('list' === k) {
|
|
209
|
-
const f = form(ctx, 'list');
|
|
210
|
-
return { text: f.open + under(typeExpr(t.n, ctx, path + '.n'), f) + f.close, prec: f.prec };
|
|
211
|
-
}
|
|
212
|
-
if ('map' === k) {
|
|
213
|
-
const f = form(ctx, 'map');
|
|
214
|
-
const key = under(typeExpr(t.key, ctx, path + '.key'), f);
|
|
215
|
-
const of = under(typeExpr(t.n, ctx, path + '.n'), f);
|
|
216
|
-
const sep = 'go' === ctx.family ? ']' : ', ';
|
|
217
|
-
return { text: f.open + key + sep + of + f.close, prec: f.prec };
|
|
218
|
-
}
|
|
219
|
-
if ('opt' === k) {
|
|
220
|
-
const f = form(ctx, 'opt');
|
|
221
|
-
return { text: f.open + under(typeExpr(t.n, ctx, path + '.n'), f) + f.close, prec: f.prec };
|
|
222
|
-
}
|
|
223
|
-
if ('union' === k) {
|
|
224
|
-
if ('go' === ctx.family) {
|
|
225
|
-
loss(ctx, path, 'union', 'go has no union type: any');
|
|
226
|
-
return { text: prim(ctx, 'any'), prec: 9 };
|
|
227
|
-
}
|
|
228
|
-
const f = form(ctx, 'union');
|
|
229
|
-
const members = t.n.map((m, i) => under(typeExpr(m, ctx, path + '.n.' + i), f));
|
|
230
|
-
return { text: f.open + members.join(' | ') + f.close, prec: f.prec };
|
|
231
|
-
}
|
|
232
|
-
// lit
|
|
233
|
-
if ('go' === ctx.family) {
|
|
234
|
-
const p = litPrim(t.n);
|
|
235
|
-
loss(ctx, path, 'lit', 'go has no literal type: ' + p);
|
|
236
|
-
return { text: prim(ctx, p), prec: 9 };
|
|
237
|
-
}
|
|
238
|
-
const f = form(ctx, 'lit');
|
|
239
|
-
const lits = t.n.map((v) => literal(v, ctx));
|
|
240
|
-
return { text: f.open + lits.join(' | ') + f.close, prec: f.prec };
|
|
241
|
-
}
|
|
242
|
-
// --- comments ----------------------------------------------------------
|
|
243
|
-
// A doc comment as pieces at a depth: the profile's doc form -- open,
|
|
244
|
-
// a prefix per line, close -- and the line form when a profile has no
|
|
245
|
-
// doc form. A deprecation is the last line, in the family's spelling.
|
|
246
|
-
function doc(d, at, ctx) {
|
|
247
|
-
if (null == d) {
|
|
248
|
-
return [];
|
|
249
|
-
}
|
|
250
|
-
const forms = ctx.profile.comment ?? {};
|
|
251
|
-
const f = forms.doc ?? forms.line ?? { prefix: '// ' };
|
|
252
|
-
const prefix = f.prefix ?? '';
|
|
253
|
-
const lines = String(d.text).split('\n');
|
|
254
|
-
if (null != d.deprecated) {
|
|
255
|
-
const dep = d.deprecated;
|
|
256
|
-
const note = [dep.msg, dep.use ? 'use ' + dep.use : '', dep.since ? 'since ' + dep.since : '']
|
|
257
|
-
.filter((s) => s).join('; ');
|
|
258
|
-
lines.push('go' === ctx.family ? 'Deprecated: ' + note : '@deprecated ' + note);
|
|
259
|
-
}
|
|
260
|
-
const out = [];
|
|
261
|
-
if (null != f.open) {
|
|
262
|
-
out.push(ln(at, f.open));
|
|
263
|
-
}
|
|
264
|
-
for (const l of lines) {
|
|
265
|
-
out.push(ln(at, (prefix + l).replace(/[ \t]+$/, '')));
|
|
266
|
-
}
|
|
267
|
-
if (null != f.close) {
|
|
268
|
-
out.push(ln(at, f.close));
|
|
269
|
-
}
|
|
270
|
-
return out;
|
|
271
|
-
}
|
|
272
|
-
function checks(list, path, ctx) {
|
|
273
|
-
(list ?? []).forEach((c, i) => {
|
|
274
|
-
loss(ctx, path + '.check.' + i, 'check', 'the check ' + c.c + ' is not enforced by the ' + ctx.profile.lang + ' type system');
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
// --- the unit header ---------------------------------------------------
|
|
278
|
-
// The path from one unit's directory to another unit, for a TypeScript
|
|
279
|
-
// import: `./other` beside, `../shared/x` across, the extension gone.
|
|
280
|
-
function relImport(from, to) {
|
|
281
|
-
const a = from.split('/').slice(0, -1);
|
|
282
|
-
const b = to.split('/');
|
|
283
|
-
const file = b.pop().replace(/\.[^.]*$/, '');
|
|
284
|
-
let i = 0;
|
|
285
|
-
while (i < a.length && i < b.length && a[i] === b[i]) {
|
|
286
|
-
i++;
|
|
287
|
-
}
|
|
288
|
-
const up = a.slice(i).map(() => '..');
|
|
289
|
-
const parts = [...up, ...b.slice(i), file];
|
|
290
|
-
return (0 === up.length ? './' : '') + parts.join('/');
|
|
291
|
-
}
|
|
292
|
-
// Imports derived from `{k:"ref", unit}` nodes, in order of first
|
|
293
|
-
// appearance, grouped by unit -- TypeScript only: a Go reference names
|
|
294
|
-
// a type in the same package.
|
|
295
|
-
function derivedImports(unit) {
|
|
296
|
-
const groups = [];
|
|
297
|
-
const visit = (t) => {
|
|
298
|
-
if (null == t || 'object' !== typeof t) {
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
if (Array.isArray(t)) {
|
|
302
|
-
t.forEach(visit);
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
if ('ref' === t.k && 'string' === typeof t.unit) {
|
|
306
|
-
let g = groups.find((x) => x.from === t.unit);
|
|
307
|
-
if (undefined === g) {
|
|
308
|
-
g = { from: t.unit, names: [] };
|
|
309
|
-
groups.push(g);
|
|
310
|
-
}
|
|
311
|
-
if (!g.names.includes(t.name)) {
|
|
312
|
-
g.names.push(t.name);
|
|
313
|
-
}
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
for (const key of ['type', 'n', 'key', 'returns', 'fields', 'params']) {
|
|
317
|
-
visit(t[key]);
|
|
318
|
-
}
|
|
319
|
-
};
|
|
320
|
-
visit(unit.decls);
|
|
321
|
-
return groups;
|
|
322
|
-
}
|
|
323
|
-
// The banner from `code.source`, the package clause, and the imports:
|
|
324
|
-
// what stands before the declarations, each part followed by a blank.
|
|
325
|
-
function lowerHeader(unit, source, ctx) {
|
|
326
|
-
const parts = [];
|
|
327
|
-
const banner = ctx.profile.banner;
|
|
328
|
-
if (null != banner && null != source?.path) {
|
|
329
|
-
const prefix = ctx.profile.comment?.line?.prefix ?? '';
|
|
330
|
-
parts.push([prefix + banner.split('{path}').join(source.path)
|
|
331
|
-
.split('{hash}').join(source.hash ?? '')]);
|
|
332
|
-
}
|
|
333
|
-
if ('go' === ctx.family && 'string' === typeof unit.pkg) {
|
|
334
|
-
parts.push(['package ' + unit.pkg]);
|
|
335
|
-
}
|
|
336
|
-
const imports = [...(unit.imports ?? [])];
|
|
337
|
-
if ('typescript' === ctx.family) {
|
|
338
|
-
for (const g of derivedImports(unit)) {
|
|
339
|
-
imports.push({
|
|
340
|
-
from: relImport(unit.path, g.from),
|
|
341
|
-
names: g.names.map((n) => ident(n, 'record', ctx, '', false)),
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
if (0 < imports.length) {
|
|
346
|
-
const lines = [];
|
|
347
|
-
if ('go' === ctx.family) {
|
|
348
|
-
const spell = (im) => (null == im.alias ? '' : im.alias + ' ') + quote(im.from, ctx.profile);
|
|
349
|
-
if (1 === imports.length) {
|
|
350
|
-
lines.push('import ' + spell(imports[0]));
|
|
351
|
-
}
|
|
352
|
-
else {
|
|
353
|
-
lines.push('import (');
|
|
354
|
-
for (const im of imports) {
|
|
355
|
-
lines.push(ln(1, spell(im)));
|
|
356
|
-
}
|
|
357
|
-
lines.push(')');
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
else {
|
|
361
|
-
for (const im of imports) {
|
|
362
|
-
const from = quote(im.from, ctx.profile);
|
|
363
|
-
if (Array.isArray(im.names) && 0 < im.names.length) {
|
|
364
|
-
lines.push('import { ' + im.names.join(', ') + ' } from ' + from + ';');
|
|
365
|
-
}
|
|
366
|
-
else if (null != im.alias) {
|
|
367
|
-
lines.push('import * as ' + im.alias + ' from ' + from + ';');
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
lines.push('import ' + from + ';');
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
parts.push(lines);
|
|
375
|
-
}
|
|
376
|
-
// The parts, a blank between each two; the fold puts the blank
|
|
377
|
-
// after the last when a declaration follows.
|
|
378
|
-
const out = [];
|
|
379
|
-
parts.forEach((part, i) => {
|
|
380
|
-
if (0 < i) {
|
|
381
|
-
out.push(BLANK);
|
|
382
|
-
}
|
|
383
|
-
out.push(...part);
|
|
384
|
-
});
|
|
385
|
-
return out;
|
|
386
|
-
}
|
|
387
|
-
// --- declarations ------------------------------------------------------
|
|
388
|
-
// A body fragment's pieces, one level deeper: a bare string is a line
|
|
389
|
-
// at depth 1, a line or a raw keeps its shape at `at + 1`, a blank is
|
|
390
|
-
// a blank.
|
|
391
|
-
function nest(pieces) {
|
|
392
|
-
return pieces.map((p) => 'string' === typeof p ? ln(1, p)
|
|
393
|
-
: 'blank' === p.k ? p : { ...p, at: (p.at ?? 0) + 1 });
|
|
394
|
-
}
|
|
395
|
-
function params(list, ctx, path) {
|
|
396
|
-
return list.map((p, i) => {
|
|
397
|
-
const ppath = path + '.params.' + i;
|
|
398
|
-
const name = ident(p.name, 'param', ctx, ppath + '.name', true);
|
|
399
|
-
const type = typeExpr(p.type, ctx, ppath + '.type').text;
|
|
400
|
-
if ('go' === ctx.family) {
|
|
401
|
-
if (undefined !== p.default) {
|
|
402
|
-
loss(ctx, ppath + '.default', 'default', 'go has no default parameter: the default of ' + p.name + ' is dropped');
|
|
403
|
-
}
|
|
404
|
-
return name + ' ' + type;
|
|
405
|
-
}
|
|
406
|
-
return name + ': ' + type +
|
|
407
|
-
(undefined === p.default ? '' : ' = ' + literal(p.default, ctx));
|
|
408
|
-
}).join(', ');
|
|
409
|
-
}
|
|
410
|
-
// The lowering of one declaration to pieces. A `frag` and a `text`
|
|
411
|
-
// never arrive here: the fold takes those itself.
|
|
412
|
-
function lowerDecl(decl, path, ctx) {
|
|
413
|
-
const go = 'go' === ctx.family;
|
|
414
|
-
const out = [];
|
|
415
|
-
const k = decl.k;
|
|
416
|
-
if ('record' === k) {
|
|
417
|
-
const name = ident(decl.name, 'record', ctx, path + '.name', true);
|
|
418
|
-
out.push(...doc(decl.doc, 0, ctx));
|
|
419
|
-
out.push(go ? 'type ' + name + ' struct {' : 'export interface ' + name + ' {');
|
|
420
|
-
decl.fields.forEach((f, i) => {
|
|
421
|
-
const fpath = path + '.fields.' + i;
|
|
422
|
-
out.push(...doc(f.doc, 1, ctx));
|
|
423
|
-
const fname = ident(f.name, 'field', ctx, fpath + '.name', false);
|
|
424
|
-
const type = typeExpr(f.type, ctx, fpath + '.type');
|
|
425
|
-
checks(f.check, fpath, ctx);
|
|
426
|
-
const opt = true === f.optional;
|
|
427
|
-
if (go) {
|
|
428
|
-
const star = opt && 'opt' !== f.type.k ? '*' : '';
|
|
429
|
-
out.push(ln(1, fname + ' ' + star + type.text +
|
|
430
|
-
' `json:"' + f.name + (opt ? ',omitempty' : '') + '"`'));
|
|
431
|
-
}
|
|
432
|
-
else {
|
|
433
|
-
out.push(ln(1, fname + (opt ? '?' : '') + ': ' + type.text + ';'));
|
|
434
|
-
}
|
|
435
|
-
if (undefined !== f.default) {
|
|
436
|
-
loss(ctx, fpath + '.default', 'default', 'a field default is not expressed by a ' +
|
|
437
|
-
(go ? 'go struct' : 'typescript interface'));
|
|
438
|
-
}
|
|
439
|
-
});
|
|
440
|
-
if (true === decl.open) {
|
|
441
|
-
if (go) {
|
|
442
|
-
loss(ctx, path + '.open', 'open', 'go has no open struct: extra keys are dropped');
|
|
443
|
-
}
|
|
444
|
-
else {
|
|
445
|
-
out.push(ln(1, '[key: string]: unknown;'));
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
checks(decl.check, path, ctx);
|
|
449
|
-
out.push('}');
|
|
450
|
-
return out;
|
|
451
|
-
}
|
|
452
|
-
if ('enum' === k) {
|
|
453
|
-
const name = ident(decl.name, 'enum', ctx, path + '.name', true);
|
|
454
|
-
out.push(...doc(decl.doc, 0, ctx));
|
|
455
|
-
const members = decl.members;
|
|
456
|
-
if (go) {
|
|
457
|
-
const numeric = 0 < members.length &&
|
|
458
|
-
members.every((m) => 'number' === typeof m.value);
|
|
459
|
-
out.push('type ' + name + ' ' + prim(ctx, numeric ? 'int' : 'string'));
|
|
460
|
-
out.push(BLANK, 'const (');
|
|
461
|
-
members.forEach((m, i) => {
|
|
462
|
-
out.push(...doc(m.doc, 1, ctx));
|
|
463
|
-
const mname = name + ident(m.name, 'member', ctx, path + '.members.' + i + '.name', false);
|
|
464
|
-
const value = undefined === m.value ? quote(m.name, ctx.profile) : literal(m.value, ctx);
|
|
465
|
-
out.push(ln(1, mname + ' ' + name + ' = ' + value));
|
|
466
|
-
});
|
|
467
|
-
out.push(')');
|
|
468
|
-
}
|
|
469
|
-
else {
|
|
470
|
-
out.push('export enum ' + name + ' {');
|
|
471
|
-
members.forEach((m, i) => {
|
|
472
|
-
out.push(...doc(m.doc, 1, ctx));
|
|
473
|
-
const mname = ident(m.name, 'member', ctx, path + '.members.' + i + '.name', false);
|
|
474
|
-
out.push(ln(1, mname + (undefined === m.value ? '' : ' = ' + literal(m.value, ctx)) + ','));
|
|
475
|
-
});
|
|
476
|
-
out.push('}');
|
|
477
|
-
}
|
|
478
|
-
return out;
|
|
479
|
-
}
|
|
480
|
-
if ('alias' === k) {
|
|
481
|
-
const name = ident(decl.name, 'alias', ctx, path + '.name', true);
|
|
482
|
-
out.push(...doc(decl.doc, 0, ctx));
|
|
483
|
-
const type = typeExpr(decl.type, ctx, path + '.type').text;
|
|
484
|
-
checks(decl.check, path, ctx);
|
|
485
|
-
out.push(go ? 'type ' + name + ' ' + type : 'export type ' + name + ' = ' + type + ';');
|
|
486
|
-
return out;
|
|
487
|
-
}
|
|
488
|
-
if ('const' === k) {
|
|
489
|
-
const name = ident(decl.name, 'const', ctx, path + '.name', true);
|
|
490
|
-
out.push(...doc(decl.doc, 0, ctx));
|
|
491
|
-
const type = null == decl.type ? undefined : typeExpr(decl.type, ctx, path + '.type').text;
|
|
492
|
-
const value = literal(decl.value, ctx);
|
|
493
|
-
out.push(go
|
|
494
|
-
? 'const ' + name + (undefined === type ? '' : ' ' + type) + ' = ' + value
|
|
495
|
-
: 'export const ' + name + (undefined === type ? '' : ': ' + type) + ' = ' + value + ';');
|
|
496
|
-
return out;
|
|
497
|
-
}
|
|
498
|
-
// func
|
|
499
|
-
const name = ident(decl.name, 'func', ctx, path + '.name', true);
|
|
500
|
-
out.push(...doc(decl.doc, 0, ctx));
|
|
501
|
-
const sig = params(decl.params, ctx, path);
|
|
502
|
-
const returns = null == decl.returns ? undefined : typeExpr(decl.returns, ctx, path + '.returns').text;
|
|
503
|
-
const abstract = 'abstract' === decl.body.k;
|
|
504
|
-
if (go) {
|
|
505
|
-
out.push('func ' + name + '(' + sig + ')' + (undefined === returns ? '' : ' ' + returns) + ' {');
|
|
506
|
-
if (abstract) {
|
|
507
|
-
loss(ctx, path + '.body', 'abstract', 'go has no abstract function: the body panics');
|
|
508
|
-
out.push(ln(1, 'panic(' + quote('abstract', ctx.profile) + ')'));
|
|
509
|
-
}
|
|
510
|
-
else {
|
|
511
|
-
out.push(...nest(decl.body.n));
|
|
512
|
-
}
|
|
513
|
-
out.push('}');
|
|
514
|
-
}
|
|
515
|
-
else {
|
|
516
|
-
const ret = ': ' + (returns ?? 'void');
|
|
517
|
-
if (abstract) {
|
|
518
|
-
out.push('export declare function ' + name + '(' + sig + ')' + ret + ';');
|
|
519
|
-
}
|
|
520
|
-
else {
|
|
521
|
-
out.push('export function ' + name + '(' + sig + ')' + ret + ' {');
|
|
522
|
-
out.push(...nest(decl.body.n));
|
|
523
|
-
out.push('}');
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
return out;
|
|
527
|
-
}
|
|
528
|
-
//# sourceMappingURL=lower.js.map
|
package/dist/lower.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../src/lower.ts"],"names":[],"mappings":"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"}
|
package/dist/mod-tool.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export type ModLock = {
|
|
2
|
-
mod: string;
|
|
3
|
-
v: string;
|
|
4
|
-
canon: string;
|
|
5
|
-
oci: string;
|
|
6
|
-
};
|
|
7
|
-
export type ModTidyReport = {
|
|
8
|
-
verdict: 'ok' | 'missing' | 'error';
|
|
9
|
-
lock: ModLock[];
|
|
10
|
-
missing: string[];
|
|
11
|
-
unevaluable: string[];
|
|
12
|
-
};
|
|
13
|
-
export type ModVerifyReport = {
|
|
14
|
-
verdict: 'ok' | 'mismatch' | 'unlocked' | 'missing';
|
|
15
|
-
verified: string[];
|
|
16
|
-
mismatched: {
|
|
17
|
-
mod: string;
|
|
18
|
-
want: string;
|
|
19
|
-
got: string;
|
|
20
|
-
}[];
|
|
21
|
-
unlocked: string[];
|
|
22
|
-
missing: string[];
|
|
23
|
-
};
|
|
24
|
-
export type ModVendorReport = {
|
|
25
|
-
verdict: 'ok' | 'missing';
|
|
26
|
-
vendored: string[];
|
|
27
|
-
missing: string[];
|
|
28
|
-
};
|
|
29
|
-
export type ModToolEval = (src: string, path: string) => {
|
|
30
|
-
gen: any;
|
|
31
|
-
hash: string;
|
|
32
|
-
canon: string;
|
|
33
|
-
ok: boolean;
|
|
34
|
-
};
|
|
35
|
-
export type ModToolOptions = {
|
|
36
|
-
cache?: string;
|
|
37
|
-
eval: ModToolEval;
|
|
38
|
-
};
|
|
39
|
-
export declare function versionCompare(a: string, b: string): number;
|
|
40
|
-
export declare function lockText(entries: ModLock[], options: ModToolOptions): string;
|
|
41
|
-
export declare function modTidy(root: string, options: ModToolOptions): ModTidyReport;
|
|
42
|
-
export declare function modVerify(root: string, options: ModToolOptions): ModVerifyReport;
|
|
43
|
-
export declare function modVendor(root: string, options: ModToolOptions): ModVendorReport;
|
|
44
|
-
export declare const MODULE_CONFIG_MEDIA_TYPE = "application/vnd.aontu.module.v1+json";
|
|
45
|
-
export declare const MODULE_ANNOTATION_CANON = "com.github.rjrodger.aontu.canon";
|
|
46
|
-
export declare const MODULE_ANNOTATION_MAJOR = "com.github.rjrodger.aontu.major";
|
|
47
|
-
export type ModManifestReport = {
|
|
48
|
-
verdict: 'ok' | 'breaking' | 'undecided' | 'error';
|
|
49
|
-
mod: string;
|
|
50
|
-
version: string;
|
|
51
|
-
canon: string;
|
|
52
|
-
config: string;
|
|
53
|
-
files: string[];
|
|
54
|
-
annotations: Record<string, string>;
|
|
55
|
-
missing: string[];
|
|
56
|
-
findings: any[];
|
|
57
|
-
};
|
|
58
|
-
export declare function modManifest(root: string, options: ModToolOptions, against?: string): ModManifestReport;
|