@trebired/code-discipline 0.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 (100) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +661 -0
  3. package/README.md +241 -0
  4. package/dist/checks/index.d.ts +4 -0
  5. package/dist/checks/index.d.ts.map +1 -0
  6. package/dist/checks/index.js +22 -0
  7. package/dist/checks/index.js.map +1 -0
  8. package/dist/checks/rules/folderize-compound-files.d.ts +5 -0
  9. package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -0
  10. package/dist/checks/rules/folderize-compound-files.js +37 -0
  11. package/dist/checks/rules/folderize-compound-files.js.map +1 -0
  12. package/dist/checks/rules/max-file-lines.d.ts +5 -0
  13. package/dist/checks/rules/max-file-lines.d.ts.map +1 -0
  14. package/dist/checks/rules/max-file-lines.js +30 -0
  15. package/dist/checks/rules/max-file-lines.js.map +1 -0
  16. package/dist/checks/types.d.ts +64 -0
  17. package/dist/checks/types.d.ts.map +1 -0
  18. package/dist/checks/types.js +2 -0
  19. package/dist/checks/types.js.map +1 -0
  20. package/dist/cli/run-cli.d.ts +13 -0
  21. package/dist/cli/run-cli.d.ts.map +1 -0
  22. package/dist/cli/run-cli.js +104 -0
  23. package/dist/cli/run-cli.js.map +1 -0
  24. package/dist/cli.d.ts +5 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +10 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/config/index.d.ts +9 -0
  29. package/dist/config/index.d.ts.map +1 -0
  30. package/dist/config/index.js +49 -0
  31. package/dist/config/index.js.map +1 -0
  32. package/dist/config/normalize-check-options.d.ts +4 -0
  33. package/dist/config/normalize-check-options.d.ts.map +1 -0
  34. package/dist/config/normalize-check-options.js +14 -0
  35. package/dist/config/normalize-check-options.js.map +1 -0
  36. package/dist/config/normalize-rule-options.d.ts +14 -0
  37. package/dist/config/normalize-rule-options.d.ts.map +1 -0
  38. package/dist/config/normalize-rule-options.js +51 -0
  39. package/dist/config/normalize-rule-options.js.map +1 -0
  40. package/dist/config/normalize-source-options.d.ts +16 -0
  41. package/dist/config/normalize-source-options.d.ts.map +1 -0
  42. package/dist/config/normalize-source-options.js +24 -0
  43. package/dist/config/normalize-source-options.js.map +1 -0
  44. package/dist/config/normalize-sync-imports-options.d.ts +4 -0
  45. package/dist/config/normalize-sync-imports-options.d.ts.map +1 -0
  46. package/dist/config/normalize-sync-imports-options.js +34 -0
  47. package/dist/config/normalize-sync-imports-options.js.map +1 -0
  48. package/dist/imports/aliases.d.ts +9 -0
  49. package/dist/imports/aliases.d.ts.map +1 -0
  50. package/dist/imports/aliases.js +150 -0
  51. package/dist/imports/aliases.js.map +1 -0
  52. package/dist/imports/resolve.d.ts +7 -0
  53. package/dist/imports/resolve.d.ts.map +1 -0
  54. package/dist/imports/resolve.js +49 -0
  55. package/dist/imports/resolve.js.map +1 -0
  56. package/dist/imports/rewrite.d.ts +5 -0
  57. package/dist/imports/rewrite.d.ts.map +1 -0
  58. package/dist/imports/rewrite.js +139 -0
  59. package/dist/imports/rewrite.js.map +1 -0
  60. package/dist/imports/scan.d.ts +4 -0
  61. package/dist/imports/scan.d.ts.map +1 -0
  62. package/dist/imports/scan.js +44 -0
  63. package/dist/imports/scan.js.map +1 -0
  64. package/dist/imports/strategies.d.ts +7 -0
  65. package/dist/imports/strategies.d.ts.map +1 -0
  66. package/dist/imports/strategies.js +55 -0
  67. package/dist/imports/strategies.js.map +1 -0
  68. package/dist/imports/sync-imports.d.ts +4 -0
  69. package/dist/imports/sync-imports.d.ts.map +1 -0
  70. package/dist/imports/sync-imports.js +41 -0
  71. package/dist/imports/sync-imports.js.map +1 -0
  72. package/dist/imports/types.d.ts +104 -0
  73. package/dist/imports/types.d.ts.map +1 -0
  74. package/dist/imports/types.js +2 -0
  75. package/dist/imports/types.js.map +1 -0
  76. package/dist/index.d.ts +16 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +13 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/shared/constants.d.ts +18 -0
  81. package/dist/shared/constants.d.ts.map +1 -0
  82. package/dist/shared/constants.js +18 -0
  83. package/dist/shared/constants.js.map +1 -0
  84. package/dist/shared/errors.d.ts +34 -0
  85. package/dist/shared/errors.d.ts.map +1 -0
  86. package/dist/shared/errors.js +64 -0
  87. package/dist/shared/errors.js.map +1 -0
  88. package/dist/shared/logging-types.d.ts +18 -0
  89. package/dist/shared/logging-types.d.ts.map +1 -0
  90. package/dist/shared/logging-types.js +2 -0
  91. package/dist/shared/logging-types.js.map +1 -0
  92. package/dist/shared/logging.d.ts +5 -0
  93. package/dist/shared/logging.d.ts.map +1 -0
  94. package/dist/shared/logging.js +99 -0
  95. package/dist/shared/logging.js.map +1 -0
  96. package/dist/shared/utils.d.ts +24 -0
  97. package/dist/shared/utils.d.ts.map +1 -0
  98. package/dist/shared/utils.js +127 -0
  99. package/dist/shared/utils.js.map +1 -0
  100. package/package.json +54 -0
@@ -0,0 +1,139 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import ts from "typescript";
4
+ import { ParseFailureError, RewriteFailureError } from "../shared/errors.js";
5
+ import { resolveRelativeImport } from "./resolve.js";
6
+ import { formatDiagnostics } from "../shared/utils.js";
7
+ function resolveScriptKind(filePath) {
8
+ const extension = path.extname(filePath).toLowerCase();
9
+ if (extension === ".tsx")
10
+ return ts.ScriptKind.TSX;
11
+ if (extension === ".jsx")
12
+ return ts.ScriptKind.JSX;
13
+ if (extension === ".js")
14
+ return ts.ScriptKind.JS;
15
+ return ts.ScriptKind.TS;
16
+ }
17
+ function parseSource(text, filePath) {
18
+ const sourceFile = ts.createSourceFile(filePath, text, ts.ScriptTarget.Latest, true, resolveScriptKind(filePath));
19
+ const diagnostics = (sourceFile.parseDiagnostics ?? []);
20
+ const errors = diagnostics.filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error);
21
+ if (errors.length > 0) {
22
+ throw new ParseFailureError(filePath, formatDiagnostics(errors));
23
+ }
24
+ return sourceFile;
25
+ }
26
+ function shouldKeepRelative(specifier, sourceFile, resolvedFile, options) {
27
+ const policy = options.imports.keepRelative;
28
+ if (Array.isArray(policy)) {
29
+ return policy.some((entry) => specifier === entry || specifier.startsWith(entry));
30
+ }
31
+ return policy(specifier, {
32
+ sourceFile,
33
+ resolvedFile,
34
+ projectRoot: options.projectRoot,
35
+ sourceRoot: options.sourceRoot,
36
+ });
37
+ }
38
+ function collectReplacements(sourceFile, sourcePath, options, aliasIdsByFilePath, logger) {
39
+ const replacements = [];
40
+ function queueLiteralRewrite(node) {
41
+ const specifier = node.text;
42
+ replacements.push((async () => {
43
+ if (!specifier.startsWith("."))
44
+ return null;
45
+ const resolvedFile = await resolveRelativeImport(specifier, sourcePath, options);
46
+ if (!resolvedFile) {
47
+ logger.debug("rewrite-skipped-unresolved", `skipped unresolved import ${specifier}`, {
48
+ sourceFile: sourcePath,
49
+ specifier,
50
+ });
51
+ return null;
52
+ }
53
+ if (shouldKeepRelative(specifier, sourcePath, resolvedFile, options)) {
54
+ return null;
55
+ }
56
+ const aliasId = aliasIdsByFilePath.get(resolvedFile);
57
+ if (!aliasId)
58
+ return null;
59
+ return {
60
+ start: node.getStart(sourceFile) + 1,
61
+ end: node.getEnd() - 1,
62
+ value: aliasId,
63
+ };
64
+ })());
65
+ }
66
+ function visit(node) {
67
+ if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {
68
+ if (node.moduleSpecifier && ts.isStringLiteralLike(node.moduleSpecifier)) {
69
+ queueLiteralRewrite(node.moduleSpecifier);
70
+ }
71
+ }
72
+ if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {
73
+ const [firstArg] = node.arguments;
74
+ if (firstArg && ts.isStringLiteralLike(firstArg)) {
75
+ queueLiteralRewrite(firstArg);
76
+ }
77
+ }
78
+ if (ts.isImportTypeNode(node) && ts.isLiteralTypeNode(node.argument) && ts.isStringLiteralLike(node.argument.literal)) {
79
+ queueLiteralRewrite(node.argument.literal);
80
+ }
81
+ ts.forEachChild(node, visit);
82
+ }
83
+ visit(sourceFile);
84
+ return Promise.all(replacements).then((rows) => rows.filter(Boolean));
85
+ }
86
+ function applyReplacements(text, replacements) {
87
+ if (replacements.length === 0)
88
+ return { text, rewrittenImports: 0 };
89
+ const sorted = [...replacements].sort((left, right) => right.start - left.start);
90
+ let nextText = text;
91
+ for (const replacement of sorted) {
92
+ nextText = `${nextText.slice(0, replacement.start)}${replacement.value}${nextText.slice(replacement.end)}`;
93
+ }
94
+ return {
95
+ text: nextText,
96
+ rewrittenImports: replacements.length,
97
+ };
98
+ }
99
+ async function rewriteSourceFile(file, options, aliasIdsByFilePath, logger) {
100
+ try {
101
+ const text = await fs.readFile(file.absolutePath, "utf8");
102
+ const sourceFile = parseSource(text, file.absolutePath);
103
+ const replacements = await collectReplacements(sourceFile, file.absolutePath, options, aliasIdsByFilePath, logger);
104
+ const applied = applyReplacements(text, replacements);
105
+ if (applied.rewrittenImports === 0) {
106
+ return {
107
+ rewritten: false,
108
+ rewrittenImports: 0,
109
+ };
110
+ }
111
+ await fs.writeFile(file.absolutePath, applied.text);
112
+ return {
113
+ rewritten: true,
114
+ rewrittenImports: applied.rewrittenImports,
115
+ };
116
+ }
117
+ catch (error) {
118
+ if (error instanceof ParseFailureError)
119
+ throw error;
120
+ throw new RewriteFailureError(file.absolutePath, error);
121
+ }
122
+ }
123
+ async function rewriteSourceImports(sourceFiles, aliasRecords, options, logger) {
124
+ const aliasIdsByFilePath = new Map(aliasRecords.map((record) => [record.absolutePath, record.id]));
125
+ let rewrittenFiles = 0;
126
+ let rewrittenImports = 0;
127
+ for (const file of sourceFiles) {
128
+ const result = await rewriteSourceFile(file, options, aliasIdsByFilePath, logger);
129
+ if (result.rewritten)
130
+ rewrittenFiles += 1;
131
+ rewrittenImports += result.rewrittenImports;
132
+ }
133
+ return {
134
+ rewrittenFiles,
135
+ rewrittenImports,
136
+ };
137
+ }
138
+ export { rewriteSourceImports };
139
+ //# sourceMappingURL=rewrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/imports/rewrite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ScannedSourceFile, SourceScanOptions } from "./types.js";
2
+ declare function scanSourceFiles(options: SourceScanOptions): Promise<ScannedSourceFile[]>;
3
+ export { scanSourceFiles };
4
+ //# sourceMappingURL=scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/imports/scan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA8CvE,iBAAe,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAIvF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { normalizeRelativePath, toPosixPath } from "../shared/utils.js";
4
+ function shouldExcludeDirectory(relativeDir, directoryName, excludeDirs) {
5
+ const normalizedRelativeDir = normalizeRelativePath(relativeDir);
6
+ return excludeDirs.some((entry) => {
7
+ const normalizedEntry = normalizeRelativePath(entry);
8
+ return directoryName === normalizedEntry
9
+ || normalizedRelativeDir === normalizedEntry
10
+ || normalizedRelativeDir.startsWith(`${normalizedEntry}/`);
11
+ });
12
+ }
13
+ async function walkDirectory(directoryPath, relativeDir, options, rows) {
14
+ const entries = await fs.readdir(directoryPath, { withFileTypes: true });
15
+ const sortedEntries = [...entries].sort((left, right) => left.name.localeCompare(right.name));
16
+ for (const entry of sortedEntries) {
17
+ const absolutePath = path.join(directoryPath, entry.name);
18
+ const relativePath = normalizeRelativePath(path.join(relativeDir, entry.name));
19
+ if (entry.isDirectory()) {
20
+ if (shouldExcludeDirectory(relativePath, entry.name, options.excludeDirs))
21
+ continue;
22
+ await walkDirectory(absolutePath, relativePath, options, rows);
23
+ continue;
24
+ }
25
+ if (!entry.isFile())
26
+ continue;
27
+ const extension = path.extname(entry.name).toLowerCase();
28
+ if (!options.sourceExtensions.includes(extension))
29
+ continue;
30
+ rows.push({
31
+ absolutePath,
32
+ relativeFromProjectRoot: toPosixPath(path.relative(options.projectRoot, absolutePath)),
33
+ relativeFromSourceRoot: toPosixPath(relativePath),
34
+ extension,
35
+ });
36
+ }
37
+ }
38
+ async function scanSourceFiles(options) {
39
+ const rows = [];
40
+ await walkDirectory(options.sourceRoot, "", options, rows);
41
+ return rows.sort((left, right) => left.relativeFromProjectRoot.localeCompare(right.relativeFromProjectRoot));
42
+ }
43
+ export { scanSourceFiles };
44
+ //# sourceMappingURL=scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/imports/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,SAAS,sBAAsB,CAAC,WAAmB,EAAE,aAAqB,EAAE,WAAqB;IAC/F,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,aAAa,KAAK,eAAe;eACnC,qBAAqB,KAAK,eAAe;eACzC,qBAAqB,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,aAAqB,EACrB,WAAmB,EACnB,OAA0B,EAC1B,IAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9F,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;gBAAE,SAAS;YACpF,MAAM,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAE5D,IAAI,CAAC,IAAI,CAAC;YACR,YAAY;YACZ,uBAAuB,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACtF,sBAAsB,EAAE,WAAW,CAAC,YAAY,CAAC;YACjD,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAA0B;IACvD,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,MAAM,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { AliasStrategyInput, NormalizedSyncImportsOptions, ScannedSourceFile } from "./types.js";
2
+ declare function createRandomAlias(input: AliasStrategyInput, length?: number): string;
3
+ declare function createRelativePathHashAlias(input: AliasStrategyInput): string;
4
+ declare function createRelativePathSlugAlias(input: AliasStrategyInput): string;
5
+ declare function generateAliasId(file: ScannedSourceFile, options: NormalizedSyncImportsOptions, existingIds: string[]): string;
6
+ export { createRandomAlias, createRelativePathHashAlias, createRelativePathSlugAlias, generateAliasId, };
7
+ //# sourceMappingURL=strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../src/imports/strategies.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAavH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAA8B,GAAG,MAAM,CAElG;AAED,iBAAS,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAEtE;AAED,iBAAS,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAEtE;AAQD,iBAAS,eAAe,CACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,CA+BR;AAED,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { DEFAULT_ALIAS_RANDOM_LENGTH, HASH_ALIAS_LENGTH, } from "../shared/constants.js";
2
+ import { AliasCollisionError, InvalidAliasError } from "../shared/errors.js";
3
+ import { createHashToken, createRandomToken, createSlugToken, isAliasIdValid, stripKnownExtension } from "../shared/utils.js";
4
+ function buildStrategyInput(file, existingIds, prefix, sourceExtensions) {
5
+ return {
6
+ absolutePath: file.absolutePath,
7
+ relativeFromProjectRoot: file.relativeFromProjectRoot,
8
+ relativeFromSourceRoot: stripKnownExtension(file.relativeFromSourceRoot, sourceExtensions),
9
+ existingIds: [...existingIds],
10
+ prefix,
11
+ };
12
+ }
13
+ function createRandomAlias(input, length = DEFAULT_ALIAS_RANDOM_LENGTH) {
14
+ return `${input.prefix}${createRandomToken(length)}`;
15
+ }
16
+ function createRelativePathHashAlias(input) {
17
+ return `${input.prefix}${createHashToken(input.relativeFromSourceRoot, HASH_ALIAS_LENGTH)}`;
18
+ }
19
+ function createRelativePathSlugAlias(input) {
20
+ return `${input.prefix}${createSlugToken(input.relativeFromSourceRoot)}`;
21
+ }
22
+ function validateAliasId(aliasId, file) {
23
+ if (!isAliasIdValid(aliasId)) {
24
+ throw new InvalidAliasError(aliasId, { filePath: file.absolutePath });
25
+ }
26
+ }
27
+ function generateAliasId(file, options, existingIds) {
28
+ const input = buildStrategyInput(file, existingIds, options.alias.prefix, options.sourceExtensions);
29
+ const strategy = options.alias.strategy;
30
+ const isCustomStrategy = typeof strategy === "function";
31
+ if (strategy === "random") {
32
+ for (let attempt = 0; attempt < 64; attempt += 1) {
33
+ const aliasId = createRandomAlias(input, options.alias.randomLength);
34
+ validateAliasId(aliasId, file);
35
+ if (!existingIds.includes(aliasId))
36
+ return aliasId;
37
+ }
38
+ throw new AliasCollisionError(`${options.alias.prefix}<random>`, { filePath: file.absolutePath });
39
+ }
40
+ const aliasId = strategy === "relative-path-hash"
41
+ ? createRelativePathHashAlias(input)
42
+ : strategy === "relative-path-slug"
43
+ ? createRelativePathSlugAlias(input)
44
+ : strategy(input);
45
+ validateAliasId(aliasId, file);
46
+ if (existingIds.includes(aliasId)) {
47
+ throw new AliasCollisionError(aliasId, {
48
+ filePath: file.absolutePath,
49
+ strategy: isCustomStrategy ? "custom" : strategy,
50
+ });
51
+ }
52
+ return aliasId;
53
+ }
54
+ export { createRandomAlias, createRelativePathHashAlias, createRelativePathSlugAlias, generateAliasId, };
55
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/imports/strategies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SyncImportsOptions, SyncImportsResult } from "./types.js";
2
+ declare function syncImports(options: SyncImportsOptions): Promise<SyncImportsResult>;
3
+ export { syncImports };
4
+ //# sourceMappingURL=sync-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-imports.d.ts","sourceRoot":"","sources":["../../src/imports/sync-imports.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE,iBAAe,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwClF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { normalizeSyncImportsOptions } from "../config/normalize-sync-imports-options.js";
2
+ import { resolveLogger } from "../shared/logging.js";
3
+ import { rewriteSourceImports } from "./rewrite.js";
4
+ import { scanSourceFiles } from "./scan.js";
5
+ import { syncTsconfigAliases } from "./aliases.js";
6
+ async function syncImports(options) {
7
+ const normalized = await normalizeSyncImportsOptions(options);
8
+ const logger = resolveLogger(normalized.logging);
9
+ logger.info("sync-started", "sync started", {
10
+ projectRoot: normalized.projectRoot,
11
+ sourceRoot: normalized.sourceRoot,
12
+ tsconfigPath: normalized.tsconfigPath,
13
+ });
14
+ try {
15
+ const sourceFiles = await scanSourceFiles(normalized);
16
+ const aliasState = await syncTsconfigAliases(normalized, sourceFiles, logger);
17
+ const rewriteState = normalized.imports.rewrite
18
+ ? await rewriteSourceImports(sourceFiles, aliasState.aliasRecords, normalized, logger)
19
+ : { rewrittenFiles: 0, rewrittenImports: 0 };
20
+ logger.success("sync-finished", `rewritten files=${rewriteState.rewrittenFiles} imports=${rewriteState.rewrittenImports}`, {
21
+ aliasesChanged: aliasState.aliasesChanged,
22
+ aliasesCount: aliasState.aliasesCount,
23
+ rewrittenFiles: rewriteState.rewrittenFiles,
24
+ rewrittenImports: rewriteState.rewrittenImports,
25
+ });
26
+ return {
27
+ aliases_changed: aliasState.aliasesChanged,
28
+ aliases_count: aliasState.aliasesCount,
29
+ rewritten_files: rewriteState.rewrittenFiles,
30
+ rewritten_imports: rewriteState.rewrittenImports,
31
+ };
32
+ }
33
+ catch (error) {
34
+ logger.error("sync-failed", error instanceof Error ? error.message : "sync failed", {
35
+ cause: error instanceof Error ? error.name : typeof error,
36
+ });
37
+ throw error;
38
+ }
39
+ }
40
+ export { syncImports };
41
+ //# sourceMappingURL=sync-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-imports.js","sourceRoot":"","sources":["../../src/imports/sync-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,KAAK,UAAU,WAAW,CAAC,OAA2B;IACpD,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEjD,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE;QAC1C,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO;YAC7C,CAAC,CAAC,MAAM,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC;YACtF,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QAE/C,MAAM,CAAC,OAAO,CACZ,eAAe,EACf,mBAAmB,YAAY,CAAC,cAAc,YAAY,YAAY,CAAC,gBAAgB,EAAE,EACzF;YACE,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;SAChD,CACF,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,cAAc;YAC1C,aAAa,EAAE,UAAU,CAAC,YAAY;YACtC,eAAe,EAAE,YAAY,CAAC,cAAc;YAC5C,iBAAiB,EAAE,YAAY,CAAC,gBAAgB;SACjD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE;YAClF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK;SAC1D,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,104 @@
1
+ import type { LogAdapterFn } from "../shared/logging-types.js";
2
+ type AliasStrategyInput = {
3
+ absolutePath: string;
4
+ relativeFromProjectRoot: string;
5
+ relativeFromSourceRoot: string;
6
+ existingIds: string[];
7
+ prefix: string;
8
+ };
9
+ type AliasStrategyFn = (input: AliasStrategyInput) => string;
10
+ type KeepRelativeContext = {
11
+ sourceFile: string;
12
+ resolvedFile: string;
13
+ projectRoot: string;
14
+ sourceRoot: string;
15
+ };
16
+ type KeepRelativeFn = (specifier: string, context: KeepRelativeContext) => boolean;
17
+ type SyncImportsOptions = {
18
+ projectRoot: string;
19
+ sourceRoot?: string;
20
+ tsconfigPath?: string;
21
+ sourceExtensions?: string[];
22
+ excludeDirs?: string[];
23
+ alias?: {
24
+ prefix?: string;
25
+ strategy?: "random" | "relative-path-hash" | "relative-path-slug" | AliasStrategyFn;
26
+ randomLength?: number;
27
+ };
28
+ imports?: {
29
+ rewrite?: boolean;
30
+ keepRelative?: string[] | KeepRelativeFn;
31
+ };
32
+ logging?: {
33
+ enabled?: boolean;
34
+ logger?: unknown;
35
+ adapter?: "trebired" | "generic" | "console" | LogAdapterFn;
36
+ quiet?: boolean;
37
+ };
38
+ };
39
+ type SyncImportsResult = {
40
+ aliases_changed: boolean;
41
+ aliases_count: number;
42
+ rewritten_files: number;
43
+ rewritten_imports: number;
44
+ };
45
+ type SourceScanOptions = {
46
+ projectRoot: string;
47
+ sourceRoot: string;
48
+ sourceExtensions: string[];
49
+ excludeDirs: string[];
50
+ };
51
+ type NormalizedSyncImportsOptions = SourceScanOptions & {
52
+ sourceRootRelative: string;
53
+ tsconfigPath: string;
54
+ alias: {
55
+ prefix: string;
56
+ strategy: "random" | "relative-path-hash" | "relative-path-slug" | AliasStrategyFn;
57
+ randomLength: number;
58
+ };
59
+ imports: {
60
+ rewrite: boolean;
61
+ keepRelative: string[] | KeepRelativeFn;
62
+ };
63
+ logging: {
64
+ enabled: boolean;
65
+ logger?: unknown;
66
+ adapter?: "trebired" | "generic" | "console" | LogAdapterFn;
67
+ quiet: boolean;
68
+ };
69
+ };
70
+ type ScannedSourceFile = {
71
+ absolutePath: string;
72
+ relativeFromProjectRoot: string;
73
+ relativeFromSourceRoot: string;
74
+ extension: string;
75
+ };
76
+ type TsconfigJson = {
77
+ compilerOptions?: {
78
+ paths?: Record<string, string[]>;
79
+ baseUrl?: string;
80
+ [key: string]: unknown;
81
+ };
82
+ [key: string]: unknown;
83
+ };
84
+ type AliasRecord = {
85
+ id: string;
86
+ absolutePath: string;
87
+ relativeFromProjectRoot: string;
88
+ };
89
+ type SyncAliasesResult = {
90
+ aliasesChanged: boolean;
91
+ aliasesCount: number;
92
+ aliasRecords: AliasRecord[];
93
+ tsconfig: TsconfigJson;
94
+ };
95
+ type RewriteFileResult = {
96
+ rewritten: boolean;
97
+ rewrittenImports: number;
98
+ };
99
+ type RewriteResult = {
100
+ rewrittenFiles: number;
101
+ rewrittenImports: number;
102
+ };
103
+ export type { AliasRecord, AliasStrategyFn, AliasStrategyInput, KeepRelativeContext, KeepRelativeFn, NormalizedSyncImportsOptions, RewriteFileResult, RewriteResult, ScannedSourceFile, SourceScanOptions, SyncAliasesResult, SyncImportsOptions, SyncImportsResult, TsconfigJson, };
104
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/imports/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/imports/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES, DEFAULT_EXCLUDE_DIRS, DEFAULT_IMPORTS_REWRITE, DEFAULT_KEEP_RELATIVE, DEFAULT_MAX_FILE_LINES_SEVERITY, DEFAULT_SOURCE_EXTENSIONS, DEFAULT_SOURCE_ROOT, } from "./shared/constants.js";
2
+ export { checkCodeDiscipline } from "./checks/index.js";
3
+ export { defineCodeDisciplineConfig, loadCodeDisciplineConfig } from "./config/index.js";
4
+ export { normalizeSyncImportsOptions } from "./config/normalize-sync-imports-options.js";
5
+ export { syncTsconfigAliases } from "./imports/aliases.js";
6
+ export { resolveRelativeImport } from "./imports/resolve.js";
7
+ export { rewriteSourceImports } from "./imports/rewrite.js";
8
+ export { scanSourceFiles } from "./imports/scan.js";
9
+ export { createRandomAlias, createRelativePathHashAlias, createRelativePathSlugAlias } from "./imports/strategies.js";
10
+ export { syncImports } from "./imports/sync-imports.js";
11
+ export { resolveLogger } from "./shared/logging.js";
12
+ export { AliasCollisionError, InvalidCodeDisciplineConfigError, InvalidAliasError, InvalidProjectRootError, InvalidSourceRootError, InvalidTsconfigPathError, ParseFailureError, RewriteFailureError, SyncImportsError, isSyncImportsError, } from "./shared/errors.js";
13
+ export type { LogAdapterFn, NormalizedSyncImportsLogger, SyncImportsLogEvent, SyncImportsLogLevel, } from "./shared/logging-types.js";
14
+ export type { AliasRecord, AliasStrategyFn, AliasStrategyInput, KeepRelativeContext, KeepRelativeFn, NormalizedSyncImportsOptions, RewriteFileResult, RewriteResult, ScannedSourceFile, SourceScanOptions, SyncAliasesResult, SyncImportsOptions, SyncImportsResult, TsconfigJson, } from "./imports/types.js";
15
+ export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRuleName, CodeDisciplineRuleSeverity, CodeDisciplineRules, CodeDisciplineViolation, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, SyncImportsRuleOptions, } from "./checks/types.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,yCAAyC,EACzC,0CAA0C,EAC1C,wCAAwC,EACxC,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,YAAY,EACZ,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,iCAAiC,EACjC,uBAAuB,EACvB,oCAAoC,EACpC,oCAAoC,EACpC,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES, DEFAULT_EXCLUDE_DIRS, DEFAULT_IMPORTS_REWRITE, DEFAULT_KEEP_RELATIVE, DEFAULT_MAX_FILE_LINES_SEVERITY, DEFAULT_SOURCE_EXTENSIONS, DEFAULT_SOURCE_ROOT, } from "./shared/constants.js";
2
+ export { checkCodeDiscipline } from "./checks/index.js";
3
+ export { defineCodeDisciplineConfig, loadCodeDisciplineConfig } from "./config/index.js";
4
+ export { normalizeSyncImportsOptions } from "./config/normalize-sync-imports-options.js";
5
+ export { syncTsconfigAliases } from "./imports/aliases.js";
6
+ export { resolveRelativeImport } from "./imports/resolve.js";
7
+ export { rewriteSourceImports } from "./imports/rewrite.js";
8
+ export { scanSourceFiles } from "./imports/scan.js";
9
+ export { createRandomAlias, createRelativePathHashAlias, createRelativePathSlugAlias } from "./imports/strategies.js";
10
+ export { syncImports } from "./imports/sync-imports.js";
11
+ export { resolveLogger } from "./shared/logging.js";
12
+ export { AliasCollisionError, InvalidCodeDisciplineConfigError, InvalidAliasError, InvalidProjectRootError, InvalidSourceRootError, InvalidTsconfigPathError, ParseFailureError, RewriteFailureError, SyncImportsError, isSyncImportsError, } from "./shared/errors.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,yCAAyC,EACzC,0CAA0C,EAC1C,wCAAwC,EACxC,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,18 @@
1
+ declare const DEFAULT_SOURCE_ROOT = "src";
2
+ declare const DEFAULT_SOURCE_EXTENSIONS: string[];
3
+ declare const DEFAULT_EXCLUDE_DIRS: string[];
4
+ declare const DEFAULT_ALIAS_PREFIX = "#";
5
+ declare const DEFAULT_ALIAS_STRATEGY = "random";
6
+ declare const DEFAULT_ALIAS_RANDOM_LENGTH = 12;
7
+ declare const DEFAULT_IMPORTS_REWRITE = true;
8
+ declare const DEFAULT_KEEP_RELATIVE: string[];
9
+ declare const DEFAULT_MAX_FILE_LINES_SEVERITY = "error";
10
+ declare const DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY = "error";
11
+ declare const DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS: string[];
12
+ declare const DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES: string[];
13
+ declare const CODE_DISCIPLINE_CONFIG_FILE = "code-discipline.config.json";
14
+ declare const SYNC_IMPORTS_LOG_GROUP = "code-discipline";
15
+ declare const RANDOM_ALIAS_ALPHABET = "abcdefghijklmnopqrstuvwxyz0123456789";
16
+ declare const HASH_ALIAS_LENGTH = 12;
17
+ export { CODE_DISCIPLINE_CONFIG_FILE, DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_EXCLUDE_DIRS, DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES, DEFAULT_IMPORTS_REWRITE, DEFAULT_KEEP_RELATIVE, DEFAULT_MAX_FILE_LINES_SEVERITY, DEFAULT_SOURCE_EXTENSIONS, DEFAULT_SOURCE_ROOT, HASH_ALIAS_LENGTH, RANDOM_ALIAS_ALPHABET, SYNC_IMPORTS_LOG_GROUP, };
18
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,QAAQ,CAAC;AAClC,QAAA,MAAM,yBAAyB,UAAiC,CAAC;AACjE,QAAA,MAAM,oBAAoB,UAAoC,CAAC;AAC/D,QAAA,MAAM,oBAAoB,MAAM,CAAC;AACjC,QAAA,MAAM,sBAAsB,WAAW,CAAC;AACxC,QAAA,MAAM,2BAA2B,KAAK,CAAC;AACvC,QAAA,MAAM,uBAAuB,OAAO,CAAC;AACrC,QAAA,MAAM,qBAAqB,UAAS,CAAC;AACrC,QAAA,MAAM,+BAA+B,UAAU,CAAC;AAChD,QAAA,MAAM,yCAAyC,UAAU,CAAC;AAC1D,QAAA,MAAM,0CAA0C,UAAa,CAAC;AAC9D,QAAA,MAAM,wCAAwC,UAAY,CAAC;AAC3D,QAAA,MAAM,2BAA2B,gCAAgC,CAAC;AAClE,QAAA,MAAM,sBAAsB,oBAAoB,CAAC;AACjD,QAAA,MAAM,qBAAqB,yCAAyC,CAAC;AACrE,QAAA,MAAM,iBAAiB,KAAK,CAAC;AAE7B,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,yCAAyC,EACzC,0CAA0C,EAC1C,wCAAwC,EACxC,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,CAAC"}
@@ -0,0 +1,18 @@
1
+ const DEFAULT_SOURCE_ROOT = "src";
2
+ const DEFAULT_SOURCE_EXTENSIONS = [".ts", ".tsx", ".js", ".jsx"];
3
+ const DEFAULT_EXCLUDE_DIRS = ["node_modules", "dist", ".vite"];
4
+ const DEFAULT_ALIAS_PREFIX = "#";
5
+ const DEFAULT_ALIAS_STRATEGY = "random";
6
+ const DEFAULT_ALIAS_RANDOM_LENGTH = 12;
7
+ const DEFAULT_IMPORTS_REWRITE = true;
8
+ const DEFAULT_KEEP_RELATIVE = ["./"];
9
+ const DEFAULT_MAX_FILE_LINES_SEVERITY = "error";
10
+ const DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY = "error";
11
+ const DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS = ["_", "-"];
12
+ const DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES = ["start"];
13
+ const CODE_DISCIPLINE_CONFIG_FILE = "code-discipline.config.json";
14
+ const SYNC_IMPORTS_LOG_GROUP = "code-discipline";
15
+ const RANDOM_ALIAS_ALPHABET = "abcdefghijklmnopqrstuvwxyz0123456789";
16
+ const HASH_ALIAS_LENGTH = 12;
17
+ export { CODE_DISCIPLINE_CONFIG_FILE, DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_EXCLUDE_DIRS, DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES, DEFAULT_IMPORTS_REWRITE, DEFAULT_KEEP_RELATIVE, DEFAULT_MAX_FILE_LINES_SEVERITY, DEFAULT_SOURCE_EXTENSIONS, DEFAULT_SOURCE_ROOT, HASH_ALIAS_LENGTH, RANDOM_ALIAS_ALPHABET, SYNC_IMPORTS_LOG_GROUP, };
18
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjE,MAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/D,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AACxC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,MAAM,+BAA+B,GAAG,OAAO,CAAC;AAChD,MAAM,yCAAyC,GAAG,OAAO,CAAC;AAC1D,MAAM,0CAA0C,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9D,MAAM,wCAAwC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAClE,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AACjD,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AACrE,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,yCAAyC,EACzC,0CAA0C,EAC1C,wCAAwC,EACxC,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,CAAC"}
@@ -0,0 +1,34 @@
1
+ type SyncImportsErrorCode = "invalid_project_root" | "invalid_source_root" | "invalid_tsconfig_path" | "invalid_config" | "alias_collision" | "invalid_alias" | "rewrite_failure" | "parse_failure";
2
+ declare class SyncImportsError extends Error {
3
+ code: SyncImportsErrorCode | string;
4
+ details: Record<string, unknown>;
5
+ constructor(code: SyncImportsErrorCode | string, message: string, details?: Record<string, unknown>);
6
+ }
7
+ declare class InvalidProjectRootError extends SyncImportsError {
8
+ constructor(projectRoot: string);
9
+ }
10
+ declare class InvalidSourceRootError extends SyncImportsError {
11
+ constructor(sourceRoot: string);
12
+ }
13
+ declare class InvalidTsconfigPathError extends SyncImportsError {
14
+ constructor(tsconfigPath: string);
15
+ }
16
+ declare class InvalidCodeDisciplineConfigError extends SyncImportsError {
17
+ constructor(message: string, details?: Record<string, unknown>);
18
+ }
19
+ declare class AliasCollisionError extends SyncImportsError {
20
+ constructor(aliasId: string, details?: Record<string, unknown>);
21
+ }
22
+ declare class InvalidAliasError extends SyncImportsError {
23
+ constructor(aliasId: unknown, details?: Record<string, unknown>);
24
+ }
25
+ declare class RewriteFailureError extends SyncImportsError {
26
+ constructor(filePath: string, cause?: unknown);
27
+ }
28
+ declare class ParseFailureError extends SyncImportsError {
29
+ constructor(filePath: string, diagnostics: unknown);
30
+ }
31
+ declare function isSyncImportsError(value: unknown): value is SyncImportsError;
32
+ export { AliasCollisionError, InvalidCodeDisciplineConfigError, InvalidAliasError, InvalidProjectRootError, InvalidSourceRootError, InvalidTsconfigPathError, ParseFailureError, RewriteFailureError, SyncImportsError, isSyncImportsError, };
33
+ export type { SyncImportsErrorCode };
34
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,KAAK,oBAAoB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,eAAe,CAAC;AAEpB,cAAM,gBAAiB,SAAQ,KAAK;IAClC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAErB,IAAI,EAAE,oBAAoB,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAMxG;AAED,cAAM,uBAAwB,SAAQ,gBAAgB;gBACxC,WAAW,EAAE,MAAM;CAIhC;AAED,cAAM,sBAAuB,SAAQ,gBAAgB;gBACvC,UAAU,EAAE,MAAM;CAI/B;AAED,cAAM,wBAAyB,SAAQ,gBAAgB;gBACzC,YAAY,EAAE,MAAM;CAIjC;AAED,cAAM,gCAAiC,SAAQ,gBAAgB;gBACjD,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAInE;AAED,cAAM,mBAAoB,SAAQ,gBAAgB;gBACpC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAInE;AAED,cAAM,iBAAkB,SAAQ,gBAAgB;gBAClC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIpE;AAED,cAAM,mBAAoB,SAAQ,gBAAgB;gBACpC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAO9C;AAED,cAAM,iBAAkB,SAAQ,gBAAgB;gBAClC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;CAInD;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAErE;AAED,OAAO,EACL,mBAAmB,EACnB,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,CAAC;AACF,YAAY,EAAE,oBAAoB,EAAE,CAAC"}