aontu 0.56.0 → 0.58.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.
Files changed (138) hide show
  1. package/README.md +2 -2
  2. package/dist/agentsmd.js +1 -1
  3. package/dist/alias.d.ts +3 -0
  4. package/dist/alias.js +59 -0
  5. package/dist/alias.js.map +1 -0
  6. package/dist/aontu.d.ts +5 -2
  7. package/dist/aontu.js +11 -3
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +8 -2
  10. package/dist/cli.js +564 -21
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +2 -0
  13. package/dist/ctx.js +1 -0
  14. package/dist/ctx.js.map +1 -1
  15. package/dist/escape.d.ts +5 -0
  16. package/dist/escape.js +455 -0
  17. package/dist/escape.js.map +1 -0
  18. package/dist/format.d.ts +9 -0
  19. package/dist/format.js +550 -55
  20. package/dist/format.js.map +1 -1
  21. package/dist/hints.js +74 -9
  22. package/dist/hints.js.map +1 -1
  23. package/dist/lang.js +374 -58
  24. package/dist/lang.js.map +1 -1
  25. package/dist/lower.d.ts +20 -0
  26. package/dist/lower.js +575 -0
  27. package/dist/lower.js.map +1 -0
  28. package/dist/lsp.d.ts +1 -1
  29. package/dist/lsp.js +4 -4
  30. package/dist/lsp.js.map +1 -1
  31. package/dist/mcp-server.js +2 -2
  32. package/dist/mcp-server.js.map +1 -1
  33. package/dist/mcp.d.ts +1 -0
  34. package/dist/mcp.js +40 -3
  35. package/dist/mcp.js.map +1 -1
  36. package/dist/mod-tool.js +8 -7
  37. package/dist/mod-tool.js.map +1 -1
  38. package/dist/mod.js +6 -6
  39. package/dist/mod.js.map +1 -1
  40. package/dist/render.d.ts +53 -0
  41. package/dist/render.js +542 -0
  42. package/dist/render.js.map +1 -0
  43. package/dist/sigdecl.js +1 -1
  44. package/dist/sigdecl.js.map +1 -1
  45. package/dist/std.d.ts +2 -0
  46. package/dist/std.js +498 -2
  47. package/dist/std.js.map +1 -1
  48. package/dist/template.d.ts +5 -0
  49. package/dist/template.js +257 -0
  50. package/dist/template.js.map +1 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/unify.js +43 -0
  53. package/dist/unify.js.map +1 -1
  54. package/dist/val/AggFuncVal.d.ts +1 -1
  55. package/dist/val/AggFuncVal.js +10 -21
  56. package/dist/val/AggFuncVal.js.map +1 -1
  57. package/dist/val/BagVal.js +1 -1
  58. package/dist/val/BagVal.js.map +1 -1
  59. package/dist/val/ConstraintVal.js +1 -1
  60. package/dist/val/EachFuncVal.d.ts +1 -1
  61. package/dist/val/EachFuncVal.js +9 -15
  62. package/dist/val/EachFuncVal.js.map +1 -1
  63. package/dist/val/EmitFuncVal.d.ts +42 -0
  64. package/dist/val/EmitFuncVal.js +531 -0
  65. package/dist/val/EmitFuncVal.js.map +1 -0
  66. package/dist/val/FilterFuncVal.js +9 -6
  67. package/dist/val/FilterFuncVal.js.map +1 -1
  68. package/dist/val/FormFuncVal.d.ts +14 -0
  69. package/dist/val/FormFuncVal.js +55 -0
  70. package/dist/val/FormFuncVal.js.map +1 -0
  71. package/dist/val/FuncBaseVal.d.ts +1 -0
  72. package/dist/val/FuncBaseVal.js +16 -0
  73. package/dist/val/FuncBaseVal.js.map +1 -1
  74. package/dist/val/MapVal.d.ts +2 -1
  75. package/dist/val/MapVal.js +2 -1
  76. package/dist/val/MapVal.js.map +1 -1
  77. package/dist/val/PackFuncVal.d.ts +1 -1
  78. package/dist/val/PackFuncVal.js +23 -20
  79. package/dist/val/PackFuncVal.js.map +1 -1
  80. package/dist/val/PlaceVal.d.ts +3 -1
  81. package/dist/val/PlaceVal.js +9 -6
  82. package/dist/val/PlaceVal.js.map +1 -1
  83. package/dist/val/RefVal.d.ts +3 -0
  84. package/dist/val/RefVal.js +156 -17
  85. package/dist/val/RefVal.js.map +1 -1
  86. package/dist/val/StrFuncVal.d.ts +32 -0
  87. package/dist/val/StrFuncVal.js +292 -0
  88. package/dist/val/StrFuncVal.js.map +1 -0
  89. package/dist/val/Val.d.ts +7 -1
  90. package/dist/val/Val.js +12 -1
  91. package/dist/val/Val.js.map +1 -1
  92. package/dist/val/members.d.ts +9 -0
  93. package/dist/val/members.js +52 -0
  94. package/dist/val/members.js.map +1 -0
  95. package/grammar/aontu.abnf +4 -3
  96. package/grammar/aontu.gbnf +4 -3
  97. package/grammar/aontu.lark +4 -3
  98. package/grammar/aontu.tmLanguage.json +1 -1
  99. package/package.json +1 -1
  100. package/skill/SKILL.md +4 -4
  101. package/skill/error-codes.md +1 -1
  102. package/skill/examples.md +1 -1
  103. package/skill/grammar-card.md +1 -1
  104. package/src/agentsmd.ts +1 -1
  105. package/src/alias.ts +112 -0
  106. package/src/aontu.ts +20 -2
  107. package/src/cli.ts +630 -23
  108. package/src/ctx.ts +13 -0
  109. package/src/escape.ts +371 -0
  110. package/src/format.ts +648 -56
  111. package/src/hints.ts +94 -9
  112. package/src/lang.ts +430 -63
  113. package/src/lower.ts +636 -0
  114. package/src/lsp.ts +4 -4
  115. package/src/mcp-server.ts +3 -2
  116. package/src/mcp.ts +43 -4
  117. package/src/mod-tool.ts +9 -8
  118. package/src/mod.ts +6 -6
  119. package/src/render.ts +727 -0
  120. package/src/sigdecl.ts +1 -1
  121. package/src/std.ts +506 -1
  122. package/src/template.ts +291 -0
  123. package/src/unify.ts +47 -0
  124. package/src/val/AggFuncVal.ts +10 -21
  125. package/src/val/BagVal.ts +1 -1
  126. package/src/val/ConstraintVal.ts +1 -1
  127. package/src/val/EachFuncVal.ts +9 -19
  128. package/src/val/EmitFuncVal.ts +738 -0
  129. package/src/val/FilterFuncVal.ts +12 -7
  130. package/src/val/FormFuncVal.ts +119 -0
  131. package/src/val/FuncBaseVal.ts +18 -0
  132. package/src/val/MapVal.ts +3 -2
  133. package/src/val/PackFuncVal.ts +24 -22
  134. package/src/val/PlaceVal.ts +9 -6
  135. package/src/val/RefVal.ts +167 -18
  136. package/src/val/StrFuncVal.ts +334 -0
  137. package/src/val/Val.ts +42 -1
  138. package/src/val/members.ts +86 -0
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
+ ['<', '&lt;'],
53
+ ['>', '&gt;'],
54
+ ['"', '&quot;'],
55
+ ["'", '&apos;'],
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":";AAAA,oDAAoD;;;QA+WlD,YAAY;QACZ,UAAU;QACV,YAAY;AA/Wd,qEAAqE;AACrE,sEAAsE;AACtE,qDAAqD;AACrD,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,+DAA+D;AAC/D,uEAAuE;AACvE,0DAA0D;AAC1D,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,qEAAqE;AACrE,UAAU;AACV,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,4DAA4D;AAC5D,qEAAqE;AACrE,qEAAqE;AACrE,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,mEAAmE;AACnE,oEAAoE;AACpE,qEAAqE;AACrE,mEAAmE;AACnE,gEAAgE;AAChE,iEAAiE;AACjE,8BAA8B;AAG9B,sEAAsE;AACtE,sEAAsE;AACtE,qBAAqB;AACrB,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAyUhE,YAAY;AAtUd,mEAAmE;AACnE,kEAAkE;AAClE,kEAAkE;AAClE,mEAAmE;AACnE,MAAM,eAAe,GAAG,kBAAkB,CAAA;AAG1C,uEAAuE;AACvE,iEAAiE;AACjE,MAAM,OAAO,GAAuB;IAClC,CAAC,GAAG,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,QAAQ,CAAC;IACf,CAAC,GAAG,EAAE,QAAQ,CAAC;CAChB,CAAA;AAGD,+DAA+D;AAC/D,oEAAoE;AACpE,mEAAmE;AACnE,eAAe;AACf,MAAM,kBAAkB,GACtB,oEAAoE,CAAA;AAGtE,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAGD,gEAAgE;AAChE,uEAAuE;AACvE,sEAAsE;AACtE,iBAAiB;AACjB,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa;IACtC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,MAAM,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,GAAG,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QACnD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAW,CAAA;QACrC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC9C,SAAQ;QACV,CAAC;QACD,GAAG,IAAI,EAAE,CAAA;IACX,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,wEAAwE;AACxE,sEAAsE;AACtE,oEAAoE;AACpE,8CAA8C;AAC9C,SAAS,MAAM,CAAC,GAAW,EAAE,KAAa;IACxC,MAAM,GAAG,GAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,GAAG,IAAI,EAAE,CAAC;YAAC,SAAQ;QAAC,CAAC;QAExC,CAAC,EAAE,CAAA;QACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QACnC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAEhB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QACxC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QACxC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QACxC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QACxC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAC;YAAC,SAAQ;QAAC,CAAC;QAExC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAC1B,CAAC,IAAI,CAAC,CAAA;QAEN,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAEhD,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YACjC,6DAA6D;YAC7D,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAAC,OAAO,GAAG,CAAA;YAAC,CAAC;YAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3B,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;gBAAC,OAAO,GAAG,CAAA;YAAC,CAAC;YACxD,CAAC,IAAI,CAAC,CAAA;YACN,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YAClC,SAAQ;QACV,CAAC;QAED,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAGD,oEAAoE;AACpE,SAAS,IAAI,CAAC,GAAW,EAAE,EAAU;IACnC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC,CAAA;IAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,CAAC,CAAA;QAAC,CAAC;QACxB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAGD,SAAS,QAAQ,CAAC,EAAU;IAC1B,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAAC,CAAC;IAC9D,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;IAAC,CAAC;IACnE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;IAAC,CAAC;IACnE,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAGD,qEAAqE;AACrE,qEAAqE;AACrE,0CAA0C;AAC1C,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAAC,CAAC;QAC9C,GAAG,IAAI,GAAG,CAAA;QACV,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAGD,qEAAqE;AACrE,0DAA0D;AAC1D,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC;QACD,GAAG,IAAI,GAAG,CAAA;QACV,CAAC,IAAI,CAAC,CAAA;IACR,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAGD,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAC5C,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,kEAAkE;AAClE,uEAAuE;AACvE,mDAAmD;AACnD,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACxD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAAC,CAAC;QAC7C,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;QACb,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAGD,SAAS,MAAM,CAAC,GAAW;IACzB,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACvD,GAAG,IAAI,EAAE,CAAA;YACT,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAAC,CAAC;YACpD,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACxB,CAAC,IAAI,CAAC,CAAA;IACR,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,IAAI,CAAA;QAAC,CAAC;QACjD,GAAG,IAAI,EAAE,CAAA;IACX,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,uEAAuE;AACvE,iEAAiE;AACjE,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACpB,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAAC,CAAC;QAC3E,GAAG,IAAI,CAAC,CAAA;QACR,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAGD,sEAAsE;AACtE,uEAAuE;AACvE,kEAAkE;AAClE,2CAA2C;AAC3C,SAAS,SAAS,CAAC,EAAU;IAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAW,CAAA;IACrC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAAC,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAAC,CAAC;IAC9D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACxE,CAAC;IACD,OAAO;QACL,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAC3C,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;KAC5C,CAAA;AACH,CAAC;AAGD,iEAAiE;AACjE,qEAAqE;AACrE,SAAS,QAAQ,CAAC,KAAe;IAC/B,MAAM,GAAG,GAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YAAC,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAE1D,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,CAAC,CAAC;YAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAA;QAAC,CAAC;aAC1D,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,CAAC,CAAC;YAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAAC,GAAG,GAAG,KAAK,CAAA;QAAC,CAAC;aAChE,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,GAAG,CAAC,CAAC;YAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAAC,GAAG,GAAG,OAAO,CAAA;QAAC,CAAC;aAClE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAEnB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3B,IAAI,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBAAC,OAAO,GAAG,CAAA;YAAC,CAAC;YACxC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,CAAC,IAAI,IAAI,CAAA;QAET,IAAI,GAAG,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAAC,OAAO,GAAG,CAAA;QAAC,CAAC;QAC9C,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAGD,uEAAuE;AACvE,8DAA8D;AAC9D,SAAS,UAAU,CAAC,GAAW,EAAE,OAAe;IAC9C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IACjD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IACjD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACvB,CAAC;AAGD,SAAS,YAAY,CAAC,GAAW,EAAE,OAAe;IAChD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAAC,CAAC;IACjD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IACnD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IACnD,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACzB,CAAC,CAAC,iCAAiC"}
package/dist/format.d.ts CHANGED
@@ -1,14 +1,23 @@
1
1
  import type { VetFinding } from './vet';
2
2
  export type FormatOptions = {
3
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;
4
11
  };
5
12
  export type FormatHooks = {
6
13
  same?: (root: any, after: string) => boolean;
14
+ meet?: (before: string, after: string) => boolean;
7
15
  };
8
16
  export type FormatReport = {
9
17
  verdict: 'formatted';
10
18
  text: string;
11
19
  changed: boolean;
20
+ findings: LintFinding[];
12
21
  } | {
13
22
  verdict: 'error';
14
23
  errors: VetFinding[];