@nielspeter/eess-ts 0.2.0 → 0.4.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 (433) hide show
  1. package/README.md +87 -34
  2. package/dist/builders/call-rule-builder.d.ts +66 -26
  3. package/dist/builders/call-rule-builder.d.ts.map +1 -1
  4. package/dist/builders/call-rule-builder.js +73 -31
  5. package/dist/builders/call-rule-builder.js.map +1 -1
  6. package/dist/builders/class-rule-builder.d.ts +125 -26
  7. package/dist/builders/class-rule-builder.d.ts.map +1 -1
  8. package/dist/builders/class-rule-builder.js +134 -30
  9. package/dist/builders/class-rule-builder.js.map +1 -1
  10. package/dist/builders/correspondence-builder.d.ts +287 -0
  11. package/dist/builders/correspondence-builder.d.ts.map +1 -0
  12. package/dist/builders/correspondence-builder.js +393 -0
  13. package/dist/builders/correspondence-builder.js.map +1 -0
  14. package/dist/builders/correspondence-findings.d.ts +104 -0
  15. package/dist/builders/correspondence-findings.d.ts.map +1 -0
  16. package/dist/builders/correspondence-findings.js +301 -0
  17. package/dist/builders/correspondence-findings.js.map +1 -0
  18. package/dist/builders/cross-layer-builder.d.ts +99 -16
  19. package/dist/builders/cross-layer-builder.d.ts.map +1 -1
  20. package/dist/builders/cross-layer-builder.js +181 -35
  21. package/dist/builders/cross-layer-builder.js.map +1 -1
  22. package/dist/builders/function-rule-builder.d.ts +144 -25
  23. package/dist/builders/function-rule-builder.d.ts.map +1 -1
  24. package/dist/builders/function-rule-builder.js +173 -26
  25. package/dist/builders/function-rule-builder.js.map +1 -1
  26. package/dist/builders/jsx-rule-builder.d.ts +70 -14
  27. package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
  28. package/dist/builders/jsx-rule-builder.js +73 -14
  29. package/dist/builders/jsx-rule-builder.js.map +1 -1
  30. package/dist/builders/module-rule-builder.d.ts +2 -2
  31. package/dist/builders/module-rule-builder.d.ts.map +1 -1
  32. package/dist/builders/module-rule-builder.js +12 -3
  33. package/dist/builders/module-rule-builder.js.map +1 -1
  34. package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
  35. package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
  36. package/dist/builders/scoped-function-rule-builder.js +12 -0
  37. package/dist/builders/scoped-function-rule-builder.js.map +1 -1
  38. package/dist/builders/slice-discovery-message.d.ts +36 -0
  39. package/dist/builders/slice-discovery-message.d.ts.map +1 -0
  40. package/dist/builders/slice-discovery-message.js +181 -0
  41. package/dist/builders/slice-discovery-message.js.map +1 -0
  42. package/dist/builders/slice-rule-builder.d.ts +151 -12
  43. package/dist/builders/slice-rule-builder.d.ts.map +1 -1
  44. package/dist/builders/slice-rule-builder.js +242 -35
  45. package/dist/builders/slice-rule-builder.js.map +1 -1
  46. package/dist/builders/type-rule-builder.d.ts +95 -24
  47. package/dist/builders/type-rule-builder.d.ts.map +1 -1
  48. package/dist/builders/type-rule-builder.js +105 -29
  49. package/dist/builders/type-rule-builder.js.map +1 -1
  50. package/dist/{helpers → builders}/within.d.ts +2 -2
  51. package/dist/builders/within.d.ts.map +1 -0
  52. package/dist/{helpers → builders}/within.js +1 -1
  53. package/dist/builders/within.js.map +1 -0
  54. package/dist/cli/commands/baseline.d.ts +3 -2
  55. package/dist/cli/commands/baseline.d.ts.map +1 -1
  56. package/dist/cli/commands/baseline.js +68 -6
  57. package/dist/cli/commands/baseline.js.map +1 -1
  58. package/dist/cli/commands/check.d.ts +7 -2
  59. package/dist/cli/commands/check.d.ts.map +1 -1
  60. package/dist/cli/commands/check.js +241 -45
  61. package/dist/cli/commands/check.js.map +1 -1
  62. package/dist/cli/commands/doctor.d.ts +29 -0
  63. package/dist/cli/commands/doctor.d.ts.map +1 -0
  64. package/dist/cli/commands/doctor.js +224 -0
  65. package/dist/cli/commands/doctor.js.map +1 -0
  66. package/dist/cli/commands/explain.d.ts +2 -1
  67. package/dist/cli/commands/explain.d.ts.map +1 -1
  68. package/dist/cli/commands/explain.js +19 -10
  69. package/dist/cli/commands/explain.js.map +1 -1
  70. package/dist/cli/commands/init.d.ts +9 -3
  71. package/dist/cli/commands/init.d.ts.map +1 -1
  72. package/dist/cli/commands/init.js +162 -137
  73. package/dist/cli/commands/init.js.map +1 -1
  74. package/dist/cli/import-rule-module.d.ts +29 -0
  75. package/dist/cli/import-rule-module.d.ts.map +1 -0
  76. package/dist/cli/import-rule-module.js +60 -0
  77. package/dist/cli/import-rule-module.js.map +1 -0
  78. package/dist/cli/index.d.ts +2 -2
  79. package/dist/cli/index.d.ts.map +1 -1
  80. package/dist/cli/index.js +98 -33
  81. package/dist/cli/index.js.map +1 -1
  82. package/dist/cli/load-rules.d.ts +6 -11
  83. package/dist/cli/load-rules.d.ts.map +1 -1
  84. package/dist/cli/load-rules.js +21 -29
  85. package/dist/cli/load-rules.js.map +1 -1
  86. package/dist/cli/resolve-config.d.ts.map +1 -1
  87. package/dist/cli/resolve-config.js +24 -14
  88. package/dist/cli/resolve-config.js.map +1 -1
  89. package/dist/cli/rule-file-findings.d.ts +178 -0
  90. package/dist/cli/rule-file-findings.d.ts.map +1 -0
  91. package/dist/cli/rule-file-findings.js +293 -0
  92. package/dist/cli/rule-file-findings.js.map +1 -0
  93. package/dist/cli/watch.d.ts +20 -7
  94. package/dist/cli/watch.d.ts.map +1 -1
  95. package/dist/cli/watch.js +39 -14
  96. package/dist/cli/watch.js.map +1 -1
  97. package/dist/conditions/body-analysis-function.d.ts.map +1 -1
  98. package/dist/conditions/body-analysis-function.js +16 -7
  99. package/dist/conditions/body-analysis-function.js.map +1 -1
  100. package/dist/conditions/body-analysis-module.d.ts.map +1 -1
  101. package/dist/conditions/body-analysis-module.js +14 -9
  102. package/dist/conditions/body-analysis-module.js.map +1 -1
  103. package/dist/conditions/body-analysis.d.ts.map +1 -1
  104. package/dist/conditions/body-analysis.js +16 -7
  105. package/dist/conditions/body-analysis.js.map +1 -1
  106. package/dist/conditions/call.d.ts.map +1 -1
  107. package/dist/conditions/call.js +38 -17
  108. package/dist/conditions/call.js.map +1 -1
  109. package/dist/conditions/catch-analysis.d.ts +2 -1
  110. package/dist/conditions/catch-analysis.d.ts.map +1 -1
  111. package/dist/conditions/catch-analysis.js.map +1 -1
  112. package/dist/conditions/cross-layer.d.ts +2 -10
  113. package/dist/conditions/cross-layer.d.ts.map +1 -1
  114. package/dist/conditions/cross-layer.js +227 -23
  115. package/dist/conditions/cross-layer.js.map +1 -1
  116. package/dist/conditions/dependency.d.ts +35 -6
  117. package/dist/conditions/dependency.d.ts.map +1 -1
  118. package/dist/conditions/dependency.js +299 -45
  119. package/dist/conditions/dependency.js.map +1 -1
  120. package/dist/conditions/exports.d.ts.map +1 -1
  121. package/dist/conditions/exports.js +10 -0
  122. package/dist/conditions/exports.js.map +1 -1
  123. package/dist/conditions/function.d.ts.map +1 -1
  124. package/dist/conditions/function.js +19 -5
  125. package/dist/conditions/function.js.map +1 -1
  126. package/dist/conditions/helpers.d.ts +2 -1
  127. package/dist/conditions/helpers.d.ts.map +1 -1
  128. package/dist/conditions/helpers.js +4 -1
  129. package/dist/conditions/helpers.js.map +1 -1
  130. package/dist/conditions/jsx.d.ts.map +1 -1
  131. package/dist/conditions/jsx.js +7 -2
  132. package/dist/conditions/jsx.js.map +1 -1
  133. package/dist/conditions/match-identity.d.ts +43 -0
  134. package/dist/conditions/match-identity.d.ts.map +1 -0
  135. package/dist/conditions/match-identity.js +43 -0
  136. package/dist/conditions/match-identity.js.map +1 -0
  137. package/dist/conditions/members.d.ts.map +1 -1
  138. package/dist/conditions/members.js +17 -4
  139. package/dist/conditions/members.js.map +1 -1
  140. package/dist/conditions/reverse-dependency.d.ts +18 -5
  141. package/dist/conditions/reverse-dependency.d.ts.map +1 -1
  142. package/dist/conditions/reverse-dependency.js +109 -92
  143. package/dist/conditions/reverse-dependency.js.map +1 -1
  144. package/dist/conditions/slice.d.ts +86 -2
  145. package/dist/conditions/slice.d.ts.map +1 -1
  146. package/dist/conditions/slice.js +234 -53
  147. package/dist/conditions/slice.js.map +1 -1
  148. package/dist/conditions/structural.d.ts.map +1 -1
  149. package/dist/conditions/structural.js +16 -4
  150. package/dist/conditions/structural.js.map +1 -1
  151. package/dist/core/check-all.d.ts +19 -0
  152. package/dist/core/check-all.d.ts.map +1 -0
  153. package/dist/core/check-all.js +96 -0
  154. package/dist/core/check-all.js.map +1 -0
  155. package/dist/core/combinators.d.ts +48 -0
  156. package/dist/core/combinators.d.ts.map +1 -0
  157. package/dist/core/combinators.js +56 -0
  158. package/dist/core/combinators.js.map +1 -0
  159. package/dist/core/descendant-cache.d.ts +36 -0
  160. package/dist/core/descendant-cache.d.ts.map +1 -0
  161. package/dist/core/descendant-cache.js +119 -0
  162. package/dist/core/descendant-cache.js.map +1 -0
  163. package/dist/core/diagnose.d.ts +234 -0
  164. package/dist/core/diagnose.d.ts.map +1 -0
  165. package/dist/core/diagnose.js +382 -0
  166. package/dist/core/diagnose.js.map +1 -0
  167. package/dist/core/disk-set.d.ts +48 -0
  168. package/dist/core/disk-set.d.ts.map +1 -0
  169. package/dist/core/disk-set.js +218 -0
  170. package/dist/core/disk-set.js.map +1 -0
  171. package/dist/core/element-cache.d.ts +75 -0
  172. package/dist/core/element-cache.d.ts.map +1 -0
  173. package/dist/core/element-cache.js +32 -0
  174. package/dist/core/element-cache.js.map +1 -0
  175. package/dist/core/empty-project-advice.d.ts +75 -0
  176. package/dist/core/empty-project-advice.d.ts.map +1 -0
  177. package/dist/core/empty-project-advice.js +61 -0
  178. package/dist/core/empty-project-advice.js.map +1 -0
  179. package/dist/core/exclusion-comments.d.ts +54 -0
  180. package/dist/core/exclusion-comments.d.ts.map +1 -0
  181. package/dist/core/exclusion-comments.js +310 -0
  182. package/dist/core/exclusion-comments.js.map +1 -0
  183. package/dist/core/execute-rule.d.ts +150 -0
  184. package/dist/core/execute-rule.d.ts.map +1 -0
  185. package/dist/core/execute-rule.js +580 -0
  186. package/dist/core/execute-rule.js.map +1 -0
  187. package/dist/core/glob-diagnosis.d.ts +78 -0
  188. package/dist/core/glob-diagnosis.d.ts.map +1 -0
  189. package/dist/core/glob-diagnosis.js +134 -0
  190. package/dist/core/glob-diagnosis.js.map +1 -0
  191. package/dist/core/glob-evaluator.d.ts +48 -0
  192. package/dist/core/glob-evaluator.d.ts.map +1 -0
  193. package/dist/core/glob-evaluator.js +89 -0
  194. package/dist/core/glob-evaluator.js.map +1 -0
  195. package/dist/core/import-candidates.d.ts +60 -0
  196. package/dist/core/import-candidates.d.ts.map +1 -0
  197. package/dist/core/import-candidates.js +93 -0
  198. package/dist/core/import-candidates.js.map +1 -0
  199. package/dist/core/import-options.d.ts +55 -2
  200. package/dist/core/import-options.d.ts.map +1 -1
  201. package/dist/core/import-options.js +64 -0
  202. package/dist/core/import-options.js.map +1 -1
  203. package/dist/core/line-index.d.ts +3 -0
  204. package/dist/core/line-index.d.ts.map +1 -0
  205. package/dist/core/line-index.js +229 -0
  206. package/dist/core/line-index.js.map +1 -0
  207. package/dist/core/metric-violation.d.ts +86 -0
  208. package/dist/core/metric-violation.d.ts.map +1 -0
  209. package/dist/core/metric-violation.js +132 -0
  210. package/dist/core/metric-violation.js.map +1 -0
  211. package/dist/core/module-edges.d.ts +361 -0
  212. package/dist/core/module-edges.d.ts.map +1 -0
  213. package/dist/core/module-edges.js +592 -0
  214. package/dist/core/module-edges.js.map +1 -0
  215. package/dist/core/object-literal-functions.d.ts +42 -0
  216. package/dist/core/object-literal-functions.d.ts.map +1 -0
  217. package/dist/core/object-literal-functions.js +75 -0
  218. package/dist/core/object-literal-functions.js.map +1 -0
  219. package/dist/core/orphan-exclusions.d.ts +44 -0
  220. package/dist/core/orphan-exclusions.d.ts.map +1 -0
  221. package/dist/core/orphan-exclusions.js +214 -0
  222. package/dist/core/orphan-exclusions.js.map +1 -0
  223. package/dist/core/pair-condition.d.ts +32 -3
  224. package/dist/core/pair-condition.d.ts.map +1 -1
  225. package/dist/core/path-universe.d.ts +54 -0
  226. package/dist/core/path-universe.d.ts.map +1 -0
  227. package/dist/core/path-universe.js +65 -0
  228. package/dist/core/path-universe.js.map +1 -0
  229. package/dist/core/per-root-compiler-options.d.ts +20 -0
  230. package/dist/core/per-root-compiler-options.d.ts.map +1 -0
  231. package/dist/core/per-root-compiler-options.js +57 -0
  232. package/dist/core/per-root-compiler-options.js.map +1 -0
  233. package/dist/core/project-relative.d.ts +98 -0
  234. package/dist/core/project-relative.d.ts.map +1 -0
  235. package/dist/core/project-relative.js +185 -0
  236. package/dist/core/project-relative.js.map +1 -0
  237. package/dist/core/project.d.ts +7 -1
  238. package/dist/core/project.d.ts.map +1 -1
  239. package/dist/core/project.js +24 -0
  240. package/dist/core/project.js.map +1 -1
  241. package/dist/core/rule-builder.d.ts +282 -0
  242. package/dist/core/rule-builder.d.ts.map +1 -0
  243. package/dist/core/rule-builder.js +445 -0
  244. package/dist/core/rule-builder.js.map +1 -0
  245. package/dist/core/rule-declaration.d.ts +32 -0
  246. package/dist/core/rule-declaration.d.ts.map +1 -0
  247. package/dist/core/rule-declaration.js +126 -0
  248. package/dist/core/rule-declaration.js.map +1 -0
  249. package/dist/core/terminal-builder.d.ts +625 -0
  250. package/dist/core/terminal-builder.d.ts.map +1 -0
  251. package/dist/core/terminal-builder.js +787 -0
  252. package/dist/core/terminal-builder.js.map +1 -0
  253. package/dist/core/terminal-execution.d.ts +23 -0
  254. package/dist/core/terminal-execution.d.ts.map +1 -0
  255. package/dist/core/terminal-execution.js +71 -0
  256. package/dist/core/terminal-execution.js.map +1 -0
  257. package/dist/core/vacuity-diagnosis.d.ts +103 -0
  258. package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
  259. package/dist/core/vacuity-diagnosis.js +415 -0
  260. package/dist/core/vacuity-diagnosis.js.map +1 -0
  261. package/dist/core/violation.d.ts +16 -11
  262. package/dist/core/violation.d.ts.map +1 -1
  263. package/dist/core/violation.js +33 -13
  264. package/dist/core/violation.js.map +1 -1
  265. package/dist/graphql/index.js +1 -1
  266. package/dist/graphql/index.js.map +1 -1
  267. package/dist/graphql/resolver-rule-builder.d.ts +98 -23
  268. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
  269. package/dist/graphql/resolver-rule-builder.js +151 -21
  270. package/dist/graphql/resolver-rule-builder.js.map +1 -1
  271. package/dist/graphql/schema-loader.d.ts +21 -0
  272. package/dist/graphql/schema-loader.d.ts.map +1 -1
  273. package/dist/graphql/schema-loader.js +81 -12
  274. package/dist/graphql/schema-loader.js.map +1 -1
  275. package/dist/graphql/schema-rule-builder.d.ts +57 -20
  276. package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
  277. package/dist/graphql/schema-rule-builder.js +101 -25
  278. package/dist/graphql/schema-rule-builder.js.map +1 -1
  279. package/dist/helpers/baseline-diagnostics.d.ts +45 -0
  280. package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
  281. package/dist/helpers/baseline-diagnostics.js +168 -0
  282. package/dist/helpers/baseline-diagnostics.js.map +1 -0
  283. package/dist/helpers/baseline-generator.d.ts +19 -0
  284. package/dist/helpers/baseline-generator.d.ts.map +1 -0
  285. package/dist/helpers/baseline-generator.js +18 -0
  286. package/dist/helpers/baseline-generator.js.map +1 -0
  287. package/dist/helpers/baseline.d.ts +336 -0
  288. package/dist/helpers/baseline.d.ts.map +1 -0
  289. package/dist/helpers/baseline.js +664 -0
  290. package/dist/helpers/baseline.js.map +1 -0
  291. package/dist/helpers/body-traversal.d.ts +27 -2
  292. package/dist/helpers/body-traversal.d.ts.map +1 -1
  293. package/dist/helpers/body-traversal.js +122 -16
  294. package/dist/helpers/body-traversal.js.map +1 -1
  295. package/dist/helpers/callback-extractor.d.ts.map +1 -1
  296. package/dist/helpers/callback-extractor.js +48 -47
  297. package/dist/helpers/callback-extractor.js.map +1 -1
  298. package/dist/helpers/complexity.d.ts +13 -5
  299. package/dist/helpers/complexity.d.ts.map +1 -1
  300. package/dist/helpers/complexity.js +15 -6
  301. package/dist/helpers/complexity.js.map +1 -1
  302. package/dist/helpers/diff-aware.d.ts +44 -0
  303. package/dist/helpers/diff-aware.d.ts.map +1 -0
  304. package/dist/helpers/diff-aware.js +84 -0
  305. package/dist/helpers/diff-aware.js.map +1 -0
  306. package/dist/helpers/matchers.d.ts +68 -7
  307. package/dist/helpers/matchers.d.ts.map +1 -1
  308. package/dist/helpers/matchers.js +114 -20
  309. package/dist/helpers/matchers.js.map +1 -1
  310. package/dist/helpers/slice-graph.d.ts +100 -8
  311. package/dist/helpers/slice-graph.d.ts.map +1 -1
  312. package/dist/helpers/slice-graph.js +126 -34
  313. package/dist/helpers/slice-graph.js.map +1 -1
  314. package/dist/helpers/tarjan.d.ts +0 -14
  315. package/dist/helpers/tarjan.d.ts.map +1 -1
  316. package/dist/helpers/tarjan.js +29 -16
  317. package/dist/helpers/tarjan.js.map +1 -1
  318. package/dist/index.d.ts +56 -17
  319. package/dist/index.d.ts.map +1 -1
  320. package/dist/index.js +57 -13
  321. package/dist/index.js.map +1 -1
  322. package/dist/models/arch-call.d.ts +3 -2
  323. package/dist/models/arch-call.d.ts.map +1 -1
  324. package/dist/models/arch-call.js.map +1 -1
  325. package/dist/models/arch-function.d.ts +28 -6
  326. package/dist/models/arch-function.d.ts.map +1 -1
  327. package/dist/models/arch-function.js +106 -3
  328. package/dist/models/arch-function.js.map +1 -1
  329. package/dist/models/arch-jsx-element.js +2 -2
  330. package/dist/models/arch-jsx-element.js.map +1 -1
  331. package/dist/models/slice.d.ts +33 -9
  332. package/dist/models/slice.d.ts.map +1 -1
  333. package/dist/models/slice.js +129 -19
  334. package/dist/models/slice.js.map +1 -1
  335. package/dist/predicates/call.d.ts.map +1 -1
  336. package/dist/predicates/call.js +5 -0
  337. package/dist/predicates/call.js.map +1 -1
  338. package/dist/predicates/identity.d.ts +21 -0
  339. package/dist/predicates/identity.d.ts.map +1 -1
  340. package/dist/predicates/identity.js +75 -3
  341. package/dist/predicates/identity.js.map +1 -1
  342. package/dist/predicates/index.d.ts +1 -1
  343. package/dist/predicates/index.d.ts.map +1 -1
  344. package/dist/predicates/index.js +1 -1
  345. package/dist/predicates/index.js.map +1 -1
  346. package/dist/predicates/metrics.d.ts +4 -2
  347. package/dist/predicates/metrics.d.ts.map +1 -1
  348. package/dist/predicates/metrics.js +4 -2
  349. package/dist/predicates/metrics.js.map +1 -1
  350. package/dist/predicates/module.d.ts +4 -12
  351. package/dist/predicates/module.d.ts.map +1 -1
  352. package/dist/predicates/module.js +57 -37
  353. package/dist/predicates/module.js.map +1 -1
  354. package/dist/presets/agent-guardrails.d.ts +22 -15
  355. package/dist/presets/agent-guardrails.d.ts.map +1 -1
  356. package/dist/presets/agent-guardrails.js +124 -19
  357. package/dist/presets/agent-guardrails.js.map +1 -1
  358. package/dist/presets/boundaries.d.ts +45 -2
  359. package/dist/presets/boundaries.d.ts.map +1 -1
  360. package/dist/presets/boundaries.js +132 -23
  361. package/dist/presets/boundaries.js.map +1 -1
  362. package/dist/presets/data-layer.d.ts +22 -2
  363. package/dist/presets/data-layer.d.ts.map +1 -1
  364. package/dist/presets/data-layer.js +58 -16
  365. package/dist/presets/data-layer.js.map +1 -1
  366. package/dist/presets/index.d.ts +7 -5
  367. package/dist/presets/index.d.ts.map +1 -1
  368. package/dist/presets/index.js +9 -3
  369. package/dist/presets/index.js.map +1 -1
  370. package/dist/presets/layered.d.ts +46 -2
  371. package/dist/presets/layered.d.ts.map +1 -1
  372. package/dist/presets/layered.js +66 -29
  373. package/dist/presets/layered.js.map +1 -1
  374. package/dist/presets/recommended.d.ts +80 -9
  375. package/dist/presets/recommended.d.ts.map +1 -1
  376. package/dist/presets/recommended.js +25 -23
  377. package/dist/presets/recommended.js.map +1 -1
  378. package/dist/presets/shared.d.ts +270 -2
  379. package/dist/presets/shared.d.ts.map +1 -1
  380. package/dist/presets/shared.js +338 -4
  381. package/dist/presets/shared.js.map +1 -1
  382. package/dist/rules/code-quality.d.ts.map +1 -1
  383. package/dist/rules/code-quality.js +15 -6
  384. package/dist/rules/code-quality.js.map +1 -1
  385. package/dist/rules/hygiene.d.ts +1 -1
  386. package/dist/rules/hygiene.js +1 -1
  387. package/dist/rules/metrics-function.d.ts +2 -1
  388. package/dist/rules/metrics-function.d.ts.map +1 -1
  389. package/dist/rules/metrics-function.js +33 -6
  390. package/dist/rules/metrics-function.js.map +1 -1
  391. package/dist/rules/metrics.d.ts +2 -1
  392. package/dist/rules/metrics.d.ts.map +1 -1
  393. package/dist/rules/metrics.js +39 -9
  394. package/dist/rules/metrics.js.map +1 -1
  395. package/dist/smells/duplicate-bodies.d.ts +58 -5
  396. package/dist/smells/duplicate-bodies.d.ts.map +1 -1
  397. package/dist/smells/duplicate-bodies.js +137 -56
  398. package/dist/smells/duplicate-bodies.js.map +1 -1
  399. package/dist/smells/fingerprint.d.ts +8 -1
  400. package/dist/smells/fingerprint.d.ts.map +1 -1
  401. package/dist/smells/fingerprint.js +21 -3
  402. package/dist/smells/fingerprint.js.map +1 -1
  403. package/dist/smells/inconsistent-siblings.d.ts +128 -7
  404. package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
  405. package/dist/smells/inconsistent-siblings.js +288 -86
  406. package/dist/smells/inconsistent-siblings.js.map +1 -1
  407. package/dist/smells/sibling-files.d.ts +47 -0
  408. package/dist/smells/sibling-files.d.ts.map +1 -0
  409. package/dist/smells/sibling-files.js +104 -0
  410. package/dist/smells/sibling-files.js.map +1 -0
  411. package/dist/smells/similar-pairs.d.ts +27 -0
  412. package/dist/smells/similar-pairs.d.ts.map +1 -0
  413. package/dist/smells/similar-pairs.js +52 -0
  414. package/dist/smells/similar-pairs.js.map +1 -0
  415. package/dist/smells/smell-builder.d.ts +57 -12
  416. package/dist/smells/smell-builder.d.ts.map +1 -1
  417. package/dist/smells/smell-builder.js +111 -14
  418. package/dist/smells/smell-builder.js.map +1 -1
  419. package/dist/tsconfig/index.d.ts +19 -0
  420. package/dist/tsconfig/index.d.ts.map +1 -0
  421. package/dist/tsconfig/index.js +20 -0
  422. package/dist/tsconfig/index.js.map +1 -0
  423. package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
  424. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
  425. package/dist/tsconfig/tsconfig-builder.js +64 -16
  426. package/dist/tsconfig/tsconfig-builder.js.map +1 -1
  427. package/package.json +3 -2
  428. package/dist/core/module-dependencies.d.ts +0 -28
  429. package/dist/core/module-dependencies.d.ts.map +0 -1
  430. package/dist/core/module-dependencies.js +0 -35
  431. package/dist/core/module-dependencies.js.map +0 -1
  432. package/dist/helpers/within.d.ts.map +0 -1
  433. package/dist/helpers/within.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"body-analysis-function.d.ts","sourceRoot":"","sources":["../../src/conditions/body-analysis-function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAwB9D;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,YAAY,CAAC,CAoBnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,YAAY,CAAC,CAoBtF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,iBAAiB,GACtB,SAAS,CAAC,YAAY,CAAC,CAgCzB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,SAAS,CAAC,YAAY,CAAC,CAyBlE"}
1
+ {"version":3,"file":"body-analysis-function.d.ts","sourceRoot":"","sources":["../../src/conditions/body-analysis-function.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAyB9D;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,YAAY,CAAC,CAoBnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,YAAY,CAAC,CA2BtF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,iBAAiB,GACtB,SAAS,CAAC,YAAY,CAAC,CAuCzB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,SAAS,CAAC,YAAY,CAAC,CAyBlE"}
@@ -1,5 +1,6 @@
1
1
  import { Node } from 'ts-morph';
2
- import { searchFunctionBody } from '../helpers/body-traversal.js';
2
+ import { searchFunctionBody, reportedLine } from '../helpers/body-traversal.js';
3
+ import { identifyMatches } from './match-identity.js';
3
4
  /**
4
5
  * Create an ArchViolation from an ArchFunction (not a Node).
5
6
  *
@@ -44,9 +45,13 @@ export function functionNotContain(matcher) {
44
45
  const violations = [];
45
46
  for (const fn of elements) {
46
47
  const result = searchFunctionBody(fn, matcher);
47
- for (const node of result.matchingNodes) {
48
- violations.push(createFunctionViolation(fn, `${fn.getName() ?? '<anonymous>'} contains ${matcher.description} at line ${String(node.getStartLineNumber())}`, context));
49
- }
48
+ const identities = identifyMatches('function-body', fn.getSourceFile().getFilePath(), result.matchingNodes, matcher.description);
49
+ result.matchingNodes.forEach((node, index) => {
50
+ violations.push({
51
+ ...createFunctionViolation(fn, `${fn.getName() ?? '<anonymous>'} contains ${matcher.description} at line ${String(reportedLine(node, result.triviaPositions[index]))}`, context),
52
+ identity: identities[index],
53
+ });
54
+ });
50
55
  }
51
56
  return violations;
52
57
  },
@@ -63,9 +68,13 @@ export function functionUseInsteadOf(bad, good) {
63
68
  for (const fn of elements) {
64
69
  const badResult = searchFunctionBody(fn, bad);
65
70
  const goodResult = searchFunctionBody(fn, good);
66
- for (const node of badResult.matchingNodes) {
67
- violations.push(createFunctionViolation(fn, `${fn.getName() ?? '<anonymous>'} contains ${bad.description} at line ${String(node.getStartLineNumber())} — use ${good.description} instead`, context));
68
- }
71
+ const identities = identifyMatches('function-body', fn.getSourceFile().getFilePath(), badResult.matchingNodes, bad.description);
72
+ badResult.matchingNodes.forEach((node, index) => {
73
+ violations.push({
74
+ ...createFunctionViolation(fn, `${fn.getName() ?? '<anonymous>'} contains ${bad.description} at line ${String(reportedLine(node, badResult.triviaPositions[index]))} — use ${good.description} instead`, context),
75
+ identity: identities[index],
76
+ });
77
+ });
69
78
  if (!goodResult.found) {
70
79
  violations.push(createFunctionViolation(fn, `${fn.getName() ?? '<anonymous>'} does not contain ${good.description}`, context));
71
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"body-analysis-function.js","sourceRoot":"","sources":["../../src/conditions/body-analysis-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"body-analysis-function.js","sourceRoot":"","sources":["../../src/conditions/body-analysis-function.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"body-analysis-module.d.ts","sourceRoot":"","sources":["../../src/conditions/body-analysis-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAIvF;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,CAAC,UAAU,CAAC,CAqBvB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,CAAC,UAAU,CAAC,CAqBvB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,CAAC,UAAU,CAAC,CAkCvB"}
1
+ {"version":3,"file":"body-analysis-module.d.ts","sourceRoot":"","sources":["../../src/conditions/body-analysis-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,8BAA8B,CAAA;AAIrC;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,CAAC,UAAU,CAAC,CAqBvB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,CAAC,UAAU,CAAC,CA4BvB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,CAAC,UAAU,CAAC,CAyCvB"}
@@ -1,4 +1,5 @@
1
- import { searchModuleBody } from '../helpers/body-traversal.js';
1
+ import { identifyMatches } from './match-identity.js';
2
+ import { searchModuleBody, reportedLine, } from '../helpers/body-traversal.js';
2
3
  // ─── Module body conditions ────────────────────────────────────────
3
4
  /**
4
5
  * Module must contain at least one node matching the matcher.
@@ -42,16 +43,18 @@ export function moduleNotContain(matcher, options) {
42
43
  const violations = [];
43
44
  for (const sf of elements) {
44
45
  const result = searchModuleBody(sf, matcher, options);
45
- for (const node of result.matchingNodes) {
46
+ const identities = identifyMatches('module-body', sf.getFilePath(), result.matchingNodes, matcher.description);
47
+ result.matchingNodes.forEach((node, index) => {
46
48
  violations.push({
47
49
  rule: context.rule,
48
50
  element: sf.getBaseName(),
49
51
  file: sf.getFilePath(),
50
- line: node.getStartLineNumber(),
51
- message: `${sf.getBaseName()} contains ${matcher.description} at line ${String(node.getStartLineNumber())}`,
52
+ line: reportedLine(node, result.triviaPositions[index]),
53
+ message: `${sf.getBaseName()} contains ${matcher.description} at line ${String(reportedLine(node, result.triviaPositions[index]))}`,
54
+ identity: identities[index],
52
55
  because: context.because,
53
56
  });
54
- }
57
+ });
55
58
  }
56
59
  return violations;
57
60
  },
@@ -71,16 +74,18 @@ export function moduleUseInsteadOf(bad, good, options) {
71
74
  for (const sf of elements) {
72
75
  const badResult = searchModuleBody(sf, bad, options);
73
76
  const goodResult = searchModuleBody(sf, good, options);
74
- for (const node of badResult.matchingNodes) {
77
+ const identities = identifyMatches('module-body', sf.getFilePath(), badResult.matchingNodes, bad.description);
78
+ badResult.matchingNodes.forEach((node, index) => {
75
79
  violations.push({
76
80
  rule: context.rule,
77
81
  element: sf.getBaseName(),
78
82
  file: sf.getFilePath(),
79
- line: node.getStartLineNumber(),
80
- message: `${sf.getBaseName()} contains ${bad.description} at line ${String(node.getStartLineNumber())} — use ${good.description} instead`,
83
+ line: reportedLine(node, badResult.triviaPositions[index]),
84
+ message: `${sf.getBaseName()} contains ${bad.description} at line ${String(reportedLine(node, badResult.triviaPositions[index]))} — use ${good.description} instead`,
85
+ identity: identities[index],
81
86
  because: context.because,
82
87
  });
83
- }
88
+ });
84
89
  if (!goodResult.found) {
85
90
  violations.push({
86
91
  rule: context.rule,
@@ -1 +1 @@
1
- {"version":3,"file":"body-analysis-module.js","sourceRoot":"","sources":["../../src/conditions/body-analysis-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"body-analysis-module.js","sourceRoot":"","sources":["../../src/conditions/body-analysis-module.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"body-analysis.d.ts","sourceRoot":"","sources":["../../src/conditions/body-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK/D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAoBpF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAoBvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,iBAAiB,GACtB,SAAS,CAAC,gBAAgB,CAAC,CAkC7B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAmBnE"}
1
+ {"version":3,"file":"body-analysis.d.ts","sourceRoot":"","sources":["../../src/conditions/body-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAInE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK/D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAoBpF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CA2BvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,iBAAiB,GACtB,SAAS,CAAC,gBAAgB,CAAC,CAyC7B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAmBnE"}
@@ -1,5 +1,6 @@
1
1
  import { createViolation, getElementName } from '../core/violation.js';
2
- import { searchClassBody } from '../helpers/body-traversal.js';
2
+ import { identifyMatches } from './match-identity.js';
3
+ import { searchClassBody, reportedLine } from '../helpers/body-traversal.js';
3
4
  // ─── Class body conditions ──────────────────────────────────────────
4
5
  /**
5
6
  * Class body must contain at least one node matching the matcher.
@@ -34,9 +35,13 @@ export function classNotContain(matcher) {
34
35
  const violations = [];
35
36
  for (const cls of elements) {
36
37
  const result = searchClassBody(cls, matcher);
37
- for (const node of result.matchingNodes) {
38
- violations.push(createViolation(cls, `${getElementName(cls)} contains ${matcher.description} at line ${String(node.getStartLineNumber())}`, context));
39
- }
38
+ const identities = identifyMatches('class-body', cls.getSourceFile().getFilePath(), result.matchingNodes, matcher.description);
39
+ result.matchingNodes.forEach((node, index) => {
40
+ violations.push({
41
+ ...createViolation(cls, `${getElementName(cls)} contains ${matcher.description} at line ${String(reportedLine(node, result.triviaPositions[index]))}`, context),
42
+ identity: identities[index],
43
+ });
44
+ });
40
45
  }
41
46
  return violations;
42
47
  },
@@ -61,9 +66,13 @@ export function classUseInsteadOf(bad, good) {
61
66
  const badResult = searchClassBody(cls, bad);
62
67
  const goodResult = searchClassBody(cls, good);
63
68
  // Report each occurrence of the bad pattern
64
- for (const node of badResult.matchingNodes) {
65
- violations.push(createViolation(cls, `${getElementName(cls)} contains ${bad.description} at line ${String(node.getStartLineNumber())} — use ${good.description} instead`, context));
66
- }
69
+ const identities = identifyMatches('class-body', cls.getSourceFile().getFilePath(), badResult.matchingNodes, bad.description);
70
+ badResult.matchingNodes.forEach((node, index) => {
71
+ violations.push({
72
+ ...createViolation(cls, `${getElementName(cls)} contains ${bad.description} at line ${String(reportedLine(node, badResult.triviaPositions[index]))} — use ${good.description} instead`, context),
73
+ identity: identities[index],
74
+ });
75
+ });
67
76
  // If the good pattern is missing entirely, report that too
68
77
  if (!goodResult.found) {
69
78
  violations.push(createViolation(cls, `${getElementName(cls)} does not contain ${good.description}`, context));
@@ -1 +1 @@
1
- {"version":3,"file":"body-analysis.js","sourceRoot":"","sources":["../../src/conditions/body-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"body-analysis.js","sourceRoot":"","sources":["../../src/conditions/body-analysis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/conditions/call.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAqCtD;;GAEG;AACH,wBAAgB,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,CAa9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAoBtF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA6BzF;AAiCD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAsChF;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAqCnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA4BtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA0BzF"}
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/conditions/call.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAgDtD;;GAEG;AACH,wBAAgB,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,CAiB9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAoBtF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAsCzF;AAiCD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAsChF;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAqCnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA4BtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA+BzF"}
@@ -1,5 +1,7 @@
1
1
  import { Node } from 'ts-morph';
2
- import { getFunctionBody, findMatchesInNode } from '../helpers/body-traversal.js';
2
+ import { getFunctionBody, findMatchesInNode, reportedLine } from '../helpers/body-traversal.js';
3
+ import { identifyMatches } from './match-identity.js';
4
+ import { marksAssertsCardinality } from '@nielspeter/eess';
3
5
  /**
4
6
  * Helper to create a violation from an ArchCall.
5
7
  *
@@ -17,6 +19,14 @@ function createCallViolation(archCall, message, context) {
17
19
  because: context.because,
18
20
  };
19
21
  }
22
+ /**
23
+ * The call's identity name — the same value `createCallViolation` puts in
24
+ * `element`, without the message-only elision. Buckets matches per call, so
25
+ * adding a second registration nearby does not renumber the first one's.
26
+ */
27
+ function identityNameOf(archCall, context) {
28
+ return archCall.getName({ withArgument: context.identifyByArgument }) ?? '<call>';
29
+ }
20
30
  /**
21
31
  * Resolve the name for use in a violation MESSAGE (elision enabled).
22
32
  *
@@ -32,12 +42,16 @@ function callNameForMessage(archCall, context) {
32
42
  * The filtered call set must be empty --- no calls should match the predicates.
33
43
  */
34
44
  export function notExist() {
35
- return {
45
+ // Satisfied by an EMPTY selection — registered rather than tagged, because a
46
+ // symbol keyed on this object is readable off it and forgeable (bug 0050).
47
+ return marksAssertsCardinality({
36
48
  description: 'not exist',
49
+ // Zero subjects is this condition's PASSING state, so an empty selection
50
+ // and an unsatisfiable selector glob are both correct here (plan 0074).
37
51
  evaluate(elements, context) {
38
52
  return elements.map((archCall) => createCallViolation(archCall, `${callNameForMessage(archCall, context)} should not exist`, context));
39
53
  },
40
- };
54
+ });
41
55
  }
42
56
  /**
43
57
  * Assert that at least one callback argument contains a match.
@@ -76,15 +90,20 @@ export function notHaveCallbackContaining(matcher) {
76
90
  // literal-shape walk inside getName({...}) is identical for each.
77
91
  const callName = callNameForMessage(archCall, context);
78
92
  const args = archCall.getArguments();
79
- for (const arg of args) {
93
+ // Flatten across arguments before assigning identities: a per-argument
94
+ // counter would restart at 1 for each callback, so two callbacks with a
95
+ // match in the same enclosing declaration would collide.
96
+ const matches = args.flatMap((arg) => {
80
97
  const body = getFunctionBody(arg);
81
- if (!body)
82
- continue;
83
- const matches = findMatchesInNode(body, matcher);
84
- for (const match of matches) {
85
- violations.push(createCallViolation(archCall, `${callName} has callback containing ${matcher.description} at line ${String(match.getStartLineNumber())}`, context));
86
- }
87
- }
98
+ return body ? findMatchesInNode(body, matcher) : [];
99
+ });
100
+ const identities = identifyMatches('call-callback', archCall.getSourceFile().getFilePath(), matches.map((m) => m.node), `${identityNameOf(archCall, context)} :: ${matcher.description}`);
101
+ matches.forEach((match, index) => {
102
+ violations.push({
103
+ ...createCallViolation(archCall, `${callName} has callback containing ${matcher.description} at line ${String(reportedLine(match.node, match.triviaPos))}`, context),
104
+ identity: identities[index],
105
+ });
106
+ });
88
107
  }
89
108
  return violations;
90
109
  },
@@ -253,12 +272,14 @@ export function notHaveArgumentContaining(matcher) {
253
272
  // same archCall — same identity work each time.
254
273
  const callName = callNameForMessage(archCall, context);
255
274
  const args = archCall.getArguments();
256
- for (const arg of args) {
257
- const matches = findMatchesInNode(arg, matcher);
258
- for (const match of matches) {
259
- violations.push(createCallViolation(archCall, `${callName} argument contains ${matcher.description} at line ${String(match.getStartLineNumber())}`, context));
260
- }
261
- }
275
+ const matches = args.flatMap((arg) => findMatchesInNode(arg, matcher));
276
+ const identities = identifyMatches('call-argument', archCall.getSourceFile().getFilePath(), matches.map((m) => m.node), `${identityNameOf(archCall, context)} :: ${matcher.description}`);
277
+ matches.forEach((match, index) => {
278
+ violations.push({
279
+ ...createCallViolation(archCall, `${callName} argument contains ${matcher.description} at line ${String(reportedLine(match.node, match.triviaPos))}`, context),
280
+ identity: identities[index],
281
+ });
282
+ });
262
283
  }
263
284
  return violations;
264
285
  },
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/conditions/call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/conditions/call.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Node } from 'ts-morph';
2
2
  /**
3
3
  * Result of scanning a single catch clause.
4
4
  */
5
- export interface SilentCatchResult {
5
+ interface SilentCatchResult {
6
6
  /** The CatchClause node — used for violation line and code frame */
7
7
  node: Node;
8
8
  /** Human-readable description of why this catch is silent */
@@ -28,4 +28,5 @@ export interface SilentCatchResult {
28
28
  * Both are rare in practice and arguably code smells themselves.
29
29
  */
30
30
  export declare function findSilentCatches(body: Node): SilentCatchResult[];
31
+ export {};
31
32
  //# sourceMappingURL=catch-analysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catch-analysis.d.ts","sourceRoot":"","sources":["../../src/conditions/catch-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,UAAU,CAAA;AAE3C;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,IAAI,EAAE,IAAI,CAAA;IACV,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;CAChB;AA8BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,EAAE,CAqCjE"}
1
+ {"version":3,"file":"catch-analysis.d.ts","sourceRoot":"","sources":["../../src/conditions/catch-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,UAAU,CAAA;AAE3C;;GAEG;AACH,UAAU,iBAAiB;IACzB,oEAAoE;IACpE,IAAI,EAAE,IAAI,CAAA;IACV,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;CAChB;AA8BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,EAAE,CAqCjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"catch-analysis.js","sourceRoot":"","sources":["../../src/conditions/catch-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAa3C;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAc;IACrC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;gBACzC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yEAAyE;IACzE,OAAO,IAAI,GAAG,EAAU,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,MAAM,OAAO,GAAwB,EAAE,CAAA;IAEvC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,WAAW,CAAC,sBAAsB,EAAE,CAAA;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,wDAAwD;YACxD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,gEAAgE;aAC1E,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAE3D,oFAAoF;QACpF,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,SAAQ;QAErC,sEAAsE;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;QACpC,MAAM,YAAY,GAAG,KAAK;aACvB,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC;aAC3C,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAE/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,sBAAsB,OAAO,yDAAyD;aAChG,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"catch-analysis.js","sourceRoot":"","sources":["../../src/conditions/catch-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAY3C;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAc;IACrC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;gBACzC,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yEAAyE;IACzE,OAAO,IAAI,GAAG,EAAU,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,MAAM,OAAO,GAAwB,EAAE,CAAA;IAEvC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,WAAW,CAAC,sBAAsB,EAAE,CAAA;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,wDAAwD;YACxD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,gEAAgE;aAC1E,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAE3D,oFAAoF;QACpF,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,SAAQ;QAErC,sEAAsE;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;QACpC,MAAM,YAAY,GAAG,KAAK;aACvB,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC;aAC3C,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAE/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,sBAAsB,OAAO,yDAAyD;aAChG,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,16 +1,8 @@
1
1
  import type { SourceFile } from 'ts-morph';
2
2
  import type { PairCondition } from '../core/pair-condition.js';
3
- import type { ArchViolation } from '../core/violation.js';
3
+ import type { ArchViolation } from '@nielspeter/eess';
4
4
  import type { LayerPair, Layer } from '../models/cross-layer.js';
5
- /**
6
- * Every element in the left layer must have at least one match in the right layer.
7
- *
8
- * Produces a violation for each left-layer file that has no matching pair.
9
- * "Match" is determined by the mapping function provided via `.mapping()`.
10
- *
11
- * @param layers - The resolved layers, needed to identify unmatched left files
12
- */
13
- export declare function haveMatchingCounterpart(layers: Layer[]): PairCondition;
5
+ export declare function haveMatchingCounterpart(explicitLayers?: Layer[]): PairCondition;
14
6
  /**
15
7
  * The matched pair must have consistent exported symbol names.
16
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cross-layer.d.ts","sourceRoot":"","sources":["../../src/conditions/cross-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CA2CtE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,EAAE,EAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,EAAE,GAC3C,aAAa,CA8Bf;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,aAAa,GAAG,IAAI,GAC5C,aAAa,CAcf"}
1
+ {"version":3,"file":"cross-layer.d.ts","sourceRoot":"","sources":["../../src/conditions/cross-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAO9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAiKhE,wBAAgB,uBAAuB,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,aAAa,CAwF/E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,EAAE,EAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,EAAE,GAC3C,aAAa,CA0Cf;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,aAAa,GAAG,IAAI,GAC5C,aAAa,CA0Bf"}