@iris-code/core 0.4.1 → 0.4.3
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/gate.d.ts +11 -1
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +26 -4
- package/dist/gate.js.map +1 -1
- package/dist/guards.d.ts.map +1 -1
- package/dist/guards.js +10 -2
- package/dist/guards.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/rules.d.ts +76 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +380 -0
- package/dist/rules.js.map +1 -0
- package/dist/secrets.d.ts.map +1 -1
- package/dist/secrets.js +69 -0
- package/dist/secrets.js.map +1 -1
- package/dist/ts/analyser.d.ts.map +1 -1
- package/dist/ts/analyser.js +104 -6
- package/dist/ts/analyser.js.map +1 -1
- package/dist/ts/lexer.d.ts +56 -0
- package/dist/ts/lexer.d.ts.map +1 -0
- package/dist/ts/lexer.js +281 -0
- package/dist/ts/lexer.js.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/ts/analyser.js
CHANGED
|
@@ -7,6 +7,7 @@ const securityContext_1 = require("../securityContext");
|
|
|
7
7
|
const guards_1 = require("../guards");
|
|
8
8
|
const scoring_1 = require("../scoring");
|
|
9
9
|
const sfc_1 = require("../sfc");
|
|
10
|
+
const lexer_1 = require("./lexer");
|
|
10
11
|
// --- regex constants ---
|
|
11
12
|
const FUNCTION_DECL_RE = /(?:^|\s)(?:async\s+)?function\s+(\w+)\s*\(/gm;
|
|
12
13
|
// Two deliberate hardenings here, both from the 2026-08-04 security pass, which
|
|
@@ -33,6 +34,13 @@ const IMPORT_RE = /^import\s+(?:.+\s+from\s+)?['"]([^'"]+)['"]/gm;
|
|
|
33
34
|
const EXPORT_FROM_RE = /^export\s+(?:.+\s+from\s+)?['"]([^'"]+)['"]/gm;
|
|
34
35
|
const REQUIRE_RE = /\brequire\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
35
36
|
const DYNAMIC_IMPORT_RE = /\bimport\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
37
|
+
// Plain substring test, deliberately not a regex. This is a SECONDARY check -
|
|
38
|
+
// the primary detector has already matched this line - so word boundaries buy
|
|
39
|
+
// nothing here, and the escaped pattern kept losing its backslashes in transit,
|
|
40
|
+
// once leaving an unescaped dot that would have matched any character.
|
|
41
|
+
function mentionsLocalhost(value) {
|
|
42
|
+
return value.includes('localhost') || value.includes('127.0.0.1');
|
|
43
|
+
}
|
|
36
44
|
const BUILTIN_PREFIXES = ['.', '/', 'node:'];
|
|
37
45
|
const NODE_BUILTINS = new Set([
|
|
38
46
|
'fs', 'path', 'os', 'crypto', 'http', 'https', 'net', 'stream',
|
|
@@ -132,6 +140,49 @@ function stripQuotedTextPreserveNewlines(source, quotes) {
|
|
|
132
140
|
}
|
|
133
141
|
return result;
|
|
134
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* True when a localhost mention sits inside PROSE rather than being the value.
|
|
145
|
+
*
|
|
146
|
+
* A real finding is a URL that IS the string: `const u = "http://localhost:3000"`,
|
|
147
|
+
* `fetch("http://localhost:8080/api")`, `baseURL: 'http://localhost:5000'`. Teaching
|
|
148
|
+
* material embeds it in a sentence - "Open DBeaver and connect to localhost:1433
|
|
149
|
+
* with your credentials" - and a rule that cannot tell them apart reports the
|
|
150
|
+
* documentation as a misconfiguration.
|
|
151
|
+
*
|
|
152
|
+
* Requires FIVE or more words inside the quoted run, borrowing the floor the
|
|
153
|
+
* log-message rule in secrets.ts already uses, so a short label like
|
|
154
|
+
* "localhost dev server" still reports. Only the quoted text is considered:
|
|
155
|
+
* surrounding code never makes a mention prose.
|
|
156
|
+
*/
|
|
157
|
+
function mentionIsProse(line) {
|
|
158
|
+
// Scanned character by character rather than by regex. A quoted-run pattern
|
|
159
|
+
// needs a backreference plus a negated class holding all three quote
|
|
160
|
+
// characters, and that did not survive the tooling intact - one attempt
|
|
161
|
+
// silently produced split(/s+/), which splits on the letter "s".
|
|
162
|
+
let i = 0;
|
|
163
|
+
while (i < line.length) {
|
|
164
|
+
const quote = line[i];
|
|
165
|
+
if (quote !== '"' && quote !== "'" && quote !== '`') {
|
|
166
|
+
i++;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const start = ++i;
|
|
170
|
+
while (i < line.length && line[i] !== quote) {
|
|
171
|
+
if (line[i] === '\\')
|
|
172
|
+
i++;
|
|
173
|
+
i++;
|
|
174
|
+
}
|
|
175
|
+
if (i >= line.length)
|
|
176
|
+
break;
|
|
177
|
+
const value = line.slice(start, i);
|
|
178
|
+
i++;
|
|
179
|
+
if (!mentionsLocalhost(value))
|
|
180
|
+
continue;
|
|
181
|
+
if (value.trim().split(/\s+/).filter(Boolean).length >= 5)
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
135
186
|
function findFunctionEnd(lines, startLine) {
|
|
136
187
|
let depth = 0;
|
|
137
188
|
let parenDepth = 0;
|
|
@@ -363,7 +414,15 @@ function detectUnusedImports(source) {
|
|
|
363
414
|
}
|
|
364
415
|
// --- core detectors ---
|
|
365
416
|
function detectFunctions(source) {
|
|
366
|
-
|
|
417
|
+
// STRINGS ARE BLANKED, not just comments. Sample code quoted inside a string -
|
|
418
|
+
// a tutorial, a template, a docs snippet - was detected as a real function:
|
|
419
|
+
// `"export function priceBand(row) {\n"` in a playground component produced a
|
|
420
|
+
// phantom function whose body never closes, so it also skewed every length and
|
|
421
|
+
// count derived from it. Found 2026-08-31 while auditing the JSX change.
|
|
422
|
+
//
|
|
423
|
+
// typescriptCodeOnly is length- and line-preserving, so lineOf below still
|
|
424
|
+
// reports the true line.
|
|
425
|
+
const stripped = (0, lexer_1.typescriptCodeOnly)(source);
|
|
367
426
|
const results = [];
|
|
368
427
|
const NOISE = new Set(['if', 'for', 'while', 'switch', 'catch', 'return']);
|
|
369
428
|
for (const re of [FUNCTION_DECL_RE, ARROW_FN_RE, METHOD_RE]) {
|
|
@@ -493,11 +552,23 @@ function detectCodeSmells(source, functions, lineCount, config, isTest = false)
|
|
|
493
552
|
}
|
|
494
553
|
const todos = [];
|
|
495
554
|
if (config.enableTodoDetection) {
|
|
496
|
-
|
|
555
|
+
// BLOCK COMMENTS COUNT TOO. This matched `//` only, so `/* TODO */` was
|
|
556
|
+
// missed in every file type - and in JSX, `{/* TODO */}` is the ONLY way to
|
|
557
|
+
// write a comment inside markup, so the gap fell hardest exactly where
|
|
558
|
+
// people write them. Found 2026-08-31 while confirming which rules still see
|
|
559
|
+
// JSX content; it was never JSX-specific.
|
|
560
|
+
//
|
|
561
|
+
// `(?<!:)` keeps a URL from faking a comment opener: `https://x.co TODO` is
|
|
562
|
+
// not a TODO comment, the same trap the lexer hit with `://`.
|
|
563
|
+
const todoRe = /(?<!:)(?:\/\/|\/\*)[^\n]*?\b(TODO|FIXME|HACK)\b[:\s]*([^\n]*)/;
|
|
497
564
|
lines.forEach((line, i) => {
|
|
498
565
|
const m = todoRe.exec(line);
|
|
499
|
-
|
|
500
|
-
|
|
566
|
+
// Trim the block-comment tail so the text reads the same either way:
|
|
567
|
+
// `{/* TODO: paginate */}` yields "paginate", not "paginate */}".
|
|
568
|
+
if (m) {
|
|
569
|
+
const text = m[2].replace(/\*\/\s*\}?\s*$/, '').trim();
|
|
570
|
+
todos.push({ text: `${m[1]}: ${text}`.trim(), line: i + 1 });
|
|
571
|
+
}
|
|
501
572
|
});
|
|
502
573
|
}
|
|
503
574
|
let deepNesting = 0;
|
|
@@ -609,7 +680,18 @@ function detectCodeSmells(source, functions, lineCount, config, isTest = false)
|
|
|
609
680
|
localRe.lastIndex = 0;
|
|
610
681
|
let lh;
|
|
611
682
|
while ((lh = localRe.exec(stripped)) !== null) {
|
|
612
|
-
|
|
683
|
+
const line = (0, lines_1.lineOf)(source, lh.index);
|
|
684
|
+
// PROSE IS NOT CONFIGURATION. A Pro user's teaching material explained how
|
|
685
|
+
// to connect to a local database in DBeaver, and every mention of
|
|
686
|
+
// localhost in the instructions was reported as a hardcoded endpoint.
|
|
687
|
+
//
|
|
688
|
+
// The discriminator is that a real finding is essentially the WHOLE
|
|
689
|
+
// string - `const url = "http://localhost:3000"` - while prose embeds it
|
|
690
|
+
// in a sentence. Same shape as the log-message rule in secrets.ts, which
|
|
691
|
+
// makes a message prove itself rather than assuming.
|
|
692
|
+
if (mentionIsProse(lines[line - 1] ?? ''))
|
|
693
|
+
continue;
|
|
694
|
+
hardcodedLocalhost.push({ line });
|
|
613
695
|
}
|
|
614
696
|
}
|
|
615
697
|
const tlsRe = /rejectUnauthorized\s*:\s*false/g;
|
|
@@ -695,9 +777,25 @@ function detectWarnings(lineCount, functions, thirdPartyImports, source, config,
|
|
|
695
777
|
}
|
|
696
778
|
const srcLines = source.split('\n');
|
|
697
779
|
const errorThreshold = config.functionLengthThreshold * 2;
|
|
780
|
+
// JSX MARKUP IS NOT FUNCTION LENGTH. Half of a flagged component's measured
|
|
781
|
+
// span was markup, which made this rule fire on 34% of .tsx files against 2%
|
|
782
|
+
// of .ts - a 17x skew that had nothing to do with the code being long.
|
|
783
|
+
//
|
|
784
|
+
// Scoped to THIS rule on purpose: file-too-long above still counts every line,
|
|
785
|
+
// so a 400-line component is still a long file that should be split. See
|
|
786
|
+
// jsxMarkupLines for why discounting beats raising the threshold, and why a
|
|
787
|
+
// markup line carrying logic still counts.
|
|
788
|
+
const markupLines = (0, lexer_1.jsxMarkupLines)(source);
|
|
698
789
|
for (const fn of functions) {
|
|
699
790
|
const endLine = findFunctionEnd(srcLines, fn.line);
|
|
700
|
-
|
|
791
|
+
let span = endLine - fn.line + 1;
|
|
792
|
+
if (markupLines.size > 0) {
|
|
793
|
+
let markup = 0;
|
|
794
|
+
for (let line = fn.line; line <= endLine; line++)
|
|
795
|
+
if (markupLines.has(line))
|
|
796
|
+
markup++;
|
|
797
|
+
span -= markup;
|
|
798
|
+
}
|
|
701
799
|
if (span > errorThreshold) {
|
|
702
800
|
warnings.push({ type: 'function-too-long', message: `${fn.name} is ~${span} lines (>${errorThreshold})`, severity: sev('function-too-long', 'error'), line: fn.line });
|
|
703
801
|
}
|
package/dist/ts/analyser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyser.js","sourceRoot":"","sources":["../../src/ts/analyser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyser.js","sourceRoot":"","sources":["../../src/ts/analyser.ts"],"names":[],"mappings":";;AAo0BA,8BAuCC;AA12BD,oCAAiC;AAUjC,wCAAmD;AACnD,wDAAuD;AACvD,sCAAsC;AACtC,wCAA+C;AAC/C,gCAA8C;AAC9C,mCAA4D;AAE5D,0BAA0B;AAE1B,MAAM,gBAAgB,GAAG,8CAA8C,CAAA;AACvE,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,iFAAiF;AACjF,6EAA6E;AAC7E,gFAAgF;AAChF,+CAA+C;AAC/C,iEAAiE;AACjE,iFAAiF;AACjF,2DAA2D;AAC3D,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,UAAU,GAAG,mBAAmB,CAAA;AACtC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,4EAA4E,UAAU,6CAA6C,EAAE,IAAI,CAAC,CAAA;AACzK,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,4CAA4C,UAAU,uCAAuC,EAAE,IAAI,CAAC,CAAA;AACjI,MAAM,SAAS,GAAG,+CAA+C,CAAA;AACjE,MAAM,cAAc,GAAG,+CAA+C,CAAA;AACtE,MAAM,UAAU,GAAG,sCAAsC,CAAA;AACzD,MAAM,iBAAiB,GAAG,qCAAqC,CAAA;AAE/D,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,uEAAuE;AACvE,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;IAC9D,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe;IACjE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB;IAChE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAC9D,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW;CACtE,CAAC,CAAA;AAEF,kBAAkB;AAElB,wFAAwF;AACxF,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,MAAc;IACzC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAA;IACzB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,MAAM,IAAI,EAAE,CAAC;YAAC,CAAC,EAAE,CAAA;YACjB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACnB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAAC,CAAC,IAAI,CAAC,CAAA;gBAAC,CAAC;qBAC1D,CAAC;oBAAC,MAAM,IAAI,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,MAAK;gBAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,GAAG,CAAC;gBAAC,CAAC,EAAE,CAAA;YAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,GAAG,CAAC;YAAC,CAAC,EAAE,CAAA;YACtC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBAAC,MAAM,IAAI,IAAI,CAAC;oBAAC,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAK;gBAAC,CAAC;gBACjF,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAC,CAAC,EAAE,CAAA;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,EAAE,CAAC;YAAC,CAAC,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAc,EAAE,MAAgB;IACvE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,EAAE,CAAA;YACZ,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,MAAM,IAAI,GAAG,CAAA;QACb,CAAC,EAAE,CAAA;QACH,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,IAAI,CAAA;gBACd,CAAC,EAAE,CAAA;gBACH,SAAQ;YACV,CAAC;YACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,CAAA;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;gBAC/C,CAAC;gBACD,CAAC,IAAI,CAAC,CAAA;gBACN,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,GAAG,CAAA;YACb,CAAC,EAAE,CAAA;YACH,IAAI,OAAO,KAAK,EAAE;gBAAE,MAAK;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,4EAA4E;IAC5E,qEAAqE;IACrE,wEAAwE;IACxE,iEAAiE;IACjE,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,SAAQ;QAAC,CAAC;QACtE,MAAM,KAAK,GAAG,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,CAAC,EAAE,CAAA;YACzB,CAAC,EAAE,CAAA;QACL,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,MAAK;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC,EAAE,CAAA;QACH,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAAE,SAAQ;QACvC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IACxE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAE,SAAiB;IACzD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAA;gBACjB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;wBAAE,CAAC,EAAE,CAAC;oBAAC,CAAC,EAAE,CAAA;gBAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7C,MAAK;YACP,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,UAAU,EAAE,CAAA;YACd,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;YAC1C,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC1C,gEAAgE;gBAChE,qEAAqE;gBACrE,+DAA+D;gBAC/D,6DAA6D;gBAC7D,qEAAqE;gBACrE,oEAAoE;gBACpE,oEAAoE;gBACpE,yCAAyC;gBACzC,KAAK,EAAE,CAAC;gBAAC,SAAS,GAAG,IAAI,CAAA;YAC3B,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,IAAI,UAAU,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;gBACvD,KAAK,EAAE,CAAA;gBACP,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAA;YAC/B,CAAC;YACD,CAAC,EAAE,CAAA;QACL,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,+EAA+E;AAC/E,wEAAwE;AACxE,yEAAyE;AACzE,yEAAyE;AACzE,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,8EAA8E;AAC9E,wEAAwE;AACxE,0CAA0C;AAC1C,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IACvB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,UAAU,GAAG,qBAAqB,CAAA;IACxC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAEhE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAEpB,IAAI,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAA;YAAC,CAAC;YAC1D,SAAQ;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC,IAAI,CAAC,CAAA;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAA;YAAC,CAAC;YAClG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAAC,CAAC,IAAI,CAAC,CAAA;YAAC,CAAC;YACzC,SAAQ;QACV,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACjD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC,EAAE,CAAA,CAAC,gBAAgB;YACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACnB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACf,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;oBAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC1E,CAAC,IAAI,CAAC,CAAA;oBACN,SAAQ;gBACV,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;oBAAC,MAAK;gBAAC,CAAC;gBAC1C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzD,CAAC,EAAE,CAAA;YACL,CAAC;YACD,OAAO,GAAG,CAAC,CAAA;YACX,SAAQ;QACV,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,OAAO,KAAK,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAClE,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAA;gBAClB,IAAI,OAAO,GAAG,KAAK,CAAA;gBACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACb,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;oBACnB,IAAI,CAAC,KAAK,IAAI;wBAAE,MAAK;oBACrB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;wBAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;4BAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,SAAQ;oBAAC,CAAC;oBACzF,IAAI,CAAC,KAAK,GAAG;wBAAE,OAAO,GAAG,IAAI,CAAA;yBACxB,IAAI,CAAC,KAAK,GAAG;wBAAE,OAAO,GAAG,KAAK,CAAA;oBACnC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAA;oBAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO;wBAAE,MAAK;gBAClC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAA;gBAAC,CAAC;gBAChE,OAAO,GAAG,GAAG,CAAA;gBACb,SAAQ;YACV,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,GAAG,GAAG,CAAC;YAAC,CAAC,EAAE,CAAA;YACjC,SAAQ;QACV,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,EAAE,CAAA;QAChC,CAAC,EAAE,CAAA;IACL,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3B,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAGD,kCAAkC;AAElC,SAAS,qBAAqB,CAAC,UAAkB,EAAE,SAAiB;IAClE,MAAM,QAAQ,GAAmB,EAAE,CAAA;IACnC,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,QAAQ,CAAA;IAE7D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAA;IACtE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAA;IAE/B,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAEpF,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEjE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC,CAAC;gBAAE,SAAQ;YAChB,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM;SACvB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,IAAI,EAAE,CAAA;IACT,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAEnG,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,WAAW,GAAmB,EAAE,CAAA;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IAEvC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QACpC,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;YACvB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACzB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjE,CAAC,EAAE,CAAA;gBACH,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACpB,UAAU,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,CAAC,EAAE,CAAA;IACL,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE9E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC5B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/E,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,yBAAyB;AAEzB,SAAS,eAAe,CAAC,MAAc;IACrC,+EAA+E;IAC/E,4EAA4E;IAC5E,8EAA8E;IAC9E,+EAA+E;IAC/E,yEAAyE;IACzE,EAAE;IACF,2EAA2E;IAC3E,yBAAyB;IACzB,MAAM,QAAQ,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1E,KAAK,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5D,EAAE,CAAC,SAAS,GAAG,CAAC,CAAA;QAChB,IAAI,KAA6B,CAAA;QACjC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACxB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAA;IAE3E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QACrB,IAAI,KAA6B,CAAA;QACjC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;oBACnC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC5C,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,SAAS,eAAe,CACtB,MAAc,EACd,SAAiB,EACjB,SAAyB,EACzB,iBAA2B;IAE3B,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;IAE3C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAChC,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAA;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC,EAAE,CAAC,CAAC,CAAA;IACL,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAE/D,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IACnG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;IAE9C,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc,EAAE,MAAkB;IACjE,MAAM,SAAS,GAAuB,EAAE,CAAA;IAExC,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,SAAS,GAAG,+BAA+B,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/F,MAAM,UAAU,GAAG,yBAAyB,CAAA;IAC5C,UAAU,CAAC,SAAS,GAAG,CAAC,CAAA;IACxB,IAAI,EAA0B,CAAA;IAC9B,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IACvE,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAClF,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IACvE,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAEzE,IAAI,kBAAkB,GAAG,CAAC,CAAA;IAC1B,IAAI,MAAM,CAAC,+BAA+B,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;QAChG,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;QAC/H,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,kBAAkB,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;AAChH,CAAC;AAED,qFAAqF;AACrF,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,KAAe,EAAE,YAAoB;IAC9D,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,KAAK,GAAG,CAAC,CAAA;gBAAC,CAAC;;oBACtC,KAAK,EAAE,CAAA;YACd,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;gBACjC,KAAK,EAAE,CAAA;gBACP,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,SAAS,CAAA;;oBAC5B,SAAS,IAAI,EAAE,CAAA;YACtB,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,SAAS,IAAI,EAAE,CAAA;YACjB,CAAC;QACH,CAAC;QACD,IAAI,OAAO;YAAE,SAAS,IAAI,GAAG,CAAA;IAC/B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAc,EACd,SAAyB,EACzB,SAAiB,EACjB,MAAkB,EAClB,MAAM,GAAG,KAAK;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhC,MAAM,WAAW,GAAuB,EAAE,CAAA;IAC1C,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACpC,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,mCAAmC,CAAA;QAClD,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;QACpB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAqC,EAAE,CAAA;IAClD,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC/B,wEAAwE;QACxE,4EAA4E;QAC5E,uEAAuE;QACvE,6EAA6E;QAC7E,0CAA0C;QAC1C,EAAE;QACF,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,MAAM,GAAG,+DAA+D,CAAA;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,qEAAqE;YACrE,kEAAkE;YAClE,IAAI,CAAC,EAAE,CAAC;gBACN,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBACtD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAClC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;YACvB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACrD,CAAC,EAAE,CAAC,CAAC,CAAA;QACL,IAAI,SAAS,IAAI,CAAC;YAAE,WAAW,EAAE,CAAA;IACnC,CAAC;IAED,MAAM,kBAAkB,GAAyD,EAAE,CAAA;IACnF,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;gBAChE,IAAI,UAAU,IAAI,MAAM,CAAC,iBAAiB;oBAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;YACnH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAsC,EAAE,CAAA;IAC1D,IAAI,MAAM,CAAC,0BAA0B,EAAE,CAAC;QACtC,wDAAwD;QACxD,gDAAgD;QAChD,gHAAgH;QAChH,MAAM,aAAa,GACjB,uPAAuP,CAAA;QACzP,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,MAAM,cAAc,GAAG,+BAA+B,CACpD,mBAAmB,CAAC,MAAM,CAAC,EAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAChB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACb,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAM;YACxC,MAAM,KAAK,GAAG,sBAAsB,CAAA;YACpC,IAAI,EAA0B,CAAA;YAC9B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;gBACf,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,qBAAqB;QAClE,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC;QAC7C,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;IAE3C,0BAA0B;IAC1B,MAAM,SAAS,GAAuB,EAAE,CAAA;IACxC,MAAM,gBAAgB,GAAuB,EAAE,CAAA;IAC/C,MAAM,cAAc,GAAuB,EAAE,CAAA;IAC7C,MAAM,WAAW,GAAuB,EAAE,CAAA;IAC1C,MAAM,kBAAkB,GAAuB,EAAE,CAAA;IACjD,MAAM,uBAAuB,GAAuB,EAAE,CAAA;IACtD,MAAM,iBAAiB,GAAuB,EAAE,CAAA;IAChD,MAAM,WAAW,GAAuB,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAuB,EAAE,CAAA;IAE3C,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAE5C,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,6EAA6E;QAC7E,MAAM,UAAU,GAAG,+BAA+B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,kCAAkC,CAAA;QACjD,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;QACpB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,4EAA4E,CAAA;QAC1F,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;QACnB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,sDAAsD;QACtD,MAAM,QAAQ,GAAG,qEAAqE,CAAA;QACtF,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAA;QACtB,IAAI,GAA2B,CAAA;QAC/B,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5D,CAAC;QAED,MAAM,KAAK,GAAG,sBAAsB,CAAA;QACpC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;QACnB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAA,oCAAkB,EAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,6BAA6B,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,6BAA6B,CAAA;YAC7C,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;YACrB,IAAI,EAA0B,CAAA;YAC9B,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;gBACrC,2EAA2E;gBAC3E,kEAAkE;gBAClE,sEAAsE;gBACtE,EAAE;gBACF,oEAAoE;gBACpE,yEAAyE;gBACzE,yEAAyE;gBACzE,qDAAqD;gBACrD,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBAAE,SAAQ;gBACnD,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,iCAAiC,CAAA;QAC/C,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;QACnB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,wBAAwB,CAAA;YACtC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;YACnB,IAAI,EAA0B,CAAA;YAC9B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,mDAAmD,CAAA;QAClE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;QACpB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,UAAU,GAAG,qGAAqG,CAAA;QACxH,UAAU,CAAC,SAAS,GAAG,CAAC,CAAA;QACxB,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAuB,EAAE,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA;AAChX,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAc,EACd,SAAyB;IAEzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,UAAU,GAAmB,EAAE,CAAA;IACrC,MAAM,eAAe,GAAmB,EAAE,CAAA;IAE1C,2BAA2B;IAC3B,uFAAuF;IACvF,2CAA2C;IAC3C,MAAM,SAAS,GAAG,kDAAkD,CAAA;IACpE,SAAS,CAAC,SAAS,GAAG,CAAC,CAAA;IACvB,IAAI,EAA0B,CAAA;IAC9B,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,IAAI,GAAG,IAAA,cAAM,EAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACtC,6BAA6B;QAC7B,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACzC,4FAA4F;QAC5F,IAAI,oCAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACjE,kCAAkC;QAClC,IAAI,IAAI,KAAK,GAAG;YAAE,SAAQ;QAC1B,4FAA4F;QAC5F,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjF,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACzC,0BAA0B;QAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAQ;QACzC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpF,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,cAAc,CACrB,SAAiB,EACjB,SAAyB,EACzB,iBAA2B,EAC3B,MAAc,EACd,MAAkB,EAClB,QAAQ,GAAG,EAAE;IAEb,MAAM,QAAQ,GAAc,EAAE,CAAA;IAE9B,MAAM,GAAG,GAAG,CAAC,IAAqB,EAAE,QAA6B,EAAuB,EAAE,CACvF,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAyB,IAAI,QAAQ,CAAA;IAErE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,IAAI,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,SAAS,YAAY,MAAM,CAAC,mBAAmB,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAC3J,CAAC;SAAM,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,SAAS,YAAY,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;IAC3I,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,cAAc,GAAG,MAAM,CAAC,uBAAuB,GAAG,CAAC,CAAA;IACzD,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,EAAE;IACF,+EAA+E;IAC/E,yEAAyE;IACzE,4EAA4E;IAC5E,2CAA2C;IAC3C,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAA;IAC1C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAA;QAChC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE;gBAAE,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,MAAM,EAAE,CAAA;YACrF,IAAI,IAAI,MAAM,CAAA;QAChB,CAAC;QACD,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,QAAQ,IAAI,YAAY,cAAc,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QACxK,CAAC;aAAM,IAAI,IAAI,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,QAAQ,IAAI,YAAY,MAAM,CAAC,uBAAuB,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1L,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,MAAM,4BAA4B,MAAM,CAAC,mBAAmB,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;IACtL,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,MAAM,0BAA0B,MAAM,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;IACtL,CAAC;IAED,0EAA0E;IAC1E,+EAA+E;IAC/E,8EAA8E;IAC9E,qFAAqF;IACrF,EAAE;IACF,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,8EAA8E;IAC9E,8EAA8E;IAC9E,sBAAsB;IACtB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,iBAAiB,GAAG,2CAA2C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClF,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAA,2BAAqB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5G,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAgB,SAAS,CAAC,MAAc,EAAE,MAAkB,EAAE,QAAQ,GAAG,EAAE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAA;IACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAA;IAC/D,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;IAExC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,YAAY,CAAA;IAEhB,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;IACxF,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAClG,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,CAAA;IAC/F,MAAM,gBAAgB,GAAG,IAAA,gCAAsB,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;IACvF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAe;QAC7B,GAAG,UAAU;QACb,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,gBAAgB;KACjB,CAAA;IACD,MAAM,WAAW,GAAG,IAAA,4BAAkB,EAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IAEvF,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,SAAS;QACT,iBAAiB;QACjB,aAAa;QACb,eAAe;QACf,QAAQ;QACR,iBAAiB;QACjB,UAAU;QACV,WAAW;KACZ,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript/TypeScript lexical sanitiser, in the same family as the C#, Java
|
|
3
|
+
* and Rust ones and for the same reason: `detectParseErrorReason` balances
|
|
4
|
+
* delimiters BEFORE any analyser runs, so a construct the scanner reads wrongly
|
|
5
|
+
* counts braces at the wrong depth, reports a false parse error, and zeroes
|
|
6
|
+
* every finding in the file - which presents as a broken file and fails the
|
|
7
|
+
* gate, on code the compiler accepts.
|
|
8
|
+
*
|
|
9
|
+
* JS/TS was the last language WITHOUT one, and it carries the two constructs
|
|
10
|
+
* below. Both were reported from real codebases on 2026-08-31 (an admin app and
|
|
11
|
+
* a Pro user's project), not found by fixtures.
|
|
12
|
+
*
|
|
13
|
+
* 1. REGEX LITERALS. `stripQuotedText` handles quotes; nothing handled regexes,
|
|
14
|
+
* so every bracket inside one was counted as code. `/[a]/` survived by
|
|
15
|
+
* accident because its brackets balance, but `/\[/`, `/\]/`, `/[^\]]/` and
|
|
16
|
+
* `/{/` each zeroed the file. That is ordinary markdown, escaping and
|
|
17
|
+
* validation code - `bench/RISK.md` listed only `/{/` and read as an exotic
|
|
18
|
+
* edge case.
|
|
19
|
+
*
|
|
20
|
+
* 2. `://` IN UNQUOTED TEXT. `//` opened a line comment anywhere outside a
|
|
21
|
+
* string, so a URL in JSX text - `<code></code>` - ate the
|
|
22
|
+
* rest of the line including its closing `}` and `</div>`. Strings were
|
|
23
|
+
* already safe; JSX text is not quoted, so it was not.
|
|
24
|
+
*
|
|
25
|
+
* Length- and line-preserving: every blanked character becomes a space and CR/LF
|
|
26
|
+
* are kept, so offsets and line numbers are identical to the original and no
|
|
27
|
+
* remapping layer exists to drift.
|
|
28
|
+
*/
|
|
29
|
+
/** Comments blanked, string contents intact. */
|
|
30
|
+
export declare function stripTypeScriptComments(source: string): string;
|
|
31
|
+
/** Comments, strings AND regex literals blanked: the input for anything structural. */
|
|
32
|
+
export declare function typescriptCodeOnly(source: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Line numbers (1-based) that are PURE JSX MARKUP and therefore not logic.
|
|
35
|
+
*
|
|
36
|
+
* WHY THIS EXISTS. `function-too-long` counted markup as function length, so a
|
|
37
|
+
* component whose measured "length" was half JSX read as a long function. The
|
|
38
|
+
* skew is 17x: at the default threshold, 34% of .tsx files were flagged against
|
|
39
|
+
* 2% of .ts files, and the median flagged component was 47-50% markup.
|
|
40
|
+
*
|
|
41
|
+
* Raising the threshold instead was measured and rejected - it removes LESS
|
|
42
|
+
* noise while losing MORE signal, because it silences the shortest flagged
|
|
43
|
+
* functions regardless of whether markup inflated them. Discounting markup keeps
|
|
44
|
+
* 100% of functions with genuinely long logic; raising to 60 lost 17-21% of them.
|
|
45
|
+
*
|
|
46
|
+
* SCOPED TO FUNCTION LENGTH ONLY. `file-too-long` and `too-many-functions` still
|
|
47
|
+
* count every line, deliberately: a 400-line component is still a long file that
|
|
48
|
+
* should be split, and that is where the pressure to decompose belongs. Vue and
|
|
49
|
+
* Svelte have always worked this way - a 120-line template reports codeLines 1
|
|
50
|
+
* while lineCount stays 126 - so this makes JSX consistent rather than special.
|
|
51
|
+
*
|
|
52
|
+
* DEFAULTS TO LOGIC. Anything not clearly markup is counted, so the failure mode
|
|
53
|
+
* is under-discounting - a finding we keep - rather than silencing a real one.
|
|
54
|
+
*/
|
|
55
|
+
export declare function jsxMarkupLines(source: string): Set<number>;
|
|
56
|
+
//# sourceMappingURL=lexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/ts/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA4JH,gDAAgD;AAChD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAqCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAc1D"}
|
package/dist/ts/lexer.js
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JavaScript/TypeScript lexical sanitiser, in the same family as the C#, Java
|
|
4
|
+
* and Rust ones and for the same reason: `detectParseErrorReason` balances
|
|
5
|
+
* delimiters BEFORE any analyser runs, so a construct the scanner reads wrongly
|
|
6
|
+
* counts braces at the wrong depth, reports a false parse error, and zeroes
|
|
7
|
+
* every finding in the file - which presents as a broken file and fails the
|
|
8
|
+
* gate, on code the compiler accepts.
|
|
9
|
+
*
|
|
10
|
+
* JS/TS was the last language WITHOUT one, and it carries the two constructs
|
|
11
|
+
* below. Both were reported from real codebases on 2026-08-31 (an admin app and
|
|
12
|
+
* a Pro user's project), not found by fixtures.
|
|
13
|
+
*
|
|
14
|
+
* 1. REGEX LITERALS. `stripQuotedText` handles quotes; nothing handled regexes,
|
|
15
|
+
* so every bracket inside one was counted as code. `/[a]/` survived by
|
|
16
|
+
* accident because its brackets balance, but `/\[/`, `/\]/`, `/[^\]]/` and
|
|
17
|
+
* `/{/` each zeroed the file. That is ordinary markdown, escaping and
|
|
18
|
+
* validation code - `bench/RISK.md` listed only `/{/` and read as an exotic
|
|
19
|
+
* edge case.
|
|
20
|
+
*
|
|
21
|
+
* 2. `://` IN UNQUOTED TEXT. `//` opened a line comment anywhere outside a
|
|
22
|
+
* string, so a URL in JSX text - `<code></code>` - ate the
|
|
23
|
+
* rest of the line including its closing `}` and `</div>`. Strings were
|
|
24
|
+
* already safe; JSX text is not quoted, so it was not.
|
|
25
|
+
*
|
|
26
|
+
* Length- and line-preserving: every blanked character becomes a space and CR/LF
|
|
27
|
+
* are kept, so offsets and line numbers are identical to the original and no
|
|
28
|
+
* remapping layer exists to drift.
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.stripTypeScriptComments = stripTypeScriptComments;
|
|
32
|
+
exports.typescriptCodeOnly = typescriptCodeOnly;
|
|
33
|
+
exports.jsxMarkupLines = jsxMarkupLines;
|
|
34
|
+
/** Characters after which a `/` opens a REGEX rather than dividing. */
|
|
35
|
+
const REGEX_PRECEDERS = new Set([
|
|
36
|
+
'(', ',', '=', ':', '[', '!', '&', '|', '?', '{', '}', ';', '+', '-', '*', '~', '^', '%', '>', '\n',
|
|
37
|
+
]);
|
|
38
|
+
/**
|
|
39
|
+
* `<` is deliberately NOT a regex preceder, because in JSX it means a CLOSING
|
|
40
|
+
* TAG. `</p>` read as a regex opener swallowed everything up to the next slash -
|
|
41
|
+
* which is how `<div>{cond ? <p>…</p> : null}</div>` lost its closing brace and
|
|
42
|
+
* reported a mismatched `}`. Nobody writes `a < /re/.test(b)`, so the JSX
|
|
43
|
+
* reading wins outright.
|
|
44
|
+
*/
|
|
45
|
+
const NEVER_REGEX_AFTER = new Set(['<', ')', ']']);
|
|
46
|
+
/**
|
|
47
|
+
* Keywords after which a `/` opens a regex even though the previous character is
|
|
48
|
+
* a letter. `return /^a/` is the common one; without this the regex is read as
|
|
49
|
+
* division and its brackets leak into the delimiter count.
|
|
50
|
+
*/
|
|
51
|
+
const REGEX_KEYWORDS = new Set([
|
|
52
|
+
'return', 'typeof', 'instanceof', 'in', 'of', 'new', 'delete', 'void',
|
|
53
|
+
'case', 'do', 'else', 'yield', 'await', 'throw',
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* Decides regex-versus-division from what precedes the slash.
|
|
57
|
+
*
|
|
58
|
+
* The bias is deliberate. Reading a regex as division is today's bug and merely
|
|
59
|
+
* miscounts brackets; reading division as a regex would blank live code up to
|
|
60
|
+
* the next slash, which could invent a parse error in a file that has none. So
|
|
61
|
+
* anything that can legitimately END an expression - an identifier, a number, a
|
|
62
|
+
* closing paren or bracket - is treated as division unless it is one of the
|
|
63
|
+
* keywords above.
|
|
64
|
+
*/
|
|
65
|
+
function opensRegex(code, slashIndex) {
|
|
66
|
+
// `/>` CLOSES A JSX TAG. This is checked first and unconditionally, because the
|
|
67
|
+
// character before it is whatever the last attribute ended with - `}` after
|
|
68
|
+
// `bar={x} />`, or `=` once a string attribute has been blanked - and both are
|
|
69
|
+
// otherwise regex openers. That misreading swallowed whole JSX subtrees up to
|
|
70
|
+
// the next slash, and only showed up on components with attributes: `<br/>` and
|
|
71
|
+
// `<Save />` were fine because a letter precedes them.
|
|
72
|
+
//
|
|
73
|
+
// Safe in the other direction too. A genuine `/>/ ` regex read as division only
|
|
74
|
+
// miscounts `>`, which is not a delimiter this scanner tracks at all.
|
|
75
|
+
if (code[slashIndex + 1] === '>')
|
|
76
|
+
return false;
|
|
77
|
+
let i = slashIndex - 1;
|
|
78
|
+
while (i >= 0 && (code[i] === ' ' || code[i] === '\t' || code[i] === '\r'))
|
|
79
|
+
i--;
|
|
80
|
+
if (i < 0)
|
|
81
|
+
return true;
|
|
82
|
+
const prev = code[i];
|
|
83
|
+
// Checked BEFORE the preceder set: `)` and `]` end an expression, and `<` is a
|
|
84
|
+
// JSX closing tag. `if (x) /re/.test(y)` is legal but vanishingly rare beside
|
|
85
|
+
// `(a + b) / c`, so division wins.
|
|
86
|
+
if (NEVER_REGEX_AFTER.has(prev))
|
|
87
|
+
return false;
|
|
88
|
+
if (REGEX_PRECEDERS.has(prev))
|
|
89
|
+
return true;
|
|
90
|
+
if (/[A-Za-z0-9_$]/.test(prev)) {
|
|
91
|
+
let end = i + 1;
|
|
92
|
+
let start = i;
|
|
93
|
+
while (start >= 0 && /[A-Za-z0-9_$]/.test(code[start]))
|
|
94
|
+
start--;
|
|
95
|
+
const word = code.slice(start + 1, end);
|
|
96
|
+
return REGEX_KEYWORDS.has(word);
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
/** Blanks a run to spaces while preserving newlines, so lines never shift. */
|
|
101
|
+
function blank(source, from, to, out) {
|
|
102
|
+
for (let i = from; i < to; i++)
|
|
103
|
+
out.push(source[i] === '\n' || source[i] === '\r' ? source[i] : ' ');
|
|
104
|
+
}
|
|
105
|
+
function transformTypeScript(source, blankStrings) {
|
|
106
|
+
const out = [];
|
|
107
|
+
let i = 0;
|
|
108
|
+
while (i < source.length) {
|
|
109
|
+
const ch = source[i];
|
|
110
|
+
// `://` is a URL scheme in unquoted text such as JSX children, not a comment.
|
|
111
|
+
// Emitted verbatim and stepped past, so the following `/` cannot then be read
|
|
112
|
+
// as a regex opener either. Only an IMMEDIATELY preceding colon is exempted,
|
|
113
|
+
// so the ordinary `x ? y : // note` still strips as a comment.
|
|
114
|
+
if (ch === '/' && source[i + 1] === '/' && source[i - 1] === ':') {
|
|
115
|
+
out.push('/');
|
|
116
|
+
out.push('/');
|
|
117
|
+
i += 2;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
if (ch === '/' && source[i + 1] === '/') {
|
|
121
|
+
const start = i;
|
|
122
|
+
while (i < source.length && source[i] !== '\n')
|
|
123
|
+
i++;
|
|
124
|
+
blank(source, start, i, out);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (ch === '/' && source[i + 1] === '*') {
|
|
128
|
+
const start = i;
|
|
129
|
+
i += 2;
|
|
130
|
+
while (i < source.length && !(source[i] === '*' && source[i + 1] === '/'))
|
|
131
|
+
i++;
|
|
132
|
+
i = Math.min(source.length, i + 2);
|
|
133
|
+
blank(source, start, i, out);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (ch === '"' || ch === "'" || ch === '`') {
|
|
137
|
+
const quote = ch;
|
|
138
|
+
const start = i;
|
|
139
|
+
i++;
|
|
140
|
+
while (i < source.length) {
|
|
141
|
+
if (source[i] === '\\') {
|
|
142
|
+
i += 2;
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (source[i] === quote) {
|
|
146
|
+
i++;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
i++;
|
|
150
|
+
}
|
|
151
|
+
if (blankStrings)
|
|
152
|
+
blank(source, start, i, out);
|
|
153
|
+
else
|
|
154
|
+
for (let k = start; k < i; k++)
|
|
155
|
+
out.push(source[k]);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
if (ch === '/' && opensRegex(source, i)) {
|
|
159
|
+
const start = i;
|
|
160
|
+
i++;
|
|
161
|
+
let inClass = false;
|
|
162
|
+
let closed = false;
|
|
163
|
+
while (i < source.length) {
|
|
164
|
+
const c = source[i];
|
|
165
|
+
if (c === '\\') {
|
|
166
|
+
i += 2;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
// A newline cannot appear in a regex literal. Hitting one means this was
|
|
170
|
+
// division after all, so nothing is blanked and the scan resumes at the
|
|
171
|
+
// slash - safer than swallowing a line of real code.
|
|
172
|
+
if (c === '\n')
|
|
173
|
+
break;
|
|
174
|
+
if (c === '[')
|
|
175
|
+
inClass = true;
|
|
176
|
+
else if (c === ']')
|
|
177
|
+
inClass = false;
|
|
178
|
+
else if (c === '/' && !inClass) {
|
|
179
|
+
i++;
|
|
180
|
+
closed = true;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
i++;
|
|
184
|
+
}
|
|
185
|
+
if (closed) {
|
|
186
|
+
while (i < source.length && /[dgimsuvy]/.test(source[i]))
|
|
187
|
+
i++;
|
|
188
|
+
blank(source, start, i, out);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
i = start + 1;
|
|
192
|
+
out.push(ch);
|
|
193
|
+
}
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
out.push(ch);
|
|
197
|
+
i++;
|
|
198
|
+
}
|
|
199
|
+
return out.join('');
|
|
200
|
+
}
|
|
201
|
+
/** Comments blanked, string contents intact. */
|
|
202
|
+
function stripTypeScriptComments(source) {
|
|
203
|
+
return transformTypeScript(source, false);
|
|
204
|
+
}
|
|
205
|
+
/** Comments, strings AND regex literals blanked: the input for anything structural. */
|
|
206
|
+
function typescriptCodeOnly(source) {
|
|
207
|
+
return transformTypeScript(source, true);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Logic tokens. A line carrying any of these is COUNTED even if it also looks
|
|
211
|
+
* like markup, which is the whole point: `<Row onClick={() => remove(x.id)} />`
|
|
212
|
+
* is structurally a tag but holds a real handler, and a rule that lets logic hide
|
|
213
|
+
* behind an angle bracket forfeits the precision this change exists for.
|
|
214
|
+
*
|
|
215
|
+
* Measured at 3-5% of markup-shaped lines across two React codebases, so the
|
|
216
|
+
* hiding place is small but real.
|
|
217
|
+
*/
|
|
218
|
+
const LOGIC_TOKENS = /=>|\b(?:const|let|var|function|return|if|else|for|while|switch|case|try|catch|await|yield|throw|new|typeof|delete)\b|\.\w+\(|\?\?|&&|\|\||[?:]\s*\w|[-+*/%]=|={2,}/;
|
|
219
|
+
/**
|
|
220
|
+
* A line that is nothing but JSX structure: an opening or closing tag, a bare
|
|
221
|
+
* attribute, a self-closing terminator, or a JSX comment.
|
|
222
|
+
*/
|
|
223
|
+
const MARKUP_SHAPE = /^(?:<\/?[A-Za-z>]|\/>|\{\/\*|[A-Za-z-]+=["'{])/;
|
|
224
|
+
/**
|
|
225
|
+
* Does this file contain JSX at all?
|
|
226
|
+
*
|
|
227
|
+
* The gate that makes a non-React file untouched BY CONSTRUCTION rather than by
|
|
228
|
+
* MARKUP_SHAPE happening to be perfect - and it was not. Its first version
|
|
229
|
+
* accepted a bare identifier line, so `continue` on its own line read as a JSX
|
|
230
|
+
* attribute and 122 lines across this package's own source were discounted from
|
|
231
|
+
* function length. Found by the acceptance control, not by review.
|
|
232
|
+
*/
|
|
233
|
+
function containsJsx(blanked) {
|
|
234
|
+
// A CLOSING TAG or a SELF-CLOSING TERMINATOR only. Both are JSX-exclusive.
|
|
235
|
+
// The first version accepted any `<Ident>` and so matched TYPE PARAMETERS -
|
|
236
|
+
// `Array<string>`, `useQuery<Foo,\n>` - which let generic-heavy .ts files
|
|
237
|
+
// through the gate, where a lone `>` line was then discounted as markup.
|
|
238
|
+
return /<\/[A-Za-z][\w.]*\s*>|\/>/.test(blanked);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Line numbers (1-based) that are PURE JSX MARKUP and therefore not logic.
|
|
242
|
+
*
|
|
243
|
+
* WHY THIS EXISTS. `function-too-long` counted markup as function length, so a
|
|
244
|
+
* component whose measured "length" was half JSX read as a long function. The
|
|
245
|
+
* skew is 17x: at the default threshold, 34% of .tsx files were flagged against
|
|
246
|
+
* 2% of .ts files, and the median flagged component was 47-50% markup.
|
|
247
|
+
*
|
|
248
|
+
* Raising the threshold instead was measured and rejected - it removes LESS
|
|
249
|
+
* noise while losing MORE signal, because it silences the shortest flagged
|
|
250
|
+
* functions regardless of whether markup inflated them. Discounting markup keeps
|
|
251
|
+
* 100% of functions with genuinely long logic; raising to 60 lost 17-21% of them.
|
|
252
|
+
*
|
|
253
|
+
* SCOPED TO FUNCTION LENGTH ONLY. `file-too-long` and `too-many-functions` still
|
|
254
|
+
* count every line, deliberately: a 400-line component is still a long file that
|
|
255
|
+
* should be split, and that is where the pressure to decompose belongs. Vue and
|
|
256
|
+
* Svelte have always worked this way - a 120-line template reports codeLines 1
|
|
257
|
+
* while lineCount stays 126 - so this makes JSX consistent rather than special.
|
|
258
|
+
*
|
|
259
|
+
* DEFAULTS TO LOGIC. Anything not clearly markup is counted, so the failure mode
|
|
260
|
+
* is under-discounting - a finding we keep - rather than silencing a real one.
|
|
261
|
+
*/
|
|
262
|
+
function jsxMarkupLines(source) {
|
|
263
|
+
const code = typescriptCodeOnly(source);
|
|
264
|
+
// No JSX, nothing to discount. Guarantees a .ts file is measured exactly as it
|
|
265
|
+
// was before this rule existed, which is the acceptance control.
|
|
266
|
+
if (!containsJsx(code))
|
|
267
|
+
return new Set();
|
|
268
|
+
const blanked = code.split('\n');
|
|
269
|
+
const markup = new Set();
|
|
270
|
+
for (let i = 0; i < blanked.length; i++) {
|
|
271
|
+
const line = blanked[i].trim();
|
|
272
|
+
if (!line)
|
|
273
|
+
continue;
|
|
274
|
+
if (LOGIC_TOKENS.test(line))
|
|
275
|
+
continue;
|
|
276
|
+
if (MARKUP_SHAPE.test(line))
|
|
277
|
+
markup.add(i + 1);
|
|
278
|
+
}
|
|
279
|
+
return markup;
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=lexer.js.map
|