@trebired/code-discipline 1.4.1 → 1.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 (48) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +147 -6
  3. package/dist/checks/index.d.ts.map +1 -1
  4. package/dist/checks/index.js +5 -0
  5. package/dist/checks/index.js.map +1 -1
  6. package/dist/checks/rules/max-function-lines.d.ts +6 -0
  7. package/dist/checks/rules/max-function-lines.d.ts.map +1 -0
  8. package/dist/checks/rules/max-function-lines.js +103 -0
  9. package/dist/checks/rules/max-function-lines.js.map +1 -0
  10. package/dist/checks/types.d.ts +43 -1
  11. package/dist/checks/types.d.ts.map +1 -1
  12. package/dist/cli/run-cli.d.ts.map +1 -1
  13. package/dist/cli/run-cli.js +10 -12
  14. package/dist/cli/run-cli.js.map +1 -1
  15. package/dist/config/index.d.ts +4 -1
  16. package/dist/config/index.d.ts.map +1 -1
  17. package/dist/config/index.js +29 -1
  18. package/dist/config/index.js.map +1 -1
  19. package/dist/config/normalize-check-options.d.ts.map +1 -1
  20. package/dist/config/normalize-check-options.js +2 -1
  21. package/dist/config/normalize-check-options.js.map +1 -1
  22. package/dist/config/normalize-rule-options.d.ts +6 -2
  23. package/dist/config/normalize-rule-options.d.ts.map +1 -1
  24. package/dist/config/normalize-rule-options.js +16 -1
  25. package/dist/config/normalize-rule-options.js.map +1 -1
  26. package/dist/index.d.ts +4 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/run.d.ts +3 -3
  31. package/dist/run.d.ts.map +1 -1
  32. package/dist/run.js +28 -8
  33. package/dist/run.js.map +1 -1
  34. package/dist/runtime/orchestrate.d.ts +20 -0
  35. package/dist/runtime/orchestrate.d.ts.map +1 -0
  36. package/dist/runtime/orchestrate.js +60 -0
  37. package/dist/runtime/orchestrate.js.map +1 -0
  38. package/dist/runtime/runtime-imports-sync.d.ts +13 -0
  39. package/dist/runtime/runtime-imports-sync.d.ts.map +1 -0
  40. package/dist/runtime/runtime-imports-sync.js +87 -0
  41. package/dist/runtime/runtime-imports-sync.js.map +1 -0
  42. package/dist/runtime/tsconfig-paths.d.ts +21 -0
  43. package/dist/runtime/tsconfig-paths.d.ts.map +1 -0
  44. package/dist/runtime/tsconfig-paths.js +89 -0
  45. package/dist/runtime/tsconfig-paths.js.map +1 -0
  46. package/dist/shared/discipline-types.d.ts +1 -1
  47. package/dist/shared/discipline-types.d.ts.map +1 -1
  48. package/package.json +9 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to `@trebired/code-discipline` will be documented here.
4
4
 
5
+ ## 1.5.0
6
+
7
+ - Added direct config auto-discovery so the CLI can be used as `code-discipline check`, `fix`, and `sync` without mandatory wrapper scripts or `--config` flags.
8
+ - Added generic lifecycle hooks through config with `beforeRun`, `afterRun`, `beforeMode`, and `afterMode`.
9
+ - Added optional `tsconfigPaths` normalization support with package-owned pre-run transforms and optional restoration after the run.
10
+ - Added optional `runtimeImportsSync` so `package.json#imports` can be synced from `tsconfig.compilerOptions.paths` while preserving unrelated existing imports.
11
+ - Added exports for config discovery and package-owned runtime helper utilities.
12
+
5
13
  ## 1.4.1
6
14
 
7
15
  - Fixed relative import resolution for TypeScript ESM-style `.js` specifiers so imports like `./x.js` can resolve to source files such as `./x.ts` during sync checks and rewrites.
package/README.md CHANGED
@@ -17,6 +17,7 @@ npm install @trebired/code-discipline
17
17
  Some repository rules are not really single-file lint rules. They are about the shape of the tree:
18
18
 
19
19
  - files growing too large
20
+ - functions growing too large
20
21
  - compound filenames that want to become folders
21
22
  - alias drift between `tsconfig.json` and source imports
22
23
  - returning structured policy results that a caller can interpret
@@ -25,19 +26,50 @@ That is the lane of this package.
25
26
 
26
27
  ## Commands
27
28
 
29
+ ```sh
30
+ code-discipline check
31
+ code-discipline sync
32
+ code-discipline fix
33
+ ```
34
+
35
+ The CLI auto-discovers a config module in the current project root. Supported default names:
36
+
37
+ - `discipline.config.mjs`
38
+ - `discipline.config.js`
39
+ - `discipline.config.cjs`
40
+ - `code-discipline.config.mjs`
41
+ - `code-discipline.config.js`
42
+ - `code-discipline.config.cjs`
43
+
44
+ You can still override discovery explicitly:
45
+
28
46
  ```sh
29
47
  code-discipline check --config ./discipline.config.mjs
30
- code-discipline sync --config ./discipline.config.mjs
31
- code-discipline fix --config ./discipline.config.mjs
48
+ ```
49
+
50
+ Typical `package.json` scripts can now stay direct and generic:
51
+
52
+ ```json
53
+ {
54
+ "scripts": {
55
+ "discipline:check": "code-discipline check",
56
+ "discipline:fix": "code-discipline fix",
57
+ "discipline:sync": "code-discipline sync"
58
+ }
59
+ }
32
60
  ```
33
61
 
34
62
  Command responsibilities stay clean:
35
63
 
36
64
  - `check`: read-only validation and logging
37
- - `sync`: import and `tsconfig.json` synchronization only
38
- - `fix`: explicit folderization moves only
65
+ - `sync`: package-owned synchronization work from config
66
+ - `fix`: configured structural fixes only
39
67
 
40
- Both `sync` and `fix` are gated by rule config. They do not mutate anything unless their rule has `fix: true`.
68
+ Mutations stay opt-in:
69
+
70
+ - `syncImports` rewrites imports and `tsconfig.json` only when `syncImports.fix` is `true`
71
+ - `runtimeImportsSync` updates `package.json#imports` only when that feature is enabled
72
+ - `fix` applies folderization moves only when `folderizeCompoundFiles.fix` is `true`
41
73
 
42
74
  ## Simple Runtime API
43
75
 
@@ -54,6 +86,10 @@ const result = await codeDiscipline({
54
86
  severity: "warning",
55
87
  max: 500,
56
88
  },
89
+ maxFunctionLines: {
90
+ severity: "warning",
91
+ max: 80,
92
+ },
57
93
  },
58
94
  });
59
95
  ```
@@ -120,11 +156,33 @@ export default {
120
156
  enabled: true,
121
157
  quiet: false,
122
158
  },
159
+ tsconfigPaths: {
160
+ normalize: "relative-dot-prefix",
161
+ restoreAfterRun: true,
162
+ },
163
+ runtimeImportsSync: {
164
+ enabled: true,
165
+ source: "tsconfig.paths",
166
+ target: "package.json.imports",
167
+ aliasPrefix: "#",
168
+ },
169
+ lifecycle: {
170
+ async beforeRun(context) {
171
+ context.state.started = true;
172
+ },
173
+ async afterRun(context, result) {
174
+ context.state.finished = result.ok;
175
+ },
176
+ },
123
177
  rules: {
124
178
  maxFileLines: {
125
179
  severity: "warning",
126
180
  max: 500,
127
181
  },
182
+ maxFunctionLines: {
183
+ severity: "warning",
184
+ max: 80,
185
+ },
128
186
  folderizeCompoundFiles: {
129
187
  severity: "error",
130
188
  fix: true,
@@ -142,6 +200,67 @@ export default {
142
200
  };
143
201
  ```
144
202
 
203
+ ## Generic Lifecycle Hooks
204
+
205
+ If a project needs package-owned preprocessing or postprocessing around discipline commands, use config hooks instead of wrapper scripts.
206
+
207
+ Available hooks:
208
+
209
+ - `lifecycle.beforeRun(context)`
210
+ - `lifecycle.afterRun(context, result)`
211
+ - `lifecycle.beforeMode(context)`
212
+ - `lifecycle.afterMode(context, result)`
213
+
214
+ The hook context includes:
215
+
216
+ - `mode`
217
+ - `projectRoot`
218
+ - `configPath`
219
+ - `config`
220
+ - mutable `state`
221
+
222
+ ## Optional Tsconfig Path Normalization
223
+
224
+ Use `tsconfigPaths` when a project needs temporary normalization of `compilerOptions.paths` before discipline runs.
225
+
226
+ ```js
227
+ export default {
228
+ tsconfigPaths: {
229
+ normalize: "relative-dot-prefix",
230
+ restoreAfterRun: true,
231
+ },
232
+ };
233
+ ```
234
+
235
+ Supported normalization modes:
236
+
237
+ - `"relative-dot-prefix"`: turns `src/x.ts` into `./src/x.ts`
238
+ - `"strip-dot-prefix"`: turns `./src/x.ts` into `src/x.ts`
239
+ - `"none"`: disables the helper
240
+
241
+ `restoreAfterRun: true` restores the original `tsconfig.json` after read-oriented runs so the normalization can stay package-owned instead of living in shell wrappers.
242
+
243
+ ## Optional Package Imports Sync
244
+
245
+ Use `runtimeImportsSync` when a project wants `package.json#imports` mirrored from `tsconfig.compilerOptions.paths`.
246
+
247
+ ```js
248
+ export default {
249
+ runtimeImportsSync: {
250
+ enabled: true,
251
+ source: "tsconfig.paths",
252
+ target: "package.json.imports",
253
+ aliasPrefix: "#",
254
+ },
255
+ };
256
+ ```
257
+
258
+ Behavior:
259
+
260
+ - only aliases matching the configured prefix or prefixes are managed
261
+ - unrelated existing `package.json#imports` entries are preserved
262
+ - the feature runs through `code-discipline sync` and `mode: "sync"` / `mode: "startup"`
263
+
145
264
  ## Checks
146
265
 
147
266
  `checkCodeDiscipline()` is read-only. It never moves files, rewrites imports, or updates `tsconfig.json`.
@@ -156,6 +275,10 @@ const result = await checkCodeDiscipline({
156
275
  severity: "warning",
157
276
  max: 500,
158
277
  },
278
+ maxFunctionLines: {
279
+ severity: "warning",
280
+ max: 80,
281
+ },
159
282
  folderizeCompoundFiles: {
160
283
  severity: "error",
161
284
  separators: ["_", "-"],
@@ -178,7 +301,7 @@ Result shape:
178
301
  type CodeDisciplineSeverity = "error" | "warning";
179
302
 
180
303
  type CodeDisciplineViolation = {
181
- rule: "max-file-lines" | "folderize-compound-files" | "sync-imports";
304
+ rule: "max-file-lines" | "max-function-lines" | "folderize-compound-files" | "sync-imports";
182
305
  severity: CodeDisciplineSeverity;
183
306
  fix: boolean;
184
307
  filePath: string;
@@ -197,6 +320,19 @@ type CodeDisciplineResult = {
197
320
 
198
321
  `ok` becomes `false` only when at least one returned violation has `severity: "error"`.
199
322
 
323
+ ## Function Length
324
+
325
+ `maxFunctionLines` reports function-like declarations whose total span exceeds a configured limit.
326
+
327
+ - function declarations
328
+ - function expressions
329
+ - arrow functions
330
+ - class methods
331
+ - constructors
332
+ - getters and setters
333
+
334
+ Violations include the function name when available, plus `startLine` and `endLine` details.
335
+
200
336
  ## Folderization
201
337
 
202
338
  `folderizeCompoundFiles` is structural. It does not depend on configured suffix lists.
@@ -274,5 +410,10 @@ The default/common logger adaptation path is powered by `@trebired/logger-adapte
274
410
  - `fixCodeDiscipline()`
275
411
  - `syncImports()`
276
412
  - `defineCodeDisciplineConfig()`
413
+ - `findCodeDisciplineConfigModule()`
414
+ - `loadResolvedCodeDisciplineConfig()`
415
+ - `prepareTsconfigPaths()`
416
+ - `restoreTsconfigPaths()`
417
+ - `syncPackageJsonImportsFromTsconfigPaths()`
277
418
 
278
419
  The package also exports the public TypeScript types for severity, rule config, results, violations, alias strategies, logging adapters, and source scan rows.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAS,0BAA0B,CAAC,OAAO,EAAE,oCAAoC;;;;;;;;;;;;;;;;EAoBhF;AAgFD,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuBpG;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":"AASA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAS,0BAA0B,CAAC,OAAO,EAAE,oCAAoC;;;;;;;;;;;;;;;;EAoBhF;AAoFD,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuBpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -5,6 +5,7 @@ import { resolveLogger } from "../shared/logging.js";
5
5
  import { fixFolderization } from "./fix-folderization.js";
6
6
  import { runFolderizeCompoundFilesRule } from "./rules/folderize-compound-files.js";
7
7
  import { runMaxFileLinesRule } from "./rules/max-file-lines.js";
8
+ import { runMaxFunctionLinesRule } from "./rules/max-function-lines.js";
8
9
  function buildNormalizedSyncOptions(options) {
9
10
  if (!options.rules.syncImports)
10
11
  return null;
@@ -79,6 +80,9 @@ async function collectViolations(options) {
79
80
  const maxFileViolations = options.rules.maxFileLines
80
81
  ? await runMaxFileLinesRule(sourceFiles, options)
81
82
  : [];
83
+ const maxFunctionViolations = options.rules.maxFunctionLines
84
+ ? await runMaxFunctionLinesRule(sourceFiles, options)
85
+ : [];
82
86
  const folderizeViolations = options.rules.folderizeCompoundFiles
83
87
  ? runFolderizeCompoundFilesRule(sourceFiles, options)
84
88
  : [];
@@ -88,6 +92,7 @@ async function collectViolations(options) {
88
92
  : [];
89
93
  return sortViolations([
90
94
  ...maxFileViolations,
95
+ ...maxFunctionViolations,
91
96
  ...folderizeViolations,
92
97
  ...syncImportViolations,
93
98
  ]);
@@ -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,6 @@
1
+ import type { NormalizedCheckCodeDisciplineOptions } from "../types.js";
2
+ import type { ScannedSourceFile } from "../../imports/types.js";
3
+ import type { CodeDisciplineViolation } from "../../shared/discipline-types.js";
4
+ declare function runMaxFunctionLinesRule(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions): Promise<CodeDisciplineViolation[]>;
5
+ export { runMaxFunctionLinesRule };
6
+ //# sourceMappingURL=max-function-lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-function-lines.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/max-function-lines.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAwFhF,iBAAe,uBAAuB,CACpC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAgCpC;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,103 @@
1
+ import fs from "node:fs/promises";
2
+ import ts from "typescript";
3
+ import { parseSource } from "../../imports/module-specifiers.js";
4
+ function isFunctionLikeWithBody(node) {
5
+ return ((ts.isFunctionDeclaration(node) && node.body !== undefined)
6
+ || (ts.isMethodDeclaration(node) && node.body !== undefined)
7
+ || (ts.isConstructorDeclaration(node) && node.body !== undefined)
8
+ || (ts.isGetAccessorDeclaration(node) && node.body !== undefined)
9
+ || (ts.isSetAccessorDeclaration(node) && node.body !== undefined)
10
+ || (ts.isFunctionExpression(node) && node.body !== undefined)
11
+ || (ts.isArrowFunction(node) && node.body !== undefined));
12
+ }
13
+ function resolveFunctionKind(node) {
14
+ if (ts.isMethodDeclaration(node))
15
+ return "method";
16
+ if (ts.isConstructorDeclaration(node))
17
+ return "constructor";
18
+ if (ts.isGetAccessorDeclaration(node))
19
+ return "getter";
20
+ if (ts.isSetAccessorDeclaration(node))
21
+ return "setter";
22
+ if (ts.isArrowFunction(node))
23
+ return "arrow-function";
24
+ if (ts.isFunctionExpression(node))
25
+ return "function-expression";
26
+ return "function";
27
+ }
28
+ function resolveFunctionName(node, sourceFile) {
29
+ if ("name" in node && node.name) {
30
+ return node.name.getText(sourceFile);
31
+ }
32
+ const parent = node.parent;
33
+ if (parent && ts.isVariableDeclaration(parent) && ts.isIdentifier(parent.name)) {
34
+ return parent.name.text;
35
+ }
36
+ if (parent && ts.isBinaryExpression(parent) && ts.isIdentifier(parent.left)) {
37
+ return parent.left.text;
38
+ }
39
+ if (parent && ts.isPropertyAssignment(parent)) {
40
+ return parent.name.getText(sourceFile);
41
+ }
42
+ return "anonymous";
43
+ }
44
+ function describeFunction(node, sourceFile) {
45
+ const start = node.getStart(sourceFile);
46
+ const end = node.getEnd();
47
+ const startLine = sourceFile.getLineAndCharacterOfPosition(start).line + 1;
48
+ const endLine = sourceFile.getLineAndCharacterOfPosition(end).line + 1;
49
+ const lineCount = Math.max(1, endLine - startLine + 1);
50
+ return {
51
+ kind: resolveFunctionKind(node),
52
+ lineCount,
53
+ name: resolveFunctionName(node, sourceFile),
54
+ startLine,
55
+ endLine,
56
+ };
57
+ }
58
+ function collectFunctionDescriptors(sourceFile) {
59
+ const descriptors = [];
60
+ function visit(node) {
61
+ if (isFunctionLikeWithBody(node)) {
62
+ const descriptor = describeFunction(node, sourceFile);
63
+ if (descriptor) {
64
+ descriptors.push(descriptor);
65
+ }
66
+ }
67
+ ts.forEachChild(node, visit);
68
+ }
69
+ visit(sourceFile);
70
+ return descriptors;
71
+ }
72
+ async function runMaxFunctionLinesRule(sourceFiles, options) {
73
+ if (!options.rules.maxFunctionLines)
74
+ return [];
75
+ const violations = [];
76
+ for (const file of sourceFiles) {
77
+ const text = await fs.readFile(file.absolutePath, "utf8");
78
+ const sourceFile = parseSource(text, file.absolutePath);
79
+ const functions = collectFunctionDescriptors(sourceFile);
80
+ for (const descriptor of functions) {
81
+ if (descriptor.lineCount <= options.rules.maxFunctionLines.max)
82
+ continue;
83
+ violations.push({
84
+ rule: "max-function-lines",
85
+ severity: options.rules.maxFunctionLines.severity,
86
+ fix: false,
87
+ filePath: file.relativeFromProjectRoot,
88
+ message: `${descriptor.kind} ${descriptor.name} has ${descriptor.lineCount} lines and exceeds the limit of ${options.rules.maxFunctionLines.max}`,
89
+ details: {
90
+ functionKind: descriptor.kind,
91
+ functionName: descriptor.name,
92
+ lineCount: descriptor.lineCount,
93
+ max: options.rules.maxFunctionLines.max,
94
+ startLine: descriptor.startLine,
95
+ endLine: descriptor.endLine,
96
+ },
97
+ });
98
+ }
99
+ }
100
+ return violations;
101
+ }
102
+ export { runMaxFunctionLinesRule };
103
+ //# sourceMappingURL=max-function-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-function-lines.js","sourceRoot":"","sources":["../../../src/checks/rules/max-function-lines.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,55 @@
1
1
  import type { LoggingOptions } from "../shared/logging-types.js";
2
2
  import type { SourceScanOptions, SyncImportsRuleOptions } from "../imports/types.js";
3
3
  import type { CodeDisciplineResult, CodeDisciplineSeverity } from "../shared/discipline-types.js";
4
+ type CodeDisciplineMode = "check" | "fix" | "sync";
5
+ type CodeDisciplineRuntimeMode = CodeDisciplineMode | "startup";
4
6
  type SeverityRuleOptions = {
5
7
  severity?: CodeDisciplineSeverity;
6
8
  };
7
9
  type MaxFileLinesRuleOptions = SeverityRuleOptions & {
8
10
  max?: number;
9
11
  };
12
+ type MaxFunctionLinesRuleOptions = SeverityRuleOptions & {
13
+ max?: number;
14
+ };
10
15
  type FolderizeCompoundFilesRuleOptions = SeverityRuleOptions & {
11
16
  fix?: boolean;
12
17
  separators?: string[];
13
18
  };
14
19
  type CodeDisciplineRules = {
15
20
  maxFileLines?: MaxFileLinesRuleOptions;
21
+ maxFunctionLines?: MaxFunctionLinesRuleOptions;
16
22
  folderizeCompoundFiles?: FolderizeCompoundFilesRuleOptions;
17
23
  syncImports?: SyncImportsRuleOptions;
18
24
  };
25
+ type TsconfigPathsNormalizeMode = "relative-dot-prefix" | "strip-dot-prefix" | "none";
26
+ type CodeDisciplineTsconfigPathsOptions = {
27
+ tsconfigPath?: string;
28
+ normalize?: TsconfigPathsNormalizeMode;
29
+ restoreAfterRun?: boolean;
30
+ };
31
+ type CodeDisciplineRuntimeImportsSyncOptions = {
32
+ enabled?: boolean;
33
+ source?: "tsconfig.paths";
34
+ target?: "package.json.imports";
35
+ aliasPrefix?: string | string[];
36
+ packageJsonPath?: string;
37
+ tsconfigPath?: string;
38
+ };
39
+ type CodeDisciplineLifecycleContext = {
40
+ mode: CodeDisciplineRuntimeMode;
41
+ projectRoot: string;
42
+ configPath?: string;
43
+ config: CodeDisciplineConfig;
44
+ state: Record<string, unknown>;
45
+ };
46
+ type CodeDisciplineLifecycleHookResult = void | Promise<void>;
47
+ type CodeDisciplineLifecycleHooks = {
48
+ beforeRun?: (context: CodeDisciplineLifecycleContext) => CodeDisciplineLifecycleHookResult;
49
+ afterRun?: (context: CodeDisciplineLifecycleContext, result: unknown) => CodeDisciplineLifecycleHookResult;
50
+ beforeMode?: (context: CodeDisciplineLifecycleContext) => CodeDisciplineLifecycleHookResult;
51
+ afterMode?: (context: CodeDisciplineLifecycleContext, result: unknown) => CodeDisciplineLifecycleHookResult;
52
+ };
19
53
  type CheckCodeDisciplineOptions = {
20
54
  projectRoot: string;
21
55
  sourceRoot?: string;
@@ -23,6 +57,9 @@ type CheckCodeDisciplineOptions = {
23
57
  excludeDirs?: string[];
24
58
  logging?: LoggingOptions;
25
59
  rules?: CodeDisciplineRules;
60
+ lifecycle?: CodeDisciplineLifecycleHooks;
61
+ tsconfigPaths?: CodeDisciplineTsconfigPathsOptions;
62
+ runtimeImportsSync?: CodeDisciplineRuntimeImportsSyncOptions;
26
63
  };
27
64
  type FixCodeDisciplineOptions = CheckCodeDisciplineOptions;
28
65
  type CodeDisciplineConfig = Omit<CheckCodeDisciplineOptions, "projectRoot">;
@@ -30,6 +67,10 @@ type NormalizedMaxFileLinesRule = {
30
67
  severity: CodeDisciplineSeverity;
31
68
  max: number;
32
69
  };
70
+ type NormalizedMaxFunctionLinesRule = {
71
+ severity: CodeDisciplineSeverity;
72
+ max: number;
73
+ };
33
74
  type NormalizedFolderizeCompoundFilesRule = {
34
75
  severity: CodeDisciplineSeverity;
35
76
  fix: boolean;
@@ -40,6 +81,7 @@ type NormalizedCheckCodeDisciplineOptions = SourceScanOptions & {
40
81
  logging: LoggingOptions;
41
82
  rules: {
42
83
  maxFileLines?: NormalizedMaxFileLinesRule;
84
+ maxFunctionLines?: NormalizedMaxFunctionLinesRule;
43
85
  folderizeCompoundFiles?: NormalizedFolderizeCompoundFilesRule;
44
86
  syncImports?: SyncImportsRuleOptions;
45
87
  };
@@ -50,5 +92,5 @@ type FixCodeDisciplineResult = CodeDisciplineResult & {
50
92
  rewritten_files: number;
51
93
  rewritten_imports: number;
52
94
  };
53
- export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRules, FixCodeDisciplineOptions, FixCodeDisciplineResult, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, SeverityRuleOptions, };
95
+ export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineLifecycleContext, CodeDisciplineLifecycleHookResult, CodeDisciplineLifecycleHooks, CodeDisciplineMode, CodeDisciplineRuntimeImportsSyncOptions, CodeDisciplineRuntimeMode, CodeDisciplineRules, CodeDisciplineTsconfigPathsOptions, FixCodeDisciplineOptions, FixCodeDisciplineResult, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, MaxFunctionLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, NormalizedMaxFunctionLinesRule, SeverityRuleOptions, TsconfigPathsNormalizeMode, };
54
96
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAElG,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,KAAK,uBAAuB,GAAG,mBAAmB,GAAG;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iCAAiC,GAAG,mBAAmB,GAAG;IAC7D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,sBAAsB,CAAC,EAAE,iCAAiC,CAAC;IAC3D,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,KAAK,wBAAwB,GAAG,0BAA0B,CAAC;AAE3D,KAAK,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;AAE5E,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,oCAAoC,GAAG;IAC1C,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,oCAAoC,GAAG,iBAAiB,GAAG;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,0BAA0B,CAAC;QAC1C,sBAAsB,CAAC,EAAE,oCAAoC,CAAC;QAC9D,WAAW,CAAC,EAAE,sBAAsB,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,KAAK,yBAAyB,GAAG,oBAAoB,CAAC;AAEtD,KAAK,uBAAuB,GAAG,oBAAoB,GAAG;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,uBAAuB,EACvB,oCAAoC,EACpC,oCAAoC,EACpC,0BAA0B,EAC1B,mBAAmB,GACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checks/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAQA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA+CF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFxF;AAQD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAQA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAgDF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA8ExF;AAQD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import { pathToFileURL } from "node:url";
3
3
  import { codeDiscipline } from "../run.js";
4
- import { loadCodeDisciplineConfigModule } from "../config/index.js";
4
+ import { loadResolvedCodeDisciplineConfig } from "../config/index.js";
5
5
  function renderHelp() {
6
6
  return [
7
- "Usage: code-discipline <command> --config <path>",
7
+ "Usage: code-discipline <command> [--config <path>]",
8
8
  "",
9
9
  "Commands:",
10
10
  " check run read-only discipline validation",
11
- " sync sync tsconfig aliases and import paths when syncImports.fix is true",
12
- " fix apply folderization moves when folderizeCompoundFiles.fix is true",
11
+ " sync run package-owned sync operations from config",
12
+ " fix apply configured discipline fixes",
13
13
  "",
14
14
  "Config:",
15
- " --config <path> must point to a module that default-exports the config object.",
15
+ " --config <path> optionally points to a module that default-exports the config object.",
16
+ " If omitted, code-discipline will auto-discover a config module in the current project root.",
16
17
  "",
17
18
  ].join("\n");
18
19
  }
@@ -53,13 +54,11 @@ async function runCli(argv, options = {}) {
53
54
  if (parsed.extra.length > 0) {
54
55
  throw new Error(`Unexpected arguments: ${parsed.extra.join(" ")}`);
55
56
  }
56
- if (!parsed.configPath) {
57
- throw new Error("Missing required --config <path> option");
58
- }
59
- const { config } = await loadCodeDisciplineConfigModule(cwd, parsed.configPath);
57
+ const { config, configPath } = await loadResolvedCodeDisciplineConfig(cwd, parsed.configPath);
60
58
  if (command === "check") {
61
59
  const result = await codeDiscipline({
62
60
  ...config,
61
+ configPath,
63
62
  mode: "check",
64
63
  projectRoot: cwd,
65
64
  });
@@ -67,15 +66,13 @@ async function runCli(argv, options = {}) {
67
66
  stdout("No discipline violations found.\n");
68
67
  return { exitCode: 0 };
69
68
  }
70
- for (const violation of result.violations) {
71
- stdout(`${formatViolation(violation)}\n`);
72
- }
73
69
  stdout(`Summary: ${result.errors} errors, ${result.warnings} warnings.\n`);
74
70
  return { exitCode: result.ok ? 0 : 1 };
75
71
  }
76
72
  if (command === "sync") {
77
73
  const result = await codeDiscipline({
78
74
  ...config,
75
+ configPath,
79
76
  mode: "sync",
80
77
  projectRoot: cwd,
81
78
  });
@@ -85,6 +82,7 @@ async function runCli(argv, options = {}) {
85
82
  if (command === "fix") {
86
83
  const result = await codeDiscipline({
87
84
  ...config,
85
+ configPath,
88
86
  mode: "fix",
89
87
  projectRoot: cwd,
90
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { CodeDisciplineConfig } from "../checks/types.js";
2
+ declare const DEFAULT_CONFIG_FILENAMES: string[];
2
3
  type LoadedCodeDisciplineConfig = {
3
4
  config: CodeDisciplineConfig;
4
5
  configPath: string;
5
6
  };
6
7
  declare function defineCodeDisciplineConfig(config: CodeDisciplineConfig): CodeDisciplineConfig;
7
8
  declare function loadCodeDisciplineConfigModule(projectRoot: string, configPath: string): Promise<LoadedCodeDisciplineConfig>;
8
- export { defineCodeDisciplineConfig, loadCodeDisciplineConfigModule };
9
+ declare function findCodeDisciplineConfigModule(projectRoot: string): Promise<string | null>;
10
+ declare function loadResolvedCodeDisciplineConfig(projectRoot: string, configPath?: string): Promise<LoadedCodeDisciplineConfig>;
11
+ export { DEFAULT_CONFIG_FILENAMES, defineCodeDisciplineConfig, findCodeDisciplineConfigModule, loadCodeDisciplineConfigModule, loadResolvedCodeDisciplineConfig };
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAS,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAEtF;AAED,iBAAe,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAsB1H;AAED,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,QAAA,MAAM,wBAAwB,UAO7B,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAS,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAEtF;AAED,iBAAe,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAsB1H;AAED,iBAAe,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASzF;AAED,iBAAe,gCAAgC,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAY7H;AAED,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,CAAC"}