@trebired/code-discipline 2.3.0 → 3.1.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 (193) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +49 -2
  3. package/dist/checks/fix-folderization.js +1 -1
  4. package/dist/checks/index.d.ts +1 -0
  5. package/dist/checks/index.d.ts.map +1 -1
  6. package/dist/checks/index.js +93 -70
  7. package/dist/checks/index.js.map +1 -1
  8. package/dist/checks/rule-slugs.d.ts +3 -3
  9. package/dist/checks/rule-slugs.d.ts.map +1 -1
  10. package/dist/checks/rule-slugs.js +12 -8
  11. package/dist/checks/rule-slugs.js.map +1 -1
  12. package/dist/checks/rules/comments/ranges.d.ts +10 -0
  13. package/dist/checks/rules/comments/ranges.d.ts.map +1 -0
  14. package/dist/checks/rules/{comment-stripping.js → comments/ranges.js} +51 -107
  15. package/dist/checks/rules/comments/ranges.js.map +1 -0
  16. package/dist/checks/rules/{comment-stripping.d.ts → comments/stripping.d.ts} +3 -2
  17. package/dist/checks/rules/comments/stripping.d.ts.map +1 -0
  18. package/dist/checks/rules/comments/stripping.js +81 -0
  19. package/dist/checks/rules/comments/stripping.js.map +1 -0
  20. package/dist/checks/rules/dry/candidates.d.ts +8 -0
  21. package/dist/checks/rules/dry/candidates.d.ts.map +1 -0
  22. package/dist/checks/rules/dry/candidates.js +98 -0
  23. package/dist/checks/rules/dry/candidates.js.map +1 -0
  24. package/dist/checks/rules/dry/fingerprint.d.ts +15 -0
  25. package/dist/checks/rules/dry/fingerprint.d.ts.map +1 -0
  26. package/dist/checks/rules/dry/fingerprint.js +80 -0
  27. package/dist/checks/rules/dry/fingerprint.js.map +1 -0
  28. package/dist/checks/rules/dry/fix.d.ts +5 -0
  29. package/dist/checks/rules/dry/fix.d.ts.map +1 -0
  30. package/dist/checks/rules/dry/fix.js +252 -0
  31. package/dist/checks/rules/dry/fix.js.map +1 -0
  32. package/dist/checks/rules/dry/helpers.d.ts +5 -0
  33. package/dist/checks/rules/dry/helpers.d.ts.map +1 -0
  34. package/dist/checks/rules/dry/helpers.js +99 -0
  35. package/dist/checks/rules/dry/helpers.js.map +1 -0
  36. package/dist/checks/rules/dry/index.d.ts +7 -0
  37. package/dist/checks/rules/dry/index.d.ts.map +1 -0
  38. package/dist/checks/rules/dry/index.js +14 -0
  39. package/dist/checks/rules/dry/index.js.map +1 -0
  40. package/dist/checks/rules/dry/model.d.ts +37 -0
  41. package/dist/checks/rules/dry/model.d.ts.map +1 -0
  42. package/dist/checks/rules/dry/model.js +16 -0
  43. package/dist/checks/rules/dry/model.js.map +1 -0
  44. package/dist/checks/rules/dry/serialize/bindings.d.ts +8 -0
  45. package/dist/checks/rules/dry/serialize/bindings.d.ts.map +1 -0
  46. package/dist/checks/rules/dry/serialize/bindings.js +62 -0
  47. package/dist/checks/rules/dry/serialize/bindings.js.map +1 -0
  48. package/dist/checks/rules/dry/serialize/context.d.ts +18 -0
  49. package/dist/checks/rules/dry/serialize/context.d.ts.map +1 -0
  50. package/dist/checks/rules/dry/serialize/context.js +103 -0
  51. package/dist/checks/rules/dry/serialize/context.js.map +1 -0
  52. package/dist/checks/rules/dry/serialize/expressions.d.ts +10 -0
  53. package/dist/checks/rules/dry/serialize/expressions.d.ts.map +1 -0
  54. package/dist/checks/rules/dry/serialize/expressions.js +161 -0
  55. package/dist/checks/rules/dry/serialize/expressions.js.map +1 -0
  56. package/dist/checks/rules/dry/serialize/node.d.ts +5 -0
  57. package/dist/checks/rules/dry/serialize/node.d.ts.map +1 -0
  58. package/dist/checks/rules/dry/serialize/node.js +43 -0
  59. package/dist/checks/rules/dry/serialize/node.js.map +1 -0
  60. package/dist/checks/rules/dry/serialize/statements.d.ts +7 -0
  61. package/dist/checks/rules/dry/serialize/statements.d.ts.map +1 -0
  62. package/dist/checks/rules/dry/serialize/statements.js +99 -0
  63. package/dist/checks/rules/dry/serialize/statements.js.map +1 -0
  64. package/dist/checks/rules/evasion-guards/functions.d.ts +14 -0
  65. package/dist/checks/rules/evasion-guards/functions.d.ts.map +1 -0
  66. package/dist/checks/rules/evasion-guards/functions.js +83 -0
  67. package/dist/checks/rules/evasion-guards/functions.js.map +1 -0
  68. package/dist/checks/rules/evasion-guards/index.d.ts +6 -0
  69. package/dist/checks/rules/evasion-guards/index.d.ts.map +1 -0
  70. package/dist/checks/rules/evasion-guards/index.js +126 -0
  71. package/dist/checks/rules/evasion-guards/index.js.map +1 -0
  72. package/dist/checks/rules/evasion-guards/runtime.d.ts +6 -0
  73. package/dist/checks/rules/evasion-guards/runtime.d.ts.map +1 -0
  74. package/dist/checks/rules/evasion-guards/runtime.js +51 -0
  75. package/dist/checks/rules/evasion-guards/runtime.js.map +1 -0
  76. package/dist/checks/rules/evasion-guards/strip.d.ts +11 -0
  77. package/dist/checks/rules/evasion-guards/strip.d.ts.map +1 -0
  78. package/dist/checks/rules/evasion-guards/strip.js +89 -0
  79. package/dist/checks/rules/evasion-guards/strip.js.map +1 -0
  80. package/dist/checks/rules/folderize/compound-files.d.ts +6 -0
  81. package/dist/checks/rules/folderize/compound-files.d.ts.map +1 -0
  82. package/dist/checks/rules/{folderize-compound-files.js → folderize/compound-files.js} +10 -2
  83. package/dist/checks/rules/folderize/compound-files.js.map +1 -0
  84. package/dist/checks/rules/{folderize-plan.d.ts → folderize/plan.d.ts} +3 -3
  85. package/dist/checks/rules/folderize/plan.d.ts.map +1 -0
  86. package/dist/checks/rules/{folderize-plan.js → folderize/plan.js} +2 -2
  87. package/dist/checks/rules/folderize/plan.js.map +1 -0
  88. package/dist/checks/rules/max/file-lines.d.ts +6 -0
  89. package/dist/checks/rules/max/file-lines.d.ts.map +1 -0
  90. package/dist/checks/rules/{max-file-lines.js → max/file-lines.js} +9 -1
  91. package/dist/checks/rules/max/file-lines.js.map +1 -0
  92. package/dist/checks/rules/max/function-lines.d.ts +6 -0
  93. package/dist/checks/rules/max/function-lines.d.ts.map +1 -0
  94. package/dist/checks/rules/{max-function-lines.js → max/function-lines.js} +79 -61
  95. package/dist/checks/rules/max/function-lines.js.map +1 -0
  96. package/dist/checks/rules/remove-comments.d.ts.map +1 -1
  97. package/dist/checks/rules/remove-comments.js +10 -1
  98. package/dist/checks/rules/remove-comments.js.map +1 -1
  99. package/dist/checks/types.d.ts +25 -2
  100. package/dist/checks/types.d.ts.map +1 -1
  101. package/dist/cli/progress.d.ts +11 -0
  102. package/dist/cli/progress.d.ts.map +1 -0
  103. package/dist/cli/progress.js +65 -0
  104. package/dist/cli/progress.js.map +1 -0
  105. package/dist/cli/run-cli.d.ts.map +1 -1
  106. package/dist/cli/run-cli.js +91 -66
  107. package/dist/cli/run-cli.js.map +1 -1
  108. package/dist/config/index.d.ts.map +1 -1
  109. package/dist/config/index.js +68 -62
  110. package/dist/config/index.js.map +1 -1
  111. package/dist/config/{normalize-check-options.d.ts → normalize/check-options.d.ts} +2 -2
  112. package/dist/config/normalize/check-options.d.ts.map +1 -0
  113. package/dist/config/{normalize-check-options.js → normalize/check-options.js} +6 -5
  114. package/dist/config/normalize/check-options.js.map +1 -0
  115. package/dist/config/{normalize-rule-options.d.ts → normalize/rule-options.d.ts} +9 -8
  116. package/dist/config/normalize/rule-options.d.ts.map +1 -0
  117. package/dist/config/{normalize-rule-options.js → normalize/rule-options.js} +37 -4
  118. package/dist/config/normalize/rule-options.js.map +1 -0
  119. package/dist/config/{normalize-source-options.d.ts → normalize/source-options.d.ts} +4 -2
  120. package/dist/config/normalize/source-options.d.ts.map +1 -0
  121. package/dist/config/{normalize-source-options.js → normalize/source-options.js} +6 -5
  122. package/dist/config/normalize/source-options.js.map +1 -0
  123. package/dist/config/{normalize-sync-imports-options.d.ts → normalize/sync-imports-options.d.ts} +2 -2
  124. package/dist/config/normalize/sync-imports-options.d.ts.map +1 -0
  125. package/dist/config/{normalize-sync-imports-options.js → normalize/sync-imports-options.js} +5 -5
  126. package/dist/config/normalize/sync-imports-options.js.map +1 -0
  127. package/dist/imports/check-sync-imports.js +1 -1
  128. package/dist/imports/check-sync-imports.js.map +1 -1
  129. package/dist/imports/scan.d.ts.map +1 -1
  130. package/dist/imports/scan.js +127 -26
  131. package/dist/imports/scan.js.map +1 -1
  132. package/dist/imports/sync-imports.d.ts.map +1 -1
  133. package/dist/imports/sync-imports.js +59 -47
  134. package/dist/imports/sync-imports.js.map +1 -1
  135. package/dist/imports/types.d.ts +26 -1
  136. package/dist/imports/types.d.ts.map +1 -1
  137. package/dist/index.d.ts +4 -3
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +3 -2
  140. package/dist/index.js.map +1 -1
  141. package/dist/native/native.d.ts +18 -0
  142. package/dist/native/native.d.ts.map +1 -0
  143. package/dist/native/native.js +78 -0
  144. package/dist/native/native.js.map +1 -0
  145. package/dist/run.d.ts +2 -0
  146. package/dist/run.d.ts.map +1 -1
  147. package/dist/run.js +4 -0
  148. package/dist/run.js.map +1 -1
  149. package/dist/runtime/{runtime-imports-sync.d.ts → imports-sync.d.ts} +1 -1
  150. package/dist/runtime/imports-sync.d.ts.map +1 -0
  151. package/dist/runtime/{runtime-imports-sync.js → imports-sync.js} +33 -21
  152. package/dist/runtime/imports-sync.js.map +1 -0
  153. package/dist/shared/discipline-types.d.ts +1 -1
  154. package/dist/shared/discipline-types.d.ts.map +1 -1
  155. package/dist/shared/logging.d.ts.map +1 -1
  156. package/dist/shared/logging.js +28 -13
  157. package/dist/shared/logging.js.map +1 -1
  158. package/dist/shared/utils.d.ts +4 -4
  159. package/dist/shared/utils.d.ts.map +1 -1
  160. package/dist/shared/utils.js +4 -4
  161. package/dist/shared/utils.js.map +1 -1
  162. package/native/darwin-arm64.node +0 -0
  163. package/native/darwin-x64.node +0 -0
  164. package/native/linux-arm64-gnu.node +0 -0
  165. package/native/linux-x64-gnu.node +0 -0
  166. package/package.json +11 -4
  167. package/dist/checks/rules/comment-stripping.d.ts.map +0 -1
  168. package/dist/checks/rules/comment-stripping.js.map +0 -1
  169. package/dist/checks/rules/dry.d.ts +0 -7
  170. package/dist/checks/rules/dry.d.ts.map +0 -1
  171. package/dist/checks/rules/dry.js +0 -905
  172. package/dist/checks/rules/dry.js.map +0 -1
  173. package/dist/checks/rules/folderize-compound-files.d.ts +0 -6
  174. package/dist/checks/rules/folderize-compound-files.d.ts.map +0 -1
  175. package/dist/checks/rules/folderize-compound-files.js.map +0 -1
  176. package/dist/checks/rules/folderize-plan.d.ts.map +0 -1
  177. package/dist/checks/rules/folderize-plan.js.map +0 -1
  178. package/dist/checks/rules/max-file-lines.d.ts +0 -6
  179. package/dist/checks/rules/max-file-lines.d.ts.map +0 -1
  180. package/dist/checks/rules/max-file-lines.js.map +0 -1
  181. package/dist/checks/rules/max-function-lines.d.ts +0 -6
  182. package/dist/checks/rules/max-function-lines.d.ts.map +0 -1
  183. package/dist/checks/rules/max-function-lines.js.map +0 -1
  184. package/dist/config/normalize-check-options.d.ts.map +0 -1
  185. package/dist/config/normalize-check-options.js.map +0 -1
  186. package/dist/config/normalize-rule-options.d.ts.map +0 -1
  187. package/dist/config/normalize-rule-options.js.map +0 -1
  188. package/dist/config/normalize-source-options.d.ts.map +0 -1
  189. package/dist/config/normalize-source-options.js.map +0 -1
  190. package/dist/config/normalize-sync-imports-options.d.ts.map +0 -1
  191. package/dist/config/normalize-sync-imports-options.js.map +0 -1
  192. package/dist/runtime/runtime-imports-sync.d.ts.map +0 -1
  193. package/dist/runtime/runtime-imports-sync.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to `@trebired/code-discipline` will be documented here.
4
4
 
5
+ ## 3.1.0
6
+
7
+ - Added explicit CLI scan completion timing so `check` and `gate` report how long the codebase scan took after `Scanning codebase`.
8
+ - Added chunked scan progress logging and native/backend scan summaries so large-repository scans are easier to observe and tune.
9
+ - Reworked source scanning in both the TypeScript fallback and Rust native backend to use chunked concurrent directory traversal for faster large-codebase scans.
10
+ - Added the `TB_CODE_DISCIPLINE_SCAN_CONCURRENCY` override so scan throughput can be tuned per machine or CI worker.
11
+
12
+ ## 3.0.0
13
+
14
+ - Added top-level `evasionGuards` checks for packed files, packed lines, packed JavaScript/TypeScript functions, and runtime code hiding through string execution.
15
+ - Added the check-only `evasion-guards` selector so opt-in anti-evasion scans can be targeted from the CLI/runtime.
16
+ - Added a TTY loading animation for long CLI check/fix/gate scans.
17
+ - Changed `remove-comments` fixes to remove comment-only lines during the same per-file rewrite.
18
+ - Added the Rust native backend with TypeScript fallback and native acceleration for source scanning, `max-file-lines`, common `max-function-lines` paths, `folderize-compound-files` checks, `remove-comments`, and `evasion-guards`.
19
+ - Fixed runtime/CLI forwarding for top-level `evasionGuards`.
20
+ - Enforced code-discipline on its own codebase: the package is now a self devDependency, `bun run test` runs through `code-discipline gate`, and the source and test tree were refactored until `check` reports zero violations.
21
+ - Fixed Bun and Node config loading for TypeScript config modules: transpiled modules are now written to `node_modules/.cache/code-discipline` instead of `data:` URLs, so relative `.js` specifiers resolving to `.ts` sources, bare package imports, and import cycles keep a real filesystem base.
22
+ - Fixed native build scripts after folderization and exported the native `stripComments` binding so the Rust backend matches the TypeScript native bridge.
23
+ - Fixed CLI error handling so failures inside `check`, `fix`, and `gate` are reported on stderr with exit code 1 instead of escaping as unhandled rejections.
24
+
5
25
  ## 2.3.0
6
26
 
7
27
  - Added the package-owned `code-discipline gate -- <command> [args...]` startup wrapper so apps can refuse startup on discipline violations without importing the package into their own source code.
package/README.md CHANGED
@@ -8,6 +8,7 @@ Configurable repository discipline checks and rule-driven fixes for Bun and Node
8
8
  - structural rules such as folderizing compound files
9
9
  - sync rules such as keeping source imports, `tsconfig.json`, and optional `package.json#imports` aligned
10
10
  - source cleanup rules such as removing comments across supported languages
11
+ - native acceleration with a TypeScript fallback for large codebases
11
12
  - DRY enforcement against registered canonical helper functions
12
13
 
13
14
  It is not a formatter, linter replacement, or build system.
@@ -34,6 +35,19 @@ code-discipline fix sync-imports dry remove-comments
34
35
  code-discipline gate -- bun run dev
35
36
  ```
36
37
 
38
+ ## Native Backend
39
+
40
+ `@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.
41
+
42
+ The current native backend accelerates source scanning, `max-file-lines`, common `max-function-lines` paths, `folderize-compound-files` checks, `remove-comments`, and `evasion-guards`. If no binary is present, the package automatically uses the TypeScript fallback.
43
+
44
+ Useful native controls:
45
+
46
+ - `bun run build:native` builds the host native addon into `native/<platform>.node`
47
+ - `bun run build:native:matrix` builds the release target matrix
48
+ - `TB_CODE_DISCIPLINE_DISABLE_NATIVE=1` forces the TypeScript fallback
49
+ - `TB_CODE_DISCIPLINE_NATIVE_BINARY=/path/to/addon.node` loads a specific native addon
50
+
37
51
  Top-level `sync` is gone.
38
52
 
39
53
  `sync-imports` is now just another fixable rule, so targeted sync work is done through:
@@ -88,6 +102,8 @@ Legacy config filenames are no longer auto-discovered, but they still work when
88
102
 
89
103
  Rules are enabled by presence. If a rule object exists under `rules`, it runs.
90
104
 
105
+ `evasionGuards` is a top-level opt-in system because it checks suspicious compliance patterns across rules instead of being a normal style rule.
106
+
91
107
  Example `tb.code-discipline.ts`:
92
108
 
93
109
  ```ts
@@ -104,6 +120,7 @@ export default defineCodeDisciplineConfig({
104
120
  normalize: "relative-dot-prefix",
105
121
  restoreAfterRun: true,
106
122
  },
123
+ evasionGuards: true,
107
124
  lifecycle: {
108
125
  async beforeRun(context) {
109
126
  context.state.started = true;
@@ -193,8 +210,9 @@ Rules use kebab-case public slugs:
193
210
  - `sync-imports`
194
211
  - `remove-comments`
195
212
  - `dry`
213
+ - `evasion-guards`
196
214
 
197
- `fix` only accepts fixable rules. Trying to run `code-discipline fix max-function-lines` fails clearly.
215
+ `fix` only accepts fixable rules. Trying to run `code-discipline fix max-function-lines` or `code-discipline fix evasion-guards` fails clearly.
198
216
 
199
217
  ## Runtime API
200
218
 
@@ -257,6 +275,35 @@ Reports files whose total line count exceeds `max`.
257
275
 
258
276
  Reports function-like declarations whose total span exceeds `max`.
259
277
 
278
+ ### `evasionGuards`
279
+
280
+ Reports suspicious attempts to satisfy discipline rules without actually improving the code. This is mainly for AI agents because they commonly produce this type of shady slop: compressing long files or large functions into one-line/few-line code so max-line checks stop complaining.
281
+
282
+ Enable it at the top level:
283
+
284
+ ```ts
285
+ export default defineCodeDisciplineConfig({
286
+ evasionGuards: true,
287
+ rules: {
288
+ maxFileLines: {
289
+ max: 500,
290
+ },
291
+ maxFunctionLines: {
292
+ max: 80,
293
+ },
294
+ },
295
+ });
296
+ ```
297
+
298
+ It detects:
299
+
300
+ - packed files with very few physical lines but lots of code structure
301
+ - packed lines with excessive statement or structural density
302
+ - packed JavaScript/TypeScript functions that dodge line-count limits
303
+ - runtime code hiding through string execution such as `eval`, `new Function`, or `setTimeout("code")`
304
+
305
+ `evasionGuards` is check-only and disabled unless explicitly configured.
306
+
260
307
  ### `folderizeCompoundFiles`
261
308
 
262
309
  Detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`.
@@ -302,7 +349,7 @@ The rule supports the same language families this package currently scans for di
302
349
  - Go
303
350
  - Rust
304
351
 
305
- It keeps string, regex, rune, char, byte-string, and raw-string content intact while removing actual source comments.
352
+ 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.
306
353
 
307
354
  Example targeted CLI usage:
308
355
 
@@ -5,7 +5,7 @@ import { isRelativeImportSpecifier } from "../imports/resolve.js";
5
5
  import { supportsFolderizationFix } from "../shared/languages.js";
6
6
  import { FileConflictError, FixFailureError, RewriteFailureError } from "../shared/errors.js";
7
7
  import { ensureDotExtension, pathExists, stripKnownExtension, toPosixPath } from "../shared/utils.js";
8
- import { planFolderizeCompoundFiles } from "./rules/folderize-plan.js";
8
+ import { planFolderizeCompoundFiles } from "./rules/folderize/plan.js";
9
9
  function createFolderizationViolation(filePath, suggestedPath, options, details) {
10
10
  return {
11
11
  rule: "folderize-compound-files",
@@ -8,6 +8,7 @@ declare function buildNormalizedSyncOptions(options: NormalizedCheckCodeDiscipli
8
8
  excludeDirs: string[];
9
9
  excludeGitignoreDirs: boolean;
10
10
  gitignorePath: string;
11
+ scanObserver: import("../imports/types.js").SourceScanObserver;
11
12
  tsconfigPath: string;
12
13
  fix: boolean;
13
14
  alias: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oCAAoC,EACpC,wBAAwB,EACxB,uBAAuB,EAGvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAe,0BAA0B,CACvC,OAAO,EAAE,oCAAoC,EAC7C,GAAG,EAAE,OAAO,EACZ,IAAI,GAAE,oCAAoC,GAAG,SAAqC;;;;;;;;;;;;;;;;;;;GA+CnF;AA6FD,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA8EpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oCAAoC,EACpC,wBAAwB,EACxB,uBAAuB,EAGvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAYpB,iBAAe,0BAA0B,CACvC,OAAO,EAAE,oCAAoC,EAC7C,GAAG,EAAE,OAAO,EACZ,IAAI,GAAE,oCAAoC,GAAG,SAAqC;;;;;;;;;;;;;;;;;;;;GAgDnF;AAmLD,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAqBpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { normalizeCheckCodeDisciplineOptions } from "../config/normalize-check-options.js";
2
+ import { normalizeCheckCodeDisciplineOptions } from "../config/normalize/check-options.js";
3
3
  import { collectSyncImportViolations } from "../imports/check-sync-imports.js";
4
4
  import { scanSourceFiles } from "../imports/scan.js";
5
5
  import { syncImports } from "../imports/sync-imports.js";
@@ -9,10 +9,11 @@ import { resolveLogger } from "../shared/logging.js";
9
9
  import { ensureDotExtension, normalizeRelativePath, uniqueStrings } from "../shared/utils.js";
10
10
  import { shouldRunRule } from "./rule-slugs.js";
11
11
  import { fixFolderization } from "./fix-folderization.js";
12
- import { runFolderizeCompoundFilesRule } from "./rules/folderize-compound-files.js";
13
- import { collectDryViolations, fixDryRule } from "./rules/dry.js";
14
- import { runMaxFileLinesRule } from "./rules/max-file-lines.js";
15
- import { runMaxFunctionLinesRule } from "./rules/max-function-lines.js";
12
+ import { runFolderizeCompoundFilesRule } from "./rules/folderize/compound-files.js";
13
+ import { collectDryViolations, fixDryRule } from "./rules/dry/index.js";
14
+ import { runEvasionGuardsRule } from "./rules/evasion-guards/index.js";
15
+ import { runMaxFileLinesRule } from "./rules/max/file-lines.js";
16
+ import { runMaxFunctionLinesRule } from "./rules/max/function-lines.js";
16
17
  import { collectRemoveCommentsViolations, fixRemoveCommentsRule } from "./rules/remove-comments.js";
17
18
  async function buildNormalizedSyncOptions(options, fix, rule = options.rules.syncImports) {
18
19
  if (!rule)
@@ -48,6 +49,7 @@ async function buildNormalizedSyncOptions(options, fix, rule = options.rules.syn
48
49
  excludeDirs,
49
50
  excludeGitignoreDirs: rule.excludeDirs?.gitignore ?? options.excludeGitignoreDirs,
50
51
  gitignorePath,
52
+ scanObserver: options.scanObserver,
51
53
  tsconfigPath: rule.tsconfigPath ?? `${options.projectRoot}/tsconfig.json`,
52
54
  fix,
53
55
  alias: {
@@ -105,6 +107,9 @@ async function collectViolations(options) {
105
107
  if (options.rules.removeComments && shouldRunRule("remove-comments", options.onlyRules)) {
106
108
  violations.push(...await collectRemoveCommentsViolations(sourceFiles));
107
109
  }
110
+ if (options.evasionGuards && shouldRunRule("evasion-guards", options.onlyRules)) {
111
+ violations.push(...await runEvasionGuardsRule(sourceFiles, options));
112
+ }
108
113
  return sortViolations(violations);
109
114
  }
110
115
  function mapFixRuleResult(result) {
@@ -123,6 +128,75 @@ function mapFixRuleResult(result) {
123
128
  function shouldRunFixRule(rule, options) {
124
129
  return shouldRunRule(rule, options.onlyRules);
125
130
  }
131
+ async function applyFolderizeFix(state, normalized, logger) {
132
+ if (!normalized.rules.folderizeCompoundFiles || !shouldRunFixRule("folderize-compound-files", normalized))
133
+ return;
134
+ const result = await fixFolderization(state.sourceFiles, normalized, logger);
135
+ state.ruleResults["folderize-compound-files"] = mapFixRuleResult(result);
136
+ state.violations.push(...result.violations);
137
+ state.movedFiles += result.moved_files;
138
+ state.rewrittenFiles += result.rewritten_files;
139
+ state.rewrittenImports += result.rewritten_imports;
140
+ if (result.moved_files > 0 || result.rewritten_files > 0) {
141
+ state.sourceFiles = await scanSourceFiles(normalized);
142
+ }
143
+ }
144
+ async function applyDryFix(state, normalized) {
145
+ if (!normalized.rules.dry || !shouldRunFixRule("dry", normalized))
146
+ return;
147
+ const result = await fixDryRule(state.sourceFiles, normalized);
148
+ state.ruleResults.dry = mapFixRuleResult(result);
149
+ state.violations.push(...result.violations);
150
+ state.rewrittenFiles += result.rewritten_files ?? 0;
151
+ if ((result.rewritten_files ?? 0) > 0) {
152
+ state.sourceFiles = await scanSourceFiles(normalized);
153
+ }
154
+ }
155
+ async function applySyncImportsFix(state, normalized) {
156
+ if (!normalized.rules.syncImports || !shouldRunFixRule("sync-imports", normalized))
157
+ return;
158
+ const syncOptions = await buildNormalizedSyncOptions(normalized, true);
159
+ if (!syncOptions)
160
+ return;
161
+ const result = await syncImports(syncOptions);
162
+ state.ruleResults["sync-imports"] = mapFixRuleResult(result);
163
+ state.violations.push(...result.violations);
164
+ state.rewrittenFiles += result.rewritten_files;
165
+ state.rewrittenImports += result.rewritten_imports;
166
+ }
167
+ async function applyRemoveCommentsFix(state, normalized) {
168
+ if (!normalized.rules.removeComments || !shouldRunFixRule("remove-comments", normalized))
169
+ return;
170
+ const result = await fixRemoveCommentsRule(state.sourceFiles, normalized);
171
+ state.ruleResults["remove-comments"] = mapFixRuleResult(result);
172
+ state.violations.push(...result.violations);
173
+ state.rewrittenFiles += result.rewritten_files ?? 0;
174
+ state.removedComments += result.removed_comments ?? 0;
175
+ }
176
+ function createFixResult(state) {
177
+ return {
178
+ ...summarizeViolations(sortViolations(state.violations)),
179
+ moved_files: state.movedFiles,
180
+ rewritten_files: state.rewrittenFiles,
181
+ rewritten_imports: state.rewrittenImports,
182
+ removed_comments: state.removedComments,
183
+ ruleResults: state.ruleResults,
184
+ };
185
+ }
186
+ function logFixResult(result, logger) {
187
+ if (!result.ok || result.violations.length > 0) {
188
+ logSummary("fix", result, logger);
189
+ return;
190
+ }
191
+ logger.flush("success", "discipline-fix-ok", "fix completed", {
192
+ violationCount: result.violationCount,
193
+ movedFiles: result.moved_files,
194
+ rewrittenFiles: result.rewritten_files,
195
+ rewrittenImports: result.rewritten_imports,
196
+ removedComments: result.removed_comments,
197
+ ruleResults: result.ruleResults,
198
+ });
199
+ }
126
200
  async function checkCodeDiscipline(options) {
127
201
  const normalized = await normalizeCheckCodeDisciplineOptions(options, "check");
128
202
  const logger = resolveLogger(normalized.logging);
@@ -134,72 +208,21 @@ async function checkCodeDiscipline(options) {
134
208
  async function fixCodeDiscipline(options) {
135
209
  const normalized = await normalizeCheckCodeDisciplineOptions(options, "fix");
136
210
  const logger = resolveLogger(normalized.logging);
137
- const ruleResults = {};
138
- const violations = [];
139
- let movedFiles = 0;
140
- let rewrittenFiles = 0;
141
- let rewrittenImports = 0;
142
- let removedComments = 0;
143
- let sourceFiles = await scanSourceFiles(normalized);
144
- if (normalized.rules.folderizeCompoundFiles && shouldRunFixRule("folderize-compound-files", normalized)) {
145
- const folderizeResult = await fixFolderization(sourceFiles, normalized, logger);
146
- ruleResults["folderize-compound-files"] = mapFixRuleResult(folderizeResult);
147
- violations.push(...folderizeResult.violations);
148
- movedFiles += folderizeResult.moved_files;
149
- rewrittenFiles += folderizeResult.rewritten_files;
150
- rewrittenImports += folderizeResult.rewritten_imports;
151
- if (folderizeResult.moved_files > 0 || folderizeResult.rewritten_files > 0) {
152
- sourceFiles = await scanSourceFiles(normalized);
153
- }
154
- }
155
- if (normalized.rules.dry && shouldRunFixRule("dry", normalized)) {
156
- const dryResult = await fixDryRule(sourceFiles, normalized);
157
- ruleResults.dry = mapFixRuleResult(dryResult);
158
- violations.push(...dryResult.violations);
159
- rewrittenFiles += dryResult.rewritten_files ?? 0;
160
- if ((dryResult.rewritten_files ?? 0) > 0) {
161
- sourceFiles = await scanSourceFiles(normalized);
162
- }
163
- }
164
- if (normalized.rules.syncImports && shouldRunFixRule("sync-imports", normalized)) {
165
- const syncOptions = await buildNormalizedSyncOptions(normalized, true);
166
- if (syncOptions) {
167
- const syncResult = await syncImports(syncOptions);
168
- ruleResults["sync-imports"] = mapFixRuleResult(syncResult);
169
- violations.push(...syncResult.violations);
170
- rewrittenFiles += syncResult.rewritten_files;
171
- rewrittenImports += syncResult.rewritten_imports;
172
- }
173
- }
174
- if (normalized.rules.removeComments && shouldRunFixRule("remove-comments", normalized)) {
175
- const removeCommentsResult = await fixRemoveCommentsRule(sourceFiles, normalized);
176
- ruleResults["remove-comments"] = mapFixRuleResult(removeCommentsResult);
177
- violations.push(...removeCommentsResult.violations);
178
- rewrittenFiles += removeCommentsResult.rewritten_files ?? 0;
179
- removedComments += removeCommentsResult.removed_comments ?? 0;
180
- }
181
- const summary = summarizeViolations(sortViolations(violations));
182
- const result = {
183
- ...summary,
184
- moved_files: movedFiles,
185
- rewritten_files: rewrittenFiles,
186
- rewritten_imports: rewrittenImports,
187
- removed_comments: removedComments,
188
- ruleResults,
211
+ const state = {
212
+ movedFiles: 0,
213
+ removedComments: 0,
214
+ rewrittenFiles: 0,
215
+ rewrittenImports: 0,
216
+ ruleResults: {},
217
+ sourceFiles: await scanSourceFiles(normalized),
218
+ violations: [],
189
219
  };
190
- if (!result.ok || result.violations.length > 0) {
191
- logSummary("fix", result, logger);
192
- }
193
- else {
194
- logger.flush("success", "discipline-fix-ok", "fix completed", {
195
- violationCount: result.violationCount,
196
- movedFiles: result.moved_files,
197
- rewrittenFiles: result.rewritten_files,
198
- rewrittenImports: result.rewritten_imports,
199
- removedComments: result.removed_comments,
200
- ruleResults: result.ruleResults,
201
- });
202
- }
220
+ await applyFolderizeFix(state, normalized, logger);
221
+ await applyDryFix(state, normalized);
222
+ await applySyncImportsFix(state, normalized);
223
+ await applyRemoveCommentsFix(state, normalized);
224
+ const result = createFixResult(state);
225
+ logFixResult(result, logger);
203
226
  return result;
204
227
  }
205
228
  export { buildNormalizedSyncOptions, checkCodeDiscipline, fixCodeDiscipline };
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { CodeDisciplineMode, CodeDisciplineRuleSlug, CodeDisciplineRules, FixableRuleSlug } from "./types.js";
1
+ import type { CodeDisciplineMode, CodeDisciplineRuleSlug, CodeDisciplineRules, EvasionGuardsOptions, FixableRuleSlug } from "./types.js";
2
2
  declare const ALL_RULE_SLUGS: CodeDisciplineRuleSlug[];
3
3
  declare const FIXABLE_RULE_SLUGS: FixableRuleSlug[];
4
4
  declare const RULE_SLUG_BY_CONFIG_KEY: {
@@ -9,8 +9,8 @@ declare const RULE_SLUG_BY_CONFIG_KEY: {
9
9
  readonly removeComments: "remove-comments";
10
10
  readonly syncImports: "sync-imports";
11
11
  };
12
- declare function resolveEnabledRuleSlugs(rules: CodeDisciplineRules | undefined): Set<CodeDisciplineRuleSlug>;
13
- declare function normalizeOnlyRules(mode: CodeDisciplineMode, onlyRules: readonly string[] | undefined, rules: CodeDisciplineRules | undefined): CodeDisciplineRuleSlug[] | FixableRuleSlug[] | undefined;
12
+ declare function resolveEnabledRuleSlugs(rules: CodeDisciplineRules | undefined, evasionGuards?: EvasionGuardsOptions): Set<CodeDisciplineRuleSlug>;
13
+ declare function normalizeOnlyRules(mode: CodeDisciplineMode, onlyRules: readonly string[] | undefined, rules: CodeDisciplineRules | undefined, evasionGuards?: EvasionGuardsOptions): CodeDisciplineRuleSlug[] | FixableRuleSlug[] | undefined;
14
14
  declare function shouldRunRule(rule: CodeDisciplineRuleSlug, onlyRules: readonly string[] | undefined): boolean;
15
15
  export { ALL_RULE_SLUGS, FIXABLE_RULE_SLUGS, RULE_SLUG_BY_CONFIG_KEY, normalizeOnlyRules, resolveEnabledRuleSlugs, shouldRunRule, };
16
16
  //# sourceMappingURL=rule-slugs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-slugs.d.ts","sourceRoot":"","sources":["../../src/checks/rule-slugs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,cAAc,EAAE,sBAAsB,EAO3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,eAAe,EAKxC,CAAC;AAEF,QAAA,MAAM,uBAAuB;;;;;;;CAOnB,CAAC;AAEX,iBAAS,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAWpG;AAED,iBAAS,kBAAkB,CACzB,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACxC,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,sBAAsB,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAgC1D;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,sBAAsB,EAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACvC,OAAO,CAET;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"rule-slugs.d.ts","sourceRoot":"","sources":["../../src/checks/rule-slugs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,cAAc,EAAE,sBAAsB,EAQ3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,eAAe,EAKxC,CAAC;AAEF,QAAA,MAAM,uBAAuB;;;;;;;CAOnB,CAAC;AAEX,iBAAS,uBAAuB,CAC9B,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,aAAa,CAAC,EAAE,oBAAoB,GACnC,GAAG,CAAC,sBAAsB,CAAC,CAgB7B;AAED,iBAAS,kBAAkB,CACzB,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACxC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,aAAa,CAAC,EAAE,oBAAoB,GACnC,sBAAsB,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAgC1D;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,sBAAsB,EAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACvC,OAAO,CAET;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,CAAC"}
@@ -6,6 +6,7 @@ const ALL_RULE_SLUGS = [
6
6
  "sync-imports",
7
7
  "remove-comments",
8
8
  "dry",
9
+ "evasion-guards",
9
10
  ];
10
11
  const FIXABLE_RULE_SLUGS = [
11
12
  "folderize-compound-files",
@@ -21,22 +22,25 @@ const RULE_SLUG_BY_CONFIG_KEY = {
21
22
  removeComments: "remove-comments",
22
23
  syncImports: "sync-imports",
23
24
  };
24
- function resolveEnabledRuleSlugs(rules) {
25
+ function resolveEnabledRuleSlugs(rules, evasionGuards) {
25
26
  const enabled = new Set();
26
- if (!rules)
27
- return enabled;
28
- for (const [key, slug] of Object.entries(RULE_SLUG_BY_CONFIG_KEY)) {
29
- if (rules[key]) {
30
- enabled.add(slug);
27
+ if (rules) {
28
+ for (const [key, slug] of Object.entries(RULE_SLUG_BY_CONFIG_KEY)) {
29
+ if (rules[key]) {
30
+ enabled.add(slug);
31
+ }
31
32
  }
32
33
  }
34
+ if (evasionGuards) {
35
+ enabled.add("evasion-guards");
36
+ }
33
37
  return enabled;
34
38
  }
35
- function normalizeOnlyRules(mode, onlyRules, rules) {
39
+ function normalizeOnlyRules(mode, onlyRules, rules, evasionGuards) {
36
40
  if (!onlyRules || onlyRules.length === 0)
37
41
  return undefined;
38
42
  const allowedRules = new Set(mode === "fix" ? FIXABLE_RULE_SLUGS : ALL_RULE_SLUGS);
39
- const enabledRules = resolveEnabledRuleSlugs(rules);
43
+ const enabledRules = resolveEnabledRuleSlugs(rules, evasionGuards);
40
44
  const normalized = [];
41
45
  for (const rule of onlyRules) {
42
46
  if (!allowedRules.has(rule)) {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-slugs.js","sourceRoot":"","sources":["../../src/checks/rule-slugs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAQvE,MAAM,cAAc,GAA6B;IAC/C,gBAAgB;IAChB,oBAAoB;IACpB,0BAA0B;IAC1B,cAAc;IACd,iBAAiB;IACjB,KAAK;CACN,CAAC;AAEF,MAAM,kBAAkB,GAAsB;IAC5C,0BAA0B;IAC1B,cAAc;IACd,iBAAiB;IACjB,KAAK;CACN,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,GAAG,EAAE,KAAK;IACV,sBAAsB,EAAE,0BAA0B;IAClD,YAAY,EAAE,gBAAgB;IAC9B,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,iBAAiB;IACjC,WAAW,EAAE,cAAc;CACnB,CAAC;AAEX,SAAS,uBAAuB,CAAC,KAAsC;IACrE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAA0E,EAAE,CAAC;QAC3I,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAwB,EACxB,SAAwC,EACxC,KAAsC;IAEtC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE3D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,UAAU,GAA6B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,gCAAgC,CACxC,IAAI,KAAK,KAAK;gBACZ,CAAC,CAAC,iCAAiC,IAAI,EAAE;gBACzC,CAAC,CAAC,0BAA0B,IAAI,EAAE,EACpC,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAA8B,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,gCAAgC,CAAC,oCAAoC,IAAI,EAAE,EAAE;gBACrF,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAA8B,CAAC,EAAE,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,IAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,KAAK,KAAK;QACnB,CAAC,CAAC,UAA+B;QACjC,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CACpB,IAA4B,EAC5B,SAAwC;IAExC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"rule-slugs.js","sourceRoot":"","sources":["../../src/checks/rule-slugs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ type CommentKind = "line" | "block";
2
+ type CommentRange = {
3
+ start: number;
4
+ end: number;
5
+ kind: CommentKind;
6
+ };
7
+ declare function collectCommentRanges(text: string, extension: string): CommentRange[];
8
+ export { collectCommentRanges };
9
+ export type { CommentRange };
10
+ //# sourceMappingURL=ranges.d.ts.map
@@ -0,0 +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,CAK7E;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,CAAC"}