@trebired/code-discipline 1.5.0 → 2.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 (94) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +165 -271
  3. package/dist/checks/fix-folderization.d.ts.map +1 -1
  4. package/dist/checks/fix-folderization.js +8 -14
  5. package/dist/checks/fix-folderization.js.map +1 -1
  6. package/dist/checks/index.d.ts +4 -3
  7. package/dist/checks/index.d.ts.map +1 -1
  8. package/dist/checks/index.js +107 -76
  9. package/dist/checks/index.js.map +1 -1
  10. package/dist/checks/rule-slugs.d.ts +15 -0
  11. package/dist/checks/rule-slugs.d.ts.map +1 -0
  12. package/dist/checks/rule-slugs.js +62 -0
  13. package/dist/checks/rule-slugs.js.map +1 -0
  14. package/dist/checks/rules/dry.d.ts +7 -0
  15. package/dist/checks/rules/dry.d.ts.map +1 -0
  16. package/dist/checks/rules/dry.js +913 -0
  17. package/dist/checks/rules/dry.js.map +1 -0
  18. package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
  19. package/dist/checks/rules/folderize-compound-files.js +0 -1
  20. package/dist/checks/rules/folderize-compound-files.js.map +1 -1
  21. package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
  22. package/dist/checks/rules/max-file-lines.js +0 -1
  23. package/dist/checks/rules/max-file-lines.js.map +1 -1
  24. package/dist/checks/rules/max-function-lines.d.ts.map +1 -1
  25. package/dist/checks/rules/max-function-lines.js +0 -1
  26. package/dist/checks/rules/max-function-lines.js.map +1 -1
  27. package/dist/checks/types.d.ts +49 -26
  28. package/dist/checks/types.d.ts.map +1 -1
  29. package/dist/cli/run-cli.d.ts.map +1 -1
  30. package/dist/cli/run-cli.js +22 -31
  31. package/dist/cli/run-cli.js.map +1 -1
  32. package/dist/cli.d.ts.map +1 -1
  33. package/dist/cli.js +2 -3
  34. package/dist/cli.js.map +1 -1
  35. package/dist/config/index.d.ts +1 -1
  36. package/dist/config/index.d.ts.map +1 -1
  37. package/dist/config/index.js +122 -16
  38. package/dist/config/index.js.map +1 -1
  39. package/dist/config/normalize-check-options.d.ts +2 -2
  40. package/dist/config/normalize-check-options.d.ts.map +1 -1
  41. package/dist/config/normalize-check-options.js +6 -2
  42. package/dist/config/normalize-check-options.js.map +1 -1
  43. package/dist/config/normalize-rule-options.d.ts +9 -9
  44. package/dist/config/normalize-rule-options.d.ts.map +1 -1
  45. package/dist/config/normalize-rule-options.js +58 -15
  46. package/dist/config/normalize-rule-options.js.map +1 -1
  47. package/dist/config/normalize-sync-imports-options.d.ts.map +1 -1
  48. package/dist/config/normalize-sync-imports-options.js +8 -12
  49. package/dist/config/normalize-sync-imports-options.js.map +1 -1
  50. package/dist/imports/aliases.d.ts.map +1 -1
  51. package/dist/imports/aliases.js +6 -2
  52. package/dist/imports/aliases.js.map +1 -1
  53. package/dist/imports/check-sync-imports.d.ts.map +1 -1
  54. package/dist/imports/check-sync-imports.js +18 -2
  55. package/dist/imports/check-sync-imports.js.map +1 -1
  56. package/dist/imports/sync-imports.d.ts.map +1 -1
  57. package/dist/imports/sync-imports.js +23 -18
  58. package/dist/imports/sync-imports.js.map +1 -1
  59. package/dist/imports/types.d.ts +12 -6
  60. package/dist/imports/types.d.ts.map +1 -1
  61. package/dist/index.d.ts +5 -5
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/run.d.ts +15 -18
  66. package/dist/run.d.ts.map +1 -1
  67. package/dist/run.js +9 -38
  68. package/dist/run.js.map +1 -1
  69. package/dist/runtime/orchestrate.d.ts +2 -3
  70. package/dist/runtime/orchestrate.d.ts.map +1 -1
  71. package/dist/runtime/orchestrate.js +0 -10
  72. package/dist/runtime/orchestrate.js.map +1 -1
  73. package/dist/runtime/runtime-imports-sync.d.ts +12 -3
  74. package/dist/runtime/runtime-imports-sync.d.ts.map +1 -1
  75. package/dist/runtime/runtime-imports-sync.js +34 -32
  76. package/dist/runtime/runtime-imports-sync.js.map +1 -1
  77. package/dist/runtime/tsconfig-paths.d.ts +1 -1
  78. package/dist/runtime/tsconfig-paths.d.ts.map +1 -1
  79. package/dist/runtime/tsconfig-paths.js +1 -1
  80. package/dist/runtime/tsconfig-paths.js.map +1 -1
  81. package/dist/shared/constants.d.ts +1 -2
  82. package/dist/shared/constants.d.ts.map +1 -1
  83. package/dist/shared/constants.js +1 -2
  84. package/dist/shared/constants.js.map +1 -1
  85. package/dist/shared/discipline-types.d.ts +3 -6
  86. package/dist/shared/discipline-types.d.ts.map +1 -1
  87. package/dist/shared/logging.d.ts.map +1 -1
  88. package/dist/shared/logging.js +25 -39
  89. package/dist/shared/logging.js.map +1 -1
  90. package/dist/shared/utils.d.ts +2 -1
  91. package/dist/shared/utils.d.ts.map +1 -1
  92. package/dist/shared/utils.js +14 -1
  93. package/dist/shared/utils.js.map +1 -1
  94. package/package.json +2 -2
@@ -1,27 +1,114 @@
1
+ import fs from "node:fs/promises";
1
2
  import path from "node:path";
2
3
  import { pathToFileURL } from "node:url";
4
+ import ts from "typescript";
5
+ import { applyTextReplacements, collectModuleSpecifiers } from "../imports/module-specifiers.js";
3
6
  import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
4
- import { pathExists } from "../shared/utils.js";
7
+ import { isFile, pathExists } from "../shared/utils.js";
5
8
  const DEFAULT_CONFIG_FILENAMES = [
6
- "discipline.config.mjs",
7
- "discipline.config.js",
8
- "discipline.config.cjs",
9
- "code-discipline.config.mjs",
10
- "code-discipline.config.js",
11
- "code-discipline.config.cjs",
9
+ "tb.code-discipline.ts",
10
+ "tb.code-discipline.mts",
11
+ "tb.code-discipline.mjs",
12
+ "tb.code-discipline.js",
13
+ "tb.code-discipline.cts",
14
+ "tb.code-discipline.cjs",
15
+ ];
16
+ const NODE_TRANSPILE_EXTENSIONS = new Set([
17
+ ".js",
18
+ ".jsx",
19
+ ".mjs",
20
+ ".mts",
21
+ ".ts",
22
+ ".tsx",
23
+ ]);
24
+ const CONFIG_RESOLUTION_EXTENSIONS = [
25
+ ".ts",
26
+ ".tsx",
27
+ ".mts",
28
+ ".js",
29
+ ".jsx",
30
+ ".mjs",
31
+ ".cts",
32
+ ".cjs",
12
33
  ];
13
34
  function defineCodeDisciplineConfig(config) {
14
35
  return config;
15
36
  }
16
- async function loadCodeDisciplineConfigModule(projectRoot, configPath) {
17
- const resolvedPath = path.resolve(projectRoot, configPath);
18
- if (!await pathExists(resolvedPath)) {
19
- throw new InvalidCodeDisciplineConfigError("Config module was not found", {
20
- filePath: resolvedPath,
21
- });
37
+ function isBunRuntime() {
38
+ return typeof Bun !== "undefined";
39
+ }
40
+ function shouldTranspileConfigForNode(filePath) {
41
+ return !isBunRuntime() && NODE_TRANSPILE_EXTENSIONS.has(path.extname(filePath).toLowerCase());
42
+ }
43
+ async function createNativeImportUrl(filePath) {
44
+ const stat = await fs.stat(filePath);
45
+ const url = pathToFileURL(filePath);
46
+ url.searchParams.set("mtime", String(Math.floor(stat.mtimeMs)));
47
+ return url.href;
48
+ }
49
+ async function resolveLocalConfigImport(importerPath, specifier) {
50
+ if (!specifier.startsWith(".") && !path.isAbsolute(specifier)) {
51
+ return null;
52
+ }
53
+ const basePath = path.isAbsolute(specifier)
54
+ ? path.resolve(specifier)
55
+ : path.resolve(path.dirname(importerPath), specifier);
56
+ const candidates = [basePath];
57
+ if (!path.extname(basePath)) {
58
+ for (const extension of CONFIG_RESOLUTION_EXTENSIONS) {
59
+ candidates.push(`${basePath}${extension}`);
60
+ }
61
+ for (const extension of CONFIG_RESOLUTION_EXTENSIONS) {
62
+ candidates.push(path.join(basePath, `index${extension}`));
63
+ }
64
+ }
65
+ for (const candidate of candidates) {
66
+ if (await isFile(candidate)) {
67
+ return candidate;
68
+ }
22
69
  }
23
- const imported = await import(pathToFileURL(resolvedPath).href);
24
- const config = imported.default;
70
+ return null;
71
+ }
72
+ async function compileNodeConfigModuleToUrl(filePath, cache) {
73
+ const resolvedPath = await fs.realpath(filePath);
74
+ const cached = cache.get(resolvedPath);
75
+ if (cached)
76
+ return cached;
77
+ const pending = (async () => {
78
+ const sourceText = await fs.readFile(resolvedPath, "utf8");
79
+ const transpiled = ts.transpileModule(sourceText, {
80
+ fileName: resolvedPath,
81
+ compilerOptions: {
82
+ allowJs: true,
83
+ esModuleInterop: true,
84
+ jsx: ts.JsxEmit.ReactJSX,
85
+ module: ts.ModuleKind.ESNext,
86
+ target: ts.ScriptTarget.ES2022,
87
+ verbatimModuleSyntax: false,
88
+ },
89
+ });
90
+ const replacements = [];
91
+ for (const occurrence of collectModuleSpecifiers(transpiled.outputText, resolvedPath)) {
92
+ const localImportPath = await resolveLocalConfigImport(resolvedPath, occurrence.specifier);
93
+ if (!localImportPath)
94
+ continue;
95
+ const extension = path.extname(localImportPath).toLowerCase();
96
+ const importUrl = shouldTranspileConfigForNode(localImportPath) && extension !== ".cjs"
97
+ ? await compileNodeConfigModuleToUrl(localImportPath, cache)
98
+ : await createNativeImportUrl(localImportPath);
99
+ replacements.push({
100
+ start: occurrence.start,
101
+ end: occurrence.end,
102
+ value: importUrl,
103
+ });
104
+ }
105
+ const rewritten = applyTextReplacements(transpiled.outputText, replacements).text;
106
+ return `data:text/javascript;base64,${Buffer.from(rewritten, "utf8").toString("base64")}`;
107
+ })();
108
+ cache.set(resolvedPath, pending);
109
+ return pending;
110
+ }
111
+ function validateLoadedConfig(config, resolvedPath) {
25
112
  if (!config || typeof config !== "object" || Array.isArray(config)) {
26
113
  throw new InvalidCodeDisciplineConfigError("Config module must default-export a config object", {
27
114
  filePath: resolvedPath,
@@ -32,6 +119,25 @@ async function loadCodeDisciplineConfigModule(projectRoot, configPath) {
32
119
  configPath: resolvedPath,
33
120
  };
34
121
  }
122
+ async function importCodeDisciplineConfigModule(resolvedPath) {
123
+ if (!shouldTranspileConfigForNode(resolvedPath)) {
124
+ const imported = await import(await createNativeImportUrl(resolvedPath));
125
+ return imported.default;
126
+ }
127
+ const cache = new Map();
128
+ const moduleUrl = await compileNodeConfigModuleToUrl(resolvedPath, cache);
129
+ const imported = await import(moduleUrl);
130
+ return imported.default;
131
+ }
132
+ async function loadCodeDisciplineConfigModule(projectRoot, configPath) {
133
+ const resolvedPath = path.resolve(projectRoot, configPath);
134
+ if (!await pathExists(resolvedPath)) {
135
+ throw new InvalidCodeDisciplineConfigError("Config module was not found", {
136
+ filePath: resolvedPath,
137
+ });
138
+ }
139
+ return validateLoadedConfig(await importCodeDisciplineConfigModule(resolvedPath), resolvedPath);
140
+ }
35
141
  async function findCodeDisciplineConfigModule(projectRoot) {
36
142
  for (const filename of DEFAULT_CONFIG_FILENAMES) {
37
143
  const resolvedPath = path.resolve(projectRoot, filename);
@@ -52,5 +158,5 @@ async function loadResolvedCodeDisciplineConfig(projectRoot, configPath) {
52
158
  }
53
159
  return loadCodeDisciplineConfigModule(projectRoot, resolvedPath);
54
160
  }
55
- export { DEFAULT_CONFIG_FILENAMES, defineCodeDisciplineConfig, findCodeDisciplineConfigModule, loadCodeDisciplineConfigModule, loadResolvedCodeDisciplineConfig };
161
+ export { DEFAULT_CONFIG_FILENAMES, defineCodeDisciplineConfig, findCodeDisciplineConfigModule, loadCodeDisciplineConfigModule, loadResolvedCodeDisciplineConfig, };
56
162
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,wBAAwB,GAAG;IAC/B,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;CAC7B,CAAC;AAOF,SAAS,0BAA0B,CAAC,MAA4B;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,WAAmB,EAAE,UAAkB;IACnF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE3D,IAAI,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,gCAAgC,CAAC,6BAA6B,EAAE;YACxE,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAkB,CAAC;IAE3C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,gCAAgC,CAAC,mDAAmD,EAAE;YAC9F,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAA8B;QACtC,UAAU,EAAE,YAAY;KACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,WAAmB;IAC/D,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,WAAmB,EAAE,UAAmB;IACtF,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;QACvC,CAAC,CAAC,MAAM,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,gCAAgC,CAAC,4CAA4C,EAAE;YACvF,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,8BAA8B,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CheckCodeDisciplineOptions, NormalizedCheckCodeDisciplineOptions } from "../checks/types.js";
2
- declare function normalizeCheckCodeDisciplineOptions(options: CheckCodeDisciplineOptions): Promise<NormalizedCheckCodeDisciplineOptions>;
1
+ import type { CheckCodeDisciplineOptions, CodeDisciplineMode, FixCodeDisciplineOptions, NormalizedCheckCodeDisciplineOptions } from "../checks/types.js";
2
+ declare function normalizeCheckCodeDisciplineOptions(options: CheckCodeDisciplineOptions | FixCodeDisciplineOptions, mode: CodeDisciplineMode): Promise<NormalizedCheckCodeDisciplineOptions>;
3
3
  export { normalizeCheckCodeDisciplineOptions };
4
4
  //# sourceMappingURL=normalize-check-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-check-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAS3G,iBAAe,mCAAmC,CAChD,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,oCAAoC,CAAC,CAkB/C;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-check-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAW5B,iBAAe,mCAAmC,CAChD,OAAO,EAAE,0BAA0B,GAAG,wBAAwB,EAC9D,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,oCAAoC,CAAC,CAqB/C;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
@@ -1,16 +1,20 @@
1
- import { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule, } from "./normalize-rule-options.js";
1
+ import { normalizeOnlyRules } from "../checks/rule-slugs.js";
2
+ import { normalizeDryRule, normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule, } from "./normalize-rule-options.js";
2
3
  import { normalizeSourceOptions } from "./normalize-source-options.js";
3
- async function normalizeCheckCodeDisciplineOptions(options) {
4
+ async function normalizeCheckCodeDisciplineOptions(options, mode) {
4
5
  const source = await normalizeSourceOptions(options);
5
6
  return {
6
7
  ...source,
8
+ configPath: options.configPath,
7
9
  logging: {
8
10
  enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
9
11
  logger: options.logging?.logger,
10
12
  adapter: options.logging?.adapter,
11
13
  quiet: options.logging?.quiet ?? false,
12
14
  },
15
+ onlyRules: normalizeOnlyRules(mode, options.onlyRules, options.rules),
13
16
  rules: {
17
+ dry: normalizeDryRule(options.rules?.dry),
14
18
  maxFileLines: normalizeMaxFileLinesRule(options.rules?.maxFileLines),
15
19
  maxFunctionLines: normalizeMaxFunctionLinesRule(options.rules?.maxFunctionLines),
16
20
  folderizeCompoundFiles: normalizeFolderizeCompoundFilesRule(options.rules?.folderizeCompoundFiles),
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-check-options.js","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,mCAAmC,CAChD,OAAmC;IAEnC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YACjG,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO;YACjC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK;SACvC;QACD,KAAK,EAAE;YACL,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;YACpE,gBAAgB,EAAE,6BAA6B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAChF,sBAAsB,EAAE,mCAAmC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC;YAClG,WAAW,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;SAClE;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-check-options.js","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,mCAAmC,CAChD,OAA8D,EAC9D,IAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YACjG,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO;YACjC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK;SACvC;QACD,SAAS,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;QACrE,KAAK,EAAE;YACL,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YACzC,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;YACpE,gBAAgB,EAAE,6BAA6B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAChF,sBAAsB,EAAE,mCAAmC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC;YAClG,WAAW,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;SAClE;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
@@ -1,29 +1,29 @@
1
- import type { FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, MaxFunctionLinesRuleOptions } from "../checks/types.js";
2
- import type { SyncImportsRuleOptions } from "../imports/types.js";
3
- import type { CodeDisciplineSeverity } from "../shared/discipline-types.js";
1
+ import type { CodeDisciplineSyncImportsRuleOptions, DryRuleOptions, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, MaxFunctionLinesRuleOptions, NormalizedDryRule } from "../checks/types.js";
4
2
  declare function normalizeMaxFileLinesRule(rule: MaxFileLinesRuleOptions | undefined): {
5
- severity: CodeDisciplineSeverity;
6
3
  max: number;
7
4
  };
8
5
  declare function normalizeMaxFunctionLinesRule(rule: MaxFunctionLinesRuleOptions | undefined): {
9
- severity: CodeDisciplineSeverity;
10
6
  max: number;
11
7
  };
12
8
  declare function normalizeFolderizeCompoundFilesRule(rule: FolderizeCompoundFilesRuleOptions | undefined): {
13
- severity: CodeDisciplineSeverity;
14
9
  fix: boolean;
15
10
  separators: string[];
16
11
  };
17
- declare function normalizeSyncImportsRule(rule: SyncImportsRuleOptions | undefined): {
18
- severity: CodeDisciplineSeverity;
12
+ declare function normalizeSyncImportsRule(rule: CodeDisciplineSyncImportsRuleOptions | undefined): {
19
13
  fix: boolean;
14
+ sourceRoot: string;
20
15
  tsconfigPath: string;
16
+ sourceExtensions: string[];
17
+ excludeDirs: string[];
21
18
  alias: {
22
19
  prefix?: string;
23
20
  strategy?: "random" | "relative-path-hash" | "relative-path-slug" | import("../index.js").AliasStrategyFn;
24
21
  randomLength?: number;
25
22
  };
26
23
  allowRelative: string[] | import("../index.js").AllowRelativeFn;
24
+ packageJsonImports: import("../index.js").PackageJsonImportsSyncOptions;
25
+ logging: import("../index.js").LoggingOptions;
27
26
  };
28
- export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
27
+ declare function normalizeDryRule(rule: DryRuleOptions | undefined): NormalizedDryRule | undefined;
28
+ export { normalizeDryRule, normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
29
29
  //# sourceMappingURL=normalize-rule-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AA4B5E,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;;EAe3E;AAED,iBAAS,6BAA6B,CAAC,IAAI,EAAE,2BAA2B,GAAG,SAAS;;;EAenF;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;;EAgB/F;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;;;;;;;;;;EAmBzE;AAMD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,oCAAoC,EACpC,cAAc,EACd,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAsB5B,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;EAgB3E;AAED,iBAAS,6BAA6B,CAAC,IAAI,EAAE,2BAA2B,GAAG,SAAS;;EAgBnF;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;EAiB/F;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,oCAAoC,GAAG,SAAS;;;;;;;;;;;;;;EAwBvF;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAyCzF;AAMD,OAAO,EAAE,gBAAgB,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX, DEFAULT_RULE_SEVERITY, } from "../shared/constants.js";
1
+ import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX, } from "../shared/constants.js";
2
2
  import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
3
3
  function assertRemovedKeys(ruleName, source, keys) {
4
4
  for (const key of keys) {
@@ -10,20 +10,20 @@ function assertRemovedKeys(ruleName, source, keys) {
10
10
  }
11
11
  }
12
12
  }
13
- function normalizeSeverity(ruleName, rule) {
14
- const severity = rule?.severity ?? DEFAULT_RULE_SEVERITY;
15
- if (severity !== "error" && severity !== "warning") {
16
- throw new InvalidCodeDisciplineConfigError(`${ruleName}.severity must be "error" or "warning"`, {
13
+ function assertSeverityRemoved(ruleName, rule) {
14
+ if ("severity" in rule) {
15
+ throw new InvalidCodeDisciplineConfigError(`${ruleName}.severity is no longer supported`, {
17
16
  rule: ruleName,
18
- value: severity,
17
+ key: "severity",
19
18
  });
20
19
  }
21
- return severity;
22
20
  }
23
21
  function normalizeMaxFileLinesRule(rule) {
24
22
  if (!rule)
25
23
  return undefined;
26
- assertRemovedKeys("maxFileLines", rule, ["enabled", "stop", "fix"]);
24
+ const source = rule;
25
+ assertRemovedKeys("maxFileLines", source, ["enabled", "stop", "fix"]);
26
+ assertSeverityRemoved("maxFileLines", source);
27
27
  if (!Number.isFinite(rule?.max)) {
28
28
  throw new InvalidCodeDisciplineConfigError("maxFileLines.max must be a finite number when the rule is configured", {
29
29
  rule: "maxFileLines",
@@ -31,14 +31,15 @@ function normalizeMaxFileLinesRule(rule) {
31
31
  });
32
32
  }
33
33
  return {
34
- severity: normalizeSeverity("maxFileLines", rule),
35
34
  max: Math.max(1, Math.floor(rule.max)),
36
35
  };
37
36
  }
38
37
  function normalizeMaxFunctionLinesRule(rule) {
39
38
  if (!rule)
40
39
  return undefined;
41
- assertRemovedKeys("maxFunctionLines", rule, ["enabled", "stop", "fix"]);
40
+ const source = rule;
41
+ assertRemovedKeys("maxFunctionLines", source, ["enabled", "stop", "fix"]);
42
+ assertSeverityRemoved("maxFunctionLines", source);
42
43
  if (!Number.isFinite(rule?.max)) {
43
44
  throw new InvalidCodeDisciplineConfigError("maxFunctionLines.max must be a finite number when the rule is configured", {
44
45
  rule: "maxFunctionLines",
@@ -46,14 +47,15 @@ function normalizeMaxFunctionLinesRule(rule) {
46
47
  });
47
48
  }
48
49
  return {
49
- severity: normalizeSeverity("maxFunctionLines", rule),
50
50
  max: Math.max(1, Math.floor(rule.max)),
51
51
  };
52
52
  }
53
53
  function normalizeFolderizeCompoundFilesRule(rule) {
54
54
  if (!rule)
55
55
  return undefined;
56
- assertRemovedKeys("folderizeCompoundFiles", rule, ["enabled", "stop", "suffixes"]);
56
+ const source = rule;
57
+ assertRemovedKeys("folderizeCompoundFiles", source, ["enabled", "stop", "suffixes"]);
58
+ assertSeverityRemoved("folderizeCompoundFiles", source);
57
59
  const separators = uniqueStrings(rule?.separators ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS);
58
60
  if (separators.length === 0) {
59
61
  throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.separators must contain at least one separator", {
@@ -61,7 +63,6 @@ function normalizeFolderizeCompoundFilesRule(rule) {
61
63
  });
62
64
  }
63
65
  return {
64
- severity: normalizeSeverity("folderizeCompoundFiles", rule),
65
66
  fix: Boolean(rule.fix ?? DEFAULT_RULE_FIX),
66
67
  separators,
67
68
  };
@@ -71,6 +72,7 @@ function normalizeSyncImportsRule(rule) {
71
72
  return undefined;
72
73
  const source = (rule ?? {});
73
74
  assertRemovedKeys("syncImports", source, ["enabled", "stop", "rewrite", "keepRelative"]);
75
+ assertSeverityRemoved("syncImports", source);
74
76
  if ("imports" in source) {
75
77
  throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative directly under syncImports", {
76
78
  rule: "syncImports",
@@ -78,15 +80,56 @@ function normalizeSyncImportsRule(rule) {
78
80
  });
79
81
  }
80
82
  return {
81
- severity: normalizeSeverity("syncImports", rule),
82
83
  fix: Boolean(rule?.fix ?? DEFAULT_RULE_FIX),
84
+ sourceRoot: rule?.sourceRoot,
83
85
  tsconfigPath: rule?.tsconfigPath,
86
+ sourceExtensions: rule?.sourceExtensions,
87
+ excludeDirs: rule?.excludeDirs,
84
88
  alias: rule?.alias,
85
89
  allowRelative: rule?.allowRelative ?? DEFAULT_ALLOW_RELATIVE,
90
+ packageJsonImports: rule?.packageJsonImports,
91
+ logging: rule?.logging,
92
+ };
93
+ }
94
+ function normalizeDryRule(rule) {
95
+ if (!rule)
96
+ return undefined;
97
+ const source = rule;
98
+ assertRemovedKeys("dry", source, ["enabled", "stop"]);
99
+ assertSeverityRemoved("dry", source);
100
+ if (!Array.isArray(rule.helpers) || rule.helpers.length === 0) {
101
+ throw new InvalidCodeDisciplineConfigError("dry.helpers must contain at least one helper", {
102
+ rule: "dry",
103
+ });
104
+ }
105
+ const helpers = rule.helpers.map((helper, index) => {
106
+ const from = String(helper?.from ?? "").trim();
107
+ const exportName = String(helper?.exportName ?? "").trim();
108
+ if (!from) {
109
+ throw new InvalidCodeDisciplineConfigError("dry.helpers[].from must be a non-empty string", {
110
+ rule: "dry",
111
+ index,
112
+ });
113
+ }
114
+ if (!exportName) {
115
+ throw new InvalidCodeDisciplineConfigError("dry.helpers[].exportName must be a non-empty string", {
116
+ rule: "dry",
117
+ index,
118
+ });
119
+ }
120
+ return {
121
+ from,
122
+ exportName,
123
+ key: helper?.key ? String(helper.key).trim() : undefined,
124
+ };
125
+ });
126
+ return {
127
+ fix: Boolean(rule.fix ?? DEFAULT_RULE_FIX),
128
+ helpers,
86
129
  };
87
130
  }
88
131
  function uniqueStrings(values) {
89
132
  return Array.from(new Set(values));
90
133
  }
91
- export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
134
+ export { normalizeDryRule, normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
92
135
  //# sourceMappingURL=normalize-rule-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-rule-options.js","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAUvE,SAAS,iBAAiB,CAAC,QAAgB,EAAE,MAA+B,EAAE,IAAc;IAC1F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,gCAAgC,CAAC,GAAG,QAAQ,IAAI,GAAG,yBAAyB,EAAE;gBACtF,IAAI,EAAE,QAAQ;gBACd,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAgB,EAChB,IAAqC;IAErC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,qBAAqB,CAAC;IACzD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,IAAI,gCAAgC,CAAC,GAAG,QAAQ,wCAAwC,EAAE;YAC9F,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAyC;IAC1E,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,iBAAiB,CAAC,cAAc,EAAE,IAA+B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAgC,CAAC,sEAAsE,EAAE;YACjH,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,IAAI,EAAE,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC;QACjD,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,GAAa,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,IAA6C;IAClF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,iBAAiB,CAAC,kBAAkB,EAAE,IAA+B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAgC,CAAC,0EAA0E,EAAE;YACrH,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,IAAI,EAAE,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC;QACrD,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,GAAa,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAmD;IAC9F,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,iBAAiB,CAAC,wBAAwB,EAAE,IAA+B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9G,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,IAAI,0CAA0C,CAAC,CAAC;IAEjG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,gCAAgC,CAAC,uEAAuE,EAAE;YAClH,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,IAAI,CAAC;QAC3D,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC;QAC1C,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAwC;IACxE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IACvD,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzF,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,gCAAgC,CAAC,0FAA0F,EAAE;YACrI,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC;QAChD,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,gBAAgB,CAAC;QAC3C,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,KAAK,EAAE,IAAI,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,sBAAsB;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-rule-options.js","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-sync-imports-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAiB5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAwC7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-sync-imports-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA+C7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,18 +1,8 @@
1
1
  import path from "node:path";
2
- import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_ALLOW_RELATIVE, DEFAULT_RULE_FIX, DEFAULT_RULE_SEVERITY, } from "../shared/constants.js";
2
+ import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_ALLOW_RELATIVE, DEFAULT_RULE_FIX, } from "../shared/constants.js";
3
3
  import { InvalidCodeDisciplineConfigError, InvalidTsconfigPathError } from "../shared/errors.js";
4
4
  import { isDirectory } from "../shared/utils.js";
5
5
  import { normalizeSourceOptions } from "./normalize-source-options.js";
6
- function normalizeSeverity(value) {
7
- const severity = value ?? DEFAULT_RULE_SEVERITY;
8
- if (severity !== "error" && severity !== "warning") {
9
- throw new InvalidCodeDisciplineConfigError('syncImports.severity must be "error" or "warning"', {
10
- key: "severity",
11
- value: severity,
12
- });
13
- }
14
- return severity;
15
- }
16
6
  async function normalizeSyncImportsOptions(options) {
17
7
  if ("imports" in options) {
18
8
  throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative instead", {
@@ -26,6 +16,11 @@ async function normalizeSyncImportsOptions(options) {
26
16
  });
27
17
  }
28
18
  }
19
+ if ("severity" in options) {
20
+ throw new InvalidCodeDisciplineConfigError("syncImports.severity is no longer supported", {
21
+ key: "severity",
22
+ });
23
+ }
29
24
  const source = await normalizeSourceOptions(options);
30
25
  const tsconfigInput = options.tsconfigPath ?? path.join(source.projectRoot, "tsconfig.json");
31
26
  const tsconfigPath = path.isAbsolute(tsconfigInput) ? path.resolve(tsconfigInput) : path.resolve(source.projectRoot, tsconfigInput);
@@ -34,8 +29,8 @@ async function normalizeSyncImportsOptions(options) {
34
29
  }
35
30
  return {
36
31
  ...source,
32
+ configPath: options.configPath,
37
33
  tsconfigPath,
38
- severity: normalizeSeverity(options.severity),
39
34
  fix: options.fix ?? DEFAULT_RULE_FIX,
40
35
  alias: {
41
36
  prefix: options.alias?.prefix ?? DEFAULT_ALIAS_PREFIX,
@@ -43,6 +38,7 @@ async function normalizeSyncImportsOptions(options) {
43
38
  randomLength: Math.max(1, Math.floor(options.alias?.randomLength ?? DEFAULT_ALIAS_RANDOM_LENGTH)),
44
39
  },
45
40
  allowRelative: options.allowRelative ?? DEFAULT_ALLOW_RELATIVE,
41
+ packageJsonImports: options.packageJsonImports,
46
42
  logging: {
47
43
  enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
48
44
  logger: options.logging?.logger,
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-sync-imports-options.js","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize-sync-imports-options.js","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,2BAA2B,CAAC,OAA2B;IACpE,IAAI,SAAS,IAAK,OAAmC,EAAE,CAAC;QACtD,MAAM,IAAI,gCAAgC,CAAC,uEAAuE,EAAE;YAClH,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAU,EAAE,CAAC;QAC1E,IAAI,GAAG,IAAK,OAAmC,EAAE,CAAC;YAChD,MAAM,IAAI,gCAAgC,CAAC,eAAe,GAAG,yBAAyB,EAAE;gBACtF,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAK,OAAmC,EAAE,CAAC;QACvD,MAAM,IAAI,gCAAgC,CAAC,6CAA6C,EAAE;YACxF,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpI,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY;QACZ,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,gBAAgB;QACpC,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,oBAAoB;YACrD,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,sBAAsB;YAC3D,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,2BAA2B,CAAC,CAAC;SAClG;QACD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,sBAAsB;QAC9D,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YACjG,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO;YACjC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK;SACvC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAqEjF,iBAAe,YAAY,CACzB,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,cAAc,EAAE,YAAY,CAAA;CAAE,CAAC,CAuCjE;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAiB5B;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AA0EjF,iBAAe,YAAY,CACzB,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,cAAc,EAAE,YAAY,CAAA;CAAE,CAAC,CAuCjE;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAiB5B;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -2,9 +2,13 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { resolveProjectPathTarget } from "./resolve.js";
4
4
  import { generateAliasId } from "./strategies.js";
5
- import { isInsideDirectory, parseTsconfigJson, pathExists, stableSerialize, toStableJson, wait } from "../shared/utils.js";
5
+ import { isInsideDirectory, parseTsconfigJson, pathExists, stableSerialize, toPosixPath, toStableJson, wait } from "../shared/utils.js";
6
6
  const TSCONFIG_READ_RETRY_ATTEMPTS = 20;
7
7
  const TSCONFIG_READ_RETRY_DELAY_MS = 50;
8
+ function toTsconfigPathTarget(relativeFromProjectRoot) {
9
+ const normalized = toPosixPath(relativeFromProjectRoot).replace(/^\.\/+/, "");
10
+ return normalized.startsWith("./") ? normalized : `./${normalized}`;
11
+ }
8
12
  function normalizeTargetPath(projectRoot, targetPath) {
9
13
  if (targetPath.includes("*"))
10
14
  return null;
@@ -127,7 +131,7 @@ async function planTsconfigAliases(options, sourceFiles, logger) {
127
131
  }
128
132
  const managedPaths = {};
129
133
  for (const record of aliasRecords) {
130
- managedPaths[record.id] = [record.relativeFromProjectRoot];
134
+ managedPaths[record.id] = [toTsconfigPathTarget(record.relativeFromProjectRoot)];
131
135
  }
132
136
  const nextPaths = sortPathsRecord({
133
137
  ...existingState.passthroughPaths,
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-sync-imports.d.ts","sourceRoot":"","sources":["../../src/imports/check-sync-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElF,iBAAe,2BAA2B,CACxC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAgDpC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"check-sync-imports.d.ts","sourceRoot":"","sources":["../../src/imports/check-sync-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAM7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElF,iBAAe,2BAA2B,CACxC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAiEpC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
+ import { collectPackageJsonImportsSyncState } from "../runtime/runtime-imports-sync.js";
3
4
  import { planTsconfigAliases } from "./aliases.js";
4
5
  import { collectModuleSpecifiers } from "./module-specifiers.js";
5
6
  import { resolveRelativeImport } from "./resolve.js";
@@ -11,7 +12,6 @@ async function collectSyncImportViolations(sourceFiles, options, logger) {
11
12
  if (aliasPlan.aliasesChanged) {
12
13
  violations.push({
13
14
  rule: "sync-imports",
14
- severity: options.severity,
15
15
  fix: options.fix,
16
16
  filePath: path.relative(options.projectRoot, options.tsconfigPath) || "tsconfig.json",
17
17
  message: "tsconfig paths are out of sync with the current source tree",
@@ -20,6 +20,23 @@ async function collectSyncImportViolations(sourceFiles, options, logger) {
20
20
  },
21
21
  });
22
22
  }
23
+ const packageJsonSyncState = await collectPackageJsonImportsSyncState({
24
+ configPath: options.configPath,
25
+ options: options.packageJsonImports,
26
+ projectRoot: options.projectRoot,
27
+ tsconfigPath: options.tsconfigPath,
28
+ });
29
+ if (packageJsonSyncState?.changed) {
30
+ violations.push({
31
+ rule: "sync-imports",
32
+ fix: options.fix,
33
+ filePath: path.relative(options.projectRoot, packageJsonSyncState.packageJsonPath) || "package.json",
34
+ message: "package.json imports are out of sync with tsconfig paths",
35
+ details: {
36
+ importsCount: packageJsonSyncState.importsCount,
37
+ },
38
+ });
39
+ }
23
40
  for (const file of sourceFiles) {
24
41
  const text = await fs.readFile(file.absolutePath, "utf8");
25
42
  for (const occurrence of collectModuleSpecifiers(text, file.absolutePath)) {
@@ -35,7 +52,6 @@ async function collectSyncImportViolations(sourceFiles, options, logger) {
35
52
  continue;
36
53
  violations.push({
37
54
  rule: "sync-imports",
38
- severity: options.severity,
39
55
  fix: options.fix,
40
56
  filePath: file.relativeFromProjectRoot,
41
57
  message: `relative import ${occurrence.specifier} should be rewritten to ${aliasId}`,