@nielspeter/eess-ts 0.4.0 → 0.5.1

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 (267) hide show
  1. package/dist/builders/call-rule-builder.d.ts.map +1 -1
  2. package/dist/builders/call-rule-builder.js +2 -1
  3. package/dist/builders/call-rule-builder.js.map +1 -1
  4. package/dist/builders/class-rule-builder.d.ts.map +1 -1
  5. package/dist/builders/class-rule-builder.js +7 -25
  6. package/dist/builders/class-rule-builder.js.map +1 -1
  7. package/dist/builders/correspondence-builder.d.ts.map +1 -1
  8. package/dist/builders/correspondence-builder.js +6 -14
  9. package/dist/builders/correspondence-builder.js.map +1 -1
  10. package/dist/builders/cross-layer-builder.d.ts.map +1 -1
  11. package/dist/builders/cross-layer-builder.js +7 -6
  12. package/dist/builders/cross-layer-builder.js.map +1 -1
  13. package/dist/builders/function-rule-builder.d.ts.map +1 -1
  14. package/dist/builders/function-rule-builder.js +4 -13
  15. package/dist/builders/function-rule-builder.js.map +1 -1
  16. package/dist/builders/module-rule-builder.d.ts.map +1 -1
  17. package/dist/builders/module-rule-builder.js +4 -16
  18. package/dist/builders/module-rule-builder.js.map +1 -1
  19. package/dist/builders/slice-rule-builder.d.ts.map +1 -1
  20. package/dist/builders/slice-rule-builder.js +4 -3
  21. package/dist/builders/slice-rule-builder.js.map +1 -1
  22. package/dist/builders/type-rule-builder.d.ts.map +1 -1
  23. package/dist/builders/type-rule-builder.js +4 -13
  24. package/dist/builders/type-rule-builder.js.map +1 -1
  25. package/dist/cli/commands/baseline.d.ts +5 -1
  26. package/dist/cli/commands/baseline.d.ts.map +1 -1
  27. package/dist/cli/commands/baseline.js +47 -5
  28. package/dist/cli/commands/baseline.js.map +1 -1
  29. package/dist/cli/commands/check.d.ts.map +1 -1
  30. package/dist/cli/commands/check.js +155 -13
  31. package/dist/cli/commands/check.js.map +1 -1
  32. package/dist/cli/commands/doctor.d.ts.map +1 -1
  33. package/dist/cli/commands/doctor.js +97 -6
  34. package/dist/cli/commands/doctor.js.map +1 -1
  35. package/dist/cli/commands/explain.d.ts.map +1 -1
  36. package/dist/cli/commands/explain.js +21 -2
  37. package/dist/cli/commands/explain.js.map +1 -1
  38. package/dist/cli/commands/init.js +1 -1
  39. package/dist/cli/commands/init.js.map +1 -1
  40. package/dist/cli/import-rule-module.d.ts +23 -4
  41. package/dist/cli/import-rule-module.d.ts.map +1 -1
  42. package/dist/cli/import-rule-module.js +30 -18
  43. package/dist/cli/import-rule-module.js.map +1 -1
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli/index.js +4 -11
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/cli/load-rules.d.ts.map +1 -1
  48. package/dist/cli/load-rules.js +5 -4
  49. package/dist/cli/load-rules.js.map +1 -1
  50. package/dist/cli/resolve-config.d.ts +0 -8
  51. package/dist/cli/resolve-config.d.ts.map +1 -1
  52. package/dist/cli/resolve-config.js +18 -48
  53. package/dist/cli/resolve-config.js.map +1 -1
  54. package/dist/cli/rule-file-findings.d.ts.map +1 -1
  55. package/dist/cli/rule-file-findings.js +60 -2
  56. package/dist/cli/rule-file-findings.js.map +1 -1
  57. package/dist/cli/watch.d.ts +13 -43
  58. package/dist/cli/watch.d.ts.map +1 -1
  59. package/dist/cli/watch.js +8 -148
  60. package/dist/cli/watch.js.map +1 -1
  61. package/dist/conditions/call.d.ts.map +1 -1
  62. package/dist/conditions/call.js +4 -3
  63. package/dist/conditions/call.js.map +1 -1
  64. package/dist/conditions/cross-layer.js +2 -2
  65. package/dist/conditions/cross-layer.js.map +1 -1
  66. package/dist/conditions/dependency.js +2 -2
  67. package/dist/conditions/dependency.js.map +1 -1
  68. package/dist/conditions/exports.d.ts.map +1 -1
  69. package/dist/conditions/exports.js +31 -37
  70. package/dist/conditions/exports.js.map +1 -1
  71. package/dist/conditions/function.js +1 -1
  72. package/dist/conditions/function.js.map +1 -1
  73. package/dist/conditions/jsx.js +1 -1
  74. package/dist/conditions/jsx.js.map +1 -1
  75. package/dist/conditions/members.d.ts.map +1 -1
  76. package/dist/conditions/members.js +3 -2
  77. package/dist/conditions/members.js.map +1 -1
  78. package/dist/conditions/reverse-dependency.d.ts.map +1 -1
  79. package/dist/conditions/reverse-dependency.js +47 -2
  80. package/dist/conditions/reverse-dependency.js.map +1 -1
  81. package/dist/conditions/slice.js +1 -1
  82. package/dist/conditions/slice.js.map +1 -1
  83. package/dist/conditions/structural.js +1 -1
  84. package/dist/conditions/structural.js.map +1 -1
  85. package/dist/core/check-all.d.ts.map +1 -1
  86. package/dist/core/check-all.js +61 -7
  87. package/dist/core/check-all.js.map +1 -1
  88. package/dist/core/combinators.d.ts.map +1 -1
  89. package/dist/core/combinators.js +20 -27
  90. package/dist/core/combinators.js.map +1 -1
  91. package/dist/core/descendant-cache.d.ts.map +1 -1
  92. package/dist/core/descendant-cache.js +5 -7
  93. package/dist/core/descendant-cache.js.map +1 -1
  94. package/dist/core/diagnose.js +15 -7
  95. package/dist/core/diagnose.js.map +1 -1
  96. package/dist/core/disk-set.js +1 -1
  97. package/dist/core/disk-set.js.map +1 -1
  98. package/dist/core/element-cache.js +1 -1
  99. package/dist/core/element-cache.js.map +1 -1
  100. package/dist/core/exclusion-comments.d.ts +15 -50
  101. package/dist/core/exclusion-comments.d.ts.map +1 -1
  102. package/dist/core/exclusion-comments.js +4 -307
  103. package/dist/core/exclusion-comments.js.map +1 -1
  104. package/dist/core/execute-rule.d.ts +8 -0
  105. package/dist/core/execute-rule.d.ts.map +1 -1
  106. package/dist/core/execute-rule.js +99 -13
  107. package/dist/core/execute-rule.js.map +1 -1
  108. package/dist/core/glob-evaluator.js +2 -2
  109. package/dist/core/glob-evaluator.js.map +1 -1
  110. package/dist/core/invalidate-on-modify.d.ts +20 -0
  111. package/dist/core/invalidate-on-modify.d.ts.map +1 -0
  112. package/dist/core/invalidate-on-modify.js +26 -0
  113. package/dist/core/invalidate-on-modify.js.map +1 -0
  114. package/dist/core/line-index.d.ts.map +1 -1
  115. package/dist/core/line-index.js +6 -8
  116. package/dist/core/line-index.js.map +1 -1
  117. package/dist/core/metric-violation.d.ts +1 -1
  118. package/dist/core/module-edges.d.ts.map +1 -1
  119. package/dist/core/module-edges.js +26 -25
  120. package/dist/core/module-edges.js.map +1 -1
  121. package/dist/core/orphan-exclusions.d.ts.map +1 -1
  122. package/dist/core/orphan-exclusions.js +15 -5
  123. package/dist/core/orphan-exclusions.js.map +1 -1
  124. package/dist/core/path-universe.d.ts +10 -42
  125. package/dist/core/path-universe.d.ts.map +1 -1
  126. package/dist/core/path-universe.js +0 -20
  127. package/dist/core/path-universe.js.map +1 -1
  128. package/dist/core/project.d.ts.map +1 -1
  129. package/dist/core/project.js +6 -5
  130. package/dist/core/project.js.map +1 -1
  131. package/dist/core/rule-builder.d.ts +22 -1
  132. package/dist/core/rule-builder.d.ts.map +1 -1
  133. package/dist/core/rule-builder.js +38 -20
  134. package/dist/core/rule-builder.js.map +1 -1
  135. package/dist/core/rule-declaration.d.ts.map +1 -1
  136. package/dist/core/rule-declaration.js +14 -52
  137. package/dist/core/rule-declaration.js.map +1 -1
  138. package/dist/core/terminal-builder.d.ts +17 -13
  139. package/dist/core/terminal-builder.d.ts.map +1 -1
  140. package/dist/core/terminal-builder.js +41 -21
  141. package/dist/core/terminal-builder.js.map +1 -1
  142. package/dist/core/terminal-execution.d.ts +22 -6
  143. package/dist/core/terminal-execution.d.ts.map +1 -1
  144. package/dist/core/terminal-execution.js +39 -7
  145. package/dist/core/terminal-execution.js.map +1 -1
  146. package/dist/core/ts-comment-mask.d.ts +2 -0
  147. package/dist/core/ts-comment-mask.d.ts.map +1 -0
  148. package/dist/core/ts-comment-mask.js +102 -0
  149. package/dist/core/ts-comment-mask.js.map +1 -0
  150. package/dist/core/vacuity-diagnosis.js +1 -1
  151. package/dist/core/vacuity-diagnosis.js.map +1 -1
  152. package/dist/graphql/graphql-rule-builder.d.ts +95 -0
  153. package/dist/graphql/graphql-rule-builder.d.ts.map +1 -0
  154. package/dist/graphql/graphql-rule-builder.js +127 -0
  155. package/dist/graphql/graphql-rule-builder.js.map +1 -0
  156. package/dist/graphql/index.d.ts +1 -0
  157. package/dist/graphql/index.d.ts.map +1 -1
  158. package/dist/graphql/index.js +1 -0
  159. package/dist/graphql/index.js.map +1 -1
  160. package/dist/graphql/resolver-rule-builder.d.ts +22 -76
  161. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
  162. package/dist/graphql/resolver-rule-builder.js +8 -130
  163. package/dist/graphql/resolver-rule-builder.js.map +1 -1
  164. package/dist/graphql/schema-loader.d.ts.map +1 -1
  165. package/dist/graphql/schema-loader.js +4 -3
  166. package/dist/graphql/schema-loader.js.map +1 -1
  167. package/dist/graphql/schema-predicates.d.ts.map +1 -1
  168. package/dist/graphql/schema-predicates.js +17 -12
  169. package/dist/graphql/schema-predicates.js.map +1 -1
  170. package/dist/graphql/schema-rule-builder.d.ts +21 -67
  171. package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
  172. package/dist/graphql/schema-rule-builder.js +6 -120
  173. package/dist/graphql/schema-rule-builder.js.map +1 -1
  174. package/dist/helpers/baseline-generator.d.ts +9 -0
  175. package/dist/helpers/baseline-generator.d.ts.map +1 -1
  176. package/dist/helpers/baseline-generator.js +9 -0
  177. package/dist/helpers/baseline-generator.js.map +1 -1
  178. package/dist/helpers/baseline.d.ts.map +1 -1
  179. package/dist/helpers/baseline.js +4 -4
  180. package/dist/helpers/baseline.js.map +1 -1
  181. package/dist/helpers/body-traversal.d.ts.map +1 -1
  182. package/dist/helpers/body-traversal.js +13 -0
  183. package/dist/helpers/body-traversal.js.map +1 -1
  184. package/dist/helpers/callback-extractor.js +6 -38
  185. package/dist/helpers/callback-extractor.js.map +1 -1
  186. package/dist/helpers/complexity.d.ts +1 -1
  187. package/dist/helpers/complexity.js +1 -1
  188. package/dist/helpers/diff-aware.d.ts +11 -39
  189. package/dist/helpers/diff-aware.d.ts.map +1 -1
  190. package/dist/helpers/diff-aware.js +11 -79
  191. package/dist/helpers/diff-aware.js.map +1 -1
  192. package/dist/helpers/matchers.d.ts.map +1 -1
  193. package/dist/helpers/matchers.js +51 -67
  194. package/dist/helpers/matchers.js.map +1 -1
  195. package/dist/index.d.ts +15 -18
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +37 -18
  198. package/dist/index.js.map +1 -1
  199. package/dist/models/arch-function.d.ts +26 -2
  200. package/dist/models/arch-function.d.ts.map +1 -1
  201. package/dist/models/arch-function.js +51 -17
  202. package/dist/models/arch-function.js.map +1 -1
  203. package/dist/models/arch-jsx-element.d.ts.map +1 -1
  204. package/dist/models/arch-jsx-element.js +16 -17
  205. package/dist/models/arch-jsx-element.js.map +1 -1
  206. package/dist/predicates/jsx.d.ts.map +1 -1
  207. package/dist/predicates/jsx.js +2 -1
  208. package/dist/predicates/jsx.js.map +1 -1
  209. package/dist/presets/agent-guardrails.d.ts +29 -3
  210. package/dist/presets/agent-guardrails.d.ts.map +1 -1
  211. package/dist/presets/agent-guardrails.js +185 -1
  212. package/dist/presets/agent-guardrails.js.map +1 -1
  213. package/dist/presets/boundaries.d.ts +2 -2
  214. package/dist/presets/boundaries.d.ts.map +1 -1
  215. package/dist/presets/data-layer.d.ts +2 -2
  216. package/dist/presets/data-layer.d.ts.map +1 -1
  217. package/dist/presets/index.d.ts +4 -1
  218. package/dist/presets/index.d.ts.map +1 -1
  219. package/dist/presets/index.js +11 -1
  220. package/dist/presets/index.js.map +1 -1
  221. package/dist/presets/layered.d.ts +2 -2
  222. package/dist/presets/layered.d.ts.map +1 -1
  223. package/dist/presets/recommended.d.ts +3 -3
  224. package/dist/presets/recommended.d.ts.map +1 -1
  225. package/dist/presets/shared.d.ts +8 -11
  226. package/dist/presets/shared.d.ts.map +1 -1
  227. package/dist/presets/shared.js +57 -28
  228. package/dist/presets/shared.js.map +1 -1
  229. package/dist/rules/metrics-function.d.ts.map +1 -1
  230. package/dist/rules/metrics-function.js +59 -62
  231. package/dist/rules/metrics-function.js.map +1 -1
  232. package/dist/rules/metrics.d.ts.map +1 -1
  233. package/dist/rules/metrics.js +62 -59
  234. package/dist/rules/metrics.js.map +1 -1
  235. package/dist/smells/clusters.d.ts +78 -0
  236. package/dist/smells/clusters.d.ts.map +1 -0
  237. package/dist/smells/clusters.js +124 -0
  238. package/dist/smells/clusters.js.map +1 -0
  239. package/dist/smells/duplicate-bodies.d.ts +38 -4
  240. package/dist/smells/duplicate-bodies.d.ts.map +1 -1
  241. package/dist/smells/duplicate-bodies.js +93 -44
  242. package/dist/smells/duplicate-bodies.js.map +1 -1
  243. package/dist/smells/duplicate-report.d.ts +90 -0
  244. package/dist/smells/duplicate-report.d.ts.map +1 -0
  245. package/dist/smells/duplicate-report.js +344 -0
  246. package/dist/smells/duplicate-report.js.map +1 -0
  247. package/dist/smells/fingerprint.d.ts +12 -0
  248. package/dist/smells/fingerprint.d.ts.map +1 -1
  249. package/dist/smells/fingerprint.js +8 -2
  250. package/dist/smells/fingerprint.js.map +1 -1
  251. package/dist/smells/inconsistent-siblings.js +1 -1
  252. package/dist/smells/inconsistent-siblings.js.map +1 -1
  253. package/dist/smells/similar-pairs.d.ts +9 -8
  254. package/dist/smells/similar-pairs.d.ts.map +1 -1
  255. package/dist/smells/similar-pairs.js +83 -1
  256. package/dist/smells/similar-pairs.js.map +1 -1
  257. package/dist/smells/smell-builder.d.ts.map +1 -1
  258. package/dist/smells/smell-builder.js +3 -2
  259. package/dist/smells/smell-builder.js.map +1 -1
  260. package/dist/smells/variation.d.ts +47 -0
  261. package/dist/smells/variation.d.ts.map +1 -0
  262. package/dist/smells/variation.js +90 -0
  263. package/dist/smells/variation.js.map +1 -0
  264. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
  265. package/dist/tsconfig/tsconfig-builder.js +3 -2
  266. package/dist/tsconfig/tsconfig-builder.js.map +1 -1
  267. package/package.json +3 -2
@@ -7,6 +7,24 @@ import { buildFingerprint, computeSimilarity } from './fingerprint.js';
7
7
  * thresholds arrive as arguments rather than being read off a builder, so the
8
8
  * comparison is callable and testable without one.
9
9
  */
10
+ /**
11
+ * Does one function's body enclose the other's?
12
+ *
13
+ * Only meaningful within one source file; two bodies in different files can
14
+ * never nest. Compared on the BODY spans rather than the declarations, because
15
+ * that is what was fingerprinted.
16
+ */
17
+ function containsOther(a, b) {
18
+ const bodyA = a.getBody();
19
+ const bodyB = b.getBody();
20
+ if (!bodyA || !bodyB)
21
+ return false;
22
+ if (bodyA.getSourceFile() !== bodyB.getSourceFile())
23
+ return false;
24
+ const [startA, endA] = [bodyA.getStart(), bodyA.getEnd()];
25
+ const [startB, endB] = [bodyB.getStart(), bodyB.getEnd()];
26
+ return (startA <= startB && endA >= endB) || (startB <= startA && endB >= endA);
27
+ }
10
28
  /** Build fingerprints for all collected functions. */
11
29
  export function fingerprintAll(functions) {
12
30
  const result = [];
@@ -41,12 +59,76 @@ export function findSimilarPairs(items, minSimilarity, minDistinctVocabulary) {
41
59
  if (minDistinct < minDistinctVocabulary) {
42
60
  continue;
43
61
  }
62
+ // A body compared against a body NESTED INSIDE IT can never be
63
+ // actionable: "extract the shared logic into one function" is impossible
64
+ // when one function already contains the other. The detector generates
65
+ // these itself, because it collects object-literal functions by design —
66
+ // so `const rule = () => ({ evaluate })` yields both the outer arrow and
67
+ // the `evaluate` inside it, and they are similar by construction.
68
+ //
69
+ // Measured on this repo: 10 of 173 pairs, every one of them noise.
70
+ if (containsOther(a.fn, b.fn))
71
+ continue;
72
+ // Bug 0230 — the PAIRWISE floor, where the two above are per-body.
73
+ // Plan 0103 asks "does this body carry enough vocabulary to be
74
+ // evidence?"; nothing asked "do these two carry any of the SAME
75
+ // vocabulary?". `computeSimilarity` cannot answer it and must not — it
76
+ // scores syntax kinds only, which is what makes it a type-2 clone score
77
+ // — so a pair could reach 1.00 on shape with an empty intersection.
78
+ // Shipped, on this repo: `asDeclared` against `InconsistentSiblings-
79
+ // Builder.scope`, two functions that each gather six of their own fields
80
+ // into a record and have not one identifier in common. "Extract the
81
+ // shared logic into one function" names something that does not exist.
82
+ //
83
+ // `=== 0`, never a threshold. Measured over all 89 pairs this repo
84
+ // produces: two share nothing, none share one or two, and the nearest
85
+ // real finding shares four. The gap is empty, so no tuned number is
86
+ // needed — and a non-zero floor would start suppressing copy-paste.
87
+ //
88
+ // Guarded by `minDistinct > 0`, and that is not a special case for a
89
+ // test. "These share no vocabulary" is evidence of unrelatedness only if
90
+ // there was vocabulary to share: two bodies that are pure control flow
91
+ // (`return true`) share their entire content, because the shape IS the
92
+ // content. Whether such a pair is worth reporting is the CALLER's
93
+ // decision, spelled `minDistinctVocabulary(0)`, and rejection 2 above
94
+ // has already applied it. Overriding it here would make that option
95
+ // silently mean something else.
96
+ if (minDistinct > 0 && sharedVocabulary(a.fingerprint, b.fingerprint) === 0)
97
+ continue;
44
98
  const similarity = computeSimilarity(a.fingerprint, b.fingerprint);
45
99
  if (similarity >= minSimilarity) {
46
- pairs.push({ a: a.fn, b: b.fn, similarity });
100
+ pairs.push({
101
+ a: a.fn,
102
+ b: b.fn,
103
+ similarity,
104
+ fingerprintA: a.fingerprint,
105
+ fingerprintB: b.fingerprint,
106
+ });
47
107
  }
48
108
  }
49
109
  }
50
110
  return pairs;
51
111
  }
112
+ /**
113
+ * How many distinct identifiers/literals both bodies use.
114
+ *
115
+ * Reads `Fingerprint.texts`, which `computeSimilarity` deliberately ignores:
116
+ * the score is over syntax kinds so that a renamed copy still scores as a
117
+ * clone. That is right for scoring and wrong for deciding whether two bodies
118
+ * are related at all, which is what this answers.
119
+ */
120
+ function sharedVocabulary(a, b) {
121
+ const theirs = new Set();
122
+ for (const text of b.texts)
123
+ if (text !== undefined)
124
+ theirs.add(text);
125
+ const counted = new Set();
126
+ for (const text of a.texts) {
127
+ if (text === undefined || counted.has(text))
128
+ continue;
129
+ if (theirs.has(text))
130
+ counted.add(text);
131
+ }
132
+ return counted.size;
133
+ }
52
134
  //# sourceMappingURL=similar-pairs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"similar-pairs.js","sourceRoot":"","sources":["../../src/smells/similar-pairs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAetE;;;;;;;GAOG;AAEH,sDAAsD;AACtD,MAAM,UAAU,cAAc,CAAC,SAAyB;IACtD,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;QACzB,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAC9B,KAA8B,EAC9B,aAAqB,EACrB,qBAA6B;IAE7B,MAAM,KAAK,GAAkB,EAAE,CAAA;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAQ;YACtB,sFAAsF;YACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YAC3E,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,QAAQ,GAAG,aAAa,EAAE,CAAC;gBACxD,SAAQ;YACV,CAAC;YACD,4EAA4E;YAC5E,2EAA2E;YAC3E,qEAAqE;YACrE,uCAAuC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,CAAC,CAAC,WAAW,CAAC,kBAAkB,EAChC,CAAC,CAAC,WAAW,CAAC,kBAAkB,CACjC,CAAA;YACD,IAAI,WAAW,GAAG,qBAAqB,EAAE,CAAC;gBACxC,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;YAClE,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"similar-pairs.js","sourceRoot":"","sources":["../../src/smells/similar-pairs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"smell-builder.d.ts","sourceRoot":"","sources":["../../src/smells/smell-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAc7D,8BAAsB,YAAa,SAAQ,eAAe;IAiD5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW;IAhDnD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAK;IACjC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAoB;IAC/C,SAAS,CAAC,YAAY,UAAQ;IAC9B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAK;IACrC,SAAS,CAAC,cAAc,UAAQ;IAEhC;;;;;;;;OAQG;IACH,oEAAoE;cACjD,gBAAgB,IAAI,MAAM;cAI1B,aAAa,IAAI,MAAM,GAAG,SAAS;gBA4BvB,OAAO,EAAE,WAAW;IAInD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM5B,+DAA+D;IAC/D,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAMzB,+DAA+D;IAC/D,WAAW,IAAI,IAAI;IAMnB,sDAAsD;IACtD,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMrC,iFAAiF;IACjF,UAAU,IAAI,WAAW;IAIzB;;;;;;;;;;OAUG;IACM,KAAK,IAAI,SAAS,QAAQ,EAAE;IAuBrC,2CAA2C;IAC3C,aAAa,IAAI,IAAI;IAMrB;;;;;;OAMG;cACgB,IAAI,IAAI,IAAI;IAO/B,8DAA8D;IAC9D,SAAS,CAAC,iBAAiB,IAAI,aAAa;IAI5C,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,aAAa,EAAE;IAE5C;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,IAAI,MAAM;IAEhC,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM;CACtC"}
1
+ {"version":3,"file":"smell-builder.d.ts","sourceRoot":"","sources":["../../src/smells/smell-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAc7D,8BAAsB,YAAa,SAAQ,eAAe;IAiD5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW;IAhDnD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAK;IACjC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAoB;IAC/C,SAAS,CAAC,YAAY,UAAQ;IAC9B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAK;IACrC,SAAS,CAAC,cAAc,UAAQ;IAEhC;;;;;;;;OAQG;IACH,oEAAoE;cACjD,gBAAgB,IAAI,MAAM;cAI1B,aAAa,IAAI,MAAM,GAAG,SAAS;gBA4BvB,OAAO,EAAE,WAAW;IAInD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM5B,+DAA+D;IAC/D,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAMzB,+DAA+D;IAC/D,WAAW,IAAI,IAAI;IAMnB,sDAAsD;IACtD,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMrC,iFAAiF;IACjF,UAAU,IAAI,WAAW;IAIzB;;;;;;;;;;OAUG;IACM,KAAK,IAAI,SAAS,QAAQ,EAAE;IAuBrC,2CAA2C;IAC3C,aAAa,IAAI,IAAI;IAMrB;;;;;;OAMG;cACgB,IAAI,IAAI,IAAI;IAO/B,8DAA8D;IAC9D,SAAS,CAAC,iBAAiB,IAAI,aAAa;IAI5C,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,aAAa,EAAE;IAE5C;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,IAAI,MAAM;IAEhC,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM;CACtC"}
@@ -1,4 +1,5 @@
1
- import { globAnyOf, stampGlobs } from '@nielspeter/eess';
1
+ import { stampGlobs } from '@nielspeter/eess/internal';
2
+ import { globAnyOf, collectResult } from '@nielspeter/eess';
2
3
  import { TerminalBuilder } from '../core/terminal-builder.js';
3
4
  import { isProjectRelative } from '../core/project-relative.js';
4
5
  /**
@@ -142,7 +143,7 @@ export class SmellBuilder extends TerminalBuilder {
142
143
  }
143
144
  /** Delegate to detect() for the terminal builder pipeline. */
144
145
  collectViolations() {
145
- return { violations: this.detect(), examined: this.examinedUnits() };
146
+ return collectResult(this.detect(), { examined: this.examinedUnits() });
146
147
  }
147
148
  }
148
149
  //# sourceMappingURL=smell-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smell-builder.js","sourceRoot":"","sources":["../../src/smells/smell-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smell-builder.js","sourceRoot":"","sources":["../../src/smells/smell-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { Fingerprint } from './fingerprint.js';
2
+ /**
3
+ * One way two similar bodies differ: a text that appears in A where B has
4
+ * another, at structurally-aligned positions.
5
+ *
6
+ * `occurrences` is how many aligned positions carry this same substitution. A
7
+ * systematic rename — `cls` to `fn` throughout — is ONE axis with many
8
+ * occurrences, which is the whole point: it is one decision a reader has to
9
+ * evaluate, not twelve.
10
+ */
11
+ export interface VariationAxis {
12
+ readonly from: string;
13
+ readonly to: string;
14
+ readonly occurrences: number;
15
+ }
16
+ /** What varies between two aligned bodies, and how much of them is shared. */
17
+ export interface Variation {
18
+ /** Distinct substitutions, most frequent first. */
19
+ readonly axes: readonly VariationAxis[];
20
+ /** Aligned text-bearing positions whose texts are identical. */
21
+ readonly sharedTexts: number;
22
+ /** Aligned text-bearing positions compared in total. */
23
+ readonly comparedTexts: number;
24
+ /**
25
+ * `true` when the bodies were too large to align, so the result is a declared
26
+ * non-answer rather than a computed zero (ADR-010: a pass is constructed from
27
+ * evidence, never from a default).
28
+ */
29
+ readonly skipped: boolean;
30
+ }
31
+ /**
32
+ * What varies between two structurally-similar bodies.
33
+ *
34
+ * The detector's score answers "how alike are these shapes". It cannot answer
35
+ * the question a reader actually has — "should I consolidate them" — and that
36
+ * turns almost entirely on HOW MANY things vary:
37
+ *
38
+ * - one axis (`executeCheck` to `executeWarn`) — extract a parameter, clearly
39
+ * - three axes (a measure, a name, a message) — extract, probably
40
+ * - nine axes (every property name differs) — a shared idiom; leave it
41
+ *
42
+ * All three score alike today and read alike on screen, which is why triaging a
43
+ * finding means opening both files. This returns what the reader would have gone
44
+ * looking for.
45
+ */
46
+ export declare function variationBetween(a: Fingerprint, b: Fingerprint): Variation;
47
+ //# sourceMappingURL=variation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variation.d.ts","sourceRoot":"","sources":["../../src/smells/variation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;IACvC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAiDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,SAAS,CA2B1E"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Bodies larger than this are not aligned. Traceback needs the full O(n*m)
3
+ * matrix, unlike `computeSimilarity`'s two-row form, so a pathological pair
4
+ * would allocate hundreds of MB. At the cap the matrix is 1200*1200 Int32 =
5
+ * ~5.8MB, allocated one pair at a time and only for pairs already REPORTED —
6
+ * never on the hot path that compares every pair.
7
+ */
8
+ const MAX_ALIGN = 1200;
9
+ /**
10
+ * Which positions of `a` and `b` the LCS pairs up.
11
+ *
12
+ * `computeSimilarity` throws its alignment away and keeps only the length. The
13
+ * alignment is the thing worth having: it is what lets a caller ask "at the
14
+ * places these two bodies agree structurally, do they say the same words?" —
15
+ * the question that separates a copy-paste from a shared idiom.
16
+ */
17
+ function alignByKind(a, b) {
18
+ const m = a.length;
19
+ const n = b.length;
20
+ const dp = new Int32Array((m + 1) * (n + 1));
21
+ const at = (i, j) => i * (n + 1) + j;
22
+ for (let i = 1; i <= m; i++) {
23
+ for (let j = 1; j <= n; j++) {
24
+ dp[at(i, j)] =
25
+ a[i - 1] === b[j - 1]
26
+ ? (dp[at(i - 1, j - 1)] ?? 0) + 1
27
+ : Math.max(dp[at(i - 1, j)] ?? 0, dp[at(i, j - 1)] ?? 0);
28
+ }
29
+ }
30
+ const pairs = [];
31
+ let i = m;
32
+ let j = n;
33
+ while (i > 0 && j > 0) {
34
+ if (a[i - 1] === b[j - 1]) {
35
+ pairs.push([i - 1, j - 1]);
36
+ i--;
37
+ j--;
38
+ }
39
+ else if ((dp[at(i - 1, j)] ?? 0) >= (dp[at(i, j - 1)] ?? 0)) {
40
+ i--;
41
+ }
42
+ else {
43
+ j--;
44
+ }
45
+ }
46
+ return pairs.reverse();
47
+ }
48
+ /**
49
+ * What varies between two structurally-similar bodies.
50
+ *
51
+ * The detector's score answers "how alike are these shapes". It cannot answer
52
+ * the question a reader actually has — "should I consolidate them" — and that
53
+ * turns almost entirely on HOW MANY things vary:
54
+ *
55
+ * - one axis (`executeCheck` to `executeWarn`) — extract a parameter, clearly
56
+ * - three axes (a measure, a name, a message) — extract, probably
57
+ * - nine axes (every property name differs) — a shared idiom; leave it
58
+ *
59
+ * All three score alike today and read alike on screen, which is why triaging a
60
+ * finding means opening both files. This returns what the reader would have gone
61
+ * looking for.
62
+ */
63
+ export function variationBetween(a, b) {
64
+ if (a.kinds.length > MAX_ALIGN || b.kinds.length > MAX_ALIGN) {
65
+ return { axes: [], sharedTexts: 0, comparedTexts: 0, skipped: true };
66
+ }
67
+ const alignment = alignByKind(a.kinds, b.kinds);
68
+ const counts = new Map();
69
+ let shared = 0;
70
+ let compared = 0;
71
+ for (const [i, j] of alignment) {
72
+ const ta = a.texts[i];
73
+ const tb = b.texts[j];
74
+ if (ta === undefined && tb === undefined)
75
+ continue;
76
+ compared += 1;
77
+ if (ta === tb) {
78
+ shared += 1;
79
+ continue;
80
+ }
81
+ const from = ta ?? '';
82
+ const to = tb ?? '';
83
+ const key = `${from}\0${to}`;
84
+ const prev = counts.get(key);
85
+ counts.set(key, { from, to, occurrences: (prev?.occurrences ?? 0) + 1 });
86
+ }
87
+ const axes = [...counts.values()].sort((x, y) => y.occurrences - x.occurrences || x.from.localeCompare(y.from));
88
+ return { axes, sharedTexts: shared, comparedTexts: compared, skipped: false };
89
+ }
90
+ //# sourceMappingURL=variation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variation.js","sourceRoot":"","sources":["../../src/smells/variation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig-builder.d.ts","sourceRoot":"","sources":["../../src/tsconfig/tsconfig-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAK7D;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAGtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,aAAa,CAA+B;gBAEvB,OAAO,EAAE,WAAW;IAIjD;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAM9C;;;;;;;OAOG;IACM,gBAAgB,IAAI,OAAO;IAIpC;;;;;;OAMG;IACM,eAAe,IAAI,MAAM;IAOlC,+EAA+E;IACtE,YAAY,IAAI,eAAe;IAOxC;;;;;;;OAOG;IACH,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,iBAAiB,IAAI,aAAa;IA+B5C;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"tsconfig-builder.d.ts","sourceRoot":"","sources":["../../src/tsconfig/tsconfig-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAGhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAK7D;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAGtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,aAAa,CAA+B;gBAEvB,OAAO,EAAE,WAAW;IAIjD;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAM9C;;;;;;;OAOG;IACM,gBAAgB,IAAI,OAAO;IAIpC;;;;;;OAMG;IACM,eAAe,IAAI,MAAM;IAOlC,+EAA+E;IACtE,YAAY,IAAI,eAAe;IAOxC;;;;;;;OAOG;IACH,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,iBAAiB,IAAI,aAAa;IA+B5C;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAGnB"}
@@ -1,4 +1,5 @@
1
- import { isRecord } from '@nielspeter/eess';
1
+ import { collectResult } from '@nielspeter/eess';
2
+ import { isRecord } from '@nielspeter/eess/internal';
2
3
  import { ScriptTarget, ModuleKind, ModuleResolutionKind } from 'ts-morph';
3
4
  import { TerminalBuilder } from '../core/terminal-builder.js';
4
5
  import { isStrictFamily, resolveFlag } from './strict-family.js';
@@ -99,7 +100,7 @@ export class TsconfigBuilder extends TerminalBuilder {
99
100
  // Zero means `.require({})`: a tsconfig rule that asserts nothing, which is
100
101
  // this family's shape of the vacuity every other family expresses as an
101
102
  // empty selection.
102
- return { violations, examined: this.examinedUnits() };
103
+ return collectResult(violations, { examined: this.examinedUnits() });
103
104
  }
104
105
  /**
105
106
  * Prefer the public `getCompilerOptions()` (implemented by `project()` /
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig-builder.js","sourceRoot":"","sources":["../../src/tsconfig/tsconfig-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tsconfig-builder.js","sourceRoot":"","sources":["../../src/tsconfig/tsconfig-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nielspeter/eess-ts",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Architecture testing for TypeScript — the TS dialect of the eess family (formerly ts-archunit)",
5
5
  "type": "module",
6
6
  "exports": {
@@ -79,6 +79,7 @@
79
79
  "author": "Niels Peter",
80
80
  "scripts": {
81
81
  "prepublishOnly": "npm run build",
82
+ "prebuild": "rm -rf dist",
82
83
  "build": "tsc -p tsconfig.build.json && chmod +x dist/cli/bin.js",
83
84
  "test": "vitest run",
84
85
  "test:watch": "vitest",
@@ -114,7 +115,7 @@
114
115
  }
115
116
  },
116
117
  "dependencies": {
117
- "@nielspeter/eess": "^0.4.0",
118
+ "@nielspeter/eess": "^0.5.1",
118
119
  "jiti": "^2.6.1",
119
120
  "picomatch": "^4.0.4",
120
121
  "ts-morph": "^27.0.2"