aontu 0.55.0 → 0.57.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 +3 -3
- package/dist/agentsmd.d.ts +1 -0
- package/dist/agentsmd.js +10 -3
- package/dist/agentsmd.js.map +1 -1
- package/dist/aontu.d.ts +4 -2
- package/dist/aontu.js +5 -2
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +10 -3
- package/dist/cli.js +311 -53
- package/dist/cli.js.map +1 -1
- package/dist/diff.d.ts +1 -0
- package/dist/diff.js +3 -2
- package/dist/diff.js.map +1 -1
- package/dist/escape.d.ts +5 -0
- package/dist/escape.js +455 -0
- package/dist/escape.js.map +1 -0
- package/dist/format.d.ts +26 -0
- package/dist/format.js +1489 -0
- package/dist/format.js.map +1 -0
- package/dist/hints.js +39 -1
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +1 -0
- package/dist/jsonschema.js +3 -2
- package/dist/jsonschema.js.map +1 -1
- package/dist/lang.js +84 -6
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +2 -1
- package/dist/lsp.js +4 -4
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.js +2 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp.js +6 -4
- package/dist/mcp.js.map +1 -1
- package/dist/mod-tool.js +8 -7
- package/dist/mod-tool.js.map +1 -1
- package/dist/mod.js +6 -6
- package/dist/mod.js.map +1 -1
- package/dist/patch.d.ts +1 -0
- package/dist/patch.js +1 -0
- package/dist/patch.js.map +1 -1
- package/dist/query.d.ts +1 -0
- package/dist/query.js +4 -3
- package/dist/query.js.map +1 -1
- package/dist/reach.d.ts +1 -0
- package/dist/reach.js +3 -2
- package/dist/reach.js.map +1 -1
- package/dist/relation.d.ts +1 -0
- package/dist/relation.js +3 -2
- package/dist/relation.js.map +1 -1
- package/dist/sigdecl.js +1 -1
- package/dist/sigdecl.js.map +1 -1
- package/dist/std.js +2 -1
- package/dist/std.js.map +1 -1
- package/dist/subsume.d.ts +1 -0
- package/dist/subsume.js +3 -2
- package/dist/subsume.js.map +1 -1
- package/dist/trim.d.ts +1 -0
- package/dist/trim.js +3 -2
- package/dist/trim.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +1 -0
- package/dist/type.js.map +1 -1
- package/dist/utility.d.ts +8 -2
- package/dist/utility.js +9 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/EachFuncVal.js +1 -2
- package/dist/val/EachFuncVal.js.map +1 -1
- package/dist/val/EmitFuncVal.d.ts +23 -0
- package/dist/val/EmitFuncVal.js +261 -0
- package/dist/val/EmitFuncVal.js.map +1 -0
- package/dist/val/FilterFuncVal.js +1 -2
- package/dist/val/FilterFuncVal.js.map +1 -1
- package/dist/val/FuncBaseVal.d.ts +1 -0
- package/dist/val/FuncBaseVal.js +16 -0
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/PackFuncVal.js +1 -2
- package/dist/val/PackFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.d.ts +3 -1
- package/dist/val/PlaceVal.js +8 -6
- package/dist/val/PlaceVal.js.map +1 -1
- package/dist/val/StrFuncVal.d.ts +32 -0
- package/dist/val/StrFuncVal.js +292 -0
- package/dist/val/StrFuncVal.js.map +1 -0
- package/dist/vet.d.ts +1 -0
- package/dist/vet.js +1 -1
- package/dist/vet.js.map +1 -1
- package/dist/view.d.ts +2 -1
- package/dist/view.js +379 -8
- package/dist/view.js.map +1 -1
- package/grammar/aontu.abnf +156 -0
- package/grammar/aontu.gbnf +4 -3
- package/grammar/aontu.lark +4 -3
- package/grammar/aontu.tmLanguage.json +1 -1
- package/package.json +2 -1
- package/skill/grammar-card.md +5 -2
- package/src/agentsmd.ts +15 -3
- package/src/aontu.ts +8 -1
- package/src/cli.ts +365 -58
- package/src/diff.ts +7 -2
- package/src/escape.ts +371 -0
- package/src/format.ts +1728 -0
- package/src/hints.ts +53 -1
- package/src/jsonschema.ts +7 -1
- package/src/lang.ts +93 -6
- package/src/lsp.ts +8 -6
- package/src/mcp-server.ts +3 -2
- package/src/mcp.ts +6 -4
- package/src/mod-tool.ts +9 -8
- package/src/mod.ts +6 -6
- package/src/patch.ts +7 -0
- package/src/query.ts +8 -4
- package/src/reach.ts +7 -2
- package/src/relation.ts +7 -2
- package/src/sigdecl.ts +1 -1
- package/src/std.ts +2 -1
- package/src/subsume.ts +7 -2
- package/src/trim.ts +7 -2
- package/src/type.ts +8 -0
- package/src/utility.ts +27 -2
- package/src/val/EachFuncVal.ts +1 -3
- package/src/val/EmitFuncVal.ts +401 -0
- package/src/val/FilterFuncVal.ts +1 -3
- package/src/val/FuncBaseVal.ts +18 -0
- package/src/val/PackFuncVal.ts +1 -3
- package/src/val/PlaceVal.ts +8 -6
- package/src/val/StrFuncVal.ts +334 -0
- package/src/vet.ts +9 -3
- package/src/view.ts +442 -9
package/dist/escape.js
ADDED
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ESC_VARIANTS = void 0;
|
|
5
|
+
exports.isEscVariant = isEscVariant;
|
|
6
|
+
exports.escapeText = escapeText;
|
|
7
|
+
exports.unescapeText = unescapeText;
|
|
8
|
+
// THE ESCAPE CONVENTIONS (G9 phase 6, docs/design/TEMPLATE.0.md D4).
|
|
9
|
+
// `esc(s, variant?)` makes a string safe to place inside a literal of
|
|
10
|
+
// the named convention, and `usc` reads it back out.
|
|
11
|
+
//
|
|
12
|
+
// A VARIANT NAMES A CONVENTION, NOT A LANGUAGE, and that is the whole
|
|
13
|
+
// reason it is a variant rather than something a renderer knows:
|
|
14
|
+
// several languages share one convention, and one language has
|
|
15
|
+
// several -- a C-family literal escapes differently in each quote, and
|
|
16
|
+
// SQL spells a literal one way and an identifier another.
|
|
17
|
+
//
|
|
18
|
+
// With no variant it is the C escape, JSON canonical, which covers
|
|
19
|
+
// TypeScript, JavaScript, Java, C, C++, C#, Go, Rust, Swift, Kotlin,
|
|
20
|
+
// Scala and JSON itself. That is why it is the default rather than a
|
|
21
|
+
// lookup.
|
|
22
|
+
//
|
|
23
|
+
// EVERY CONVENTION IS SPELLED OUT HERE rather than borrowed from a
|
|
24
|
+
// host function, and the reason is parity: `JSON.stringify` escapes
|
|
25
|
+
// what Go's `encoding/json` does not (and the reverse), and
|
|
26
|
+
// `encodeURIComponent` leaves `!'()*` alone where RFC 3986 does not.
|
|
27
|
+
// A generated file must be byte-identical whichever engine wrote it,
|
|
28
|
+
// so both ports carry this table and go/escape.go is its twin.
|
|
29
|
+
//
|
|
30
|
+
// `usc` IS THE LEFT INVERSE, AND IT IS PARTIAL. `usc(esc(s))` is `s`
|
|
31
|
+
// for every `s`; `esc(usc(t))` is `t` only for canonically escaped
|
|
32
|
+
// `t`, because several spellings escape to one value. Input with no
|
|
33
|
+
// inverse -- a truncated `\u12`, an undefined `\q`, a lone `'` where
|
|
34
|
+
// the convention doubles it -- is REFUSED (`usc_malformed`), never
|
|
35
|
+
// passed through: a generator that reads a value back out of an
|
|
36
|
+
// artifact and silently gets a different one is the failure this
|
|
37
|
+
// whole pair exists to close.
|
|
38
|
+
// The variant names, in the order the reference lists them. `none` is
|
|
39
|
+
// not here: it is the absent argument, and the absent argument is the
|
|
40
|
+
// C/JSON convention.
|
|
41
|
+
const ESC_VARIANTS = ['sq', 'sql', 'shell', 'xml', 'uri', 'regex'];
|
|
42
|
+
exports.ESC_VARIANTS = ESC_VARIANTS;
|
|
43
|
+
// The regex metacharacters, which are exactly the ones the pattern
|
|
44
|
+
// subset admits as escaped-to-mean-themselves (RE_ESCAPE_PUNCT in
|
|
45
|
+
// ConstraintVal). So `esc(s, regex)` always answers a pattern the
|
|
46
|
+
// subset accepts, which is the point of having the variant at all.
|
|
47
|
+
const ESC_REGEX_PUNCT = '\\.+*?()[]{}|^$/';
|
|
48
|
+
// The five XML entities, in the order they must be APPLIED: `&` first,
|
|
49
|
+
// or the ampersands of the other four are escaped a second time.
|
|
50
|
+
const ESC_XML = [
|
|
51
|
+
['&', '&'],
|
|
52
|
+
['<', '<'],
|
|
53
|
+
['>', '>'],
|
|
54
|
+
['"', '"'],
|
|
55
|
+
["'", '''],
|
|
56
|
+
];
|
|
57
|
+
// The characters RFC 3986 calls unreserved. Everything else is
|
|
58
|
+
// percent-encoded, byte by byte of its UTF-8, with UPPERCASE hex --
|
|
59
|
+
// the case the RFC prefers, pinned here because the two ports must
|
|
60
|
+
// agree on it.
|
|
61
|
+
const ESC_URI_UNRESERVED = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
|
|
62
|
+
function isEscVariant(v) {
|
|
63
|
+
return ESC_VARIANTS.includes(v);
|
|
64
|
+
}
|
|
65
|
+
// The C escape, in whichever quote the convention uses. Control
|
|
66
|
+
// characters below U+0020 that have no short form become `\uXXXX` with
|
|
67
|
+
// LOWERCASE hex, as JSON writes them; U+007F is not a JSON escape and
|
|
68
|
+
// is left alone.
|
|
69
|
+
function escC(src, quote) {
|
|
70
|
+
let out = '';
|
|
71
|
+
for (const ch of src) {
|
|
72
|
+
if ('\\' === ch) {
|
|
73
|
+
out += '\\\\';
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (quote === ch) {
|
|
77
|
+
out += '\\' + quote;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if ('\n' === ch) {
|
|
81
|
+
out += '\\n';
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if ('\r' === ch) {
|
|
85
|
+
out += '\\r';
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if ('\t' === ch) {
|
|
89
|
+
out += '\\t';
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if ('\b' === ch) {
|
|
93
|
+
out += '\\b';
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if ('\f' === ch) {
|
|
97
|
+
out += '\\f';
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const c = ch.codePointAt(0);
|
|
101
|
+
if (0x20 > c) {
|
|
102
|
+
out += '\\u' + c.toString(16).padStart(4, '0');
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
out += ch;
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
// The inverse. A `\uXXXX` naming half a surrogate pair is read WITH its
|
|
110
|
+
// partner or refused: a lone surrogate is not a character either port
|
|
111
|
+
// can carry, and answering one in TypeScript where Go cannot is the
|
|
112
|
+
// divergence the whole table exists to avoid.
|
|
113
|
+
function unescC(src, quote) {
|
|
114
|
+
const bad = ['', false];
|
|
115
|
+
let out = '';
|
|
116
|
+
for (let i = 0; i < src.length; i++) {
|
|
117
|
+
const ch = src[i];
|
|
118
|
+
if ('\\' !== ch) {
|
|
119
|
+
out += ch;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
i++;
|
|
123
|
+
if (src.length <= i) {
|
|
124
|
+
return bad;
|
|
125
|
+
}
|
|
126
|
+
const n = src[i];
|
|
127
|
+
if ('\\' === n) {
|
|
128
|
+
out += '\\';
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (quote === n) {
|
|
132
|
+
out += quote;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
if ('n' === n) {
|
|
136
|
+
out += '\n';
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if ('r' === n) {
|
|
140
|
+
out += '\r';
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if ('t' === n) {
|
|
144
|
+
out += '\t';
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if ('b' === n) {
|
|
148
|
+
out += '\b';
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if ('f' === n) {
|
|
152
|
+
out += '\f';
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if ('u' !== n) {
|
|
156
|
+
return bad;
|
|
157
|
+
}
|
|
158
|
+
const hi = hex4(src, i + 1);
|
|
159
|
+
if (0 > hi) {
|
|
160
|
+
return bad;
|
|
161
|
+
}
|
|
162
|
+
i += 4;
|
|
163
|
+
if (0xDC00 <= hi && 0xDFFF >= hi) {
|
|
164
|
+
return bad;
|
|
165
|
+
}
|
|
166
|
+
if (0xD800 <= hi && 0xDBFF >= hi) {
|
|
167
|
+
// A high surrogate must be followed by its own `\u` low one.
|
|
168
|
+
if ('\\' !== src[i + 1] || 'u' !== src[i + 2]) {
|
|
169
|
+
return bad;
|
|
170
|
+
}
|
|
171
|
+
const lo = hex4(src, i + 3);
|
|
172
|
+
if (0 > lo || 0xDC00 > lo || 0xDFFF < lo) {
|
|
173
|
+
return bad;
|
|
174
|
+
}
|
|
175
|
+
i += 6;
|
|
176
|
+
out += String.fromCharCode(hi, lo);
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
out += String.fromCharCode(hi);
|
|
180
|
+
}
|
|
181
|
+
return [out, true];
|
|
182
|
+
}
|
|
183
|
+
// Four hex digits at `at`, or -1 when they are not four hex digits.
|
|
184
|
+
function hex4(src, at) {
|
|
185
|
+
if (src.length < at + 4) {
|
|
186
|
+
return -1;
|
|
187
|
+
}
|
|
188
|
+
let v = 0;
|
|
189
|
+
for (let i = at; i < at + 4; i++) {
|
|
190
|
+
const d = hexDigit(src[i]);
|
|
191
|
+
if (0 > d) {
|
|
192
|
+
return -1;
|
|
193
|
+
}
|
|
194
|
+
v = v * 16 + d;
|
|
195
|
+
}
|
|
196
|
+
return v;
|
|
197
|
+
}
|
|
198
|
+
function hexDigit(ch) {
|
|
199
|
+
if ('0' <= ch && '9' >= ch) {
|
|
200
|
+
return ch.charCodeAt(0) - 0x30;
|
|
201
|
+
}
|
|
202
|
+
if ('a' <= ch && 'f' >= ch) {
|
|
203
|
+
return ch.charCodeAt(0) - 0x61 + 10;
|
|
204
|
+
}
|
|
205
|
+
if ('A' <= ch && 'F' >= ch) {
|
|
206
|
+
return ch.charCodeAt(0) - 0x41 + 10;
|
|
207
|
+
}
|
|
208
|
+
return -1;
|
|
209
|
+
}
|
|
210
|
+
// Standard SQL: a literal's only escape is the doubled quote. A LONE
|
|
211
|
+
// quote has no inverse -- it is the escape character, so its meaning
|
|
212
|
+
// depends on what was meant to follow it.
|
|
213
|
+
function escSql(src) {
|
|
214
|
+
return src.split("'").join("''");
|
|
215
|
+
}
|
|
216
|
+
function unescSql(src) {
|
|
217
|
+
let out = '';
|
|
218
|
+
for (let i = 0; i < src.length; i++) {
|
|
219
|
+
if ("'" !== src[i]) {
|
|
220
|
+
out += src[i];
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if ("'" !== src[i + 1]) {
|
|
224
|
+
return ['', false];
|
|
225
|
+
}
|
|
226
|
+
out += "'";
|
|
227
|
+
i++;
|
|
228
|
+
}
|
|
229
|
+
return [out, true];
|
|
230
|
+
}
|
|
231
|
+
// POSIX single-quoting: the caller wraps the value in single quotes,
|
|
232
|
+
// and a quote inside it closes, escapes and reopens them.
|
|
233
|
+
function escShell(src) {
|
|
234
|
+
return src.split("'").join("'\\''");
|
|
235
|
+
}
|
|
236
|
+
function unescShell(src) {
|
|
237
|
+
let out = '';
|
|
238
|
+
for (let i = 0; i < src.length; i++) {
|
|
239
|
+
if ("'" !== src[i]) {
|
|
240
|
+
out += src[i];
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if ("\\" !== src[i + 1] || "'" !== src[i + 2] || "'" !== src[i + 3]) {
|
|
244
|
+
return ['', false];
|
|
245
|
+
}
|
|
246
|
+
out += "'";
|
|
247
|
+
i += 3;
|
|
248
|
+
}
|
|
249
|
+
return [out, true];
|
|
250
|
+
}
|
|
251
|
+
function escXml(src) {
|
|
252
|
+
let out = '';
|
|
253
|
+
for (const ch of src) {
|
|
254
|
+
const ent = ESC_XML.find((e) => e[0] === ch);
|
|
255
|
+
out += undefined === ent ? ch : ent[1];
|
|
256
|
+
}
|
|
257
|
+
return out;
|
|
258
|
+
}
|
|
259
|
+
// A bare `&` is REFUSED rather than passed through: it is the one
|
|
260
|
+
// character whose meaning is ambiguous here, since it opens an entity.
|
|
261
|
+
// Every other character is unambiguous and passes.
|
|
262
|
+
function unescXml(src) {
|
|
263
|
+
let out = '';
|
|
264
|
+
for (let i = 0; i < src.length; i++) {
|
|
265
|
+
if ('&' !== src[i]) {
|
|
266
|
+
out += src[i];
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
const ent = ESC_XML.find((e) => src.startsWith(e[1], i));
|
|
270
|
+
if (undefined === ent) {
|
|
271
|
+
return ['', false];
|
|
272
|
+
}
|
|
273
|
+
out += ent[0];
|
|
274
|
+
i += ent[1].length - 1;
|
|
275
|
+
}
|
|
276
|
+
return [out, true];
|
|
277
|
+
}
|
|
278
|
+
function escUri(src) {
|
|
279
|
+
let out = '';
|
|
280
|
+
for (const ch of src) {
|
|
281
|
+
if (1 === ch.length && ESC_URI_UNRESERVED.includes(ch)) {
|
|
282
|
+
out += ch;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
for (const b of utf8Bytes(ch)) {
|
|
286
|
+
out += '%' + b.toString(16).toUpperCase().padStart(2, '0');
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return out;
|
|
290
|
+
}
|
|
291
|
+
function unescUri(src) {
|
|
292
|
+
const bytes = [];
|
|
293
|
+
for (let i = 0; i < src.length; i++) {
|
|
294
|
+
if ('%' !== src[i]) {
|
|
295
|
+
for (const b of utf8Bytes(src[i])) {
|
|
296
|
+
bytes.push(b);
|
|
297
|
+
}
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
const hi = hexDigit(src[i + 1] ?? '');
|
|
301
|
+
const lo = hexDigit(src[i + 2] ?? '');
|
|
302
|
+
if (0 > hi || 0 > lo) {
|
|
303
|
+
return ['', false];
|
|
304
|
+
}
|
|
305
|
+
bytes.push(hi * 16 + lo);
|
|
306
|
+
i += 2;
|
|
307
|
+
}
|
|
308
|
+
return utf8Text(bytes);
|
|
309
|
+
}
|
|
310
|
+
function escRegex(src) {
|
|
311
|
+
let out = '';
|
|
312
|
+
for (const ch of src) {
|
|
313
|
+
if (ESC_REGEX_PUNCT.includes(ch)) {
|
|
314
|
+
out += '\\';
|
|
315
|
+
}
|
|
316
|
+
out += ch;
|
|
317
|
+
}
|
|
318
|
+
return out;
|
|
319
|
+
}
|
|
320
|
+
// A metacharacter standing bare is unambiguous and passes; a backslash
|
|
321
|
+
// before anything the convention does not escape has no inverse.
|
|
322
|
+
function unescRegex(src) {
|
|
323
|
+
let out = '';
|
|
324
|
+
for (let i = 0; i < src.length; i++) {
|
|
325
|
+
if ('\\' !== src[i]) {
|
|
326
|
+
out += src[i];
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
const n = src[i + 1];
|
|
330
|
+
if (undefined === n || !ESC_REGEX_PUNCT.includes(n)) {
|
|
331
|
+
return ['', false];
|
|
332
|
+
}
|
|
333
|
+
out += n;
|
|
334
|
+
i++;
|
|
335
|
+
}
|
|
336
|
+
return [out, true];
|
|
337
|
+
}
|
|
338
|
+
// UTF-8 by hand, both ways, because the percent convention is defined
|
|
339
|
+
// over BYTES and the two ports must produce the same ones. TextEncoder
|
|
340
|
+
// would do for the forward direction; the reverse needs the error
|
|
341
|
+
// behaviour spelled out, so both are here.
|
|
342
|
+
function utf8Bytes(ch) {
|
|
343
|
+
const c = ch.codePointAt(0);
|
|
344
|
+
if (0x80 > c) {
|
|
345
|
+
return [c];
|
|
346
|
+
}
|
|
347
|
+
if (0x800 > c) {
|
|
348
|
+
return [0xC0 | (c >> 6), 0x80 | (c & 0x3F)];
|
|
349
|
+
}
|
|
350
|
+
if (0x10000 > c) {
|
|
351
|
+
return [0xE0 | (c >> 12), 0x80 | ((c >> 6) & 0x3F), 0x80 | (c & 0x3F)];
|
|
352
|
+
}
|
|
353
|
+
return [
|
|
354
|
+
0xF0 | (c >> 18), 0x80 | ((c >> 12) & 0x3F),
|
|
355
|
+
0x80 | ((c >> 6) & 0x3F), 0x80 | (c & 0x3F),
|
|
356
|
+
];
|
|
357
|
+
}
|
|
358
|
+
// The strict decoder: an overlong form, a surrogate, a truncated
|
|
359
|
+
// sequence or a value past U+10FFFF has no character to answer with.
|
|
360
|
+
function utf8Text(bytes) {
|
|
361
|
+
const bad = ['', false];
|
|
362
|
+
let out = '';
|
|
363
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
364
|
+
const b = bytes[i];
|
|
365
|
+
if (0x80 > b) {
|
|
366
|
+
out += String.fromCodePoint(b);
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
let need = 0;
|
|
370
|
+
let c = 0;
|
|
371
|
+
let min = 0;
|
|
372
|
+
if (0xC0 === (b & 0xE0)) {
|
|
373
|
+
need = 1;
|
|
374
|
+
c = b & 0x1F;
|
|
375
|
+
min = 0x80;
|
|
376
|
+
}
|
|
377
|
+
else if (0xE0 === (b & 0xF0)) {
|
|
378
|
+
need = 2;
|
|
379
|
+
c = b & 0x0F;
|
|
380
|
+
min = 0x800;
|
|
381
|
+
}
|
|
382
|
+
else if (0xF0 === (b & 0xF8)) {
|
|
383
|
+
need = 3;
|
|
384
|
+
c = b & 0x07;
|
|
385
|
+
min = 0x10000;
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
return bad;
|
|
389
|
+
}
|
|
390
|
+
if (bytes.length <= i + need) {
|
|
391
|
+
return bad;
|
|
392
|
+
}
|
|
393
|
+
for (let k = 0; k < need; k++) {
|
|
394
|
+
const cb = bytes[i + 1 + k];
|
|
395
|
+
if (0x80 !== (cb & 0xC0)) {
|
|
396
|
+
return bad;
|
|
397
|
+
}
|
|
398
|
+
c = (c << 6) | (cb & 0x3F);
|
|
399
|
+
}
|
|
400
|
+
i += need;
|
|
401
|
+
if (min > c || 0x10FFFF < c) {
|
|
402
|
+
return bad;
|
|
403
|
+
}
|
|
404
|
+
if (0xD800 <= c && 0xDFFF >= c) {
|
|
405
|
+
return bad;
|
|
406
|
+
}
|
|
407
|
+
out += String.fromCodePoint(c);
|
|
408
|
+
}
|
|
409
|
+
return [out, true];
|
|
410
|
+
}
|
|
411
|
+
// The one entry point each way. An unknown variant never reaches here:
|
|
412
|
+
// the call refuses it (`esc_variant`) before either is asked.
|
|
413
|
+
function escapeText(src, variant) {
|
|
414
|
+
if ('sq' === variant) {
|
|
415
|
+
return escC(src, "'");
|
|
416
|
+
}
|
|
417
|
+
if ('sql' === variant) {
|
|
418
|
+
return escSql(src);
|
|
419
|
+
}
|
|
420
|
+
if ('shell' === variant) {
|
|
421
|
+
return escShell(src);
|
|
422
|
+
}
|
|
423
|
+
if ('xml' === variant) {
|
|
424
|
+
return escXml(src);
|
|
425
|
+
}
|
|
426
|
+
if ('uri' === variant) {
|
|
427
|
+
return escUri(src);
|
|
428
|
+
}
|
|
429
|
+
if ('regex' === variant) {
|
|
430
|
+
return escRegex(src);
|
|
431
|
+
}
|
|
432
|
+
return escC(src, '"');
|
|
433
|
+
}
|
|
434
|
+
function unescapeText(src, variant) {
|
|
435
|
+
if ('sq' === variant) {
|
|
436
|
+
return unescC(src, "'");
|
|
437
|
+
}
|
|
438
|
+
if ('sql' === variant) {
|
|
439
|
+
return unescSql(src);
|
|
440
|
+
}
|
|
441
|
+
if ('shell' === variant) {
|
|
442
|
+
return unescShell(src);
|
|
443
|
+
}
|
|
444
|
+
if ('xml' === variant) {
|
|
445
|
+
return unescXml(src);
|
|
446
|
+
}
|
|
447
|
+
if ('uri' === variant) {
|
|
448
|
+
return unescUri(src);
|
|
449
|
+
}
|
|
450
|
+
if ('regex' === variant) {
|
|
451
|
+
return unescRegex(src);
|
|
452
|
+
}
|
|
453
|
+
return unescC(src, '"');
|
|
454
|
+
} /* node:coverage ignore next 8 */
|
|
455
|
+
//# sourceMappingURL=escape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../src/escape.ts"],"names":[],"mappings":"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"}
|
package/dist/format.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { VetFinding } from './vet';
|
|
2
|
+
export type FormatOptions = {
|
|
3
|
+
path?: string;
|
|
4
|
+
lint?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type LintFinding = {
|
|
7
|
+
rule: 'style/key-case' | 'style/repeat';
|
|
8
|
+
line: number;
|
|
9
|
+
col: number;
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
12
|
+
export type FormatHooks = {
|
|
13
|
+
same?: (root: any, after: string) => boolean;
|
|
14
|
+
meet?: (before: string, after: string) => boolean;
|
|
15
|
+
};
|
|
16
|
+
export type FormatReport = {
|
|
17
|
+
verdict: 'formatted';
|
|
18
|
+
text: string;
|
|
19
|
+
changed: boolean;
|
|
20
|
+
findings: LintFinding[];
|
|
21
|
+
} | {
|
|
22
|
+
verdict: 'error';
|
|
23
|
+
errors: VetFinding[];
|
|
24
|
+
};
|
|
25
|
+
export declare function format(src: string, opts?: FormatOptions, hooks?: FormatHooks): FormatReport;
|
|
26
|
+
export declare function unifiedDiff(name: string, before: string, after: string): string;
|