@trebired/code-discipline 5.0.2 → 5.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 (81) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +11 -5
  3. package/dist/checks/fix-folderization.js +2 -2
  4. package/dist/checks/fix-folderization.js.map +1 -1
  5. package/dist/checks/format.js +2 -2
  6. package/dist/checks/format.js.map +1 -1
  7. package/dist/checks/rule-slugs.d.ts +2 -4
  8. package/dist/checks/rule-slugs.d.ts.map +1 -1
  9. package/dist/checks/rule-slugs.js +5 -17
  10. package/dist/checks/rule-slugs.js.map +1 -1
  11. package/dist/checks/rules/blank-lines/generic.d.ts +10 -0
  12. package/dist/checks/rules/blank-lines/generic.d.ts.map +1 -0
  13. package/dist/checks/rules/blank-lines/generic.js +242 -0
  14. package/dist/checks/rules/blank-lines/generic.js.map +1 -0
  15. package/dist/checks/rules/blank-lines/index.d.ts.map +1 -1
  16. package/dist/checks/rules/blank-lines/index.js +13 -7
  17. package/dist/checks/rules/blank-lines/index.js.map +1 -1
  18. package/dist/checks/rules/blank-lines/rewrite.d.ts +2 -1
  19. package/dist/checks/rules/blank-lines/rewrite.d.ts.map +1 -1
  20. package/dist/checks/rules/blank-lines/rewrite.js +1 -1
  21. package/dist/checks/rules/blank-lines/rewrite.js.map +1 -1
  22. package/dist/checks/rules/comments/ranges.d.ts +2 -1
  23. package/dist/checks/rules/comments/ranges.d.ts.map +1 -1
  24. package/dist/checks/rules/comments/ranges.js +1 -1
  25. package/dist/checks/rules/comments/ranges.js.map +1 -1
  26. package/dist/checks/rules/dry/candidates.d.ts.map +1 -1
  27. package/dist/checks/rules/dry/candidates.js +52 -32
  28. package/dist/checks/rules/dry/candidates.js.map +1 -1
  29. package/dist/checks/rules/dry/generic.d.ts +5 -0
  30. package/dist/checks/rules/dry/generic.d.ts.map +1 -0
  31. package/dist/checks/rules/dry/generic.js +231 -0
  32. package/dist/checks/rules/dry/generic.js.map +1 -0
  33. package/dist/checks/rules/dry/matching.d.ts.map +1 -1
  34. package/dist/checks/rules/dry/matching.js +12 -6
  35. package/dist/checks/rules/dry/matching.js.map +1 -1
  36. package/dist/checks/rules/dry/model.d.ts +6 -4
  37. package/dist/checks/rules/dry/model.d.ts.map +1 -1
  38. package/dist/checks/rules/dry/model.js +22 -3
  39. package/dist/checks/rules/dry/model.js.map +1 -1
  40. package/dist/checks/rules/dry/similarity.d.ts.map +1 -1
  41. package/dist/checks/rules/dry/similarity.js +2 -0
  42. package/dist/checks/rules/dry/similarity.js.map +1 -1
  43. package/dist/checks/rules/max/function-lines.d.ts +10 -1
  44. package/dist/checks/rules/max/function-lines.d.ts.map +1 -1
  45. package/dist/checks/rules/max/function-lines.js +1 -1
  46. package/dist/checks/rules/max/function-lines.js.map +1 -1
  47. package/dist/checks/rules/max/python.d.ts +7 -2
  48. package/dist/checks/rules/max/python.d.ts.map +1 -1
  49. package/dist/checks/rules/max/python.js +1 -1
  50. package/dist/checks/rules/max/python.js.map +1 -1
  51. package/dist/checks/rules/max/shell.d.ts +2 -1
  52. package/dist/checks/rules/max/shell.d.ts.map +1 -1
  53. package/dist/checks/rules/max/shell.js +1 -1
  54. package/dist/checks/rules/max/shell.js.map +1 -1
  55. package/dist/checks/types.d.ts +3 -6
  56. package/dist/checks/types.d.ts.map +1 -1
  57. package/dist/config/normalize/check-options.d.ts.map +1 -1
  58. package/dist/config/normalize/check-options.js +7 -3
  59. package/dist/config/normalize/check-options.js.map +1 -1
  60. package/dist/config/normalize/formatter-options.d.ts +1 -1
  61. package/dist/config/normalize/formatter-options.d.ts.map +1 -1
  62. package/dist/config/normalize/formatter-options.js +2 -8
  63. package/dist/config/normalize/formatter-options.js.map +1 -1
  64. package/dist/formatters/code.js +4 -4
  65. package/dist/formatters/code.js.map +1 -1
  66. package/dist/index.d.ts +2 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/run.d.ts.map +1 -1
  69. package/dist/run.js +14 -2
  70. package/dist/run.js.map +1 -1
  71. package/dist/shared/discipline-types.d.ts +2 -3
  72. package/dist/shared/discipline-types.d.ts.map +1 -1
  73. package/dist/shared/languages.d.ts +4 -2
  74. package/dist/shared/languages.d.ts.map +1 -1
  75. package/dist/shared/languages.js +6 -4
  76. package/dist/shared/languages.js.map +1 -1
  77. package/native/darwin-arm64.node +0 -0
  78. package/native/darwin-x64.node +0 -0
  79. package/native/linux-arm64-gnu.node +0 -0
  80. package/native/linux-x64-gnu.node +0 -0
  81. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/blank-lines/rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,KAAK,EAAE,YAAY,EAAkD,MAAM,YAAY,CAAC;AAkG/F,iBAAS,oBAAoB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAUzF;AAED,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AA6BF,iBAAS,2BAA2B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAG1G;AAED,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/blank-lines/rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,KAAK,EAAE,YAAY,EAAkD,MAAM,YAAY,CAAC;AAkG/F,iBAAS,oBAAoB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAUzF;AAED,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,wBAAwB,CAyBzF;AAED,iBAAS,2BAA2B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAG1G;AAED,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,CAAC;AACjF,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -118,5 +118,5 @@ function rewriteStructuralBlankLines(sourceFile, fullText) {
118
118
  const edits = collectBoundaryEdits(sourceFile, fullText);
119
119
  return applyBoundaryEdits(fullText, edits);
120
120
  }
121
- export { collectBoundaryEdits, rewriteStructuralBlankLines };
121
+ export { applyBoundaryEdits, collectBoundaryEdits, rewriteStructuralBlankLines };
122
122
  //# sourceMappingURL=rewrite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../../../src/checks/rules/blank-lines/rewrite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../../../src/checks/rules/blank-lines/rewrite.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ type CommentRange = {
4
4
  end: number;
5
5
  kind: CommentKind;
6
6
  };
7
+ declare function scanRustRawString(text: string, start: number): number | null;
7
8
  declare function collectCommentRanges(text: string, extension: string): CommentRange[];
8
- export { collectCommentRanges };
9
+ export { collectCommentRanges, scanRustRawString };
9
10
  export type { CommentRange };
10
11
  //# sourceMappingURL=ranges.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"AAiBA,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAyLF,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAS7E;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"AAiBA,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAwEF,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4BrE;AAqFD,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAS7E;AAED,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -178,5 +178,5 @@ function collectCommentRanges(text, extension) {
178
178
  return collectGoCommentRanges(text);
179
179
  return [];
180
180
  }
181
- export { collectCommentRanges };
181
+ export { collectCommentRanges, scanRustRawString };
182
182
  //# sourceMappingURL=ranges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/candidates.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAmJvD,iBAAe,mCAAmC,CAChD,WAAW,EAAE,iBAAiB,EAAE,EAChC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAGpC;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
1
+ {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/candidates.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA8KvD,iBAAe,mCAAmC,CAChD,WAAW,EAAE,iBAAiB,EAAE,EAChC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAGpC;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
@@ -2,8 +2,11 @@ import fs from "node:fs/promises";
2
2
  import { performance } from "node:perf_hooks";
3
3
  import ts from "typescript";
4
4
  import { parseSource } from "../../../imports/module-specifiers.js";
5
+ import { isTypeScriptFamilyExtension } from "../../../shared/languages.js";
5
6
  import { createFunctionFingerprint, resolveClassification, resolveFunctionDisplayName } from "./fingerprint.js";
7
+ import { collectGenericDryFunctionDescriptors } from "./generic.js";
6
8
  import { collectDuplicateGroups } from "./matching.js";
9
+ import { dryLanguageKey, normalizeDryFunctionName } from "./model.js";
7
10
  const DRY_PARSE_CHUNK_SIZE = 250;
8
11
  function isFingerprintableFunction(node) {
9
12
  return (ts.isFunctionDeclaration(node) && Boolean(node.body))
@@ -14,10 +17,6 @@ function isFingerprintableFunction(node) {
14
17
  || (ts.isSetAccessorDeclaration(node) && Boolean(node.body))
15
18
  || (ts.isConstructorDeclaration(node) && Boolean(node.body));
16
19
  }
17
- function normalizeFunctionName(name) {
18
- const normalized = name?.trim().toLowerCase();
19
- return normalized || undefined;
20
- }
21
20
  function isTopLevelFunction(node) {
22
21
  if (ts.isFunctionDeclaration(node)) {
23
22
  return ts.isSourceFile(node.parent);
@@ -38,6 +37,7 @@ function buildDryFunctionDescriptor(node, sourceFile, file) {
38
37
  const sourceText = node.getText(sourceFile).replace(/\s+/g, "");
39
38
  const fingerprintState = createFunctionFingerprint(node, sourceFile);
40
39
  const localName = resolveFunctionDisplayName(node, sourceFile);
40
+ const nodeStart = node.getStart(sourceFile);
41
41
  return {
42
42
  absolutePath: file.absolutePath,
43
43
  behaviorFingerprint: fingerprintState.behaviorFingerprint,
@@ -45,47 +45,66 @@ function buildDryFunctionDescriptor(node, sourceFile, file) {
45
45
  classification,
46
46
  fingerprint: fingerprintState.fingerprint,
47
47
  filePath: file.relativeFromProjectRoot,
48
+ language: dryLanguageKey(file.extension),
48
49
  localName,
49
- normalizedName: normalizeFunctionName(localName),
50
- nodeStart: node.getStart(sourceFile),
50
+ normalizedName: normalizeDryFunctionName(localName),
51
51
  normalizedText: fingerprintState.fingerprint,
52
- sourceFile,
52
+ order: nodeStart,
53
+ startLine: sourceFile.getLineAndCharacterOfPosition(nodeStart).line + 1,
53
54
  topLevel: isTopLevelFunction(node),
54
55
  usesOuterScope: fingerprintState.usesOuterScope,
55
56
  usesRestrictedRuntime: fingerprintState.usesRestrictedRuntime,
56
57
  };
57
58
  }
59
+ function collectTypeScriptDryFunctions(file, text) {
60
+ const sourceFile = parseSource(text, file.absolutePath);
61
+ const descriptors = [];
62
+ const visit = (node) => {
63
+ if (isFingerprintableFunction(node)) {
64
+ const descriptor = buildDryFunctionDescriptor(node, sourceFile, file);
65
+ if (descriptor)
66
+ descriptors.push(descriptor);
67
+ }
68
+ ts.forEachChild(node, visit);
69
+ };
70
+ visit(sourceFile);
71
+ return descriptors;
72
+ }
73
+ function collectDryFunctionsForFile(file, text) {
74
+ return isTypeScriptFamilyExtension(file.extension)
75
+ ? collectTypeScriptDryFunctions(file, text)
76
+ : collectGenericDryFunctionDescriptors(file, text);
77
+ }
78
+ function emitDryParseChunk(args) {
79
+ if (args.completedItems % DRY_PARSE_CHUNK_SIZE !== 0 && args.completedItems !== args.totalItems)
80
+ return;
81
+ args.observer?.({
82
+ phase: "rule-chunk",
83
+ rule: "dry",
84
+ stage: "parse",
85
+ chunkIndex: Math.ceil(args.completedItems / DRY_PARSE_CHUNK_SIZE),
86
+ completedItems: args.completedItems,
87
+ totalItems: args.totalItems,
88
+ discoveredFunctions: args.discoveredFunctions,
89
+ elapsedMs: performance.now() - args.startedAt,
90
+ });
91
+ }
58
92
  async function collectDryFunctions(sourceFiles, observer) {
59
93
  const startedAt = performance.now();
60
94
  const functions = [];
61
95
  for (let fileIndex = 0; fileIndex < sourceFiles.length; fileIndex += 1) {
62
96
  const file = sourceFiles[fileIndex];
63
97
  const text = await fs.readFile(file.absolutePath, "utf8");
64
- const sourceFile = parseSource(text, file.absolutePath);
65
- const visit = (node) => {
66
- if (isFingerprintableFunction(node)) {
67
- const descriptor = buildDryFunctionDescriptor(node, sourceFile, file);
68
- if (descriptor)
69
- functions.push(descriptor);
70
- }
71
- ts.forEachChild(node, visit);
72
- };
73
- visit(sourceFile);
74
- const completedItems = fileIndex + 1;
75
- if (completedItems % DRY_PARSE_CHUNK_SIZE === 0 || completedItems === sourceFiles.length) {
76
- observer?.({
77
- phase: "rule-chunk",
78
- rule: "dry",
79
- stage: "parse",
80
- chunkIndex: Math.ceil(completedItems / DRY_PARSE_CHUNK_SIZE),
81
- completedItems,
82
- totalItems: sourceFiles.length,
83
- discoveredFunctions: functions.length,
84
- elapsedMs: performance.now() - startedAt,
85
- });
86
- }
98
+ functions.push(...collectDryFunctionsForFile(file, text));
99
+ emitDryParseChunk({
100
+ completedItems: fileIndex + 1,
101
+ discoveredFunctions: functions.length,
102
+ observer,
103
+ startedAt,
104
+ totalItems: sourceFiles.length,
105
+ });
87
106
  }
88
- const sortedFunctions = functions.sort((left, right) => left.filePath.localeCompare(right.filePath) || left.nodeStart - right.nodeStart);
107
+ const sortedFunctions = functions.sort((left, right) => left.filePath.localeCompare(right.filePath) || left.order - right.order);
89
108
  observer?.({
90
109
  phase: "rule-completed",
91
110
  rule: "dry",
@@ -115,7 +134,8 @@ function createDryGroupViolation(group) {
115
134
  functions: group.functions.map((descriptor) => ({
116
135
  classification: descriptor.classification,
117
136
  filePath: descriptor.filePath,
118
- line: descriptor.sourceFile.getLineAndCharacterOfPosition(descriptor.nodeStart).line + 1,
137
+ language: descriptor.language,
138
+ line: descriptor.startLine,
119
139
  name: descriptor.localName,
120
140
  topLevel: descriptor.topLevel,
121
141
  })),
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/candidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ScannedSourceFile } from "../../../imports/types.js";
2
+ import type { DryFunctionDescriptor } from "./model.js";
3
+ declare function collectGenericDryFunctionDescriptors(file: ScannedSourceFile, text: string): DryFunctionDescriptor[];
4
+ export { collectGenericDryFunctionDescriptors };
5
+ //# sourceMappingURL=generic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/generic.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAoPxD,iBAAS,oCAAoC,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAG5G;AAED,OAAO,EAAE,oCAAoC,EAAE,CAAC"}
@@ -0,0 +1,231 @@
1
+ import { collectLanguageFunctionDescriptors } from "../max/function-lines.js";
2
+ import { scanRustRawString } from "../comments/ranges.js";
3
+ import { maskCommentsForLineCounting } from "../max/code-lines.js";
4
+ import { stableSerialize } from "../../../shared/utils.js";
5
+ import { dryLanguageKey, normalizeDryFunctionName } from "./model.js";
6
+ const GENERIC_DRY_KEYWORDS = new Set([
7
+ "and",
8
+ "as",
9
+ "async",
10
+ "await",
11
+ "break",
12
+ "case",
13
+ "class",
14
+ "const",
15
+ "continue",
16
+ "def",
17
+ "default",
18
+ "defer",
19
+ "do",
20
+ "done",
21
+ "elif",
22
+ "else",
23
+ "enum",
24
+ "esac",
25
+ "except",
26
+ "false",
27
+ "fi",
28
+ "fn",
29
+ "for",
30
+ "func",
31
+ "function",
32
+ "if",
33
+ "impl",
34
+ "in",
35
+ "interface",
36
+ "let",
37
+ "local",
38
+ "loop",
39
+ "match",
40
+ "mut",
41
+ "nil",
42
+ "none",
43
+ "not",
44
+ "null",
45
+ "or",
46
+ "package",
47
+ "pass",
48
+ "property",
49
+ "pub",
50
+ "range",
51
+ "return",
52
+ "self",
53
+ "struct",
54
+ "then",
55
+ "this",
56
+ "trait",
57
+ "true",
58
+ "try",
59
+ "type",
60
+ "unsafe",
61
+ "var",
62
+ "while",
63
+ "with",
64
+ ]);
65
+ const HEADER_NAME_PREFIXES = new Set(["def", "fn", "func", "function"]);
66
+ const IDENTIFIER_PART_PATTERN = /[$\w]/u;
67
+ const IDENTIFIER_START_PATTERN = /[$A-Za-z_]/u;
68
+ function previousNonWhitespace(text, start) {
69
+ for (let index = start - 1; index >= 0; index -= 1) {
70
+ const character = text[index] ?? "";
71
+ if (!/\s/u.test(character))
72
+ return character;
73
+ }
74
+ return "";
75
+ }
76
+ function nextNonWhitespace(text, start) {
77
+ for (let index = start; index < text.length; index += 1) {
78
+ const character = text[index] ?? "";
79
+ if (!/\s/u.test(character))
80
+ return character;
81
+ }
82
+ return "";
83
+ }
84
+ function scanQuotedLiteral(text, start) {
85
+ const quote = text[start] ?? "";
86
+ if (quote !== "\"" && quote !== "'" && quote !== "`")
87
+ return null;
88
+ const triple = quote !== "`" && text.slice(start, start + 3) === quote.repeat(3);
89
+ if (triple) {
90
+ const closeIndex = text.indexOf(quote.repeat(3), start + 3);
91
+ return closeIndex < 0 ? text.length : closeIndex + 3;
92
+ }
93
+ let escaped = false;
94
+ for (let index = start + 1; index < text.length; index += 1) {
95
+ const character = text[index] ?? "";
96
+ if (escaped)
97
+ escaped = false;
98
+ else if (character === "\\")
99
+ escaped = true;
100
+ else if (character === quote)
101
+ return index + 1;
102
+ }
103
+ return text.length;
104
+ }
105
+ function readIdentifier(text, start) {
106
+ let end = start + 1;
107
+ while (IDENTIFIER_PART_PATTERN.test(text[end] ?? ""))
108
+ end += 1;
109
+ return { end, value: text.slice(start, end) };
110
+ }
111
+ function readNumberEnd(text, start) {
112
+ let end = start + 1;
113
+ while (/[$\w.]/u.test(text[end] ?? ""))
114
+ end += 1;
115
+ return end;
116
+ }
117
+ function canonicalIdentifier(identifier, state) {
118
+ const existing = state.identifiers.get(identifier);
119
+ if (existing)
120
+ return existing;
121
+ const next = `i${state.nextIdentifier}`;
122
+ state.nextIdentifier += 1;
123
+ state.identifiers.set(identifier, next);
124
+ return next;
125
+ }
126
+ function normalizeIdentifierToken(args) {
127
+ const lower = args.identifier.toLowerCase();
128
+ const previousToken = args.state.tokens[args.state.tokens.length - 1] ?? "";
129
+ const previous = previousNonWhitespace(args.text, args.start);
130
+ const next = nextNonWhitespace(args.text, args.end);
131
+ if (GENERIC_DRY_KEYWORDS.has(lower))
132
+ return lower;
133
+ if (HEADER_NAME_PREFIXES.has(previousToken))
134
+ return canonicalIdentifier(args.identifier, args.state);
135
+ if (previous === "." || next === "!" || next === "(")
136
+ return args.identifier;
137
+ return canonicalIdentifier(args.identifier, args.state);
138
+ }
139
+ function normalizeFunctionHeader(source, extension) {
140
+ if (extension === ".go")
141
+ return source.replace(/^(\s*func(?:\s*\([^)]*\))?\s+)[A-Za-z_]\w*/u, "$1__dry_function");
142
+ if (extension === ".py")
143
+ return source.replace(/^(\s*(?:async\s+)?def\s+)[A-Za-z_]\w*/u, "$1__dry_function");
144
+ if (extension === ".qml") {
145
+ return source
146
+ .replace(/(\bfunction\s+)[A-Za-z_$][\w$]*/u, "$1__dry_function")
147
+ .replace(/^(\s*)on[A-Z][\w$]*(\s*:)/u, "$1__dry_handler$2");
148
+ }
149
+ if (extension === ".sh" || extension === ".bash" || extension === ".zsh") {
150
+ return source.replace(/^(\s*(?:function\s+)?)[A-Za-z_][\w-]*(\s*(?:\(\s*\))?\s*\{)/u, "$1__dry_function$2");
151
+ }
152
+ return source.replace(/^(\s*(?:(?:pub(?:\([^)]*\))?|async|const|unsafe)\s+)*fn\s+)[A-Za-z_]\w*/u, "$1__dry_function");
153
+ }
154
+ function tokenizeGenericDryText(text) {
155
+ const state = { identifiers: new Map(), nextIdentifier: 0, tokens: [] };
156
+ let index = 0;
157
+ while (index < text.length) {
158
+ const character = text[index] ?? "";
159
+ const rawStringEnd = scanRustRawString(text, index);
160
+ const quotedEnd = rawStringEnd == null ? scanQuotedLiteral(text, index) : null;
161
+ if (/\s/u.test(character))
162
+ index += 1;
163
+ else if (rawStringEnd != null || quotedEnd != null) {
164
+ const literalEnd = rawStringEnd ?? quotedEnd ?? text.length;
165
+ state.tokens.push(`STR:${text.slice(index, literalEnd)}`);
166
+ index = literalEnd;
167
+ }
168
+ else if (/\d/u.test(character)) {
169
+ const numberEnd = readNumberEnd(text, index);
170
+ state.tokens.push(`NUM:${text.slice(index, numberEnd)}`);
171
+ index = numberEnd;
172
+ }
173
+ else if (IDENTIFIER_START_PATTERN.test(character)) {
174
+ const identifier = readIdentifier(text, index);
175
+ state.tokens.push(normalizeIdentifierToken({
176
+ end: identifier.end,
177
+ identifier: identifier.value,
178
+ start: index,
179
+ state,
180
+ text,
181
+ }));
182
+ index = identifier.end;
183
+ }
184
+ else {
185
+ state.tokens.push(character);
186
+ index += 1;
187
+ }
188
+ }
189
+ return state.tokens;
190
+ }
191
+ function sliceFunctionSource(text, descriptor) {
192
+ return text
193
+ .split(/\r?\n/u)
194
+ .slice(descriptor.startLine - 1, descriptor.endLine)
195
+ .join("\n");
196
+ }
197
+ function createGenericFingerprint(source, extension) {
198
+ const headerNormalized = normalizeFunctionHeader(source, extension);
199
+ const commentMasked = maskCommentsForLineCounting(headerNormalized, extension);
200
+ const tokens = tokenizeGenericDryText(commentMasked);
201
+ const normalized = ["generic-function", tokens];
202
+ return {
203
+ fingerprint: stableSerialize(normalized),
204
+ normalizedText: tokens.join(""),
205
+ };
206
+ }
207
+ function createGenericDryDescriptor(file, text, descriptor) {
208
+ const fingerprint = createGenericFingerprint(sliceFunctionSource(text, descriptor), file.extension);
209
+ return {
210
+ absolutePath: file.absolutePath,
211
+ characterCount: fingerprint.normalizedText.length,
212
+ classification: descriptor.kind === "function" ? "standalone" : "method",
213
+ fingerprint: fingerprint.fingerprint,
214
+ filePath: file.relativeFromProjectRoot,
215
+ language: dryLanguageKey(file.extension),
216
+ localName: descriptor.name,
217
+ normalizedName: normalizeDryFunctionName(descriptor.name),
218
+ normalizedText: fingerprint.normalizedText,
219
+ order: descriptor.startLine,
220
+ startLine: descriptor.startLine,
221
+ topLevel: false,
222
+ usesOuterScope: true,
223
+ usesRestrictedRuntime: false,
224
+ };
225
+ }
226
+ function collectGenericDryFunctionDescriptors(file, text) {
227
+ return collectLanguageFunctionDescriptors(text, file.extension, file.absolutePath)
228
+ .map((descriptor) => createGenericDryDescriptor(file, text, descriptor));
229
+ }
230
+ export { collectGenericDryFunctionDescriptors };
231
+ //# sourceMappingURL=generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/generic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/matching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAcxD,KAAK,eAAe,GAAG,kBAAkB,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAE1G,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,CAAC;AA+OF,iBAAS,sBAAsB,CAC7B,SAAS,EAAE,qBAAqB,EAAE,EAClC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,sBAAsB,GAChC,cAAc,EAAE,CAkBlB;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/matching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAcxD,KAAK,eAAe,GAAG,kBAAkB,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAE1G,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,CAAC;AAsPF,iBAAS,sBAAsB,CAC7B,SAAS,EAAE,qBAAqB,EAAE,EAClC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,sBAAsB,GAChC,cAAc,EAAE,CAkBlB;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -44,6 +44,9 @@ function unionIndexGroup(state, indexes, signal) {
44
44
  unionWithSignal(state, firstIndex, index, signal, 1);
45
45
  }
46
46
  }
47
+ function languageScopedKey(descriptor, value) {
48
+ return `${descriptor.language}:${value}`;
49
+ }
47
50
  function indexExactAndNamedFunctions(functions, options) {
48
51
  const indexesByBehaviorFingerprint = new Map();
49
52
  const indexesByFingerprint = new Map();
@@ -52,18 +55,21 @@ function indexExactAndNamedFunctions(functions, options) {
52
55
  const descriptor = functions[index];
53
56
  if (isWithinDuplicateSizeThreshold(descriptor, options)) {
54
57
  if (descriptor.behaviorFingerprint) {
55
- const indexes = indexesByBehaviorFingerprint.get(descriptor.behaviorFingerprint) ?? [];
58
+ const key = languageScopedKey(descriptor, descriptor.behaviorFingerprint);
59
+ const indexes = indexesByBehaviorFingerprint.get(key) ?? [];
56
60
  indexes.push(index);
57
- indexesByBehaviorFingerprint.set(descriptor.behaviorFingerprint, indexes);
61
+ indexesByBehaviorFingerprint.set(key, indexes);
58
62
  }
59
- const indexes = indexesByFingerprint.get(descriptor.fingerprint) ?? [];
63
+ const key = languageScopedKey(descriptor, descriptor.fingerprint);
64
+ const indexes = indexesByFingerprint.get(key) ?? [];
60
65
  indexes.push(index);
61
- indexesByFingerprint.set(descriptor.fingerprint, indexes);
66
+ indexesByFingerprint.set(key, indexes);
62
67
  }
63
68
  if (shouldIndexNameDuplicate(descriptor, options)) {
64
- const indexes = indexesByName.get(descriptor.normalizedName) ?? [];
69
+ const key = languageScopedKey(descriptor, descriptor.normalizedName);
70
+ const indexes = indexesByName.get(key) ?? [];
65
71
  indexes.push(index);
66
- indexesByName.set(descriptor.normalizedName, indexes);
72
+ indexesByName.set(key, indexes);
67
73
  }
68
74
  }
69
75
  return { indexesByBehaviorFingerprint, indexesByFingerprint, indexesByName };
@@ -1 +1 @@
1
- {"version":3,"file":"matching.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/matching.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matching.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/matching.ts"],"names":[],"mappings":"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"}