@trebired/code-discipline 4.4.2 → 4.5.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 (51) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +23 -3
  3. package/dist/checks/apply-fixes.d.ts +26 -0
  4. package/dist/checks/apply-fixes.d.ts.map +1 -0
  5. package/dist/checks/apply-fixes.js +119 -0
  6. package/dist/checks/apply-fixes.js.map +1 -0
  7. package/dist/checks/index.d.ts.map +1 -1
  8. package/dist/checks/index.js +12 -127
  9. package/dist/checks/index.js.map +1 -1
  10. package/dist/checks/rule-slugs.d.ts +1 -0
  11. package/dist/checks/rule-slugs.d.ts.map +1 -1
  12. package/dist/checks/rule-slugs.js +3 -0
  13. package/dist/checks/rule-slugs.js.map +1 -1
  14. package/dist/checks/rules/blank-lines/classify.d.ts +6 -0
  15. package/dist/checks/rules/blank-lines/classify.d.ts.map +1 -0
  16. package/dist/checks/rules/blank-lines/classify.js +80 -0
  17. package/dist/checks/rules/blank-lines/classify.js.map +1 -0
  18. package/dist/checks/rules/blank-lines/comments.d.ts +7 -0
  19. package/dist/checks/rules/blank-lines/comments.d.ts.map +1 -0
  20. package/dist/checks/rules/blank-lines/comments.js +68 -0
  21. package/dist/checks/rules/blank-lines/comments.js.map +1 -0
  22. package/dist/checks/rules/blank-lines/index.d.ts +7 -0
  23. package/dist/checks/rules/blank-lines/index.d.ts.map +1 -0
  24. package/dist/checks/rules/blank-lines/index.js +89 -0
  25. package/dist/checks/rules/blank-lines/index.js.map +1 -0
  26. package/dist/checks/rules/blank-lines/rewrite.d.ts +14 -0
  27. package/dist/checks/rules/blank-lines/rewrite.d.ts.map +1 -0
  28. package/dist/checks/rules/blank-lines/rewrite.js +122 -0
  29. package/dist/checks/rules/blank-lines/rewrite.js.map +1 -0
  30. package/dist/checks/rules/blank-lines/types.d.ts +21 -0
  31. package/dist/checks/rules/blank-lines/types.d.ts.map +1 -0
  32. package/dist/checks/rules/blank-lines/types.js +2 -0
  33. package/dist/checks/rules/blank-lines/types.js.map +1 -0
  34. package/dist/checks/severity.d.ts +5 -0
  35. package/dist/checks/severity.d.ts.map +1 -0
  36. package/dist/checks/severity.js +28 -0
  37. package/dist/checks/severity.js.map +1 -0
  38. package/dist/checks/types.d.ts +13 -2
  39. package/dist/checks/types.d.ts.map +1 -1
  40. package/dist/config/normalize/check-options.d.ts.map +1 -1
  41. package/dist/config/normalize/check-options.js +2 -1
  42. package/dist/config/normalize/check-options.js.map +1 -1
  43. package/dist/config/normalize/rule-options.d.ts +6 -2
  44. package/dist/config/normalize/rule-options.d.ts.map +1 -1
  45. package/dist/config/normalize/rule-options.js +18 -1
  46. package/dist/config/normalize/rule-options.js.map +1 -1
  47. package/dist/index.d.ts +1 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/shared/discipline-types.d.ts +1 -1
  50. package/dist/shared/discipline-types.d.ts.map +1 -1
  51. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to `@trebired/code-discipline` will be documented here.
4
4
 
5
+ ## 4.5.0
6
+
7
+ - Added `structuralBlankLines`, a fixable rule that enforces exactly one blank line at AST-identified structural boundaries (file headers, imports, declaration groups, class members) while leaving compact groups (imports, variables, types, re-exports, execution statements, class fields, directive prologues, function overloads, getter/setter pairs) at zero or one blank line and collapsing two or more blank lines to one.
8
+ - Made unqualified `fix` run `structuralBlankLines` after `removeComments` and before configured Prettier formatting.
9
+
5
10
  ## 4.4.2
6
11
 
7
12
  - Replaced top-level `excludeDirs` with shared `ignore.entries` and `ignore.use_gitignore` configuration.
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
+ - structural spacing rules such as normalizing blank lines around JavaScript and TypeScript declarations
11
12
  - native acceleration with a TypeScript fallback for large codebases
12
13
  - DRY enforcement through source-tree duplicate function grouping
13
14
 
@@ -31,7 +32,7 @@ code-discipline check
31
32
  code-discipline check save
32
33
  code-discipline check max-function-lines dry
33
34
  code-discipline fix
34
- code-discipline fix banned-files min-file-lines sync-imports remove-comments
35
+ code-discipline fix banned-files min-file-lines sync-imports remove-comments structural-blank-lines
35
36
  code-discipline gate -- bun run dev
36
37
  ```
37
38
 
@@ -242,7 +243,7 @@ export default defineCodeDisciplineConfig({
242
243
 
243
244
  ```sh
244
245
  code-discipline check max-file-lines max-function-lines
245
- code-discipline fix banned-files min-file-lines sync-imports remove-comments
246
+ code-discipline fix banned-files min-file-lines sync-imports remove-comments structural-blank-lines
246
247
  code-discipline check prettier
247
248
  code-discipline fix prettier
248
249
  ```
@@ -259,6 +260,7 @@ Rules use kebab-case public slugs:
259
260
  - `folderize-compound-files`
260
261
  - `sync-imports`
261
262
  - `remove-comments`
263
+ - `structural-blank-lines`
262
264
  - `dry`
263
265
 
264
266
  `fix` only accepts fixable rules. Trying to run `code-discipline fix max-function-lines`, `code-discipline fix max-characters-per-line`, or `code-discipline fix dry` fails clearly.
@@ -269,7 +271,7 @@ Formatter selectors such as `prettier` are enabled by top-level `formatters` con
269
271
 
270
272
  Formatters are configured at top level under `formatters`, not under `rules`. Presence enables a formatter; there is no `enabled: true` key.
271
273
 
272
- `formatters.prettier` uses Prettier as the formatting engine and keeps `code-discipline.ts` as the formatting policy source. `check prettier` validates formatting without modifying files, while `fix prettier` writes formatted files. Running `code-discipline fix` with no selectors runs configured Prettier formatting last after structural, import, and comment fixes. Set `formatters.prettier.ignore: true` to reuse the shared top-level `ignore`.
274
+ `formatters.prettier` uses Prettier as the formatting engine and keeps `code-discipline.ts` as the formatting policy source. `check prettier` validates formatting without modifying files, while `fix prettier` writes formatted files. Running `code-discipline fix` with no selectors runs configured Prettier formatting last after structural, import, comment, and blank-line fixes. Set `formatters.prettier.ignore: true` to reuse the shared top-level `ignore`.
273
275
 
274
276
  Example:
275
277
 
@@ -493,6 +495,24 @@ Example targeted CLI usage:
493
495
  code-discipline fix remove-comments
494
496
  ```
495
497
 
498
+ ### `structuralBlankLines`
499
+
500
+ Reports JavaScript and TypeScript files where the major structural sections aren't visually separated, and normalizes the blank lines between them when you run `code-discipline fix`.
501
+
502
+ It only enforces blank lines at boundaries the AST clearly identifies as structural: 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.
503
+
504
+ 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.
505
+
506
+ ```ts
507
+ structuralBlankLines: {}
508
+ ```
509
+
510
+ Example targeted CLI usage:
511
+
512
+ ```sh
513
+ code-discipline fix structural-blank-lines
514
+ ```
515
+
496
516
  ### `dry`
497
517
 
498
518
  Reports duplicate function groups across the configured source tree.
@@ -0,0 +1,26 @@
1
+ import type { ScannedSourceFile } from "../imports/types.js";
2
+ import type { CodeDisciplineViolation } from "../shared/discipline-types.js";
3
+ import type { resolveLogger } from "../shared/logging.js";
4
+ import type { FixableRuleSlug, FixCodeDisciplineRuleResult, NormalizedCheckCodeDisciplineOptions } from "./types.js";
5
+ type FixState = {
6
+ deletedFiles: number;
7
+ movedFiles: number;
8
+ removedComments: number;
9
+ formattedFiles: number;
10
+ unchangedFiles: number;
11
+ rewrittenFiles: number;
12
+ rewrittenImports: number;
13
+ ruleResults: Partial<Record<FixableRuleSlug, FixCodeDisciplineRuleResult>>;
14
+ sourceFiles: ScannedSourceFile[];
15
+ violations: CodeDisciplineViolation[];
16
+ };
17
+ declare function applyBannedFilesFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
18
+ declare function applyMinFileLinesFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions, logger: ReturnType<typeof resolveLogger>): Promise<void>;
19
+ declare function applyFolderizeFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions, logger: ReturnType<typeof resolveLogger>): Promise<void>;
20
+ declare function applySyncImportsFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
21
+ declare function applyRemoveCommentsFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
22
+ declare function applyStructuralBlankLinesFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
23
+ declare function applyPrettierFix(state: FixState, normalized: NormalizedCheckCodeDisciplineOptions): Promise<void>;
24
+ export { applyBannedFilesFix, applyFolderizeFix, applyMinFileLinesFix, applyPrettierFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applySyncImportsFix, };
25
+ export type { FixState };
26
+ //# sourceMappingURL=apply-fixes.d.ts.map
@@ -0,0 +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,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAU1D,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,iBAAiB,CAC9B,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,oCAAoC,EAChD,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,iBAAe,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnH;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,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhH;AAED,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,GACpB,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { scanSourceFiles } from "../imports/scan.js";
2
+ import { syncImports } from "../imports/sync-imports.js";
3
+ import { filterSourceFilesForRule } from "../shared/rule-exclusions.js";
4
+ import { fixFolderization } from "./fix-folderization.js";
5
+ import { applyPrettierFormatterFix } from "./prettier.js";
6
+ import { shouldRunRule } from "./rule-slugs.js";
7
+ import { fixBannedFilesRule } from "./rules/banned/files.js";
8
+ import { fixStructuralBlankLinesRule } from "./rules/blank-lines/index.js";
9
+ import { fixMinFileLinesRule } from "./rules/min/file/lines/fix.js";
10
+ import { fixRemoveCommentsRule } from "./rules/remove-comments.js";
11
+ import { applyConfiguredSeverity } from "./severity.js";
12
+ import { buildNormalizedSyncOptions } from "./sync-options.js";
13
+ function mapFixRuleResult(result) {
14
+ return {
15
+ ok: result.ok,
16
+ violationCount: result.violationCount,
17
+ violations: result.violations,
18
+ moved_files: result.moved_files,
19
+ rewritten_files: result.rewritten_files,
20
+ rewritten_imports: result.rewritten_imports,
21
+ removed_comments: result.removed_comments,
22
+ formatted_files: result.formatted_files,
23
+ unchanged_files: result.unchanged_files,
24
+ removed_duplicates: result.removed_duplicates,
25
+ added_imports: result.added_imports,
26
+ deleted_files: result.deleted_files,
27
+ inserted_blank_lines: result.inserted_blank_lines,
28
+ removed_blank_lines: result.removed_blank_lines,
29
+ };
30
+ }
31
+ function shouldRunFixRule(rule, options) {
32
+ return shouldRunRule(rule, options.onlyRules);
33
+ }
34
+ async function applyBannedFilesFix(state, normalized) {
35
+ if (!normalized.rules.bannedFiles || !shouldRunFixRule("banned-files", normalized))
36
+ return;
37
+ const result = await fixBannedFilesRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.bannedFiles), normalized);
38
+ const violations = applyConfiguredSeverity(result.violations, normalized);
39
+ state.ruleResults["banned-files"] = mapFixRuleResult({ ...result, violations });
40
+ state.violations.push(...violations);
41
+ state.deletedFiles += result.deleted_files ?? 0;
42
+ if ((result.deleted_files ?? 0) > 0) {
43
+ state.sourceFiles = await scanSourceFiles(normalized);
44
+ }
45
+ }
46
+ async function applyMinFileLinesFix(state, normalized, logger) {
47
+ if (!normalized.rules.minFileLines || !shouldRunFixRule("min-file-lines", normalized))
48
+ return;
49
+ const syncOptions = await buildNormalizedSyncOptions(normalized, true);
50
+ const result = await fixMinFileLinesRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.minFileLines), normalized, logger, syncOptions);
51
+ const violations = applyConfiguredSeverity(result.violations, normalized);
52
+ state.ruleResults["min-file-lines"] = mapFixRuleResult({ ...result, violations });
53
+ state.violations.push(...violations);
54
+ state.deletedFiles += result.deleted_files ?? 0;
55
+ state.rewrittenFiles += result.rewritten_files ?? 0;
56
+ state.rewrittenImports += result.rewritten_imports ?? 0;
57
+ if ((result.deleted_files ?? 0) > 0 || (result.rewritten_files ?? 0) > 0) {
58
+ state.sourceFiles = await scanSourceFiles(normalized);
59
+ }
60
+ }
61
+ async function applyFolderizeFix(state, normalized, logger) {
62
+ if (!normalized.rules.folderizeCompoundFiles || !shouldRunFixRule("folderize-compound-files", normalized))
63
+ return;
64
+ const result = await fixFolderization(filterSourceFilesForRule(state.sourceFiles, normalized.rules.folderizeCompoundFiles), normalized, logger);
65
+ const violations = applyConfiguredSeverity(result.violations, normalized);
66
+ state.ruleResults["folderize-compound-files"] = mapFixRuleResult({ ...result, violations });
67
+ state.violations.push(...violations);
68
+ state.movedFiles += result.moved_files;
69
+ state.rewrittenFiles += result.rewritten_files;
70
+ state.rewrittenImports += result.rewritten_imports;
71
+ if (result.moved_files > 0 || result.rewritten_files > 0) {
72
+ state.sourceFiles = await scanSourceFiles(normalized);
73
+ }
74
+ }
75
+ async function applySyncImportsFix(state, normalized) {
76
+ if (!normalized.rules.syncImports || !shouldRunFixRule("sync-imports", normalized))
77
+ return;
78
+ const syncOptions = await buildNormalizedSyncOptions(normalized, true);
79
+ if (!syncOptions)
80
+ return;
81
+ const result = await syncImports(syncOptions);
82
+ const violations = applyConfiguredSeverity(result.violations, normalized);
83
+ state.ruleResults["sync-imports"] = mapFixRuleResult({ ...result, violations });
84
+ state.violations.push(...violations);
85
+ state.rewrittenFiles += result.rewritten_files;
86
+ state.rewrittenImports += result.rewritten_imports;
87
+ }
88
+ async function applyRemoveCommentsFix(state, normalized) {
89
+ if (!normalized.rules.removeComments || !shouldRunFixRule("remove-comments", normalized))
90
+ return;
91
+ const result = await fixRemoveCommentsRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.removeComments), normalized);
92
+ const violations = applyConfiguredSeverity(result.violations, normalized);
93
+ state.ruleResults["remove-comments"] = mapFixRuleResult({ ...result, violations });
94
+ state.violations.push(...violations);
95
+ state.rewrittenFiles += result.rewritten_files ?? 0;
96
+ state.removedComments += result.removed_comments ?? 0;
97
+ }
98
+ async function applyStructuralBlankLinesFix(state, normalized) {
99
+ if (!normalized.rules.structuralBlankLines || !shouldRunFixRule("structural-blank-lines", normalized))
100
+ return;
101
+ const result = await fixStructuralBlankLinesRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.structuralBlankLines), normalized);
102
+ const violations = applyConfiguredSeverity(result.violations, normalized);
103
+ state.ruleResults["structural-blank-lines"] = mapFixRuleResult({ ...result, violations });
104
+ state.violations.push(...violations);
105
+ state.rewrittenFiles += result.rewritten_files ?? 0;
106
+ }
107
+ async function applyPrettierFix(state, normalized) {
108
+ const result = await applyPrettierFormatterFix(normalized);
109
+ if (!result)
110
+ return;
111
+ const violations = applyConfiguredSeverity(result.violations, normalized);
112
+ state.ruleResults.prettier = mapFixRuleResult({ ...result.ruleResult, violations });
113
+ state.violations.push(...violations);
114
+ state.formattedFiles += result.formattedFiles;
115
+ state.unchangedFiles += result.unchangedFiles;
116
+ state.rewrittenFiles += result.rewrittenFiles;
117
+ }
118
+ export { applyBannedFilesFix, applyFolderizeFix, applyMinFileLinesFix, applyPrettierFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applySyncImportsFix, };
119
+ //# sourceMappingURL=apply-fixes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-fixes.js","sourceRoot":"","sources":["../../src/checks/apply-fixes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EAIxB,MAAM,YAAY,CAAC;AAyUpB,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA0BpG;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":"AAiCA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EAExB,MAAM,YAAY,CAAC;AAiKpB,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA2BpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -2,53 +2,28 @@ import { result as createResult } from "@trebired/result";
2
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
- import { syncImports } from "../imports/sync-imports.js";
6
5
  import { runLogGroup } from "../shared/log-groups.js";
7
6
  import { resolveLogger } from "../shared/logging.js";
8
7
  import { filterSourceFilesForRule } from "../shared/rule-exclusions.js";
9
- import { applyPrettierFormatterFix, collectPrettierViolations } from "./prettier.js";
8
+ import { applyBannedFilesFix, applyFolderizeFix, applyMinFileLinesFix, applyPrettierFix, applyRemoveCommentsFix, applyStructuralBlankLinesFix, applySyncImportsFix, } from "./apply-fixes.js";
9
+ import { collectPrettierViolations } from "./prettier.js";
10
10
  import { shouldRunRule } from "./rule-slugs.js";
11
- import { fixFolderization } from "./fix-folderization.js";
12
- import { runFolderizeCompoundFilesRule } from "./rules/folderize/compound-files.js";
13
- import { collectBannedFileViolations, fixBannedFilesRule } from "./rules/banned/files.js";
11
+ import { collectBannedFileViolations } from "./rules/banned/files.js";
14
12
  import { collectBannedPatternViolations } from "./rules/banned/patterns.js";
13
+ import { collectStructuralBlankLinesViolations } from "./rules/blank-lines/index.js";
15
14
  import { collectDryViolations } from "./rules/dry/index.js";
16
15
  import { runMaxCharactersPerLineRule } from "./rules/max/characters-per-line.js";
17
16
  import { runMaxFileLinesRule } from "./rules/max/file-lines.js";
18
17
  import { runMaxFunctionLinesRule } from "./rules/max/function-lines.js";
19
- import { fixMinFileLinesRule } from "./rules/min/file/lines/fix.js";
20
- import { runMinFileLinesRule } from "./rules/min/file/lines.js";
18
+ import { runFolderizeCompoundFilesRule } from "./rules/folderize/compound-files.js";
21
19
  import { runMinDeclarationNameRule } from "./rules/min/declaration-name.js";
22
- import { collectRemoveCommentsViolations, fixRemoveCommentsRule } from "./rules/remove-comments.js";
20
+ import { runMinFileLinesRule } from "./rules/min/file/lines.js";
21
+ import { collectRemoveCommentsViolations } from "./rules/remove-comments.js";
22
+ import { applyConfiguredSeverity } from "./severity.js";
23
23
  import { buildNormalizedSyncOptions } from "./sync-options.js";
24
24
  function sortViolations(violations) {
25
25
  return [...violations].sort((left, right) => left.filePath.localeCompare(right.filePath) || left.rule.localeCompare(right.rule));
26
26
  }
27
- function resolveConfiguredSeverity(violation, options) {
28
- switch (violation.rule) {
29
- case "banned-patterns": return options.rules.bannedPatterns?.severity ?? "fail";
30
- case "banned-files": return options.rules.bannedFiles?.severity ?? "fail";
31
- case "min-file-lines": return options.rules.minFileLines?.severity ?? "fail";
32
- case "min-declaration-name": return options.rules.minDeclarationName?.severity ?? "fail";
33
- case "max-file-lines": return options.rules.maxFileLines?.severity ?? "fail";
34
- case "max-characters-per-line": return options.rules.maxCharactersPerLine?.severity ?? "fail";
35
- case "max-function-lines": return options.rules.maxFunctionLines?.severity ?? "fail";
36
- case "folderize-compound-files": return options.rules.folderizeCompoundFiles?.severity ?? "fail";
37
- case "sync-imports": return options.rules.syncImports?.severity ?? "fail";
38
- case "remove-comments": return options.rules.removeComments?.severity ?? "fail";
39
- case "dry": return options.rules.dry?.severity ?? "fail";
40
- case "prettier": return "fail";
41
- }
42
- }
43
- function applyConfiguredSeverity(violations, options) {
44
- return violations.map((violation) => {
45
- const severity = violation.severity ?? resolveConfiguredSeverity(violation, options);
46
- return {
47
- ...violation,
48
- severity: severity === "warning" ? "warning" : undefined,
49
- };
50
- });
51
- }
52
27
  function isBlockingViolation(violation) {
53
28
  return violation.severity !== "warning";
54
29
  }
@@ -136,103 +111,12 @@ async function collectViolations(options) {
136
111
  if (options.rules.removeComments && shouldRunRule("remove-comments", options.onlyRules)) {
137
112
  violations.push(...await collectRemoveCommentsViolations(filterSourceFilesForRule(sourceFiles, options.rules.removeComments), options));
138
113
  }
114
+ if (options.rules.structuralBlankLines && shouldRunRule("structural-blank-lines", options.onlyRules)) {
115
+ violations.push(...await collectStructuralBlankLinesViolations(filterSourceFilesForRule(sourceFiles, options.rules.structuralBlankLines), options));
116
+ }
139
117
  violations.push(...await collectPrettierViolations(options));
140
118
  return sortViolations(applyConfiguredSeverity(violations, options));
141
119
  }
142
- function mapFixRuleResult(result) {
143
- return {
144
- ok: result.ok,
145
- violationCount: result.violationCount,
146
- violations: result.violations,
147
- moved_files: result.moved_files,
148
- rewritten_files: result.rewritten_files,
149
- rewritten_imports: result.rewritten_imports,
150
- removed_comments: result.removed_comments,
151
- formatted_files: result.formatted_files,
152
- unchanged_files: result.unchanged_files,
153
- removed_duplicates: result.removed_duplicates,
154
- added_imports: result.added_imports,
155
- deleted_files: result.deleted_files,
156
- };
157
- }
158
- function shouldRunFixRule(rule, options) {
159
- return shouldRunRule(rule, options.onlyRules);
160
- }
161
- async function applyBannedFilesFix(state, normalized) {
162
- if (!normalized.rules.bannedFiles || !shouldRunFixRule("banned-files", normalized))
163
- return;
164
- const result = await fixBannedFilesRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.bannedFiles), normalized);
165
- const violations = applyConfiguredSeverity(result.violations, normalized);
166
- state.ruleResults["banned-files"] = mapFixRuleResult({ ...result, violations });
167
- state.violations.push(...violations);
168
- state.deletedFiles += result.deleted_files ?? 0;
169
- if ((result.deleted_files ?? 0) > 0) {
170
- state.sourceFiles = await scanSourceFiles(normalized);
171
- }
172
- }
173
- async function applyMinFileLinesFix(state, normalized, logger) {
174
- if (!normalized.rules.minFileLines || !shouldRunFixRule("min-file-lines", normalized))
175
- return;
176
- const syncOptions = await buildNormalizedSyncOptions(normalized, true);
177
- const result = await fixMinFileLinesRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.minFileLines), normalized, logger, syncOptions);
178
- const violations = applyConfiguredSeverity(result.violations, normalized);
179
- state.ruleResults["min-file-lines"] = mapFixRuleResult({ ...result, violations });
180
- state.violations.push(...violations);
181
- state.deletedFiles += result.deleted_files ?? 0;
182
- state.rewrittenFiles += result.rewritten_files ?? 0;
183
- state.rewrittenImports += result.rewritten_imports ?? 0;
184
- if ((result.deleted_files ?? 0) > 0 || (result.rewritten_files ?? 0) > 0) {
185
- state.sourceFiles = await scanSourceFiles(normalized);
186
- }
187
- }
188
- async function applyFolderizeFix(state, normalized, logger) {
189
- if (!normalized.rules.folderizeCompoundFiles || !shouldRunFixRule("folderize-compound-files", normalized))
190
- return;
191
- const result = await fixFolderization(filterSourceFilesForRule(state.sourceFiles, normalized.rules.folderizeCompoundFiles), normalized, logger);
192
- const violations = applyConfiguredSeverity(result.violations, normalized);
193
- state.ruleResults["folderize-compound-files"] = mapFixRuleResult({ ...result, violations });
194
- state.violations.push(...violations);
195
- state.movedFiles += result.moved_files;
196
- state.rewrittenFiles += result.rewritten_files;
197
- state.rewrittenImports += result.rewritten_imports;
198
- if (result.moved_files > 0 || result.rewritten_files > 0) {
199
- state.sourceFiles = await scanSourceFiles(normalized);
200
- }
201
- }
202
- async function applySyncImportsFix(state, normalized) {
203
- if (!normalized.rules.syncImports || !shouldRunFixRule("sync-imports", normalized))
204
- return;
205
- const syncOptions = await buildNormalizedSyncOptions(normalized, true);
206
- if (!syncOptions)
207
- return;
208
- const result = await syncImports(syncOptions);
209
- const violations = applyConfiguredSeverity(result.violations, normalized);
210
- state.ruleResults["sync-imports"] = mapFixRuleResult({ ...result, violations });
211
- state.violations.push(...violations);
212
- state.rewrittenFiles += result.rewritten_files;
213
- state.rewrittenImports += result.rewritten_imports;
214
- }
215
- async function applyRemoveCommentsFix(state, normalized) {
216
- if (!normalized.rules.removeComments || !shouldRunFixRule("remove-comments", normalized))
217
- return;
218
- const result = await fixRemoveCommentsRule(filterSourceFilesForRule(state.sourceFiles, normalized.rules.removeComments), normalized);
219
- const violations = applyConfiguredSeverity(result.violations, normalized);
220
- state.ruleResults["remove-comments"] = mapFixRuleResult({ ...result, violations });
221
- state.violations.push(...violations);
222
- state.rewrittenFiles += result.rewritten_files ?? 0;
223
- state.removedComments += result.removed_comments ?? 0;
224
- }
225
- async function applyPrettierFix(state, normalized) {
226
- const result = await applyPrettierFormatterFix(normalized);
227
- if (!result)
228
- return;
229
- const violations = applyConfiguredSeverity(result.violations, normalized);
230
- state.ruleResults.prettier = mapFixRuleResult({ ...result.ruleResult, violations });
231
- state.violations.push(...violations);
232
- state.formattedFiles += result.formattedFiles;
233
- state.unchangedFiles += result.unchangedFiles;
234
- state.rewrittenFiles += result.rewrittenFiles;
235
- }
236
120
  function createFixResult(state) {
237
121
  return {
238
122
  ...summarizeViolations(sortViolations(state.violations)),
@@ -291,6 +175,7 @@ async function fixCodeDiscipline(options) {
291
175
  await applyFolderizeFix(state, normalized, logger);
292
176
  await applySyncImportsFix(state, normalized);
293
177
  await applyRemoveCommentsFix(state, normalized);
178
+ await applyStructuralBlankLinesFix(state, normalized);
294
179
  await applyPrettierFix(state, normalized);
295
180
  const result = attachDisciplineResult("fix", createFixResult(state));
296
181
  logFixResult(result, logger);
@@ -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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"}
@@ -13,6 +13,7 @@ declare const RULE_SLUG_BY_CONFIG_KEY: {
13
13
  readonly minDeclarationName: "min-declaration-name";
14
14
  readonly minFileLines: "min-file-lines";
15
15
  readonly removeComments: "remove-comments";
16
+ readonly structuralBlankLines: "structural-blank-lines";
16
17
  readonly syncImports: "sync-imports";
17
18
  };
18
19
  declare function resolveEnabledRuleSlugs(rules: CodeDisciplineRules | undefined): Set<CodeDisciplineRuleSlug>;
@@ -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,wBAAwB,EACxB,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,cAAc,EAAE,sBAAsB,EAY3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,eAAe,EAOxC,CAAC;AAEF,QAAA,MAAM,eAAe,uBAEX,CAAC;AAEX,QAAA,MAAM,uBAAuB;;;;;;;;;;;;CAYnB,CAAC;AAEX,iBAAS,uBAAuB,CAC9B,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,GAAG,CAAC,sBAAsB,CAAC,CAY7B;AAED,iBAAS,4BAA4B,CACnC,UAAU,EAAE,wBAAwB,GAAG,SAAS,GAC/C,GAAG,CAAC,+BAA+B,CAAC,CAQtC;AAED,iBAAS,kBAAkB,CACzB,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACxC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,UAAU,EAAE,wBAAwB,GAAG,SAAS,GAC/C,+BAA+B,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAkCnE;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,+BAA+B,EACrC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACvC,OAAO,CAET;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,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,wBAAwB,EACxB,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,cAAc,EAAE,sBAAsB,EAa3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,eAAe,EAQxC,CAAC;AAEF,QAAA,MAAM,eAAe,uBAEX,CAAC;AAEX,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;CAanB,CAAC;AAEX,iBAAS,uBAAuB,CAC9B,KAAK,EAAE,mBAAmB,GAAG,SAAS,GACrC,GAAG,CAAC,sBAAsB,CAAC,CAY7B;AAED,iBAAS,4BAA4B,CACnC,UAAU,EAAE,wBAAwB,GAAG,SAAS,GAC/C,GAAG,CAAC,+BAA+B,CAAC,CAQtC;AAED,iBAAS,kBAAkB,CACzB,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACxC,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,UAAU,EAAE,wBAAwB,GAAG,SAAS,GAC/C,+BAA+B,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAkCnE;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,+BAA+B,EACrC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACvC,OAAO,CAET;AAED,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,aAAa,GACd,CAAC"}
@@ -10,6 +10,7 @@ const ALL_RULE_SLUGS = [
10
10
  "folderize-compound-files",
11
11
  "sync-imports",
12
12
  "remove-comments",
13
+ "structural-blank-lines",
13
14
  "dry",
14
15
  ];
15
16
  const FIXABLE_RULE_SLUGS = [
@@ -18,6 +19,7 @@ const FIXABLE_RULE_SLUGS = [
18
19
  "folderize-compound-files",
19
20
  "sync-imports",
20
21
  "remove-comments",
22
+ "structural-blank-lines",
21
23
  "prettier",
22
24
  ];
23
25
  const FORMATTER_SLUGS = [
@@ -34,6 +36,7 @@ const RULE_SLUG_BY_CONFIG_KEY = {
34
36
  minDeclarationName: "min-declaration-name",
35
37
  minFileLines: "min-file-lines",
36
38
  removeComments: "remove-comments",
39
+ structuralBlankLines: "structural-blank-lines",
37
40
  syncImports: "sync-imports",
38
41
  };
39
42
  function resolveEnabledRuleSlugs(rules) {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-slugs.js","sourceRoot":"","sources":["../../src/checks/rule-slugs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-slugs.js","sourceRoot":"","sources":["../../src/checks/rule-slugs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import ts from "typescript";
2
+ import type { StructuralUnit } from "./types.js";
3
+ declare function buildStatementUnits(sourceFile: ts.SourceFile, fullText: string, statements: readonly ts.Statement[], notBeforePos: number): StructuralUnit[];
4
+ declare function buildMemberUnits(sourceFile: ts.SourceFile, fullText: string, members: readonly ts.ClassElement[]): StructuralUnit[];
5
+ export { buildMemberUnits, buildStatementUnits };
6
+ //# sourceMappingURL=classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/blank-lines/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,YAAY,CAAC;AAqClE,iBAAS,mBAAmB,CAC1B,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,EACnC,YAAY,EAAE,MAAM,GACnB,cAAc,EAAE,CAkBlB;AAED,iBAAS,gBAAgB,CACvB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,GAClC,cAAc,EAAE,CAiBlB;AAED,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,80 @@
1
+ import ts from "typescript";
2
+ import { getLine, resolveAttachedStartLine } from "./comments.js";
3
+ function resolveDeclarationName(node) {
4
+ if (ts.isFunctionDeclaration(node)
5
+ || ts.isMethodDeclaration(node)
6
+ || ts.isGetAccessorDeclaration(node)
7
+ || ts.isSetAccessorDeclaration(node)) {
8
+ return node.name?.getText();
9
+ }
10
+ return undefined;
11
+ }
12
+ function classifyStatement(node, isDirectiveCandidate) {
13
+ if (ts.isImportDeclaration(node) || ts.isImportEqualsDeclaration(node))
14
+ return "import";
15
+ if (ts.isExportDeclaration(node) || ts.isExportAssignment(node))
16
+ return "export";
17
+ if (isDirectiveCandidate)
18
+ return "directive";
19
+ if (ts.isTypeAliasDeclaration(node) || ts.isInterfaceDeclaration(node))
20
+ return "type";
21
+ if (ts.isVariableStatement(node))
22
+ return "variable";
23
+ if (ts.isFunctionDeclaration(node))
24
+ return "function";
25
+ if (ts.isClassDeclaration(node))
26
+ return "class";
27
+ if (ts.isEnumDeclaration(node))
28
+ return "enum";
29
+ if (ts.isModuleDeclaration(node))
30
+ return "namespace";
31
+ return "execution";
32
+ }
33
+ function classifyMember(node) {
34
+ if (ts.isPropertyDeclaration(node) || ts.isIndexSignatureDeclaration(node))
35
+ return "class-field";
36
+ if (ts.isConstructorDeclaration(node))
37
+ return "class-constructor";
38
+ if (ts.isMethodDeclaration(node))
39
+ return "class-method";
40
+ if (ts.isGetAccessorDeclaration(node) || ts.isSetAccessorDeclaration(node))
41
+ return "class-accessor";
42
+ if (ts.isClassStaticBlockDeclaration(node))
43
+ return "class-static-block";
44
+ return undefined;
45
+ }
46
+ function buildStatementUnits(sourceFile, fullText, statements, notBeforePos) {
47
+ const units = [];
48
+ let inDirectivePrologue = true;
49
+ statements.forEach((node, index) => {
50
+ const isDirectiveCandidate = inDirectivePrologue && ts.isExpressionStatement(node) && ts.isStringLiteralLike(node.expression);
51
+ if (inDirectivePrologue && !isDirectiveCandidate)
52
+ inDirectivePrologue = false;
53
+ units.push({
54
+ group: classifyStatement(node, isDirectiveCandidate),
55
+ name: resolveDeclarationName(node),
56
+ startLine: resolveAttachedStartLine(sourceFile, fullText, node, index === 0 ? notBeforePos : 0),
57
+ endLine: getLine(sourceFile, node.getEnd()),
58
+ node,
59
+ });
60
+ });
61
+ return units;
62
+ }
63
+ function buildMemberUnits(sourceFile, fullText, members) {
64
+ const units = [];
65
+ for (const node of members) {
66
+ const group = classifyMember(node);
67
+ if (!group)
68
+ continue;
69
+ units.push({
70
+ group,
71
+ name: resolveDeclarationName(node),
72
+ startLine: resolveAttachedStartLine(sourceFile, fullText, node, 0),
73
+ endLine: getLine(sourceFile, node.getEnd()),
74
+ node,
75
+ });
76
+ }
77
+ return units;
78
+ }
79
+ export { buildMemberUnits, buildStatementUnits };
80
+ //# sourceMappingURL=classify.js.map