@trebired/code-discipline 4.10.1 → 4.11.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 (69) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +9 -3
  3. package/dist/checks/rules/banned/patterns.d.ts.map +1 -1
  4. package/dist/checks/rules/banned/patterns.js +38 -4
  5. package/dist/checks/rules/banned/patterns.js.map +1 -1
  6. package/dist/checks/rules/comments/c-like.d.ts +4 -0
  7. package/dist/checks/rules/comments/c-like.d.ts.map +1 -0
  8. package/dist/checks/rules/comments/c-like.js +28 -0
  9. package/dist/checks/rules/comments/c-like.js.map +1 -0
  10. package/dist/checks/rules/comments/python.d.ts +4 -0
  11. package/dist/checks/rules/comments/python.d.ts.map +1 -0
  12. package/dist/checks/rules/comments/python.js +68 -0
  13. package/dist/checks/rules/comments/python.js.map +1 -0
  14. package/dist/checks/rules/comments/qml.d.ts +5 -0
  15. package/dist/checks/rules/comments/qml.d.ts.map +1 -0
  16. package/dist/checks/rules/comments/qml.js +125 -0
  17. package/dist/checks/rules/comments/qml.js.map +1 -0
  18. package/dist/checks/rules/comments/quoted.d.ts +3 -0
  19. package/dist/checks/rules/comments/quoted.d.ts.map +1 -0
  20. package/dist/checks/rules/comments/quoted.js +16 -0
  21. package/dist/checks/rules/comments/quoted.js.map +1 -0
  22. package/dist/checks/rules/comments/ranges.d.ts.map +1 -1
  23. package/dist/checks/rules/comments/ranges.js +16 -46
  24. package/dist/checks/rules/comments/ranges.js.map +1 -1
  25. package/dist/checks/rules/comments/shell.d.ts +4 -0
  26. package/dist/checks/rules/comments/shell.d.ts.map +1 -0
  27. package/dist/checks/rules/comments/shell.js +93 -0
  28. package/dist/checks/rules/comments/shell.js.map +1 -0
  29. package/dist/checks/rules/max/function-lines.d.ts.map +1 -1
  30. package/dist/checks/rules/max/function-lines.js +18 -6
  31. package/dist/checks/rules/max/function-lines.js.map +1 -1
  32. package/dist/checks/rules/max/python.d.ts +11 -0
  33. package/dist/checks/rules/max/python.d.ts.map +1 -0
  34. package/dist/checks/rules/max/python.js +83 -0
  35. package/dist/checks/rules/max/python.js.map +1 -0
  36. package/dist/checks/rules/max/qml.d.ts +10 -0
  37. package/dist/checks/rules/max/qml.d.ts.map +1 -0
  38. package/dist/checks/rules/max/qml.js +77 -0
  39. package/dist/checks/rules/max/qml.js.map +1 -0
  40. package/dist/checks/rules/max/shell.d.ts +10 -0
  41. package/dist/checks/rules/max/shell.d.ts.map +1 -0
  42. package/dist/checks/rules/max/shell.js +90 -0
  43. package/dist/checks/rules/max/shell.js.map +1 -0
  44. package/dist/formatters/prettier.d.ts.map +1 -1
  45. package/dist/formatters/prettier.js +2 -0
  46. package/dist/formatters/prettier.js.map +1 -1
  47. package/dist/imports/scan.d.ts.map +1 -1
  48. package/dist/imports/scan.js +12 -5
  49. package/dist/imports/scan.js.map +1 -1
  50. package/dist/shared/constants.d.ts +2 -1
  51. package/dist/shared/constants.d.ts.map +1 -1
  52. package/dist/shared/constants.js +4 -3
  53. package/dist/shared/constants.js.map +1 -1
  54. package/dist/shared/languages.d.ts +4 -1
  55. package/dist/shared/languages.d.ts.map +1 -1
  56. package/dist/shared/languages.js +15 -3
  57. package/dist/shared/languages.js.map +1 -1
  58. package/dist/shared/rule-exclusions.d.ts.map +1 -1
  59. package/dist/shared/rule-exclusions.js +3 -1
  60. package/dist/shared/rule-exclusions.js.map +1 -1
  61. package/dist/shared/utils.d.ts +2 -1
  62. package/dist/shared/utils.d.ts.map +1 -1
  63. package/dist/shared/utils.js +6 -2
  64. package/dist/shared/utils.js.map +1 -1
  65. package/native/darwin-arm64.node +0 -0
  66. package/native/darwin-x64.node +0 -0
  67. package/native/linux-arm64-gnu.node +0 -0
  68. package/native/linux-x64-gnu.node +0 -0
  69. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ All notable changes to `@trebired/code-discipline` will be documented here.
4
4
 
5
5
  This project follows semantic versioning once published.
6
6
 
7
+ ## 4.11.0
8
+
9
+ - Added QML source support with QML-aware `//` and `/* */` comment handling, string/template/regex preservation, and `maxFunctionLines` detection for JavaScript-style QML functions and signal-handler blocks.
10
+ - Made `.trebired/code-discipline` package-owned state intrinsically excluded from source scans, rule-level filtering, native scanning, Prettier formatter traversal, and banned-pattern matches against the package-owned state path itself.
11
+ - Updated language verification coverage for QML and for the built-in package-state exclusion.
12
+
13
+ ## 4.10.2
14
+
15
+ - Added Python source support with comment-aware line counting, removable `#` comment detection, shebang/encoding-comment preservation, triple-string preservation, and indentation-based `maxFunctionLines` detection for `def` and `async def`.
16
+ - Added shell source support for `.sh`, `.bash`, and `.zsh` files, including shebang preservation, heredoc-aware `#` comment handling, and brace-style shell function detection for `maxFunctionLines`.
17
+ - Updated the Rust native backend comment scanner so native-backed runs understand Python and shell comments instead of only matching extensions in the TypeScript fallback.
18
+
7
19
  ## 4.10.1
8
20
 
9
21
  - Refreshed package dependency ranges and lockfile state with `bun update` after the `.trebired/code-discipline` migration.
package/README.md CHANGED
@@ -129,6 +129,8 @@ Unsafe cases stay unchanged and remain reported after the fix pass. The fixer in
129
129
 
130
130
  Reports function-like declarations whose total span exceeds `max`.
131
131
 
132
+ JavaScript and TypeScript use the TypeScript AST. Go and Rust use brace-aware function scanning. Python uses indentation-aware `def` and `async def` spans. Shell files with `.sh`, `.bash`, or `.zsh` use quote/comment-aware brace function spans. QML uses comment/string-aware scanning for JavaScript-style functions and signal-handler blocks.
133
+
132
134
  #### `folderizeCompoundFiles`
133
135
 
134
136
  Detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`.
@@ -146,7 +148,7 @@ Validates and optionally fixes:
146
148
  - `project-manifests` output drift in root `tsconfig.json` and `package.json#imports`
147
149
  - `alias-map` output drift in `.trebired/code-discipline/imports/*.json` and the generated tsconfig projection
148
150
 
149
- `imports` rewrites JavaScript, TypeScript, and SCSS module specifiers. Mixed-language repositories can still include Go and Rust; those files are ignored by alias syncing instead of causing parser failures.
151
+ `imports` rewrites JavaScript, TypeScript, and SCSS module specifiers. Mixed-language repositories can still include Go, Rust, Python, QML, and extension-bearing shell files; those files are ignored by alias syncing instead of causing parser failures.
150
152
 
151
153
  When `imports` sees a relative import that resolves nowhere, check mode reports it. Fix mode removes safe line-isolated static import/export declarations and Sass `@use`, `@forward`, or single-specifier quoted `@import` directives. Dynamic `import(...)`, comments, strings, CSS `url(...)`, and arbitrary CSS values are left alone.
152
154
 
@@ -191,9 +193,12 @@ The rule supports the same language families this package currently scans for di
191
193
  - JavaScript and TypeScript
192
194
  - Go
193
195
  - Rust
196
+ - Python
197
+ - QML
198
+ - shell files with `.sh`, `.bash`, or `.zsh`
194
199
  - SCSS and CSS
195
200
 
196
- It keeps string, regex, rune, char, byte-string, and raw-string content intact while removing actual source comments. When a removed comment occupied the whole line, that empty line is removed in the same file rewrite.
201
+ It keeps string, regex, rune, char, byte-string, raw-string, Python triple-string, QML string/template/regex literal, shell quoted-string, and shell heredoc content intact while removing actual source comments. Python shebang and encoding comments are preserved, and shell shebangs are preserved. When a removed comment occupied the whole line, that empty line is removed in the same file rewrite.
197
202
 
198
203
  You can preserve specific comments by matching plain substrings inside the comment text itself, without hardcoding any comment syntax:
199
204
 
@@ -423,6 +428,7 @@ Source scanning covers every built-in supported source family by default:
423
428
 
424
429
  - exclude specific extensions with `excludeSourceExtensions`
425
430
  - built-in excluded directories are always included
431
+ - `.trebired/code-discipline` is package-owned state and is always excluded from source scans, rule fixes, formatter traversal, and banned-pattern matches against the package-owned state path itself
426
432
  - top-level `ignore.entries` and root `.gitignore` entries are included when `ignore.use_gitignore: true`
427
433
 
428
434
  So you get the full supported scan set automatically and only opt out when needed.
@@ -535,7 +541,7 @@ formatters: {
535
541
 
536
542
  `@trebired/code-discipline` can use a Rust native backend when a matching binary is available, with the TypeScript implementation as the fallback. This follows the same native-fast-path shape as `@trebired/logger`: package users keep the same CLI/API, while hot scanning and rewrite paths can move into Rust.
537
543
 
538
- The current native backend accelerates source scanning, `max-file-lines`, common `max-function-lines` paths, `folderize-compound-files` checks, and `remove-comments`. If no binary is present, the package automatically uses the TypeScript fallback.
544
+ The current native backend accelerates source scanning, `max-file-lines`, common `max-function-lines` paths, `folderize-compound-files` checks, and `remove-comments`. Its comment scanner understands JavaScript, TypeScript, Go, Rust, Python, QML, shell, SCSS, and CSS. If no binary is present, the package automatically uses the TypeScript fallback.
539
545
 
540
546
  Useful native controls:
541
547
 
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAiD7D,iBAAe,8BAA8B,CAC3C,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA6CpC;AAED,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAoF7D,iBAAe,8BAA8B,CAC3C,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAiDpC;AAED,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
@@ -3,17 +3,49 @@ import path from "node:path";
3
3
  import { parseSource } from "../../../imports/module-specifiers.js";
4
4
  import { isTypeScriptFamilyExtension } from "../../../shared/languages.js";
5
5
  import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "../../progress.js";
6
+ import { CODE_DISCIPLINE_STATE_DIR } from "../../../shared/constants.js";
6
7
  import { collectFoldedStringMatches } from "./fold.js";
7
- function countOccurrences(text, pattern) {
8
+ const NORMALIZED_PACKAGE_STATE_DIR = CODE_DISCIPLINE_STATE_DIR.toLowerCase();
9
+ function isStatePathCharacter(value) {
10
+ const code = value.charCodeAt(0);
11
+ return code === 45
12
+ || code === 46
13
+ || code === 47
14
+ || code === 95
15
+ || (code >= 48 && code <= 57)
16
+ || (code >= 65 && code <= 90)
17
+ || (code >= 97 && code <= 122);
18
+ }
19
+ function collectPackageStatePathSpans(text) {
20
+ const spans = [];
21
+ let index = 0;
22
+ while (index <= text.length - NORMALIZED_PACKAGE_STATE_DIR.length) {
23
+ const start = text.indexOf(NORMALIZED_PACKAGE_STATE_DIR, index);
24
+ if (start < 0)
25
+ break;
26
+ let end = start + NORMALIZED_PACKAGE_STATE_DIR.length;
27
+ while (end < text.length && isStatePathCharacter(text[end] ?? ""))
28
+ end += 1;
29
+ spans.push({ start, end });
30
+ index = end;
31
+ }
32
+ return spans;
33
+ }
34
+ function isInsideSpan(index, spans) {
35
+ return spans.some((span) => index >= span.start && index < span.end);
36
+ }
37
+ function countOccurrencesOutsidePackageStatePath(text, pattern) {
8
38
  if (!pattern)
9
39
  return 0;
40
+ const packageStatePathSpans = collectPackageStatePathSpans(text);
10
41
  let count = 0;
11
42
  let index = 0;
12
43
  while (index <= text.length - pattern.length) {
13
44
  const matchIndex = text.indexOf(pattern, index);
14
45
  if (matchIndex < 0)
15
46
  break;
16
- count += 1;
47
+ if (!isInsideSpan(matchIndex, packageStatePathSpans))
48
+ count += 1;
17
49
  index = matchIndex + 1;
18
50
  }
19
51
  return count;
@@ -58,8 +90,10 @@ async function collectBannedPatternViolations(sourceFiles, options) {
58
90
  for (const pattern of rule.patterns) {
59
91
  if (pattern.allowedFiles.includes(file.relativeFromProjectRoot))
60
92
  continue;
61
- const rawOccurrences = normalizedText.includes(pattern.normalizedValue) ? countOccurrences(normalizedText, pattern.normalizedValue) : 0;
62
- const patternFoldedMatches = foldedMatches.filter((match) => match.value.toLowerCase().includes(pattern.normalizedValue));
93
+ const rawOccurrences = normalizedText.includes(pattern.normalizedValue)
94
+ ? countOccurrencesOutsidePackageStatePath(normalizedText, pattern.normalizedValue)
95
+ : 0;
96
+ const patternFoldedMatches = foldedMatches.filter((match) => countOccurrencesOutsidePackageStatePath(match.value.toLowerCase(), pattern.normalizedValue) > 0);
63
97
  if (rawOccurrences === 0 && patternFoldedMatches.length === 0)
64
98
  continue;
65
99
  violations.push({
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare function scanSlashLineComment(text: string, start: number): number;
2
+ declare function scanSlashBlockComment(text: string, start: number, nested: boolean): number;
3
+ export { scanSlashBlockComment, scanSlashLineComment };
4
+ //# sourceMappingURL=c-like.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c-like.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/c-like.ts"],"names":[],"mappings":"AAAA,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAkBnF;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ function scanSlashLineComment(text, start) {
2
+ let index = start + 2;
3
+ while (index < text.length && text[index] !== "\n" && text[index] !== "\r")
4
+ index += 1;
5
+ return index;
6
+ }
7
+ function scanSlashBlockComment(text, start, nested) {
8
+ let index = start + 2;
9
+ let depth = 1;
10
+ while (index < text.length) {
11
+ if (nested && text[index] === "/" && text[index + 1] === "*") {
12
+ depth += 1;
13
+ index += 2;
14
+ continue;
15
+ }
16
+ if (text[index] === "*" && text[index + 1] === "/") {
17
+ depth -= 1;
18
+ index += 2;
19
+ if (depth === 0)
20
+ return index;
21
+ continue;
22
+ }
23
+ index += 1;
24
+ }
25
+ return text.length;
26
+ }
27
+ export { scanSlashBlockComment, scanSlashLineComment };
28
+ //# sourceMappingURL=c-like.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c-like.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/c-like.ts"],"names":[],"mappings":"AAAA,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAa;IACvD,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;QAAE,KAAK,IAAI,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa,EAAE,MAAe;IACzE,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7D,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CommentRange } from "./ranges.js";
2
+ declare function collectPythonCommentRanges(text: string): CommentRange[];
3
+ export { collectPythonCommentRanges };
4
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA4ChD,iBAAS,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBhE;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { scanEscapedQuotedLiteral } from "./quoted.js";
2
+ function scanHashLineComment(text, start) {
3
+ let index = start + 1;
4
+ while (index < text.length && text[index] !== "\n" && text[index] !== "\r")
5
+ index += 1;
6
+ return index;
7
+ }
8
+ function isPythonStringPrefix(value) {
9
+ return value.length === 1 && /[bfru]/iu.test(value);
10
+ }
11
+ function scanPythonStringLiteral(text, start) {
12
+ let quoteIndex = start;
13
+ if (text[start] !== "\"" && text[start] !== "'") {
14
+ if (!isPythonStringPrefix(text[start] ?? ""))
15
+ return null;
16
+ while (quoteIndex < text.length && isPythonStringPrefix(text[quoteIndex] ?? ""))
17
+ quoteIndex += 1;
18
+ if (quoteIndex - start > 3 || (text[quoteIndex] !== "\"" && text[quoteIndex] !== "'"))
19
+ return null;
20
+ }
21
+ const quote = text[quoteIndex];
22
+ const triple = text.slice(quoteIndex, quoteIndex + 3) === quote.repeat(3);
23
+ if (!triple)
24
+ return scanEscapedQuotedLiteral(text, quoteIndex, quote);
25
+ let index = quoteIndex + 3;
26
+ while (index < text.length) {
27
+ if (text[index] === "\\") {
28
+ index += 2;
29
+ continue;
30
+ }
31
+ if (text.slice(index, index + 3) === quote.repeat(3))
32
+ return index + 3;
33
+ index += 1;
34
+ }
35
+ return text.length;
36
+ }
37
+ function isProtectedPythonHashComment(text, start) {
38
+ if (start === 0 && text[start + 1] === "!")
39
+ return true;
40
+ const lineStart = text.lastIndexOf("\n", Math.max(0, start - 1)) + 1;
41
+ const lineNumber = text.slice(0, lineStart).split(/\n/u).length;
42
+ if (lineNumber > 2)
43
+ return false;
44
+ const lineEnd = scanHashLineComment(text, start);
45
+ return /\bcoding[:=]\s*[-\w.]+/u.test(text.slice(start, lineEnd));
46
+ }
47
+ function collectPythonCommentRanges(text) {
48
+ const ranges = [];
49
+ let index = 0;
50
+ while (index < text.length) {
51
+ const literalEnd = scanPythonStringLiteral(text, index);
52
+ if (literalEnd != null) {
53
+ index = literalEnd;
54
+ continue;
55
+ }
56
+ if (text[index] === "#") {
57
+ const end = scanHashLineComment(text, index);
58
+ if (!isProtectedPythonHashComment(text, index))
59
+ ranges.push({ start: index, end, kind: "line" });
60
+ index = end;
61
+ continue;
62
+ }
63
+ index += 1;
64
+ }
65
+ return ranges;
66
+ }
67
+ export { collectPythonCommentRanges };
68
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CommentRange } from "./ranges.js";
2
+ declare function collectQmlCommentRanges(text: string): CommentRange[];
3
+ declare function maskQmlCommentsAndStrings(text: string): string;
4
+ export { collectQmlCommentRanges, maskQmlCommentsAndStrings };
5
+ //# sourceMappingURL=qml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qml.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/qml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAwEhD,iBAAS,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAwB7D;AAED,iBAAS,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBvD;AAED,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,125 @@
1
+ import { scanSlashBlockComment, scanSlashLineComment } from "./c-like.js";
2
+ import { scanEscapedQuotedLiteral } from "./quoted.js";
3
+ const REGEX_PREFIX_CHARS = new Set(["(", "[", "{", ":", ",", ";", "=", "!", "?", "&", "|", "+", "-", "*", "~", "^", "<", ">"]);
4
+ const REGEX_PREFIX_WORDS = new Set(["case", "delete", "in", "new", "of", "return", "throw", "typeof", "void", "yield"]);
5
+ function scanTemplateLiteral(text, start) {
6
+ let index = start + 1;
7
+ while (index < text.length) {
8
+ if (text[index] === "\\") {
9
+ index += 2;
10
+ continue;
11
+ }
12
+ if (text[index] === "`")
13
+ return index + 1;
14
+ index += 1;
15
+ }
16
+ return text.length;
17
+ }
18
+ function previousSignificantIndex(text, start) {
19
+ let index = start - 1;
20
+ while (index >= 0 && /\s/u.test(text[index] ?? ""))
21
+ index -= 1;
22
+ return index;
23
+ }
24
+ function previousWord(text, end) {
25
+ let index = end;
26
+ while (index >= 0 && /[$\w]/u.test(text[index] ?? ""))
27
+ index -= 1;
28
+ return text.slice(index + 1, end + 1);
29
+ }
30
+ function canStartRegexLiteral(text, start) {
31
+ const previousIndex = previousSignificantIndex(text, start);
32
+ if (previousIndex < 0)
33
+ return true;
34
+ const previous = text[previousIndex] ?? "";
35
+ if (REGEX_PREFIX_CHARS.has(previous))
36
+ return true;
37
+ if (/[$\w]/u.test(previous))
38
+ return REGEX_PREFIX_WORDS.has(previousWord(text, previousIndex));
39
+ return false;
40
+ }
41
+ function scanRegexLiteral(text, start) {
42
+ if (!canStartRegexLiteral(text, start))
43
+ return null;
44
+ let index = start + 1;
45
+ let inCharacterClass = false;
46
+ while (index < text.length) {
47
+ const char = text[index] ?? "";
48
+ if (char === "\n" || char === "\r")
49
+ return null;
50
+ if (char === "\\") {
51
+ index += 2;
52
+ continue;
53
+ }
54
+ if (char === "[")
55
+ inCharacterClass = true;
56
+ else if (char === "]")
57
+ inCharacterClass = false;
58
+ else if (char === "/" && !inCharacterClass) {
59
+ index += 1;
60
+ while (/[$\w]/u.test(text[index] ?? ""))
61
+ index += 1;
62
+ return index;
63
+ }
64
+ index += 1;
65
+ }
66
+ return null;
67
+ }
68
+ function scanQmlLiteral(text, start) {
69
+ const char = text[start];
70
+ if (char === "\"" || char === "'")
71
+ return scanEscapedQuotedLiteral(text, start, char);
72
+ if (char === "`")
73
+ return scanTemplateLiteral(text, start);
74
+ if (char === "/" && text[start + 1] !== "/" && text[start + 1] !== "*")
75
+ return scanRegexLiteral(text, start);
76
+ return null;
77
+ }
78
+ function collectQmlCommentRanges(text) {
79
+ const ranges = [];
80
+ let index = 0;
81
+ while (index < text.length) {
82
+ const literalEnd = scanQmlLiteral(text, index);
83
+ if (literalEnd != null) {
84
+ index = literalEnd;
85
+ continue;
86
+ }
87
+ if (text[index] === "/" && text[index + 1] === "/") {
88
+ const end = scanSlashLineComment(text, index);
89
+ ranges.push({ start: index, end, kind: "line" });
90
+ index = end;
91
+ continue;
92
+ }
93
+ if (text[index] === "/" && text[index + 1] === "*") {
94
+ const end = scanSlashBlockComment(text, index, false);
95
+ ranges.push({ start: index, end, kind: "block" });
96
+ index = end;
97
+ continue;
98
+ }
99
+ index += 1;
100
+ }
101
+ return ranges;
102
+ }
103
+ function maskQmlCommentsAndStrings(text) {
104
+ let result = "";
105
+ let index = 0;
106
+ while (index < text.length) {
107
+ const literalEnd = scanQmlLiteral(text, index);
108
+ const commentEnd = literalEnd == null && text[index] === "/" && text[index + 1] === "/"
109
+ ? scanSlashLineComment(text, index)
110
+ : literalEnd == null && text[index] === "/" && text[index + 1] === "*"
111
+ ? scanSlashBlockComment(text, index, false)
112
+ : null;
113
+ const end = literalEnd ?? commentEnd;
114
+ if (end != null) {
115
+ result += text.slice(index, end).replace(/[^\r\n]/gu, " ");
116
+ index = end;
117
+ continue;
118
+ }
119
+ result += text[index] ?? "";
120
+ index += 1;
121
+ }
122
+ return result;
123
+ }
124
+ export { collectQmlCommentRanges, maskQmlCommentsAndStrings };
125
+ //# sourceMappingURL=qml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qml.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/qml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare function scanEscapedQuotedLiteral(text: string, start: number, quote: "\"" | "'"): number;
2
+ export { scanEscapedQuotedLiteral };
3
+ //# sourceMappingURL=quoted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quoted.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/quoted.ts"],"names":[],"mappings":"AAAA,iBAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,MAAM,CAYxF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function scanEscapedQuotedLiteral(text, start, quote) {
2
+ let index = start + 1;
3
+ while (index < text.length) {
4
+ const char = text[index];
5
+ if (char === "\\") {
6
+ index += 2;
7
+ continue;
8
+ }
9
+ index += 1;
10
+ if (char === quote)
11
+ return index;
12
+ }
13
+ return text.length;
14
+ }
15
+ export { scanEscapedQuotedLiteral };
16
+ //# sourceMappingURL=quoted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quoted.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/quoted.ts"],"names":[],"mappings":"AAAA,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa,EAAE,KAAiB;IAC9E,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AA4OF,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAM7E;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"AAiBA,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAyLF,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAS7E;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import ts from "typescript";
2
- import { isGoExtension, isRustExtension, isStyleExtension, isTypeScriptFamilyExtension } from "../../../shared/languages.js";
2
+ import { isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isShellExtension, isStyleExtension, isTypeScriptFamilyExtension, } from "../../../shared/languages.js";
3
+ import { scanSlashBlockComment, scanSlashLineComment } from "./c-like.js";
4
+ import { collectPythonCommentRanges } from "./python.js";
5
+ import { collectQmlCommentRanges } from "./qml.js";
6
+ import { scanEscapedQuotedLiteral } from "./quoted.js";
7
+ import { collectShellCommentRanges } from "./shell.js";
3
8
  function collectTypeScriptCommentRanges(text, extension) {
4
9
  const languageVariant = extension === ".jsx" || extension === ".tsx"
5
10
  ? ts.LanguageVariant.JSX
@@ -18,20 +23,6 @@ function collectTypeScriptCommentRanges(text, extension) {
18
23
  }
19
24
  return ranges;
20
25
  }
21
- function scanEscapedQuotedLiteral(text, start, quote) {
22
- let index = start + 1;
23
- while (index < text.length) {
24
- const char = text[index];
25
- if (char === "\\") {
26
- index += 2;
27
- continue;
28
- }
29
- index += 1;
30
- if (char === quote)
31
- return index;
32
- }
33
- return text.length;
34
- }
35
26
  function scanBacktickLiteral(text, start) {
36
27
  let index = start + 1;
37
28
  while (index < text.length) {
@@ -41,33 +32,6 @@ function scanBacktickLiteral(text, start) {
41
32
  }
42
33
  return text.length;
43
34
  }
44
- function scanLineComment(text, start) {
45
- let index = start + 2;
46
- while (index < text.length && text[index] !== "\n" && text[index] !== "\r") {
47
- index += 1;
48
- }
49
- return index;
50
- }
51
- function scanBlockComment(text, start, nested) {
52
- let index = start + 2;
53
- let depth = 1;
54
- while (index < text.length) {
55
- if (nested && text[index] === "/" && text[index + 1] === "*") {
56
- depth += 1;
57
- index += 2;
58
- continue;
59
- }
60
- if (text[index] === "*" && text[index + 1] === "/") {
61
- depth -= 1;
62
- index += 2;
63
- if (depth === 0)
64
- return index;
65
- continue;
66
- }
67
- index += 1;
68
- }
69
- return text.length;
70
- }
71
35
  function collectGoCommentRanges(text) {
72
36
  const ranges = [];
73
37
  let index = 0;
@@ -75,13 +39,13 @@ function collectGoCommentRanges(text) {
75
39
  const char = text[index];
76
40
  const next = text[index + 1];
77
41
  if (char === "/" && next === "/") {
78
- const end = scanLineComment(text, index);
42
+ const end = scanSlashLineComment(text, index);
79
43
  ranges.push({ start: index, end, kind: "line" });
80
44
  index = end;
81
45
  continue;
82
46
  }
83
47
  if (char === "/" && next === "*") {
84
- const end = scanBlockComment(text, index, false);
48
+ const end = scanSlashBlockComment(text, index, false);
85
49
  ranges.push({ start: index, end, kind: "block" });
86
50
  index = end;
87
51
  continue;
@@ -182,13 +146,13 @@ function collectRustCommentRanges(text) {
182
146
  const char = text[index];
183
147
  const next = text[index + 1];
184
148
  if (char === "/" && next === "/") {
185
- const end = scanLineComment(text, index);
149
+ const end = scanSlashLineComment(text, index);
186
150
  ranges.push({ start: index, end, kind: "line" });
187
151
  index = end;
188
152
  continue;
189
153
  }
190
154
  if (char === "/" && next === "*") {
191
- const end = scanBlockComment(text, index, true);
155
+ const end = scanSlashBlockComment(text, index, true);
192
156
  ranges.push({ start: index, end, kind: "block" });
193
157
  index = end;
194
158
  continue;
@@ -204,6 +168,12 @@ function collectCommentRanges(text, extension) {
204
168
  return collectGoCommentRanges(text);
205
169
  if (isRustExtension(extension))
206
170
  return collectRustCommentRanges(text);
171
+ if (isPythonExtension(extension))
172
+ return collectPythonCommentRanges(text);
173
+ if (isShellExtension(extension))
174
+ return collectShellCommentRanges(text);
175
+ if (isQmlExtension(extension))
176
+ return collectQmlCommentRanges(text);
207
177
  if (isStyleExtension(extension))
208
178
  return collectGoCommentRanges(text);
209
179
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CommentRange } from "./ranges.js";
2
+ declare function collectShellCommentRanges(text: string): CommentRange[];
3
+ export { collectShellCommentRanges };
4
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgEhD,iBAAS,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAsB/D;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}