@trebired/code-discipline 5.2.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +21 -19
  3. package/dist/checks/apply-fixes.d.ts +2 -2
  4. package/dist/checks/apply-fixes.d.ts.map +1 -1
  5. package/dist/checks/apply-fixes.js +6 -6
  6. package/dist/checks/apply-fixes.js.map +1 -1
  7. package/dist/checks/{fix-source-file-structure.d.ts → fix-redundant-path-segments.d.ts} +4 -4
  8. package/dist/checks/fix-redundant-path-segments.d.ts.map +1 -0
  9. package/dist/checks/{fix-source-file-structure.js → fix-redundant-path-segments.js} +22 -22
  10. package/dist/checks/fix-redundant-path-segments.js.map +1 -0
  11. package/dist/checks/index.js +6 -6
  12. package/dist/checks/index.js.map +1 -1
  13. package/dist/checks/parse-failures.d.ts +8 -0
  14. package/dist/checks/parse-failures.d.ts.map +1 -0
  15. package/dist/checks/parse-failures.js +39 -0
  16. package/dist/checks/parse-failures.js.map +1 -0
  17. package/dist/checks/rule-slugs.d.ts +1 -1
  18. package/dist/checks/rule-slugs.js +3 -3
  19. package/dist/checks/rule-slugs.js.map +1 -1
  20. package/dist/checks/rules/banned/patterns.d.ts.map +1 -1
  21. package/dist/checks/rules/banned/patterns.js +18 -6
  22. package/dist/checks/rules/banned/patterns.js.map +1 -1
  23. package/dist/checks/rules/blank-lines/generic.d.ts.map +1 -1
  24. package/dist/checks/rules/blank-lines/generic.js +24 -2
  25. package/dist/checks/rules/blank-lines/generic.js.map +1 -1
  26. package/dist/checks/rules/blank-lines/index.d.ts.map +1 -1
  27. package/dist/checks/rules/blank-lines/index.js +3 -2
  28. package/dist/checks/rules/blank-lines/index.js.map +1 -1
  29. package/dist/checks/rules/comments/ranges.d.ts.map +1 -1
  30. package/dist/checks/rules/comments/ranges.js +115 -1
  31. package/dist/checks/rules/comments/ranges.js.map +1 -1
  32. package/dist/checks/rules/comments/stripping.d.ts +1 -2
  33. package/dist/checks/rules/comments/stripping.d.ts.map +1 -1
  34. package/dist/checks/rules/comments/stripping.js +7 -93
  35. package/dist/checks/rules/comments/stripping.js.map +1 -1
  36. package/dist/checks/rules/dry/candidates.d.ts.map +1 -1
  37. package/dist/checks/rules/dry/candidates.js +10 -4
  38. package/dist/checks/rules/dry/candidates.js.map +1 -1
  39. package/dist/checks/rules/dry/generic.d.ts.map +1 -1
  40. package/dist/checks/rules/dry/generic.js +43 -0
  41. package/dist/checks/rules/dry/generic.js.map +1 -1
  42. package/dist/checks/rules/dry/model.d.ts.map +1 -1
  43. package/dist/checks/rules/dry/model.js +5 -1
  44. package/dist/checks/rules/dry/model.js.map +1 -1
  45. package/dist/checks/rules/max/file-lines.d.ts.map +1 -1
  46. package/dist/checks/rules/max/file-lines.js +7 -50
  47. package/dist/checks/rules/max/file-lines.js.map +1 -1
  48. package/dist/checks/rules/max/function-lines.d.ts.map +1 -1
  49. package/dist/checks/rules/max/function-lines.js +36 -7
  50. package/dist/checks/rules/max/function-lines.js.map +1 -1
  51. package/dist/checks/rules/min/declaration-name.d.ts.map +1 -1
  52. package/dist/checks/rules/min/declaration-name.js +70 -2
  53. package/dist/checks/rules/min/declaration-name.js.map +1 -1
  54. package/dist/checks/rules/redundant-path-segments/index.d.ts +6 -0
  55. package/dist/checks/rules/redundant-path-segments/index.d.ts.map +1 -0
  56. package/dist/checks/rules/redundant-path-segments/index.js +19 -0
  57. package/dist/checks/rules/redundant-path-segments/index.js.map +1 -0
  58. package/dist/checks/rules/redundant-path-segments/plan.d.ts +17 -0
  59. package/dist/checks/rules/redundant-path-segments/plan.d.ts.map +1 -0
  60. package/dist/checks/rules/{source-file-structure → redundant-path-segments}/plan.js +60 -47
  61. package/dist/checks/rules/redundant-path-segments/plan.js.map +1 -0
  62. package/dist/checks/rules/remove-comments.d.ts.map +1 -1
  63. package/dist/checks/rules/remove-comments.js +15 -78
  64. package/dist/checks/rules/remove-comments.js.map +1 -1
  65. package/dist/checks/severity.js +1 -1
  66. package/dist/checks/severity.js.map +1 -1
  67. package/dist/checks/types.d.ts +6 -8
  68. package/dist/checks/types.d.ts.map +1 -1
  69. package/dist/cli/logging.js +1 -1
  70. package/dist/cli/logging.js.map +1 -1
  71. package/dist/cli/{run-cli.d.ts → run.d.ts} +1 -1
  72. package/dist/cli/run.d.ts.map +1 -0
  73. package/dist/cli/{run-cli.js → run.js} +1 -1
  74. package/dist/cli/run.js.map +1 -0
  75. package/dist/cli.d.ts +2 -2
  76. package/dist/cli.d.ts.map +1 -1
  77. package/dist/cli.js +1 -1
  78. package/dist/cli.js.map +1 -1
  79. package/dist/config/normalize/check-options.d.ts.map +1 -1
  80. package/dist/config/normalize/check-options.js +8 -3
  81. package/dist/config/normalize/check-options.js.map +1 -1
  82. package/dist/config/normalize/rule-options.d.ts +3 -4
  83. package/dist/config/normalize/rule-options.d.ts.map +1 -1
  84. package/dist/config/normalize/rule-options.js +9 -16
  85. package/dist/config/normalize/rule-options.js.map +1 -1
  86. package/dist/imports/{check-imports.d.ts → check.d.ts} +1 -1
  87. package/dist/imports/check.d.ts.map +1 -0
  88. package/dist/imports/{check-imports.js → check.js} +8 -5
  89. package/dist/imports/check.js.map +1 -0
  90. package/dist/imports/{dead-imports.d.ts → dead.d.ts} +1 -1
  91. package/dist/imports/dead.d.ts.map +1 -0
  92. package/dist/imports/{dead-imports.js → dead.js} +1 -1
  93. package/dist/imports/dead.js.map +1 -0
  94. package/dist/imports/imports.js +1 -1
  95. package/dist/imports/imports.js.map +1 -1
  96. package/dist/imports/rewrite.js +1 -1
  97. package/dist/imports/rewrite.js.map +1 -1
  98. package/dist/imports/scan.d.ts.map +1 -1
  99. package/dist/imports/scan.js +19 -110
  100. package/dist/imports/scan.js.map +1 -1
  101. package/dist/index.d.ts +2 -2
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/native/native.d.ts +3 -2
  106. package/dist/native/native.d.ts.map +1 -1
  107. package/dist/native/native.js +13 -8
  108. package/dist/native/native.js.map +1 -1
  109. package/dist/shared/constants.d.ts +2 -3
  110. package/dist/shared/constants.d.ts.map +1 -1
  111. package/dist/shared/constants.js +3 -4
  112. package/dist/shared/constants.js.map +1 -1
  113. package/dist/shared/discipline-types.d.ts +1 -1
  114. package/dist/shared/discipline-types.d.ts.map +1 -1
  115. package/dist/shared/languages.d.ts +4 -2
  116. package/dist/shared/languages.d.ts.map +1 -1
  117. package/dist/shared/languages.js +27 -4
  118. package/dist/shared/languages.js.map +1 -1
  119. package/native/darwin-arm64.node +0 -0
  120. package/native/darwin-x64.node +0 -0
  121. package/native/linux-arm64-gnu.node +0 -0
  122. package/native/linux-x64-gnu.node +0 -0
  123. package/package.json +2 -2
  124. package/dist/checks/fix-source-file-structure.d.ts.map +0 -1
  125. package/dist/checks/fix-source-file-structure.js.map +0 -1
  126. package/dist/checks/rules/source-file-structure/index.d.ts +0 -6
  127. package/dist/checks/rules/source-file-structure/index.d.ts.map +0 -1
  128. package/dist/checks/rules/source-file-structure/index.js +0 -38
  129. package/dist/checks/rules/source-file-structure/index.js.map +0 -1
  130. package/dist/checks/rules/source-file-structure/plan.d.ts +0 -17
  131. package/dist/checks/rules/source-file-structure/plan.d.ts.map +0 -1
  132. package/dist/checks/rules/source-file-structure/plan.js.map +0 -1
  133. package/dist/cli/run-cli.d.ts.map +0 -1
  134. package/dist/cli/run-cli.js.map +0 -1
  135. package/dist/imports/check-imports.d.ts.map +0 -1
  136. package/dist/imports/check-imports.js.map +0 -1
  137. package/dist/imports/dead-imports.d.ts.map +0 -1
  138. package/dist/imports/dead-imports.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,43 @@ 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
+ ## Unreleased
8
+
9
+ ## 5.4.0
10
+
11
+ - Added C++ and C# language support across `removeComments`, `formatting`, `maxFunctionLines`, `minDeclarationName`, `structuralBlankLines`, `dry`, and `redundantPathSegments`. C++ recognizes `.cpp`, `.cc`, `.cxx`, `.c++`, `.hpp`, `.hh`, `.hxx`, `.h++`, and `.h`; C# recognizes `.cs`.
12
+ - Taught the comment scanner and formatter about C++ raw strings (`R"delim(...)delim"`) and C# verbatim (`@"..."`) and interpolated (`$"..."`) strings, so comment-like content inside them is preserved.
13
+ - Added heuristic C++/C# function-span detection for `maxFunctionLines` and `dry`, since neither language has a fixed leading keyword like Go's `func` or Rust's `fn`: a line is treated as a function header when it contains a parenthesized signature, doesn't end in `;`, and isn't a control-flow statement (`if`, `for`, `catch`, `using`, and similar are excluded). This also covers Allman-style bodies where the opening brace is on its own line, which is the common C# convention.
14
+ - Fixed the native `should_continue_pending_block_function` check only ever inspecting the first line of a multi-line function header, which silently failed to detect any function whose opening brace was not on the same line as its signature. Go and Rust never hit this because both conventionally place the brace on the header line; it was a real risk for C#'s common brace-on-its-own-line style.
15
+ - Fixed the native comment scanner treating regular-expression literals as ordinary text, so a literal such as `/^r(#{0,16})"/` no longer desynchronizes string tracking. Previously the quote inside the pattern opened a phantom string, and `remove-comments` then mistook the `/*` inside a `"/*"` string literal for a real comment and deleted every line through the following `*/`.
16
+ - Fixed native formatter indentation drifting after a regular-expression literal that contains a quote or brace, which came from the same desynchronized masking.
17
+ - Applied regular-expression literal scanning to JavaScript, TypeScript, and QML only; Go, Rust, Python, shell, SCSS, and CSS keep treating `/` as division.
18
+ - Removed every TypeScript fallback implementation. Source scanning, `max-file-lines`, `redundant-path-segments` checks, `remove-comments`, and comment stripping now run only in the Rust backend, so a rule can no longer return different results depending on which backend ran or whether a progress observer was attached.
19
+ - Made the native backend required. `requireNativeBinding` throws a descriptive error naming the expected addon instead of silently degrading to TypeScript.
20
+ - Removed the `TB_CODE_DISCIPLINE_DISABLE_NATIVE` environment variable, which only existed to force the deleted fallback.
21
+ - Added token-based spacing normalization to `rules.formatting` for JavaScript, TypeScript, and QML. A real token scanner now backs the formatter, so `function outer(data:Data):void{` becomes `function outer(data: Data): void {`, `if(x===1){` becomes `if (x === 1) {`, `}else{` becomes `} else {`, and `[1,2,3]` becomes `[1, 2, 3]`.
22
+ - Kept generics, ternaries, optional chaining, unary operators, call chains, and regular-expression literals intact while normalizing spacing, including `Map<string, Array<number>>` and `<T extends Base>`.
23
+ - Guarded spacing normalization with a token-sequence invariant: the pass re-tokenizes its own output and falls back to the original text unless the token stream is byte-identical, so formatting can only ever change whitespace between tokens.
24
+ - Added single-quote to double-quote normalization for JavaScript and TypeScript string literals, skipping any literal whose contents would need re-escaping.
25
+ - Added statement semicolon insertion for JavaScript and TypeScript. Insertion is skipped inside parentheses, brackets, object literals, generic type arguments, `import`/`export` specifier lists, and after braceless `if`/`for`/`while`/`switch`/`catch`/`for await` headers, so control flow and type syntax are never rewritten.
26
+ - Excluded `.tsx` and `.jsx` from spacing and statement normalization; JSX is not yet modelled by the token scanner.
27
+ - Fixed the token scanner mis-reading regular-expression literals and comments nested inside template-literal `${...}` interpolations, which previously desynchronized quote tracking for the rest of the file.
28
+ - Preserved shebang lines verbatim instead of tokenizing them as source.
29
+ - Made parse failures non-fatal. A file that cannot be parsed is reported as a violation by each rule that skipped it and the run continues over the remaining files, instead of aborting the whole command with `Failed to parse`.
30
+
31
+ ## 5.3.2
32
+
33
+ - Aligned the package-owned Code Discipline config with the platform rule set, including formatting, redundant path segment cleanup, removable comment checks, structural blank lines, and dry checks.
34
+
35
+ ## 5.3.1
36
+
37
+ - Excluded TypeScript, JavaScript, and Sass module specifier text from `bannedPatterns` raw matching, so package imports can stay valid while hardcoded banned wording in actual source text is still reported.
38
+
39
+ ## 5.3.0
40
+
41
+ - Renamed `sourceFileStructure` to `redundantPathSegments` with the `redundant-path-segments` selector.
42
+ - Removed explicit `roleSuffixes`; redundant suffix cleanup is inferred from singularized path segments, so `pages/home_page.ts` still moves to `pages/home.ts`.
43
+
7
44
  ## 5.2.0
8
45
 
9
46
  - Added formatter wrapping for QML top-level string concatenation expressions so formatting can resolve property lines that combine literals and runtime values.
package/README.md CHANGED
@@ -10,7 +10,7 @@ Configurable repository discipline checks and rule-driven fixes for Bun projects
10
10
  - source cleanup rules such as removing comments across supported languages
11
11
  - structural spacing rules such as normalizing blank lines around JavaScript and TypeScript declarations
12
12
  - a built-in Rust formatter for the supported source languages
13
- - native acceleration with a TypeScript fallback for large codebases
13
+ - a required Rust native backend that keeps scanning and rewriting fast on large codebases
14
14
  - DRY enforcement through source-tree duplicate function grouping
15
15
 
16
16
  It is not a linter replacement or build system.
@@ -30,7 +30,7 @@ code-discipline check
30
30
  code-discipline check save
31
31
  code-discipline check max-function-lines dry format
32
32
  code-discipline fix
33
- code-discipline fix banned-files min-file-lines max-characters-per-line source-file-structure imports remove-comments structural-blank-lines format
33
+ code-discipline fix banned-files min-file-lines max-characters-per-line redundant-path-segments imports remove-comments structural-blank-lines format
34
34
  code-discipline gate -- bun run dev
35
35
  ```
36
36
 
@@ -98,7 +98,7 @@ Reports files whose code line count is at or below `min`, defaulting to `1` when
98
98
 
99
99
  Reports named declarations whose names are shorter than `min`, defaulting to `2` when the rule is configured.
100
100
 
101
- JavaScript and TypeScript use the TypeScript AST for `function` declarations and simple `const` identifiers. Go, Rust, Python, QML, shell, SCSS, and CSS use language-aware declaration scanners for functions, declarations, properties, variables, and custom properties where those concepts exist.
101
+ JavaScript and TypeScript use the TypeScript AST for `function` declarations and simple `const` identifiers. Go, Rust, C++, C#, Python, QML, shell, SCSS, and CSS use language-aware declaration scanners for functions, declarations, properties, variables, and custom properties where those concepts exist.
102
102
 
103
103
  #### `maxCharactersPerLine`
104
104
 
@@ -132,15 +132,15 @@ Unsafe cases stay unchanged and remain reported after the fix pass. The fixer in
132
132
 
133
133
  Reports function-like declarations whose total span exceeds `max`.
134
134
 
135
- 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.
135
+ JavaScript and TypeScript use the TypeScript AST. Go, Rust, C++, and C# use brace-aware function scanning; C++ and C# scanning has no fixed leading keyword, so it infers a header from a parenthesized signature that is not a control-flow statement. 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.
136
136
 
137
- #### `sourceFileStructure`
137
+ #### `redundantPathSegments`
138
138
 
139
- Normalizes source file paths. It detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`. It also removes redundant role suffixes when the parent directory already names the role, such as `pages/home_page.ts` becoming `pages/home.ts`.
139
+ Normalizes source file paths. It detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`. It also removes redundant filename suffix segments when an ancestor directory already names the same concept, such as `pages/home_page.ts` becoming `pages/home.ts` because `pages` normalizes to `page`.
140
140
 
141
- The rule config describes compound-name separators and redundant role suffixes. Whether it mutates is decided by running `code-discipline fix`.
141
+ The rule config describes compound-name separators. Whether it mutates is decided by running `code-discipline fix`.
142
142
 
143
- Source file structure scans and moves supported source files across JavaScript, TypeScript, Go, Rust, Python, QML, shell, SCSS, and CSS. Move-aware import repair is applied for languages whose import syntax is package-supported.
143
+ Redundant path segment scans and moves supported source files across JavaScript, TypeScript, Go, Rust, C++, C#, Python, QML, shell, SCSS, and CSS. Move-aware import repair is applied for languages whose import syntax is package-supported.
144
144
 
145
145
  #### `imports`
146
146
 
@@ -151,7 +151,7 @@ Validates and optionally fixes:
151
151
  - `project-manifests` output drift in root `tsconfig.json` and `package.json#imports`
152
152
  - `alias-map` output drift in `.trebired/code-discipline/imports/*.json` and the generated tsconfig projection
153
153
 
154
- `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.
154
+ `imports` rewrites JavaScript, TypeScript, and SCSS module specifiers. Mixed-language repositories can still include Go, Rust, C++, C#, Python, QML, and extension-bearing shell files; those files are ignored by alias syncing instead of causing parser failures.
155
155
 
156
156
  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.
157
157
 
@@ -196,12 +196,14 @@ The rule supports the same language families this package currently scans for di
196
196
  - JavaScript and TypeScript
197
197
  - Go
198
198
  - Rust
199
+ - C++
200
+ - C#
199
201
  - Python
200
202
  - QML
201
203
  - shell files with `.sh`, `.bash`, or `.zsh`
202
204
  - SCSS and CSS
203
205
 
204
- 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.
206
+ It keeps string, regex, rune, char, byte-string, raw-string, C++ raw-string, C# verbatim and interpolated 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.
205
207
 
206
208
  You can preserve specific comments by matching plain substrings inside the comment text itself, without hardcoding any comment syntax:
207
209
 
@@ -225,7 +227,7 @@ Reports supported source files where major structural sections aren't visually s
225
227
 
226
228
  JavaScript and TypeScript use the TypeScript AST: after the file header, between imports and the first non-import statement, between declaration groups (variables, types, functions, classes, enums, namespaces), and between class fields/methods/constructors. Compact groups - consecutive imports, variables, type declarations, re-exports, top-level executable statements, class fields, directive prologues, function overload chains, and getter/setter pairs - allow zero or one blank line and only collapse two or more down to one.
227
229
 
228
- Go, Rust, Python, QML, shell, SCSS, and CSS use language-aware structural scanning to normalize blank lines between adjacent top-level declarations, functions, handlers, or rules in the same scope.
230
+ Go, Rust, C++, C#, Python, QML, shell, SCSS, and CSS use language-aware structural scanning to normalize blank lines between adjacent top-level declarations, functions, handlers, or rules in the same scope.
229
231
 
230
232
  It never touches statements inside function or method bodies, `if`/loop/`try` bodies, object literals, array elements, interface members, type literal members, enum members, or JSX children - spacing choices inside those remain up to the developer.
231
233
 
@@ -244,7 +246,7 @@ code-discipline fix structural-blank-lines
244
246
  Reports duplicate function groups across the configured source tree.
245
247
 
246
248
  - JavaScript and TypeScript use AST-aware structural and behavior fingerprints
247
- - Go, Rust, Python, QML, and shell use language-aware function spans with conservative token fingerprints
249
+ - Go, Rust, C++, C#, Python, QML, and shell use language-aware function spans with conservative token fingerprints
248
250
  - exact normalized structure is reported with 100% confidence
249
251
  - equivalent normalized behavior in simple pure functions is reported with 100% confidence
250
252
  - matching function names are reported with 100% confidence
@@ -384,9 +386,8 @@ export default defineCodeDisciplineConfig({
384
386
  max: 80,
385
387
  severity: "warning",
386
388
  },
387
- sourceFileStructure: {
389
+ redundantPathSegments: {
388
390
  separators: ["_", "-"],
389
- roleSuffixes: ["page"],
390
391
  },
391
392
  removeComments: {
392
393
  exclude: ["@ts-nocheck"],
@@ -495,7 +496,7 @@ Rules use kebab-case public slugs:
495
496
  - `max-file-lines`
496
497
  - `max-characters-per-line`
497
498
  - `max-function-lines`
498
- - `source-file-structure`
499
+ - `redundant-path-segments`
499
500
  - `imports`
500
501
  - `remove-comments`
501
502
  - `structural-blank-lines`
@@ -514,7 +515,7 @@ The package-owned Rust formatter is enabled as a rule with `rules.formatting: {}
514
515
 
515
516
  `check format` validates formatting without modifying files, while `fix format` writes formatted files. Running `code-discipline fix` with no selectors runs configured formatting after structural, import, comment, and blank-line fixes, then rechecks `max-characters-per-line` when that rule is configured.
516
517
 
517
- The formatter supports JavaScript, TypeScript, Go, Rust, Python, QML, shell files with `.sh`, `.bash`, or `.zsh`, SCSS, and CSS. It normalizes line endings, trailing whitespace, final newline, repeated blank lines, brace-language indentation, indentation-sensitive language whitespace, compact QML blocks, and safe line wrapping against `rules.maxCharactersPerLine.max`.
518
+ The formatter supports JavaScript, TypeScript, Go, Rust, C++, C#, Python, QML, shell files with `.sh`, `.bash`, or `.zsh`, SCSS, and CSS. It normalizes line endings, trailing whitespace, final newline, repeated blank lines, brace-language indentation, indentation-sensitive language whitespace, compact QML blocks, and safe line wrapping against `rules.maxCharactersPerLine.max`.
518
519
 
519
520
  If `rules.maxCharactersPerLine.max` is configured, the formatter uses that width. Without that rule, formatter line width defaults to `100`.
520
521
 
@@ -535,15 +536,16 @@ rules: {
535
536
 
536
537
  ### Native Backend
537
538
 
538
- `@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.
539
+ `@trebired/code-discipline` requires a Rust native backend. There is no TypeScript fallback: source scanning, comment stripping, and formatting have exactly one implementation, so a rule can never produce different results depending on which backend happened to run. If no matching binary can be loaded, the package throws instead of silently degrading.
539
540
 
540
- The current native backend accelerates source scanning, `max-file-lines`, common `max-function-lines` paths, `source-file-structure` 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.
541
+ For JavaScript, TypeScript, and QML the formatter also normalizes spacing around operators and punctuation from a real token stream, so declarations, control-flow headers, and literals print consistently without reflowing statements. For JavaScript and TypeScript it additionally normalizes single-quoted strings to double quotes and terminates statements with semicolons. JSX (`.tsx`, `.jsx`) is excluded from both passes.
542
+
543
+ The native backend owns source scanning, `max-file-lines`, `redundant-path-segments` checks, `remove-comments`, and `formatting`, and accelerates common `max-function-lines` paths. Its comment scanner understands JavaScript, TypeScript, Go, Rust, C++, C#, Python, QML, shell, SCSS, and CSS, including regular-expression literals in JavaScript, TypeScript, and QML.
541
544
 
542
545
  Useful native controls:
543
546
 
544
547
  - `bun run build:native` builds the host native addon into `native/<platform>.node`
545
548
  - `bun run build:native:matrix` builds the release target matrix
546
- - `TB_CODE_DISCIPLINE_DISABLE_NATIVE=1` forces the TypeScript fallback
547
549
  - `TB_CODE_DISCIPLINE_NATIVE_BINARY=/path/to/addon.node` loads a specific native addon
548
550
 
549
551
  Top-level `sync` is gone.
@@ -16,12 +16,12 @@ type FixState = {
16
16
  };
17
17
  declare function applyBannedFilesFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
18
18
  declare function applyMinFileLinesFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions, logger: ReturnType<typeof resolveLogger>): Promise<void>;
19
- declare function applySourceFileStructureFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions, logger: ReturnType<typeof resolveLogger>): Promise<void>;
19
+ declare function applyRedundantPathSegmentsFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions, logger: ReturnType<typeof resolveLogger>): Promise<void>;
20
20
  declare function applyImportsFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
21
21
  declare function applyMaxCharactersPerLineFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
22
22
  declare function applyRemoveCommentsFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
23
23
  declare function applyStructuralBlankLinesFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
24
24
  declare function applyCodeFormatFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
25
- export { applyBannedFilesFix, applyCodeFormatFix as applyCodeFormatterFix, applySourceFileStructureFix, applyMaxCharactersPerLineFix, applyMinFileLinesFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applyImportsFix, };
25
+ export { applyBannedFilesFix, applyCodeFormatFix as applyCodeFormatterFix, applyRedundantPathSegmentsFix, applyMaxCharactersPerLineFix, applyMinFileLinesFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applyImportsFix, };
26
26
  export type { FixState };
27
27
  //# sourceMappingURL=apply-fixes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-fixes.d.ts","sourceRoot":"","sources":["../../src/checks/apply-fixes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAWnD,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAErH,KAAK,QAAQ,GAAG;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC3E,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC,CAAC;AAwCF,iBAAe,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnH;AAED,iBAAe,oBAAoB,CACjC,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,oCAAoC,EAChD,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,iBAAe,2BAA2B,CACxC,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,oCAAoC,EAChD,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,iBAAe,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/G;AAED,iBAAe,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5H;AAED,iBAAe,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAStH;AAED,iBAAe,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5H;AAED,iBAAe,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlH;AAED,OAAO,EACL,mBAAmB,EACnB,kBAAkB,IAAI,qBAAqB,EAC3C,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"apply-fixes.d.ts","sourceRoot":"","sources":["../../src/checks/apply-fixes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAWnD,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAErH,KAAK,QAAQ,GAAG;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC3E,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC,CAAC;AAwCF,iBAAe,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnH;AAED,iBAAe,oBAAoB,CACjC,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,oCAAoC,EAChD,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,iBAAe,6BAA6B,CAC1C,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,oCAAoC,EAChD,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,iBAAe,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/G;AAED,iBAAe,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5H;AAED,iBAAe,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAStH;AAED,iBAAe,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5H;AAED,iBAAe,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlH;AAED,OAAO,EACL,mBAAmB,EACnB,kBAAkB,IAAI,qBAAqB,EAC3C,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { scanSourceFiles } from "../imports/scan.js";
2
2
  import { imports } from "../imports/imports.js";
3
3
  import { filterSourceFilesForRule } from "../shared/rule-exclusions.js";
4
- import { fixSourceFileStructure } from "./fix-source-file-structure.js";
4
+ import { fixRedundantPathSegments } from "./fix-redundant-path-segments.js";
5
5
  import { applyCodeFormatterFix } from "./format.js";
6
6
  import { shouldRunRule } from "./rule-slugs.js";
7
7
  import { fixBannedFilesRule } from "./rules/banned/files.js";
@@ -59,12 +59,12 @@ async function applyMinFileLinesFix(state, normalized, logger) {
59
59
  state.sourceFiles = await scanSourceFiles(normalized);
60
60
  }
61
61
  }
62
- async function applySourceFileStructureFix(state, normalized, logger) {
63
- if (!normalized.rules.sourceFileStructure || !shouldRunFixRule("source-file-structure", normalized))
62
+ async function applyRedundantPathSegmentsFix(state, normalized, logger) {
63
+ if (!normalized.rules.redundantPathSegments || !shouldRunFixRule("redundant-path-segments", normalized))
64
64
  return;
65
- const result = await fixSourceFileStructure(filterSourceFilesForRule(state.sourceFiles, normalized.rules.sourceFileStructure), normalized, logger);
65
+ const result = await fixRedundantPathSegments(filterSourceFilesForRule(state.sourceFiles, normalized.rules.redundantPathSegments), normalized, logger);
66
66
  const violations = applyConfiguredSeverity(result.violations, normalized);
67
- state.ruleResults["source-file-structure"] = mapFixRuleResult({ ...result, violations });
67
+ state.ruleResults["redundant-path-segments"] = mapFixRuleResult({ ...result, violations });
68
68
  state.violations.push(...violations);
69
69
  state.movedFiles += result.moved_files;
70
70
  state.rewrittenFiles += result.rewritten_files;
@@ -126,5 +126,5 @@ async function applyCodeFormatFix(state, normalized) {
126
126
  state.unchangedFiles += result.unchangedFiles;
127
127
  state.rewrittenFiles += result.rewrittenFiles;
128
128
  }
129
- export { applyBannedFilesFix, applyCodeFormatFix as applyCodeFormatterFix, applySourceFileStructureFix, applyMaxCharactersPerLineFix, applyMinFileLinesFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applyImportsFix, };
129
+ export { applyBannedFilesFix, applyCodeFormatFix as applyCodeFormatterFix, applyRedundantPathSegmentsFix, applyMaxCharactersPerLineFix, applyMinFileLinesFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applyImportsFix, };
130
130
  //# sourceMappingURL=apply-fixes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-fixes.js","sourceRoot":"","sources":["../../src/checks/apply-fixes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAgB/D,SAAS,gBAAgB,CAAC,MAezB;IACC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAqB,EAAE,OAA6C;IAC5F,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,KAAe,EAAE,UAAgD;IAClG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,UAAU,CAAC;QAAE,OAAO;IAE3F,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/H,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAChF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAAe,EACf,UAAgD,EAChD,MAAwC;IAExC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,CAAC;QAAE,OAAO;IAE9F,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACtJ,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAClF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;IAChD,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;IACpD,KAAK,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACzE,KAAK,CAAC,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,KAAe,EACf,UAAgD,EAChD,MAAwC;IAExC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,UAAU,CAAC;QAAE,OAAO;IAE5G,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACnJ,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC;IACvC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC;IAC/C,KAAK,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC;IAEnD,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAe,EAAE,UAAgD;IAC9F,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC;QAAE,OAAO;IAElF,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,CAAC;IAC/C,KAAK,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,KAAe,EAAE,UAAgD;IAC3G,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,UAAU,CAAC;QAAE,OAAO;IAE/G,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,CAAC;IACjJ,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,yBAAyB,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3F,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;IACpD,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,KAAe,EAAE,UAAgD;IACrG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,CAAC;QAAE,OAAO;IAEjG,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;IACrI,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACnF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;IACpD,KAAK,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,KAAe,EAAE,UAAgD;IAC3G,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,UAAU,CAAC;QAAE,OAAO;IAE9G,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,CAAC;IACjJ,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1F,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAe,EAAE,UAAgD;IACjG,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAClF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;IAC9C,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;IAC9C,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;AAChD,CAAC;AAED,OAAO,EACL,mBAAmB,EACnB,kBAAkB,IAAI,qBAAqB,EAC3C,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"apply-fixes.js","sourceRoot":"","sources":["../../src/checks/apply-fixes.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@ type PlannedMove = {
8
8
  toAbsolutePath: string;
9
9
  toRelativePath: string;
10
10
  };
11
- declare function createSourceFileStructureViolation(filePath: string, suggestedPath: string, options: NormalizedCheckCodeDisciplineOptions, details: Record<string, unknown>): CodeDisciplineViolation;
11
+ declare function createRedundantPathSegmentsViolation(filePath: string, suggestedPath: string, options: NormalizedCheckCodeDisciplineOptions, details: Record<string, unknown>): CodeDisciplineViolation;
12
12
  declare function buildMovePlan(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions): {
13
13
  moves: PlannedMove[];
14
14
  violations: CodeDisciplineViolation[];
15
15
  };
16
- declare function fixSourceFileStructure(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions, logger: NormalizedCodeDisciplineLogger): Promise<FixCodeDisciplineResult>;
17
- export { buildMovePlan, createSourceFileStructureViolation, fixSourceFileStructure };
18
- //# sourceMappingURL=fix-source-file-structure.d.ts.map
16
+ declare function fixRedundantPathSegments(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions, logger: NormalizedCodeDisciplineLogger): Promise<FixCodeDisciplineResult>;
17
+ export { buildMovePlan, createRedundantPathSegmentsViolation, fixRedundantPathSegments };
18
+ //# sourceMappingURL=fix-redundant-path-segments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-redundant-path-segments.d.ts","sourceRoot":"","sources":["../../src/checks/fix-redundant-path-segments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAW7D,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,iBAAS,oCAAoC,CAC3C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,oCAAoC,EAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,uBAAuB,CASzB;AAED,iBAAS,aAAa,CACpB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,uBAAuB,EAAE,CAAA;CAAE,CAsBjE;AAwLD,iBAAe,wBAAwB,CACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,EAC7C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CA6DlC;AAED,OAAO,EAAE,aAAa,EAAE,oCAAoC,EAAE,wBAAwB,EAAE,CAAC"}
@@ -9,10 +9,10 @@ import { supportsImports } from "../shared/languages.js";
9
9
  import { FileConflictError, FixFailureError, RewriteFailureError } from "../shared/errors.js";
10
10
  import { ensureDotExtension, pathExists } from "../shared/utils.js";
11
11
  import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "./progress.js";
12
- import { planSourceFileStructure } from "./rules/source-file-structure/plan.js";
13
- function createSourceFileStructureViolation(filePath, suggestedPath, options, details) {
12
+ import { planRedundantPathSegments } from "./rules/redundant-path-segments/plan.js";
13
+ function createRedundantPathSegmentsViolation(filePath, suggestedPath, options, details) {
14
14
  return {
15
- rule: "source-file-structure",
15
+ rule: "redundant-path-segments",
16
16
  fix: true,
17
17
  filePath,
18
18
  message: `file path should be normalized to ${suggestedPath}`,
@@ -21,18 +21,18 @@ function createSourceFileStructureViolation(filePath, suggestedPath, options, de
21
21
  };
22
22
  }
23
23
  function buildMovePlan(sourceFiles, options) {
24
- const candidates = planSourceFileStructure(sourceFiles, options);
24
+ const candidates = planRedundantPathSegments(sourceFiles, options);
25
25
  const moves = candidates.map((candidate) => ({
26
26
  fromAbsolutePath: candidate.absolutePath,
27
27
  fromRelativePath: candidate.relativeFromProjectRoot,
28
28
  toAbsolutePath: candidate.suggestedAbsolutePath,
29
29
  toRelativePath: candidate.suggestedPath,
30
30
  }));
31
- const violations = candidates.map((candidate) => createSourceFileStructureViolation(candidate.relativeFromProjectRoot, candidate.suggestedPath, options, {
31
+ const violations = candidates.map((candidate) => createRedundantPathSegmentsViolation(candidate.relativeFromProjectRoot, candidate.suggestedPath, options, {
32
32
  mode: candidate.mode,
33
33
  prefix: candidate.prefix,
34
34
  remainder: candidate.remainder,
35
- ...(candidate.roleSuffix ? { roleSuffix: candidate.roleSuffix } : {}),
35
+ ...(candidate.pathSegment ? { pathSegment: candidate.pathSegment } : {}),
36
36
  separator: candidate.separator,
37
37
  }));
38
38
  return { moves, violations };
@@ -51,7 +51,7 @@ function resolveRelativeFromInventory(specifier, sourceFilePath, sourceExtension
51
51
  }
52
52
  return null;
53
53
  }
54
- async function planImportRewritesForSourceFileStructureMoves(sourceFiles, moves, options) {
54
+ async function planImportRewritesForRedundantPathSegmentsMoves(sourceFiles, moves, options) {
55
55
  if (moves.length === 0) {
56
56
  return {
57
57
  rewrittenByPath: new Map(),
@@ -64,7 +64,7 @@ async function planImportRewritesForSourceFileStructureMoves(sourceFiles, moves,
64
64
  const rewrittenByPath = new Map();
65
65
  const progress = createRuleProgress({
66
66
  observer: options.progressObserver,
67
- rule: "source-file-structure",
67
+ rule: "redundant-path-segments",
68
68
  stage: "rewrite-plan",
69
69
  totalItems: sourceFiles.length,
70
70
  });
@@ -138,7 +138,7 @@ async function validateMovePlan(moves) {
138
138
  async function moveFiles(moves, options) {
139
139
  const progress = createRuleProgress({
140
140
  observer: options.progressObserver,
141
- rule: "source-file-structure",
141
+ rule: "redundant-path-segments",
142
142
  stage: "move",
143
143
  totalItems: moves.length,
144
144
  });
@@ -157,12 +157,12 @@ async function moveFiles(moves, options) {
157
157
  emitRuleCompleted(progress, 0, { movedFiles });
158
158
  return movedFiles;
159
159
  }
160
- async function writeSourceFileStructureRewrites(rewrites, options) {
160
+ async function writeRedundantPathSegmentsRewrites(rewrites, options) {
161
161
  const entries = [...rewrites.entries()];
162
162
  const totalImports = entries.reduce((sum, [, rewrite]) => sum + rewrite.count, 0);
163
163
  const progress = createRuleProgress({
164
164
  observer: options.progressObserver,
165
- rule: "source-file-structure",
165
+ rule: "redundant-path-segments",
166
166
  stage: "write",
167
167
  totalItems: entries.length,
168
168
  });
@@ -179,12 +179,12 @@ async function writeSourceFileStructureRewrites(rewrites, options) {
179
179
  rewrittenImports: totalImports,
180
180
  });
181
181
  }
182
- async function fixSourceFileStructure(sourceFiles, options, logger) {
182
+ async function fixRedundantPathSegments(sourceFiles, options, logger) {
183
183
  const { moves, violations } = buildMovePlan(sourceFiles, options);
184
- if (!options.rules.sourceFileStructure || moves.length === 0) {
185
- logger.info("fix-source-file-structure-unchanged", "no source file structure moves required", {
184
+ if (!options.rules.redundantPathSegments || moves.length === 0) {
185
+ logger.info("fix-redundant-path-segments-unchanged", "no redundant path segment moves required", {
186
186
  moves: 0,
187
- }, { group: ruleLogGroup("source-file-structure") });
187
+ }, { group: ruleLogGroup("redundant-path-segments") });
188
188
  return {
189
189
  ok: true,
190
190
  violationCount: 0,
@@ -202,15 +202,15 @@ async function fixSourceFileStructure(sourceFiles, options, logger) {
202
202
  await validateMovePlan(moves);
203
203
  const sourceDirectories = moves.map((move) => path.dirname(move.fromAbsolutePath));
204
204
  try {
205
- const rewriteState = await planImportRewritesForSourceFileStructureMoves(sourceFiles, moves, options);
205
+ const rewriteState = await planImportRewritesForRedundantPathSegmentsMoves(sourceFiles, moves, options);
206
206
  const movedFiles = await moveFiles(moves, options);
207
- await writeSourceFileStructureRewrites(rewriteState.rewrittenByPath, options);
207
+ await writeRedundantPathSegmentsRewrites(rewriteState.rewrittenByPath, options);
208
208
  await removeEmptyDirectories(sourceDirectories);
209
- logger.success("fix-source-file-structure-finished", `source file structure moves=${movedFiles} rewrittenImports=${rewriteState.rewrittenImports}`, {
209
+ logger.success("fix-redundant-path-segments-finished", `redundant path segment moves=${movedFiles} rewrittenImports=${rewriteState.rewrittenImports}`, {
210
210
  movedFiles,
211
211
  rewrittenFiles: rewriteState.rewrittenFiles,
212
212
  rewrittenImports: rewriteState.rewrittenImports,
213
- }, { group: ruleLogGroup("source-file-structure") });
213
+ }, { group: ruleLogGroup("redundant-path-segments") });
214
214
  return {
215
215
  ok: true,
216
216
  violationCount: 0,
@@ -229,10 +229,10 @@ async function fixSourceFileStructure(sourceFiles, options, logger) {
229
229
  if (error instanceof FileConflictError || error instanceof RewriteFailureError) {
230
230
  throw error;
231
231
  }
232
- throw new FixFailureError("Source file structure fix failed", {
232
+ throw new FixFailureError("Redundant path segments fix failed", {
233
233
  cause: error instanceof Error ? error.message : String(error),
234
234
  });
235
235
  }
236
236
  }
237
- export { buildMovePlan, createSourceFileStructureViolation, fixSourceFileStructure };
238
- //# sourceMappingURL=fix-source-file-structure.js.map
237
+ export { buildMovePlan, createRedundantPathSegmentsViolation, fixRedundantPathSegments };
238
+ //# sourceMappingURL=fix-redundant-path-segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-redundant-path-segments.js","sourceRoot":"","sources":["../../src/checks/fix-redundant-path-segments.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { result as createResult } from "@package/result";
2
2
  import { normalizeCheckCodeDisciplineOptions } from "../config/normalize/check-options.js";
3
- import { collectImportViolations } from "../imports/check-imports.js";
3
+ import { collectImportViolations } from "../imports/check.js";
4
4
  import { scanSourceFiles } from "../imports/scan.js";
5
5
  import { runLogGroup } from "../shared/log-groups.js";
6
6
  import { resolveLogger } from "../shared/logging.js";
7
7
  import { filterSourceFilesForRule } from "../shared/rule-exclusions.js";
8
- import { applyBannedFilesFix, applySourceFileStructureFix, applyMaxCharactersPerLineFix, applyMinFileLinesFix, applyCodeFormatterFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applyImportsFix, } from "./apply-fixes.js";
8
+ import { applyBannedFilesFix, applyRedundantPathSegmentsFix, applyMaxCharactersPerLineFix, applyMinFileLinesFix, applyCodeFormatterFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applyImportsFix, } from "./apply-fixes.js";
9
9
  import { collectFormatViolations } from "./format.js";
10
10
  import { shouldRunRule } from "./rule-slugs.js";
11
11
  import { collectBannedFileViolations } from "./rules/banned/files.js";
@@ -15,7 +15,7 @@ import { collectDryViolations } from "./rules/dry/index.js";
15
15
  import { runMaxCharactersPerLineRule } from "./rules/max/characters-per-line.js";
16
16
  import { runMaxFileLinesRule } from "./rules/max/file-lines.js";
17
17
  import { runMaxFunctionLinesRule } from "./rules/max/function-lines.js";
18
- import { runSourceFileStructureRule } from "./rules/source-file-structure/index.js";
18
+ import { runRedundantPathSegmentsRule } from "./rules/redundant-path-segments/index.js";
19
19
  import { runMinDeclarationNameRule } from "./rules/min/declaration-name.js";
20
20
  import { runMinFileLinesRule } from "./rules/min/file/lines.js";
21
21
  import { collectRemoveCommentsViolations } from "./rules/remove-comments.js";
@@ -96,8 +96,8 @@ async function collectViolations(options) {
96
96
  if (options.rules.maxFunctionLines && shouldRunRule("max-function-lines", options.onlyRules)) {
97
97
  violations.push(...await runMaxFunctionLinesRule(filterSourceFilesForRule(sourceFiles, options.rules.maxFunctionLines), options));
98
98
  }
99
- if (options.rules.sourceFileStructure && shouldRunRule("source-file-structure", options.onlyRules)) {
100
- violations.push(...runSourceFileStructureRule(filterSourceFilesForRule(sourceFiles, options.rules.sourceFileStructure), options));
99
+ if (options.rules.redundantPathSegments && shouldRunRule("redundant-path-segments", options.onlyRules)) {
100
+ violations.push(...runRedundantPathSegmentsRule(filterSourceFilesForRule(sourceFiles, options.rules.redundantPathSegments), options));
101
101
  }
102
102
  if (options.rules.dry && shouldRunRule("dry", options.onlyRules)) {
103
103
  violations.push(...await collectDryViolations(filterSourceFilesForRule(sourceFiles, options.rules.dry), options));
@@ -172,7 +172,7 @@ async function fixCodeDiscipline(options) {
172
172
  };
173
173
  await applyBannedFilesFix(state, normalized);
174
174
  await applyMinFileLinesFix(state, normalized, logger);
175
- await applySourceFileStructureFix(state, normalized, logger);
175
+ await applyRedundantPathSegmentsFix(state, normalized, logger);
176
176
  await applyImportsFix(state, normalized);
177
177
  await applyRemoveCommentsFix(state, normalized);
178
178
  await applyStructuralBlankLinesFix(state, normalized);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ParseFailureError } from "../shared/errors.js";
2
+ import type { CodeDisciplineRuleName, CodeDisciplineViolation } from "../shared/discipline-types.js";
3
+ declare function isParseFailureError(error: unknown): error is ParseFailureError;
4
+ declare function parseFailureDiagnostics(error: ParseFailureError): string[];
5
+ declare function createParseFailureViolation(rule: CodeDisciplineRuleName, filePath: string, error: ParseFailureError): CodeDisciplineViolation;
6
+ declare function collectWithParseFailure<T>(rule: CodeDisciplineRuleName, filePath: string, violations: CodeDisciplineViolation[], run: () => Promise<T> | T): Promise<T | null>;
7
+ export { collectWithParseFailure, createParseFailureViolation, isParseFailureError, parseFailureDiagnostics, };
8
+ //# sourceMappingURL=parse-failures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-failures.d.ts","sourceRoot":"","sources":["../../src/checks/parse-failures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAErF,iBAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAEvE;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAKnE;AAED,iBAAS,2BAA2B,CAClC,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,GACvB,uBAAuB,CAczB;AAED,iBAAe,uBAAuB,CAAC,CAAC,EACtC,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,uBAAuB,EAAE,EACrC,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACxB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAQnB;AAED,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,GACxB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { ParseFailureError } from "../shared/errors.js";
2
+ function isParseFailureError(error) {
3
+ return error instanceof ParseFailureError;
4
+ }
5
+ function parseFailureDiagnostics(error) {
6
+ const diagnostics = error.details?.diagnostics;
7
+ if (Array.isArray(diagnostics))
8
+ return diagnostics.map((entry) => String(entry));
9
+ if (typeof diagnostics === "string")
10
+ return [diagnostics];
11
+ return [];
12
+ }
13
+ function createParseFailureViolation(rule, filePath, error) {
14
+ const diagnostics = parseFailureDiagnostics(error);
15
+ const summary = diagnostics[0] ?? "unknown parse error";
16
+ return {
17
+ rule,
18
+ fix: false,
19
+ filePath,
20
+ message: `file could not be parsed and was skipped by ${rule}: ${summary}`,
21
+ details: {
22
+ parseFailure: true,
23
+ diagnostics,
24
+ },
25
+ };
26
+ }
27
+ async function collectWithParseFailure(rule, filePath, violations, run) {
28
+ try {
29
+ return await run();
30
+ }
31
+ catch (caught) {
32
+ if (!isParseFailureError(caught))
33
+ throw caught;
34
+ violations.push(createParseFailureViolation(rule, filePath, caught));
35
+ return null;
36
+ }
37
+ }
38
+ export { collectWithParseFailure, createParseFailureViolation, isParseFailureError, parseFailureDiagnostics, };
39
+ //# sourceMappingURL=parse-failures.js.map