@trebired/code-discipline 0.1.0 → 1.0.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 (74) hide show
  1. package/CHANGELOG.md +14 -10
  2. package/README.md +141 -147
  3. package/dist/checks/fix-folderization.d.ts +17 -0
  4. package/dist/checks/fix-folderization.d.ts.map +1 -0
  5. package/dist/checks/fix-folderization.js +223 -0
  6. package/dist/checks/fix-folderization.js.map +1 -0
  7. package/dist/checks/index.d.ts +21 -2
  8. package/dist/checks/index.d.ts.map +1 -1
  9. package/dist/checks/index.js +104 -12
  10. package/dist/checks/index.js.map +1 -1
  11. package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
  12. package/dist/checks/rules/folderize-compound-files.js +15 -33
  13. package/dist/checks/rules/folderize-compound-files.js.map +1 -1
  14. package/dist/checks/rules/folderize-plan.d.ts +16 -0
  15. package/dist/checks/rules/folderize-plan.d.ts.map +1 -0
  16. package/dist/checks/rules/folderize-plan.js +80 -0
  17. package/dist/checks/rules/folderize-plan.js.map +1 -0
  18. package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
  19. package/dist/checks/rules/max-file-lines.js +2 -1
  20. package/dist/checks/rules/max-file-lines.js.map +1 -1
  21. package/dist/checks/types.d.ts +31 -20
  22. package/dist/checks/types.d.ts.map +1 -1
  23. package/dist/cli/run-cli.d.ts.map +1 -1
  24. package/dist/cli/run-cli.js +40 -16
  25. package/dist/cli/run-cli.js.map +1 -1
  26. package/dist/config/normalize-check-options.d.ts.map +1 -1
  27. package/dist/config/normalize-check-options.js +8 -1
  28. package/dist/config/normalize-check-options.js.map +1 -1
  29. package/dist/config/normalize-rule-options.d.ts +21 -7
  30. package/dist/config/normalize-rule-options.d.ts.map +1 -1
  31. package/dist/config/normalize-rule-options.js +43 -18
  32. package/dist/config/normalize-rule-options.js.map +1 -1
  33. package/dist/config/normalize-sync-imports-options.d.ts.map +1 -1
  34. package/dist/config/normalize-sync-imports-options.js +18 -6
  35. package/dist/config/normalize-sync-imports-options.js.map +1 -1
  36. package/dist/imports/aliases.d.ts +2 -1
  37. package/dist/imports/aliases.d.ts.map +1 -1
  38. package/dist/imports/aliases.js +18 -14
  39. package/dist/imports/aliases.js.map +1 -1
  40. package/dist/imports/check-sync-imports.d.ts +6 -0
  41. package/dist/imports/check-sync-imports.d.ts.map +1 -0
  42. package/dist/imports/check-sync-imports.js +55 -0
  43. package/dist/imports/check-sync-imports.js.map +1 -0
  44. package/dist/imports/module-specifiers.d.ts +20 -0
  45. package/dist/imports/module-specifiers.d.ts.map +1 -0
  46. package/dist/imports/module-specifiers.js +69 -0
  47. package/dist/imports/module-specifiers.js.map +1 -0
  48. package/dist/imports/rewrite.d.ts +3 -2
  49. package/dist/imports/rewrite.d.ts.map +1 -1
  50. package/dist/imports/rewrite.js +27 -90
  51. package/dist/imports/rewrite.js.map +1 -1
  52. package/dist/imports/sync-imports.d.ts.map +1 -1
  53. package/dist/imports/sync-imports.js +50 -5
  54. package/dist/imports/sync-imports.js.map +1 -1
  55. package/dist/imports/types.d.ts +18 -24
  56. package/dist/imports/types.d.ts.map +1 -1
  57. package/dist/index.d.ts +7 -7
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -4
  60. package/dist/index.js.map +1 -1
  61. package/dist/shared/constants.d.ts +4 -6
  62. package/dist/shared/constants.d.ts.map +1 -1
  63. package/dist/shared/constants.js +4 -6
  64. package/dist/shared/constants.js.map +1 -1
  65. package/dist/shared/errors.d.ts +8 -2
  66. package/dist/shared/errors.d.ts.map +1 -1
  67. package/dist/shared/errors.js +13 -1
  68. package/dist/shared/errors.js.map +1 -1
  69. package/dist/shared/logging-types.d.ts +7 -1
  70. package/dist/shared/logging-types.d.ts.map +1 -1
  71. package/dist/shared/logging.d.ts +2 -3
  72. package/dist/shared/logging.d.ts.map +1 -1
  73. package/dist/shared/logging.js.map +1 -1
  74. package/package.json +2 -1
@@ -1,12 +1,19 @@
1
- import { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule } from "./normalize-rule-options.js";
1
+ import { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeSyncImportsRule } from "./normalize-rule-options.js";
2
2
  import { normalizeSourceOptions } from "./normalize-source-options.js";
3
3
  async function normalizeCheckCodeDisciplineOptions(options) {
4
4
  const source = await normalizeSourceOptions(options);
5
5
  return {
6
6
  ...source,
7
+ logging: {
8
+ enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
9
+ logger: options.logging?.logger,
10
+ adapter: options.logging?.adapter,
11
+ quiet: options.logging?.quiet ?? false,
12
+ },
7
13
  rules: {
8
14
  maxFileLines: normalizeMaxFileLinesRule(options.rules?.maxFileLines),
9
15
  folderizeCompoundFiles: normalizeFolderizeCompoundFilesRule(options.rules?.folderizeCompoundFiles),
16
+ syncImports: normalizeSyncImportsRule(options.rules?.syncImports),
10
17
  },
11
18
  };
12
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-check-options.js","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7G,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,KAAK,EAAE;YACL,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;YACpE,sBAAsB,EAAE,mCAAmC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC;SACnG;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":"AACA,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvI,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,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,14 +1,28 @@
1
- import type { CodeDisciplineRuleSeverity, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions } from "../checks/types.js";
1
+ import type { FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions } from "../checks/types.js";
2
+ import type { SyncImportsRuleOptions } from "../imports/types.js";
2
3
  declare function normalizeMaxFileLinesRule(rule: MaxFileLinesRuleOptions | undefined): {
3
- enabled: boolean;
4
4
  max: number;
5
- severity: CodeDisciplineRuleSeverity;
5
+ enabled: boolean;
6
+ stop: boolean;
7
+ fix: boolean;
6
8
  };
7
9
  declare function normalizeFolderizeCompoundFilesRule(rule: FolderizeCompoundFilesRuleOptions | undefined): {
8
- enabled: boolean;
9
10
  separators: string[];
10
- suffixes: string[];
11
- severity: CodeDisciplineRuleSeverity;
11
+ enabled: boolean;
12
+ stop: boolean;
13
+ fix: boolean;
14
+ };
15
+ declare function normalizeSyncImportsRule(rule: SyncImportsRuleOptions | undefined): {
16
+ enabled: boolean;
17
+ stop: boolean;
18
+ fix: boolean;
19
+ tsconfigPath: string;
20
+ alias: {
21
+ prefix?: string;
22
+ strategy?: "random" | "relative-path-hash" | "relative-path-slug" | import("../index.js").AliasStrategyFn;
23
+ randomLength?: number;
24
+ };
25
+ allowRelative: string[] | import("../index.js").AllowRelativeFn;
12
26
  };
13
- export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule };
27
+ export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeSyncImportsRule };
14
28
  //# 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,0BAA0B,EAC1B,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAM5B,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;;;EAuB3E;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;;;EAsB/F;AAMD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,CAAC"}
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,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAqBlE,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;;;;EAsB3E;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;;;EAe/F;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;;;;;;;;;;;EAmBzE;AAMD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,15 +1,29 @@
1
- import { DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES, DEFAULT_MAX_FILE_LINES_SEVERITY, } from "../shared/constants.js";
1
+ import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX, DEFAULT_RULE_STOP, } from "../shared/constants.js";
2
2
  import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
3
- function normalizeSeverity(value) {
4
- return value === "warn" ? "warn" : "error";
3
+ function assertRemovedKeys(ruleName, source, keys) {
4
+ for (const key of keys) {
5
+ if (key in source) {
6
+ throw new InvalidCodeDisciplineConfigError(`${ruleName}.${key} is no longer supported`, {
7
+ rule: ruleName,
8
+ key,
9
+ });
10
+ }
11
+ }
12
+ }
13
+ function normalizeRuleControl(rule) {
14
+ return {
15
+ enabled: Boolean(rule?.enabled ?? false),
16
+ stop: Boolean(rule?.stop ?? DEFAULT_RULE_STOP),
17
+ fix: Boolean(rule?.fix ?? DEFAULT_RULE_FIX),
18
+ };
5
19
  }
6
20
  function normalizeMaxFileLinesRule(rule) {
7
- const enabled = rule?.enabled ?? false;
8
- if (!enabled) {
21
+ const control = normalizeRuleControl(rule);
22
+ assertRemovedKeys("maxFileLines", (rule ?? {}), ["severity"]);
23
+ if (!control.enabled) {
9
24
  return {
10
- enabled: false,
25
+ ...control,
11
26
  max: 0,
12
- severity: normalizeSeverity(rule?.severity ?? DEFAULT_MAX_FILE_LINES_SEVERITY),
13
27
  };
14
28
  }
15
29
  if (!Number.isFinite(rule?.max)) {
@@ -19,33 +33,44 @@ function normalizeMaxFileLinesRule(rule) {
19
33
  });
20
34
  }
21
35
  return {
22
- enabled: true,
36
+ ...control,
23
37
  max: Math.max(1, Math.floor(rule.max)),
24
- severity: normalizeSeverity(rule?.severity ?? DEFAULT_MAX_FILE_LINES_SEVERITY),
25
38
  };
26
39
  }
27
40
  function normalizeFolderizeCompoundFilesRule(rule) {
41
+ const control = normalizeRuleControl(rule);
42
+ assertRemovedKeys("folderizeCompoundFiles", (rule ?? {}), ["severity", "suffixes"]);
28
43
  const separators = uniqueStrings(rule?.separators ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS);
29
- const suffixes = uniqueStrings(rule?.suffixes ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES);
30
44
  if (separators.length === 0) {
31
45
  throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.separators must contain at least one separator", {
32
46
  rule: "folderizeCompoundFiles",
33
47
  });
34
48
  }
35
- if (suffixes.length === 0) {
36
- throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.suffixes must contain at least one suffix", {
37
- rule: "folderizeCompoundFiles",
49
+ return {
50
+ ...control,
51
+ separators,
52
+ };
53
+ }
54
+ function normalizeSyncImportsRule(rule) {
55
+ const source = (rule ?? {});
56
+ assertRemovedKeys("syncImports", source, ["severity", "rewrite", "keepRelative"]);
57
+ if ("imports" in source) {
58
+ throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative directly under syncImports", {
59
+ rule: "syncImports",
60
+ key: "imports",
38
61
  });
39
62
  }
40
63
  return {
41
- enabled: rule?.enabled ?? false,
42
- separators,
43
- suffixes,
44
- severity: normalizeSeverity(rule?.severity ?? DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY),
64
+ enabled: Boolean(rule?.enabled ?? false),
65
+ stop: Boolean(rule?.stop ?? DEFAULT_RULE_STOP),
66
+ fix: Boolean(rule?.fix ?? DEFAULT_RULE_FIX),
67
+ tsconfigPath: rule?.tsconfigPath,
68
+ alias: rule?.alias,
69
+ allowRelative: rule?.allowRelative ?? DEFAULT_ALLOW_RELATIVE,
45
70
  };
46
71
  }
47
72
  function uniqueStrings(values) {
48
73
  return Array.from(new Set(values));
49
74
  }
50
- export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule };
75
+ export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeSyncImportsRule };
51
76
  //# 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,yCAAyC,EACzC,0CAA0C,EAC1C,wCAAwC,EACxC,+BAA+B,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAOvE,SAAS,iBAAiB,CAAC,KAA6C;IACtE,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAyC;IAC1E,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,+BAA+B,CAAC;SAC/E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAgC,CAAC,mEAAmE,EAAE;YAC9G,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,IAAI,EAAE,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,GAAa,CAAC,CAAC;QACjD,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,+BAA+B,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAmD;IAC9F,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,IAAI,0CAA0C,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,IAAI,wCAAwC,CAAC,CAAC;IAE3F,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,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gCAAgC,CAAC,kEAAkE,EAAE;YAC7G,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;QAC/B,UAAU;QACV,QAAQ;QACR,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,yCAAyC,CAAC;KACzF,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,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":"AAUA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA2B7G;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":"AAWA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAyC7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,9 +1,21 @@
1
1
  import path from "node:path";
2
- import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_IMPORTS_REWRITE, DEFAULT_KEEP_RELATIVE, } from "../shared/constants.js";
3
- import { InvalidTsconfigPathError } from "../shared/errors.js";
2
+ import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_ALLOW_RELATIVE, DEFAULT_RULE_FIX, DEFAULT_RULE_STOP, } from "../shared/constants.js";
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
6
  async function normalizeSyncImportsOptions(options) {
7
+ if ("imports" in options) {
8
+ throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative instead", {
9
+ key: "imports",
10
+ });
11
+ }
12
+ for (const key of ["rewrite", "keepRelative", "severity"]) {
13
+ if (key in options) {
14
+ throw new InvalidCodeDisciplineConfigError(`syncImports.${key} is no longer supported`, {
15
+ key,
16
+ });
17
+ }
18
+ }
7
19
  const source = await normalizeSourceOptions(options);
8
20
  const tsconfigInput = options.tsconfigPath ?? path.join(source.projectRoot, "tsconfig.json");
9
21
  const tsconfigPath = path.isAbsolute(tsconfigInput) ? path.resolve(tsconfigInput) : path.resolve(source.projectRoot, tsconfigInput);
@@ -13,15 +25,15 @@ async function normalizeSyncImportsOptions(options) {
13
25
  return {
14
26
  ...source,
15
27
  tsconfigPath,
28
+ enabled: options.enabled ?? true,
29
+ stop: options.stop ?? DEFAULT_RULE_STOP,
30
+ fix: options.fix ?? DEFAULT_RULE_FIX,
16
31
  alias: {
17
32
  prefix: options.alias?.prefix ?? DEFAULT_ALIAS_PREFIX,
18
33
  strategy: options.alias?.strategy ?? DEFAULT_ALIAS_STRATEGY,
19
34
  randomLength: Math.max(1, Math.floor(options.alias?.randomLength ?? DEFAULT_ALIAS_RANDOM_LENGTH)),
20
35
  },
21
- imports: {
22
- rewrite: options.imports?.rewrite ?? DEFAULT_IMPORTS_REWRITE,
23
- keepRelative: options.imports?.keepRelative ?? DEFAULT_KEEP_RELATIVE,
24
- },
36
+ allowRelative: options.allowRelative ?? DEFAULT_ALLOW_RELATIVE,
25
37
  logging: {
26
38
  enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
27
39
  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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,2BAA2B,CAAC,OAA2B;IACpE,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,YAAY;QACZ,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,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,uBAAuB;YAC5D,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,IAAI,qBAAqB;SACrE;QACD,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
+ {"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,EAChB,iBAAiB,GAClB,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,cAAc,EAAE,UAAU,CAAU,EAAE,CAAC;QACnE,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,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,YAAY;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,iBAAiB;QACvC,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,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"}
@@ -5,5 +5,6 @@ declare function readTsconfig(options: NormalizedSyncImportsOptions, logger?: No
5
5
  originalConfig: TsconfigJson;
6
6
  }>;
7
7
  declare function syncTsconfigAliases(options: NormalizedSyncImportsOptions, sourceFiles: ScannedSourceFile[], logger: NormalizedSyncImportsLogger): Promise<SyncAliasesResult>;
8
- export { readTsconfig, syncTsconfigAliases };
8
+ declare function planTsconfigAliases(options: NormalizedSyncImportsOptions, sourceFiles: ScannedSourceFile[], logger?: NormalizedSyncImportsLogger): Promise<SyncAliasesResult>;
9
+ export { planTsconfigAliases, readTsconfig, syncTsconfigAliases };
9
10
  //# sourceMappingURL=aliases.d.ts.map
@@ -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,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAqE9E,iBAAe,YAAY,CACzB,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,2BAA2B,GACnC,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,2BAA2B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAkE5B;AAED,OAAO,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,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAqE9E,iBAAe,YAAY,CACzB,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,2BAA2B,GACnC,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,2BAA2B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAiB5B;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -88,6 +88,23 @@ async function readTsconfig(options, logger) {
88
88
  throw lastError;
89
89
  }
90
90
  async function syncTsconfigAliases(options, sourceFiles, logger) {
91
+ const result = await planTsconfigAliases(options, sourceFiles, logger);
92
+ if (result.aliasesChanged) {
93
+ await fs.writeFile(options.tsconfigPath, toStableJson(result.tsconfig));
94
+ logger.success("aliases-written", `aliases written count=${result.aliasesCount}`, {
95
+ tsconfigPath: options.tsconfigPath,
96
+ aliasesCount: result.aliasesCount,
97
+ });
98
+ }
99
+ else {
100
+ logger.info("aliases-unchanged", `aliases unchanged count=${result.aliasesCount}`, {
101
+ tsconfigPath: options.tsconfigPath,
102
+ aliasesCount: result.aliasesCount,
103
+ });
104
+ }
105
+ return result;
106
+ }
107
+ async function planTsconfigAliases(options, sourceFiles, logger) {
91
108
  const { config, originalConfig } = await readTsconfig(options, logger);
92
109
  const sourceFilesByPath = new Map(sourceFiles.map((file) => [file.absolutePath, file]));
93
110
  const compilerOptions = { ...(config.compilerOptions ?? {}) };
@@ -126,19 +143,6 @@ async function syncTsconfigAliases(options, sourceFiles, logger) {
126
143
  compilerOptions: nextCompilerOptions,
127
144
  };
128
145
  const aliasesChanged = stableSerialize(originalConfig) !== stableSerialize(nextConfig);
129
- if (aliasesChanged) {
130
- await fs.writeFile(options.tsconfigPath, toStableJson(nextConfig));
131
- logger.success("aliases-written", `aliases written count=${aliasRecords.length}`, {
132
- tsconfigPath: options.tsconfigPath,
133
- aliasesCount: aliasRecords.length,
134
- });
135
- }
136
- else {
137
- logger.info("aliases-unchanged", `aliases unchanged count=${aliasRecords.length}`, {
138
- tsconfigPath: options.tsconfigPath,
139
- aliasesCount: aliasRecords.length,
140
- });
141
- }
142
146
  return {
143
147
  aliasesChanged,
144
148
  aliasesCount: aliasRecords.length,
@@ -146,5 +150,5 @@ async function syncTsconfigAliases(options, sourceFiles, logger) {
146
150
  tsconfig: nextConfig,
147
151
  };
148
152
  }
149
- export { readTsconfig, syncTsconfigAliases };
153
+ export { planTsconfigAliases, readTsconfig, syncTsconfigAliases };
150
154
  //# sourceMappingURL=aliases.js.map
@@ -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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"}
@@ -0,0 +1,6 @@
1
+ import type { CodeDisciplineViolation } from "../checks/types.js";
2
+ import type { NormalizedSyncImportsLogger } from "../shared/logging-types.js";
3
+ import type { NormalizedSyncImportsOptions, ScannedSourceFile } from "./types.js";
4
+ declare function collectSyncImportViolations(sourceFiles: ScannedSourceFile[], options: NormalizedSyncImportsOptions, logger?: NormalizedSyncImportsLogger): Promise<CodeDisciplineViolation[]>;
5
+ export { collectSyncImportViolations };
6
+ //# sourceMappingURL=check-sync-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-sync-imports.d.ts","sourceRoot":"","sources":["../../src/imports/check-sync-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAK9E,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,2BAA2B,GACnC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkDpC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { planTsconfigAliases } from "./aliases.js";
4
+ import { collectModuleSpecifiers } from "./module-specifiers.js";
5
+ import { resolveRelativeImport } from "./resolve.js";
6
+ import { isAllowedRelative } from "./rewrite.js";
7
+ async function collectSyncImportViolations(sourceFiles, options, logger) {
8
+ if (!options.enabled)
9
+ return [];
10
+ const aliasPlan = await planTsconfigAliases(options, sourceFiles, logger);
11
+ const aliasIdsByFilePath = new Map(aliasPlan.aliasRecords.map((record) => [record.absolutePath, record.id]));
12
+ const violations = [];
13
+ if (aliasPlan.aliasesChanged) {
14
+ violations.push({
15
+ rule: "sync-imports",
16
+ stop: options.stop,
17
+ fix: options.fix,
18
+ filePath: path.relative(options.projectRoot, options.tsconfigPath) || "tsconfig.json",
19
+ message: "tsconfig paths are out of sync with the current source tree",
20
+ details: {
21
+ aliasesCount: aliasPlan.aliasesCount,
22
+ },
23
+ });
24
+ }
25
+ for (const file of sourceFiles) {
26
+ const text = await fs.readFile(file.absolutePath, "utf8");
27
+ for (const occurrence of collectModuleSpecifiers(text, file.absolutePath)) {
28
+ if (!occurrence.specifier.startsWith("."))
29
+ continue;
30
+ const resolvedFile = await resolveRelativeImport(occurrence.specifier, file.absolutePath, options);
31
+ if (!resolvedFile)
32
+ continue;
33
+ if (isAllowedRelative(occurrence.specifier, file.absolutePath, resolvedFile, options))
34
+ continue;
35
+ const aliasId = aliasIdsByFilePath.get(resolvedFile);
36
+ if (!aliasId)
37
+ continue;
38
+ violations.push({
39
+ rule: "sync-imports",
40
+ stop: options.stop,
41
+ fix: options.fix,
42
+ filePath: file.relativeFromProjectRoot,
43
+ message: `relative import ${occurrence.specifier} should be rewritten to ${aliasId}`,
44
+ details: {
45
+ specifier: occurrence.specifier,
46
+ aliasId,
47
+ resolvedFile: path.relative(options.projectRoot, resolvedFile),
48
+ },
49
+ });
50
+ }
51
+ }
52
+ return violations;
53
+ }
54
+ export { collectSyncImportViolations };
55
+ //# sourceMappingURL=check-sync-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-sync-imports.js","sourceRoot":"","sources":["../../src/imports/check-sync-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,KAAK,UAAU,2BAA2B,CACxC,WAAgC,EAChC,OAAqC,EACrC,MAAoC;IAEpC,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,UAAU,GAA8B,EAAE,CAAC;IAEjD,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,eAAe;YACrF,OAAO,EAAE,6DAA6D;YACtE,OAAO,EAAE;gBACP,YAAY,EAAE,SAAS,CAAC,YAAY;aACrC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE1D,KAAK,MAAM,UAAU,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEpD,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACnG,IAAI,CAAC,YAAY;gBAAE,SAAS;YAE5B,IAAI,iBAAiB,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC;gBAAE,SAAS;YAEhG,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,IAAI,CAAC,uBAAuB;gBACtC,OAAO,EAAE,mBAAmB,UAAU,CAAC,SAAS,2BAA2B,OAAO,EAAE;gBACpF,OAAO,EAAE;oBACP,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,OAAO;oBACP,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC;iBAC/D;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import ts from "typescript";
2
+ type ModuleSpecifierOccurrence = {
3
+ specifier: string;
4
+ start: number;
5
+ end: number;
6
+ };
7
+ type TextReplacement = {
8
+ start: number;
9
+ end: number;
10
+ value: string;
11
+ };
12
+ declare function parseSource(text: string, filePath: string): ts.SourceFile;
13
+ declare function collectModuleSpecifiers(text: string, filePath: string): ModuleSpecifierOccurrence[];
14
+ declare function applyTextReplacements(text: string, replacements: TextReplacement[]): {
15
+ text: string;
16
+ count: number;
17
+ };
18
+ export { applyTextReplacements, collectModuleSpecifiers, parseSource };
19
+ export type { ModuleSpecifierOccurrence, TextReplacement };
20
+ //# sourceMappingURL=module-specifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-specifiers.d.ts","sourceRoot":"","sources":["../../src/imports/module-specifiers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAK5B,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAUF,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAYlE;AAED,iBAAS,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,yBAAyB,EAAE,CAoC5F;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgB7G;AAED,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAC;AACvE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,69 @@
1
+ import path from "node:path";
2
+ import ts from "typescript";
3
+ import { ParseFailureError } from "../shared/errors.js";
4
+ import { formatDiagnostics } from "../shared/utils.js";
5
+ function resolveScriptKind(filePath) {
6
+ const extension = path.extname(filePath).toLowerCase();
7
+ if (extension === ".tsx")
8
+ return ts.ScriptKind.TSX;
9
+ if (extension === ".jsx")
10
+ return ts.ScriptKind.JSX;
11
+ if (extension === ".js")
12
+ return ts.ScriptKind.JS;
13
+ return ts.ScriptKind.TS;
14
+ }
15
+ function parseSource(text, filePath) {
16
+ const sourceFile = ts.createSourceFile(filePath, text, ts.ScriptTarget.Latest, true, resolveScriptKind(filePath));
17
+ const diagnostics = (sourceFile.parseDiagnostics ?? []);
18
+ const errors = diagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error);
19
+ if (errors.length > 0) {
20
+ throw new ParseFailureError(filePath, formatDiagnostics(errors));
21
+ }
22
+ return sourceFile;
23
+ }
24
+ function collectModuleSpecifiers(text, filePath) {
25
+ const sourceFile = parseSource(text, filePath);
26
+ const occurrences = [];
27
+ function addLiteral(node) {
28
+ occurrences.push({
29
+ specifier: node.text,
30
+ start: node.getStart(sourceFile) + 1,
31
+ end: node.getEnd() - 1,
32
+ });
33
+ }
34
+ function visit(node) {
35
+ if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {
36
+ if (node.moduleSpecifier && ts.isStringLiteralLike(node.moduleSpecifier)) {
37
+ addLiteral(node.moduleSpecifier);
38
+ }
39
+ }
40
+ if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {
41
+ const [firstArg] = node.arguments;
42
+ if (firstArg && ts.isStringLiteralLike(firstArg)) {
43
+ addLiteral(firstArg);
44
+ }
45
+ }
46
+ if (ts.isImportTypeNode(node) && ts.isLiteralTypeNode(node.argument) && ts.isStringLiteralLike(node.argument.literal)) {
47
+ addLiteral(node.argument.literal);
48
+ }
49
+ ts.forEachChild(node, visit);
50
+ }
51
+ visit(sourceFile);
52
+ return occurrences;
53
+ }
54
+ function applyTextReplacements(text, replacements) {
55
+ if (replacements.length === 0) {
56
+ return { text, count: 0 };
57
+ }
58
+ const sorted = [...replacements].sort((left, right) => right.start - left.start);
59
+ let nextText = text;
60
+ for (const replacement of sorted) {
61
+ nextText = `${nextText.slice(0, replacement.start)}${replacement.value}${nextText.slice(replacement.end)}`;
62
+ }
63
+ return {
64
+ text: nextText,
65
+ count: replacements.length,
66
+ };
67
+ }
68
+ export { applyTextReplacements, collectModuleSpecifiers, parseSource };
69
+ //# sourceMappingURL=module-specifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-specifiers.js","sourceRoot":"","sources":["../../src/imports/module-specifiers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { AliasRecord, NormalizedSyncImportsOptions, RewriteResult, ScannedSourceFile } from "./types.js";
2
1
  import type { NormalizedSyncImportsLogger } from "../shared/logging-types.js";
2
+ import type { AliasRecord, NormalizedSyncImportsOptions, RewriteResult, ScannedSourceFile } from "./types.js";
3
+ declare function isAllowedRelative(specifier: string, sourceFile: string, resolvedFile: string, options: NormalizedSyncImportsOptions): boolean;
3
4
  declare function rewriteSourceImports(sourceFiles: ScannedSourceFile[], aliasRecords: AliasRecord[], options: NormalizedSyncImportsOptions, logger: NormalizedSyncImportsLogger): Promise<RewriteResult>;
4
- export { rewriteSourceImports };
5
+ export { isAllowedRelative, rewriteSourceImports };
5
6
  //# sourceMappingURL=rewrite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/imports/rewrite.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EAEX,4BAA4B,EAE5B,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAmK9E,iBAAe,oBAAoB,CACjC,WAAW,EAAE,iBAAiB,EAAE,EAChC,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,aAAa,CAAC,CAexB;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/imports/rewrite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,KAAK,EACV,WAAW,EAEX,4BAA4B,EAE5B,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,iBAAS,iBAAiB,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAaT;AAuDD,iBAAe,oBAAoB,CACjC,WAAW,EAAE,iBAAiB,EAAE,EAChC,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,aAAa,CAAC,CAexB;AAED,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}