@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.
@@ -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
- const stripped = stripCStyleComments(source);
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
- const todoRe = /\/\/.*\b(TODO|FIXME|HACK)\b[:\s]*(.*)/;
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
- if (m)
500
- todos.push({ text: `${m[1]}: ${m[2].trim()}`.trim(), line: i + 1 });
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
- hardcodedLocalhost.push({ line: (0, lines_1.lineOf)(source, lh.index) });
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
- const span = endLine - fn.line + 1;
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
  }
@@ -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":"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"}
@@ -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>![Alt](https://...)</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"}
@@ -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>![Alt](https://...)</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