@nielspeter/eess-ts 0.2.1 → 0.5.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 (467) hide show
  1. package/README.md +61 -35
  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 +75 -32
  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 +141 -55
  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 +385 -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 +182 -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 +177 -39
  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 +16 -19
  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 +243 -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 +109 -42
  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 +8 -3
  55. package/dist/cli/commands/baseline.d.ts.map +1 -1
  56. package/dist/cli/commands/baseline.js +111 -7
  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 +385 -47
  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 +47 -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 +101 -43
  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 +25 -32
  85. package/dist/cli/load-rules.js.map +1 -1
  86. package/dist/cli/resolve-config.d.ts +0 -8
  87. package/dist/cli/resolve-config.d.ts.map +1 -1
  88. package/dist/cli/resolve-config.js +25 -55
  89. package/dist/cli/resolve-config.js.map +1 -1
  90. package/dist/cli/rule-file-findings.d.ts +178 -0
  91. package/dist/cli/rule-file-findings.d.ts.map +1 -0
  92. package/dist/cli/rule-file-findings.js +351 -0
  93. package/dist/cli/rule-file-findings.js.map +1 -0
  94. package/dist/cli/watch.d.ts +17 -34
  95. package/dist/cli/watch.d.ts.map +1 -1
  96. package/dist/cli/watch.js +14 -129
  97. package/dist/cli/watch.js.map +1 -1
  98. package/dist/conditions/body-analysis-function.d.ts.map +1 -1
  99. package/dist/conditions/body-analysis-function.js +16 -7
  100. package/dist/conditions/body-analysis-function.js.map +1 -1
  101. package/dist/conditions/body-analysis-module.d.ts.map +1 -1
  102. package/dist/conditions/body-analysis-module.js +14 -9
  103. package/dist/conditions/body-analysis-module.js.map +1 -1
  104. package/dist/conditions/body-analysis.d.ts.map +1 -1
  105. package/dist/conditions/body-analysis.js +16 -7
  106. package/dist/conditions/body-analysis.js.map +1 -1
  107. package/dist/conditions/call.d.ts.map +1 -1
  108. package/dist/conditions/call.js +41 -19
  109. package/dist/conditions/call.js.map +1 -1
  110. package/dist/conditions/catch-analysis.d.ts +2 -1
  111. package/dist/conditions/catch-analysis.d.ts.map +1 -1
  112. package/dist/conditions/catch-analysis.js.map +1 -1
  113. package/dist/conditions/cross-layer.d.ts +2 -10
  114. package/dist/conditions/cross-layer.d.ts.map +1 -1
  115. package/dist/conditions/cross-layer.js +227 -23
  116. package/dist/conditions/cross-layer.js.map +1 -1
  117. package/dist/conditions/dependency.d.ts +35 -6
  118. package/dist/conditions/dependency.d.ts.map +1 -1
  119. package/dist/conditions/dependency.js +299 -45
  120. package/dist/conditions/dependency.js.map +1 -1
  121. package/dist/conditions/exports.d.ts.map +1 -1
  122. package/dist/conditions/exports.js +41 -37
  123. package/dist/conditions/exports.js.map +1 -1
  124. package/dist/conditions/function.d.ts.map +1 -1
  125. package/dist/conditions/function.js +19 -5
  126. package/dist/conditions/function.js.map +1 -1
  127. package/dist/conditions/helpers.d.ts +2 -1
  128. package/dist/conditions/helpers.d.ts.map +1 -1
  129. package/dist/conditions/helpers.js +4 -1
  130. package/dist/conditions/helpers.js.map +1 -1
  131. package/dist/conditions/jsx.d.ts.map +1 -1
  132. package/dist/conditions/jsx.js +7 -2
  133. package/dist/conditions/jsx.js.map +1 -1
  134. package/dist/conditions/match-identity.d.ts +43 -0
  135. package/dist/conditions/match-identity.d.ts.map +1 -0
  136. package/dist/conditions/match-identity.js +43 -0
  137. package/dist/conditions/match-identity.js.map +1 -0
  138. package/dist/conditions/members.d.ts.map +1 -1
  139. package/dist/conditions/members.js +20 -6
  140. package/dist/conditions/members.js.map +1 -1
  141. package/dist/conditions/reverse-dependency.d.ts +18 -5
  142. package/dist/conditions/reverse-dependency.d.ts.map +1 -1
  143. package/dist/conditions/reverse-dependency.js +155 -93
  144. package/dist/conditions/reverse-dependency.js.map +1 -1
  145. package/dist/conditions/slice.d.ts +86 -2
  146. package/dist/conditions/slice.d.ts.map +1 -1
  147. package/dist/conditions/slice.js +234 -53
  148. package/dist/conditions/slice.js.map +1 -1
  149. package/dist/conditions/structural.d.ts.map +1 -1
  150. package/dist/conditions/structural.js +16 -4
  151. package/dist/conditions/structural.js.map +1 -1
  152. package/dist/core/check-all.d.ts +19 -0
  153. package/dist/core/check-all.d.ts.map +1 -0
  154. package/dist/core/check-all.js +150 -0
  155. package/dist/core/check-all.js.map +1 -0
  156. package/dist/core/combinators.d.ts +48 -0
  157. package/dist/core/combinators.d.ts.map +1 -0
  158. package/dist/core/combinators.js +49 -0
  159. package/dist/core/combinators.js.map +1 -0
  160. package/dist/core/descendant-cache.d.ts +36 -0
  161. package/dist/core/descendant-cache.d.ts.map +1 -0
  162. package/dist/core/descendant-cache.js +117 -0
  163. package/dist/core/descendant-cache.js.map +1 -0
  164. package/dist/core/diagnose.d.ts +234 -0
  165. package/dist/core/diagnose.d.ts.map +1 -0
  166. package/dist/core/diagnose.js +390 -0
  167. package/dist/core/diagnose.js.map +1 -0
  168. package/dist/core/disk-set.d.ts +48 -0
  169. package/dist/core/disk-set.d.ts.map +1 -0
  170. package/dist/core/disk-set.js +218 -0
  171. package/dist/core/disk-set.js.map +1 -0
  172. package/dist/core/element-cache.d.ts +75 -0
  173. package/dist/core/element-cache.d.ts.map +1 -0
  174. package/dist/core/element-cache.js +32 -0
  175. package/dist/core/element-cache.js.map +1 -0
  176. package/dist/core/empty-project-advice.d.ts +75 -0
  177. package/dist/core/empty-project-advice.d.ts.map +1 -0
  178. package/dist/core/empty-project-advice.js +61 -0
  179. package/dist/core/empty-project-advice.js.map +1 -0
  180. package/dist/core/exclusion-comments.d.ts +19 -0
  181. package/dist/core/exclusion-comments.d.ts.map +1 -0
  182. package/dist/core/exclusion-comments.js +7 -0
  183. package/dist/core/exclusion-comments.js.map +1 -0
  184. package/dist/core/execute-rule.d.ts +158 -0
  185. package/dist/core/execute-rule.d.ts.map +1 -0
  186. package/dist/core/execute-rule.js +666 -0
  187. package/dist/core/execute-rule.js.map +1 -0
  188. package/dist/core/glob-diagnosis.d.ts +78 -0
  189. package/dist/core/glob-diagnosis.d.ts.map +1 -0
  190. package/dist/core/glob-diagnosis.js +134 -0
  191. package/dist/core/glob-diagnosis.js.map +1 -0
  192. package/dist/core/glob-evaluator.d.ts +48 -0
  193. package/dist/core/glob-evaluator.d.ts.map +1 -0
  194. package/dist/core/glob-evaluator.js +89 -0
  195. package/dist/core/glob-evaluator.js.map +1 -0
  196. package/dist/core/import-candidates.d.ts +60 -0
  197. package/dist/core/import-candidates.d.ts.map +1 -0
  198. package/dist/core/import-candidates.js +93 -0
  199. package/dist/core/import-candidates.js.map +1 -0
  200. package/dist/core/import-options.d.ts +55 -2
  201. package/dist/core/import-options.d.ts.map +1 -1
  202. package/dist/core/import-options.js +64 -0
  203. package/dist/core/import-options.js.map +1 -1
  204. package/dist/core/invalidate-on-modify.d.ts +20 -0
  205. package/dist/core/invalidate-on-modify.d.ts.map +1 -0
  206. package/dist/core/invalidate-on-modify.js +26 -0
  207. package/dist/core/invalidate-on-modify.js.map +1 -0
  208. package/dist/core/line-index.d.ts +3 -0
  209. package/dist/core/line-index.d.ts.map +1 -0
  210. package/dist/core/line-index.js +227 -0
  211. package/dist/core/line-index.js.map +1 -0
  212. package/dist/core/metric-violation.d.ts +86 -0
  213. package/dist/core/metric-violation.d.ts.map +1 -0
  214. package/dist/core/metric-violation.js +132 -0
  215. package/dist/core/metric-violation.js.map +1 -0
  216. package/dist/core/module-edges.d.ts +361 -0
  217. package/dist/core/module-edges.d.ts.map +1 -0
  218. package/dist/core/module-edges.js +593 -0
  219. package/dist/core/module-edges.js.map +1 -0
  220. package/dist/core/object-literal-functions.d.ts +42 -0
  221. package/dist/core/object-literal-functions.d.ts.map +1 -0
  222. package/dist/core/object-literal-functions.js +75 -0
  223. package/dist/core/object-literal-functions.js.map +1 -0
  224. package/dist/core/orphan-exclusions.d.ts +44 -0
  225. package/dist/core/orphan-exclusions.d.ts.map +1 -0
  226. package/dist/core/orphan-exclusions.js +224 -0
  227. package/dist/core/orphan-exclusions.js.map +1 -0
  228. package/dist/core/pair-condition.d.ts +32 -3
  229. package/dist/core/pair-condition.d.ts.map +1 -1
  230. package/dist/core/path-universe.d.ts +22 -0
  231. package/dist/core/path-universe.d.ts.map +1 -0
  232. package/dist/core/path-universe.js +45 -0
  233. package/dist/core/path-universe.js.map +1 -0
  234. package/dist/core/per-root-compiler-options.d.ts +20 -0
  235. package/dist/core/per-root-compiler-options.d.ts.map +1 -0
  236. package/dist/core/per-root-compiler-options.js +57 -0
  237. package/dist/core/per-root-compiler-options.js.map +1 -0
  238. package/dist/core/project-relative.d.ts +98 -0
  239. package/dist/core/project-relative.d.ts.map +1 -0
  240. package/dist/core/project-relative.js +185 -0
  241. package/dist/core/project-relative.js.map +1 -0
  242. package/dist/core/project.d.ts +7 -1
  243. package/dist/core/project.d.ts.map +1 -1
  244. package/dist/core/project.js +29 -4
  245. package/dist/core/project.js.map +1 -1
  246. package/dist/core/rule-builder.d.ts +303 -0
  247. package/dist/core/rule-builder.d.ts.map +1 -0
  248. package/dist/core/rule-builder.js +463 -0
  249. package/dist/core/rule-builder.js.map +1 -0
  250. package/dist/core/rule-declaration.d.ts +32 -0
  251. package/dist/core/rule-declaration.d.ts.map +1 -0
  252. package/dist/core/rule-declaration.js +88 -0
  253. package/dist/core/rule-declaration.js.map +1 -0
  254. package/dist/core/terminal-builder.d.ts +629 -0
  255. package/dist/core/terminal-builder.d.ts.map +1 -0
  256. package/dist/core/terminal-builder.js +807 -0
  257. package/dist/core/terminal-builder.js.map +1 -0
  258. package/dist/core/terminal-execution.d.ts +39 -0
  259. package/dist/core/terminal-execution.d.ts.map +1 -0
  260. package/dist/core/terminal-execution.js +103 -0
  261. package/dist/core/terminal-execution.js.map +1 -0
  262. package/dist/core/ts-comment-mask.d.ts +2 -0
  263. package/dist/core/ts-comment-mask.d.ts.map +1 -0
  264. package/dist/core/ts-comment-mask.js +102 -0
  265. package/dist/core/ts-comment-mask.js.map +1 -0
  266. package/dist/core/vacuity-diagnosis.d.ts +103 -0
  267. package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
  268. package/dist/core/vacuity-diagnosis.js +415 -0
  269. package/dist/core/vacuity-diagnosis.js.map +1 -0
  270. package/dist/core/violation.d.ts +16 -11
  271. package/dist/core/violation.d.ts.map +1 -1
  272. package/dist/core/violation.js +33 -13
  273. package/dist/core/violation.js.map +1 -1
  274. package/dist/graphql/graphql-rule-builder.d.ts +95 -0
  275. package/dist/graphql/graphql-rule-builder.d.ts.map +1 -0
  276. package/dist/graphql/graphql-rule-builder.js +127 -0
  277. package/dist/graphql/graphql-rule-builder.js.map +1 -0
  278. package/dist/graphql/index.d.ts +1 -0
  279. package/dist/graphql/index.d.ts.map +1 -1
  280. package/dist/graphql/index.js +2 -1
  281. package/dist/graphql/index.js.map +1 -1
  282. package/dist/graphql/resolver-rule-builder.d.ts +44 -23
  283. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
  284. package/dist/graphql/resolver-rule-builder.js +80 -72
  285. package/dist/graphql/resolver-rule-builder.js.map +1 -1
  286. package/dist/graphql/schema-loader.d.ts +21 -0
  287. package/dist/graphql/schema-loader.d.ts.map +1 -1
  288. package/dist/graphql/schema-loader.js +82 -12
  289. package/dist/graphql/schema-loader.js.map +1 -1
  290. package/dist/graphql/schema-predicates.d.ts.map +1 -1
  291. package/dist/graphql/schema-predicates.js +17 -12
  292. package/dist/graphql/schema-predicates.js.map +1 -1
  293. package/dist/graphql/schema-rule-builder.d.ts +15 -24
  294. package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
  295. package/dist/graphql/schema-rule-builder.js +39 -77
  296. package/dist/graphql/schema-rule-builder.js.map +1 -1
  297. package/dist/helpers/baseline-diagnostics.d.ts +45 -0
  298. package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
  299. package/dist/helpers/baseline-diagnostics.js +168 -0
  300. package/dist/helpers/baseline-diagnostics.js.map +1 -0
  301. package/dist/helpers/baseline-generator.d.ts +28 -0
  302. package/dist/helpers/baseline-generator.d.ts.map +1 -0
  303. package/dist/helpers/baseline-generator.js +27 -0
  304. package/dist/helpers/baseline-generator.js.map +1 -0
  305. package/dist/helpers/baseline.d.ts +336 -0
  306. package/dist/helpers/baseline.d.ts.map +1 -0
  307. package/dist/helpers/baseline.js +664 -0
  308. package/dist/helpers/baseline.js.map +1 -0
  309. package/dist/helpers/body-traversal.d.ts +27 -2
  310. package/dist/helpers/body-traversal.d.ts.map +1 -1
  311. package/dist/helpers/body-traversal.js +135 -16
  312. package/dist/helpers/body-traversal.js.map +1 -1
  313. package/dist/helpers/callback-extractor.d.ts.map +1 -1
  314. package/dist/helpers/callback-extractor.js +53 -84
  315. package/dist/helpers/callback-extractor.js.map +1 -1
  316. package/dist/helpers/complexity.d.ts +13 -5
  317. package/dist/helpers/complexity.d.ts.map +1 -1
  318. package/dist/helpers/complexity.js +15 -6
  319. package/dist/helpers/complexity.js.map +1 -1
  320. package/dist/helpers/diff-aware.d.ts +16 -0
  321. package/dist/helpers/diff-aware.d.ts.map +1 -0
  322. package/dist/helpers/diff-aware.js +16 -0
  323. package/dist/helpers/diff-aware.js.map +1 -0
  324. package/dist/helpers/matchers.d.ts +68 -7
  325. package/dist/helpers/matchers.d.ts.map +1 -1
  326. package/dist/helpers/matchers.js +164 -86
  327. package/dist/helpers/matchers.js.map +1 -1
  328. package/dist/helpers/slice-graph.d.ts +100 -8
  329. package/dist/helpers/slice-graph.d.ts.map +1 -1
  330. package/dist/helpers/slice-graph.js +126 -34
  331. package/dist/helpers/slice-graph.js.map +1 -1
  332. package/dist/helpers/tarjan.d.ts +0 -14
  333. package/dist/helpers/tarjan.d.ts.map +1 -1
  334. package/dist/helpers/tarjan.js +29 -16
  335. package/dist/helpers/tarjan.js.map +1 -1
  336. package/dist/index.d.ts +55 -19
  337. package/dist/index.d.ts.map +1 -1
  338. package/dist/index.js +67 -15
  339. package/dist/index.js.map +1 -1
  340. package/dist/models/arch-call.d.ts +3 -2
  341. package/dist/models/arch-call.d.ts.map +1 -1
  342. package/dist/models/arch-call.js.map +1 -1
  343. package/dist/models/arch-function.d.ts +54 -8
  344. package/dist/models/arch-function.d.ts.map +1 -1
  345. package/dist/models/arch-function.js +145 -8
  346. package/dist/models/arch-function.js.map +1 -1
  347. package/dist/models/arch-jsx-element.d.ts.map +1 -1
  348. package/dist/models/arch-jsx-element.js +18 -19
  349. package/dist/models/arch-jsx-element.js.map +1 -1
  350. package/dist/models/slice.d.ts +33 -9
  351. package/dist/models/slice.d.ts.map +1 -1
  352. package/dist/models/slice.js +129 -19
  353. package/dist/models/slice.js.map +1 -1
  354. package/dist/predicates/call.d.ts.map +1 -1
  355. package/dist/predicates/call.js +5 -0
  356. package/dist/predicates/call.js.map +1 -1
  357. package/dist/predicates/identity.d.ts +21 -0
  358. package/dist/predicates/identity.d.ts.map +1 -1
  359. package/dist/predicates/identity.js +75 -3
  360. package/dist/predicates/identity.js.map +1 -1
  361. package/dist/predicates/index.d.ts +1 -1
  362. package/dist/predicates/index.d.ts.map +1 -1
  363. package/dist/predicates/index.js +1 -1
  364. package/dist/predicates/index.js.map +1 -1
  365. package/dist/predicates/jsx.d.ts.map +1 -1
  366. package/dist/predicates/jsx.js +2 -1
  367. package/dist/predicates/jsx.js.map +1 -1
  368. package/dist/predicates/metrics.d.ts +4 -2
  369. package/dist/predicates/metrics.d.ts.map +1 -1
  370. package/dist/predicates/metrics.js +4 -2
  371. package/dist/predicates/metrics.js.map +1 -1
  372. package/dist/predicates/module.d.ts +4 -12
  373. package/dist/predicates/module.d.ts.map +1 -1
  374. package/dist/predicates/module.js +57 -37
  375. package/dist/predicates/module.js.map +1 -1
  376. package/dist/presets/agent-guardrails.d.ts +49 -16
  377. package/dist/presets/agent-guardrails.d.ts.map +1 -1
  378. package/dist/presets/agent-guardrails.js +308 -19
  379. package/dist/presets/agent-guardrails.js.map +1 -1
  380. package/dist/presets/boundaries.d.ts +46 -3
  381. package/dist/presets/boundaries.d.ts.map +1 -1
  382. package/dist/presets/boundaries.js +132 -23
  383. package/dist/presets/boundaries.js.map +1 -1
  384. package/dist/presets/data-layer.d.ts +23 -3
  385. package/dist/presets/data-layer.d.ts.map +1 -1
  386. package/dist/presets/data-layer.js +58 -16
  387. package/dist/presets/data-layer.js.map +1 -1
  388. package/dist/presets/index.d.ts +10 -5
  389. package/dist/presets/index.d.ts.map +1 -1
  390. package/dist/presets/index.js +19 -3
  391. package/dist/presets/index.js.map +1 -1
  392. package/dist/presets/layered.d.ts +47 -3
  393. package/dist/presets/layered.d.ts.map +1 -1
  394. package/dist/presets/layered.js +66 -29
  395. package/dist/presets/layered.js.map +1 -1
  396. package/dist/presets/recommended.d.ts +81 -10
  397. package/dist/presets/recommended.d.ts.map +1 -1
  398. package/dist/presets/recommended.js +25 -23
  399. package/dist/presets/recommended.js.map +1 -1
  400. package/dist/presets/shared.d.ts +267 -2
  401. package/dist/presets/shared.d.ts.map +1 -1
  402. package/dist/presets/shared.js +367 -4
  403. package/dist/presets/shared.js.map +1 -1
  404. package/dist/rules/code-quality.d.ts.map +1 -1
  405. package/dist/rules/code-quality.js +15 -6
  406. package/dist/rules/code-quality.js.map +1 -1
  407. package/dist/rules/hygiene.d.ts +1 -1
  408. package/dist/rules/hygiene.js +1 -1
  409. package/dist/rules/metrics-function.d.ts +2 -1
  410. package/dist/rules/metrics-function.d.ts.map +1 -1
  411. package/dist/rules/metrics-function.js +63 -39
  412. package/dist/rules/metrics-function.js.map +1 -1
  413. package/dist/rules/metrics.d.ts +2 -1
  414. package/dist/rules/metrics.d.ts.map +1 -1
  415. package/dist/rules/metrics.js +80 -47
  416. package/dist/rules/metrics.js.map +1 -1
  417. package/dist/smells/clusters.d.ts +78 -0
  418. package/dist/smells/clusters.d.ts.map +1 -0
  419. package/dist/smells/clusters.js +124 -0
  420. package/dist/smells/clusters.js.map +1 -0
  421. package/dist/smells/duplicate-bodies.d.ts +92 -5
  422. package/dist/smells/duplicate-bodies.d.ts.map +1 -1
  423. package/dist/smells/duplicate-bodies.js +203 -73
  424. package/dist/smells/duplicate-bodies.js.map +1 -1
  425. package/dist/smells/duplicate-report.d.ts +90 -0
  426. package/dist/smells/duplicate-report.d.ts.map +1 -0
  427. package/dist/smells/duplicate-report.js +344 -0
  428. package/dist/smells/duplicate-report.js.map +1 -0
  429. package/dist/smells/fingerprint.d.ts +20 -1
  430. package/dist/smells/fingerprint.d.ts.map +1 -1
  431. package/dist/smells/fingerprint.js +27 -3
  432. package/dist/smells/fingerprint.js.map +1 -1
  433. package/dist/smells/inconsistent-siblings.d.ts +128 -7
  434. package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
  435. package/dist/smells/inconsistent-siblings.js +288 -86
  436. package/dist/smells/inconsistent-siblings.js.map +1 -1
  437. package/dist/smells/sibling-files.d.ts +47 -0
  438. package/dist/smells/sibling-files.d.ts.map +1 -0
  439. package/dist/smells/sibling-files.js +104 -0
  440. package/dist/smells/sibling-files.js.map +1 -0
  441. package/dist/smells/similar-pairs.d.ts +28 -0
  442. package/dist/smells/similar-pairs.d.ts.map +1 -0
  443. package/dist/smells/similar-pairs.js +134 -0
  444. package/dist/smells/similar-pairs.js.map +1 -0
  445. package/dist/smells/smell-builder.d.ts +57 -12
  446. package/dist/smells/smell-builder.d.ts.map +1 -1
  447. package/dist/smells/smell-builder.js +112 -14
  448. package/dist/smells/smell-builder.js.map +1 -1
  449. package/dist/smells/variation.d.ts +47 -0
  450. package/dist/smells/variation.d.ts.map +1 -0
  451. package/dist/smells/variation.js +90 -0
  452. package/dist/smells/variation.js.map +1 -0
  453. package/dist/tsconfig/index.d.ts +19 -0
  454. package/dist/tsconfig/index.d.ts.map +1 -0
  455. package/dist/tsconfig/index.js +20 -0
  456. package/dist/tsconfig/index.js.map +1 -0
  457. package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
  458. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
  459. package/dist/tsconfig/tsconfig-builder.js +65 -16
  460. package/dist/tsconfig/tsconfig-builder.js.map +1 -1
  461. package/package.json +4 -2
  462. package/dist/core/module-dependencies.d.ts +0 -28
  463. package/dist/core/module-dependencies.d.ts.map +0 -1
  464. package/dist/core/module-dependencies.js +0 -35
  465. package/dist/core/module-dependencies.js.map +0 -1
  466. package/dist/helpers/within.d.ts.map +0 -1
  467. package/dist/helpers/within.js.map +0 -1
@@ -1,10 +1,29 @@
1
- import { RuleBuilder } from '@nielspeter/eess';
1
+ import { RuleBuilder } from '../core/rule-builder.js';
2
2
  import { functionContain, functionNotContain, functionUseInsteadOf, functionNotHaveEmptyBody, } from '../conditions/body-analysis-function.js';
3
+ import { createElementCache, SOLE_POPULATION } from '../core/element-cache.js';
3
4
  import { collectFunctions } from '../models/arch-function.js';
4
5
  import { followPattern as followPatternCondition } from '../conditions/pattern.js';
5
6
  import { notExist as fnNotExist, beExported as fnBeExported, beAsync as fnBeAsync, haveNameMatching as fnConditionHaveNameMatching, acceptParameterOfType as fnAcceptParameterOfType, notAcceptParameterOfType as fnNotAcceptParameterOfType, haveReturnTypeMatching as fnHaveReturnTypeMatching, resideInFile as fnConditionResideInFile, resideInFolder as fnConditionResideInFolder, } from '../conditions/function.js';
6
7
  import { haveNameMatching as identityHaveNameMatching, haveNameStartingWith as identityHaveNameStartingWith, haveNameEndingWith as identityHaveNameEndingWith, resideInFile as identityResideInFile, resideInFolder as identityResideInFolder, areExported as identityAreExported, areNotExported as identityAreNotExported, } from '../predicates/identity.js';
7
8
  import { arePublic as fnArePublic, areProtected as fnAreProtected, arePrivate as fnArePrivate, areAsync as fnAreAsync, areNotAsync as fnAreNotAsync, haveParameterCount as fnHaveParameterCount, haveParameterCountGreaterThan as fnHaveParameterCountGreaterThan, haveParameterCountLessThan as fnHaveParameterCountLessThan, haveParameterNamed as fnHaveParameterNamed, haveReturnType as fnHaveReturnType, haveRestParameter as fnHaveRestParameter, haveOptionalParameter as fnHaveOptionalParameter, haveParameterOfType as fnHaveParameterOfType, haveParameterNameMatching as fnHaveParameterNameMatching, } from '../predicates/function.js';
9
+ /** One collection per (project, collection options), shared by every rule (plan 0075). */
10
+ const cache = createElementCache();
11
+ /**
12
+ * A canonical key for a collection-options object.
13
+ *
14
+ * Derived from the object's own entries, sorted — **not** `JSON.stringify`,
15
+ * which is key-order dependent, and not a hand-written list of the two fields,
16
+ * which would silently drop a third field added later and serve the wrong
17
+ * population under a colliding key.
18
+ */
19
+ function optionsKey(options) {
20
+ if (options === undefined)
21
+ return SOLE_POPULATION;
22
+ return Object.entries(options)
23
+ .sort(([a], [b]) => a.localeCompare(b))
24
+ .map(([name, value]) => `${name}=${String(value)}`)
25
+ .join('|');
26
+ }
8
27
  /**
9
28
  * Rule builder for function-level architecture rules.
10
29
  *
@@ -36,8 +55,20 @@ import { arePublic as fnArePublic, areProtected as fnAreProtected, arePrivate as
36
55
  * ```
37
56
  */
38
57
  export class FunctionRuleBuilder extends RuleBuilder {
58
+ _collectionOptions;
59
+ constructor(project, _collectionOptions) {
60
+ super(project);
61
+ this._collectionOptions = _collectionOptions;
62
+ }
39
63
  getElements() {
40
- return this.project.getSourceFiles().flatMap((sf) => collectFunctions(sf));
64
+ // _collectionOptions survives `.should()` forks via RuleBuilder.fork()'s
65
+ // shallowClone in TerminalBuilder.copy — verified by the named-selection test.
66
+ //
67
+ // The options are part of the cache key, not just the collection call:
68
+ // `functions(p)` and `functions(p, COLLECT_ALL)` are DIFFERENT populations
69
+ // of the same project, so a project-only key would serve one the other's
70
+ // elements (plan 0075).
71
+ return cache.get(this.project, optionsKey(this._collectionOptions), () => this.project.getSourceFiles().flatMap((sf) => collectFunctions(sf, this._collectionOptions)));
41
72
  }
42
73
  // --- Identity predicates (delegated to plan 0003 generics) ---
43
74
  /**
@@ -45,17 +76,28 @@ export class FunctionRuleBuilder extends RuleBuilder {
45
76
  * After `.should()`: assert matched functions have names matching the pattern.
46
77
  */
47
78
  haveNameMatching(pattern) {
48
- if (this._phase === 'condition') {
49
- const regex = typeof pattern === 'string' ? new RegExp(pattern) : pattern;
50
- return this.addCondition(fnConditionHaveNameMatching(regex));
51
- }
52
- return this.addPredicate(identityHaveNameMatching(pattern));
79
+ const regex = typeof pattern === 'string' ? new RegExp(pattern) : pattern;
80
+ return this.dualUse(fnConditionHaveNameMatching(regex), identityHaveNameMatching(pattern));
53
81
  }
54
- /** Filter to functions whose name starts with the given prefix. */
82
+ /**
83
+ * Narrows the selection to functions that have a name starting with `prefix`.
84
+ *
85
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
86
+ * becomes an assertion. Written after `.should()` it still filters, and the
87
+ * assertion gate reports it as a misplaced predicate rather than letting the
88
+ * rule pass having asserted nothing.
89
+ */
55
90
  haveNameStartingWith(prefix) {
56
91
  return this.addPredicate(identityHaveNameStartingWith(prefix));
57
92
  }
58
- /** Filter to functions whose name ends with the given suffix. */
93
+ /**
94
+ * Narrows the selection to functions that have a name ending with `suffix`.
95
+ *
96
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
97
+ * becomes an assertion. Written after `.should()` it still filters, and the
98
+ * assertion gate reports it as a misplaced predicate rather than letting the
99
+ * rule pass having asserted nothing.
100
+ */
59
101
  haveNameEndingWith(suffix) {
60
102
  return this.addPredicate(identityHaveNameEndingWith(suffix));
61
103
  }
@@ -64,94 +106,190 @@ export class FunctionRuleBuilder extends RuleBuilder {
64
106
  * After `.should()`: assert functions reside in a file matching the glob.
65
107
  */
66
108
  resideInFile(glob) {
67
- if (this._phase === 'condition') {
68
- return this.addCondition(fnConditionResideInFile(glob));
69
- }
70
- return this.addPredicate(identityResideInFile(glob));
109
+ return this.dualUse(fnConditionResideInFile(glob), identityResideInFile(glob));
71
110
  }
72
111
  /**
73
112
  * After `.that()`: filter functions in a folder matching the glob.
74
113
  * After `.should()`: assert functions reside in a folder matching the glob.
75
114
  */
76
115
  resideInFolder(glob) {
77
- if (this._phase === 'condition') {
78
- return this.addCondition(fnConditionResideInFolder(glob));
79
- }
80
- return this.addPredicate(identityResideInFolder(glob));
116
+ return this.dualUse(fnConditionResideInFolder(glob), identityResideInFolder(glob));
81
117
  }
82
- /** Filter to functions that are exported from their module. */
118
+ /**
119
+ * Narrows the selection to functions that are exported.
120
+ *
121
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
122
+ * becomes an assertion. Written after `.should()` it still filters, and the
123
+ * assertion gate reports it as a misplaced predicate rather than letting the
124
+ * rule pass having asserted nothing.
125
+ */
83
126
  areExported() {
84
127
  return this.addPredicate(identityAreExported());
85
128
  }
86
- /** Filter to functions that are NOT exported from their module. */
129
+ /**
130
+ * Narrows the selection to functions that are not exported.
131
+ *
132
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
133
+ * becomes an assertion. Written after `.should()` it still filters, and the
134
+ * assertion gate reports it as a misplaced predicate rather than letting the
135
+ * rule pass having asserted nothing.
136
+ */
87
137
  areNotExported() {
88
138
  return this.addPredicate(identityAreNotExported());
89
139
  }
90
140
  // --- Visibility predicates (plan 0032) ---
91
141
  /**
92
- * Filter to public functions. Class methods match when `public` or
93
- * unmarked; standalone and arrow functions are always public.
142
+ * Narrows the selection to functions that are public.
143
+ *
144
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
145
+ * becomes an assertion. Written after `.should()` it still filters, and the
146
+ * assertion gate reports it as a misplaced predicate rather than letting the
147
+ * rule pass having asserted nothing.
94
148
  */
95
149
  arePublic() {
96
150
  return this.addPredicate(fnArePublic());
97
151
  }
98
- /** Filter to `protected` class methods (standalone functions never match). */
152
+ /**
153
+ * Narrows the selection to functions that are protected.
154
+ *
155
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
156
+ * becomes an assertion. Written after `.should()` it still filters, and the
157
+ * assertion gate reports it as a misplaced predicate rather than letting the
158
+ * rule pass having asserted nothing.
159
+ */
99
160
  areProtected() {
100
161
  return this.addPredicate(fnAreProtected());
101
162
  }
102
- /** Filter to `private` class methods (standalone functions never match). */
163
+ /**
164
+ * Narrows the selection to functions that are private.
165
+ *
166
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
167
+ * becomes an assertion. Written after `.should()` it still filters, and the
168
+ * assertion gate reports it as a misplaced predicate rather than letting the
169
+ * rule pass having asserted nothing.
170
+ */
103
171
  arePrivate() {
104
172
  return this.addPredicate(fnArePrivate());
105
173
  }
106
174
  // --- Function-specific predicates ---
107
- /** Filter to functions declared with the `async` keyword. */
175
+ /**
176
+ * Narrows the selection to functions that are async.
177
+ *
178
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
179
+ * becomes an assertion. Written after `.should()` it still filters, and the
180
+ * assertion gate reports it as a misplaced predicate rather than letting the
181
+ * rule pass having asserted nothing.
182
+ */
108
183
  areAsync() {
109
184
  return this.addPredicate(fnAreAsync());
110
185
  }
111
- /** Filter to functions NOT declared `async`. */
186
+ /**
187
+ * Narrows the selection to functions that are not async.
188
+ *
189
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
190
+ * becomes an assertion. Written after `.should()` it still filters, and the
191
+ * assertion gate reports it as a misplaced predicate rather than letting the
192
+ * rule pass having asserted nothing.
193
+ */
112
194
  areNotAsync() {
113
195
  return this.addPredicate(fnAreNotAsync());
114
196
  }
115
- /** Filter to functions that declare exactly `n` parameters. */
197
+ /**
198
+ * Narrows the selection to functions that have exactly `n` parameters.
199
+ *
200
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
201
+ * becomes an assertion. Written after `.should()` it still filters, and the
202
+ * assertion gate reports it as a misplaced predicate rather than letting the
203
+ * rule pass having asserted nothing.
204
+ */
116
205
  haveParameterCount(n) {
117
206
  return this.addPredicate(fnHaveParameterCount(n));
118
207
  }
119
- /** Filter to functions that declare more than `n` parameters. */
208
+ /**
209
+ * Narrows the selection to functions that have more than `n` parameters.
210
+ *
211
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
212
+ * becomes an assertion. Written after `.should()` it still filters, and the
213
+ * assertion gate reports it as a misplaced predicate rather than letting the
214
+ * rule pass having asserted nothing.
215
+ */
120
216
  haveParameterCountGreaterThan(n) {
121
217
  return this.addPredicate(fnHaveParameterCountGreaterThan(n));
122
218
  }
123
- /** Filter to functions that declare fewer than `n` parameters. */
219
+ /**
220
+ * Narrows the selection to functions that have fewer than `n` parameters.
221
+ *
222
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
223
+ * becomes an assertion. Written after `.should()` it still filters, and the
224
+ * assertion gate reports it as a misplaced predicate rather than letting the
225
+ * rule pass having asserted nothing.
226
+ */
124
227
  haveParameterCountLessThan(n) {
125
228
  return this.addPredicate(fnHaveParameterCountLessThan(n));
126
229
  }
127
- /** Filter to functions that declare a parameter with the given exact name. */
230
+ /**
231
+ * Narrows the selection to functions that have a parameter named `name`.
232
+ *
233
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
234
+ * becomes an assertion. Written after `.should()` it still filters, and the
235
+ * assertion gate reports it as a misplaced predicate rather than letting the
236
+ * rule pass having asserted nothing.
237
+ */
128
238
  haveParameterNamed(name) {
129
239
  return this.addPredicate(fnHaveParameterNamed(name));
130
240
  }
131
241
  /**
132
- * Filter to functions whose return type text matches the pattern
133
- * (e.g. `/Promise</`, `'void'`). A string is compiled to a RegExp.
242
+ * Narrows the selection to functions that have a return type matching `pattern`.
243
+ *
244
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
245
+ * becomes an assertion. Written after `.should()` it still filters, and the
246
+ * assertion gate reports it as a misplaced predicate rather than letting the
247
+ * rule pass having asserted nothing.
134
248
  */
135
249
  haveReturnType(pattern) {
136
250
  return this.addPredicate(fnHaveReturnType(pattern));
137
251
  }
138
- /** Filter to functions that declare a rest parameter (`...args`). */
252
+ /**
253
+ * Narrows the selection to functions that have a rest parameter.
254
+ *
255
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
256
+ * becomes an assertion. Written after `.should()` it still filters, and the
257
+ * assertion gate reports it as a misplaced predicate rather than letting the
258
+ * rule pass having asserted nothing.
259
+ */
139
260
  haveRestParameter() {
140
261
  return this.addPredicate(fnHaveRestParameter());
141
262
  }
142
- /** Filter to functions with at least one optional (`x?`) or default-valued parameter. */
263
+ /**
264
+ * Narrows the selection to functions that have an optional parameter.
265
+ *
266
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
267
+ * becomes an assertion. Written after `.should()` it still filters, and the
268
+ * assertion gate reports it as a misplaced predicate rather than letting the
269
+ * rule pass having asserted nothing.
270
+ */
143
271
  haveOptionalParameter() {
144
272
  return this.addPredicate(fnHaveOptionalParameter());
145
273
  }
146
274
  /**
147
- * Filter to functions whose parameter at `index` has a type satisfying
148
- * the matcher. Out-of-bounds indices never match; for a rest parameter
149
- * the type is the array type (e.g. `string[]`).
275
+ * Narrows the selection to functions that have parameter `index` of a type matching `matcher`.
276
+ *
277
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
278
+ * becomes an assertion. Written after `.should()` it still filters, and the
279
+ * assertion gate reports it as a misplaced predicate rather than letting the
280
+ * rule pass having asserted nothing.
150
281
  */
151
282
  haveParameterOfType(index, matcher) {
152
283
  return this.addPredicate(fnHaveParameterOfType(index, matcher));
153
284
  }
154
- /** Filter to functions with at least one parameter whose name matches the regex. */
285
+ /**
286
+ * Narrows the selection to functions that have a parameter name matching `pattern`.
287
+ *
288
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
289
+ * becomes an assertion. Written after `.should()` it still filters, and the
290
+ * assertion gate reports it as a misplaced predicate rather than letting the
291
+ * rule pass having asserted nothing.
292
+ */
155
293
  haveParameterNameMatching(pattern) {
156
294
  return this.addPredicate(fnHaveParameterNameMatching(pattern));
157
295
  }
@@ -281,7 +419,7 @@ export class FunctionRuleBuilder extends RuleBuilder {
281
419
  * .check()
282
420
  * ```
283
421
  */
284
- export function functions(p) {
285
- return new FunctionRuleBuilder(p);
422
+ export function functions(p, options) {
423
+ return new FunctionRuleBuilder(p, options);
286
424
  }
287
425
  //# sourceMappingURL=function-rule-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function-rule-builder.js","sourceRoot":"","sources":["../../src/builders/function-rule-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-rule-builder.js","sourceRoot":"","sources":["../../src/builders/function-rule-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ArchProject } from '../core/project.js';
2
- import { RuleBuilder } from '@nielspeter/eess';
2
+ import { RuleBuilder } from '../core/rule-builder.js';
3
3
  import type { ArchJsxElement } from '../models/arch-jsx-element.js';
4
4
  /**
5
5
  * Rule builder for JSX element architecture rules.
@@ -35,32 +35,88 @@ import type { ArchJsxElement } from '../models/arch-jsx-element.js';
35
35
  * .check()
36
36
  * ```
37
37
  */
38
- export declare class JsxRuleBuilder extends RuleBuilder<ArchJsxElement, ArchProject> {
38
+ export declare class JsxRuleBuilder extends RuleBuilder<ArchJsxElement> {
39
39
  protected getElements(): ArchJsxElement[];
40
- /** Filter to JSX elements whose tag/component name matches the pattern. */
40
+ /**
41
+ * Narrows the selection to JSX elements that have a name matching `pattern`.
42
+ *
43
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
44
+ * becomes an assertion. Written after `.should()` it still filters, and the
45
+ * assertion gate reports it as a misplaced predicate rather than letting the
46
+ * rule pass having asserted nothing.
47
+ */
41
48
  haveNameMatching(pattern: RegExp | string): this;
42
- /** Filter to JSX elements whose tag/component name starts with the prefix. */
49
+ /**
50
+ * Narrows the selection to JSX elements that have a name starting with `prefix`.
51
+ *
52
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
53
+ * becomes an assertion. Written after `.should()` it still filters, and the
54
+ * assertion gate reports it as a misplaced predicate rather than letting the
55
+ * rule pass having asserted nothing.
56
+ */
43
57
  haveNameStartingWith(prefix: string): this;
44
- /** Filter to JSX elements whose tag/component name ends with the suffix. */
58
+ /**
59
+ * Narrows the selection to JSX elements that have a name ending with `suffix`.
60
+ *
61
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
62
+ * becomes an assertion. Written after `.should()` it still filters, and the
63
+ * assertion gate reports it as a misplaced predicate rather than letting the
64
+ * rule pass having asserted nothing.
65
+ */
45
66
  haveNameEndingWith(suffix: string): this;
46
- /** Filter to JSX elements in a file whose absolute path matches the glob. */
67
+ /**
68
+ * Narrows the selection to JSX elements that reside in a file matching `glob`.
69
+ *
70
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
71
+ * becomes an assertion. Written after `.should()` it still filters, and the
72
+ * assertion gate reports it as a misplaced predicate rather than letting the
73
+ * rule pass having asserted nothing.
74
+ */
47
75
  resideInFile(glob: string): this;
48
- /** Filter to JSX elements in a folder whose path matches the glob. */
76
+ /**
77
+ * Narrows the selection to JSX elements that reside in a folder matching `glob`.
78
+ *
79
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
80
+ * becomes an assertion. Written after `.should()` it still filters, and the
81
+ * assertion gate reports it as a misplaced predicate rather than letting the
82
+ * rule pass having asserted nothing.
83
+ */
49
84
  resideInFolder(glob: string): this;
50
85
  /**
51
- * Filter to intrinsic HTML elements with any of the given lowercase tags
52
- * (e.g. `areHtmlElements('button', 'input')`). Requires at least one tag.
86
+ * Narrows the selection to JSX elements that are the HTML elements named in `tags`.
87
+ *
88
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
89
+ * becomes an assertion. Written after `.should()` it still filters, and the
90
+ * assertion gate reports it as a misplaced predicate rather than letting the
91
+ * rule pass having asserted nothing.
53
92
  */
54
93
  areHtmlElements(...tags: string[]): this;
55
94
  /**
56
- * Filter to component elements (uppercase or dotted names). With no
57
- * arguments matches all components; with names, only those (use the full
58
- * dotted name for namespaced components, e.g. `'Icons.Check'`).
95
+ * Narrows the selection to JSX elements that are the components named in `names`.
96
+ *
97
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
98
+ * becomes an assertion. Written after `.should()` it still filters, and the
99
+ * assertion gate reports it as a misplaced predicate rather than letting the
100
+ * rule pass having asserted nothing.
59
101
  */
60
102
  areComponents(...names: string[]): this;
61
- /** Filter to elements that have the named attribute, regardless of value. */
103
+ /**
104
+ * Narrows the selection to JSX elements that have the attribute `name`.
105
+ *
106
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
107
+ * becomes an assertion. Written after `.should()` it still filters, and the
108
+ * assertion gate reports it as a misplaced predicate rather than letting the
109
+ * rule pass having asserted nothing.
110
+ */
62
111
  withAttribute(name: string): this;
63
- /** Filter to elements whose named attribute value equals the string or matches the regex. */
112
+ /**
113
+ * Narrows the selection to JSX elements that have attribute `name` with a value matching `value`.
114
+ *
115
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
116
+ * becomes an assertion. Written after `.should()` it still filters, and the
117
+ * assertion gate reports it as a misplaced predicate rather than letting the
118
+ * rule pass having asserted nothing.
119
+ */
64
120
  withAttributeMatching(name: string, value: string | RegExp): this;
65
121
  /**
66
122
  * The filtered JSX element set must be empty.
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-rule-builder.d.ts","sourceRoot":"","sources":["../../src/builders/jsx-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAuBnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC;IAC1E,SAAS,CAAC,WAAW,IAAI,cAAc,EAAE;IAMzC,2EAA2E;IAC3E,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD,8EAA8E;IAC9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1C,4EAA4E;IAC5E,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC,6EAA6E;IAC7E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC,sEAAsE;IACtE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlC;;;OAGG;IACH,eAAe,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAIxC;;;;OAIG;IACH,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAIvC,6EAA6E;IAC7E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,6FAA6F;IAC7F,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMjE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjE;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAGrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CAE1D"}
1
+ {"version":3,"file":"jsx-rule-builder.d.ts","sourceRoot":"","sources":["../../src/builders/jsx-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AA2BnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,cAAc,CAAC;IAC7D,SAAS,CAAC,WAAW,IAAI,cAAc,EAAE;IAQzC;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlC;;;;;;;OAOG;IACH,eAAe,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAIxC;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAIvC;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;;;OAOG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMjE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIjE;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAGrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CAE1D"}
@@ -1,8 +1,11 @@
1
- import { RuleBuilder } from '@nielspeter/eess';
1
+ import { RuleBuilder } from '../core/rule-builder.js';
2
+ import { createElementCache, SOLE_POPULATION } from '../core/element-cache.js';
2
3
  import { collectJsxElements } from '../models/arch-jsx-element.js';
3
4
  import { haveNameMatching as identityHaveNameMatching, haveNameStartingWith as identityHaveNameStartingWith, haveNameEndingWith as identityHaveNameEndingWith, resideInFile as identityResideInFile, resideInFolder as identityResideInFolder, } from '../predicates/identity.js';
4
5
  import { areHtmlElements as jsxAreHtmlElements, areComponents as jsxAreComponents, withAttribute as jsxWithAttribute, withAttributeMatching as jsxWithAttributeMatching, } from '../predicates/jsx.js';
5
6
  import { notExist as jsxNotExist, haveAttribute as conditionHaveAttribute, notHaveAttribute as conditionNotHaveAttribute, haveAttributeMatching as conditionHaveAttributeMatching, notHaveAttributeMatching as conditionNotHaveAttributeMatching, } from '../conditions/jsx.js';
7
+ /** One collection per project, shared by every rule built from it (plan 0075). */
8
+ const cache = createElementCache();
6
9
  /**
7
10
  * Rule builder for JSX element architecture rules.
8
11
  *
@@ -39,50 +42,106 @@ import { notExist as jsxNotExist, haveAttribute as conditionHaveAttribute, notHa
39
42
  */
40
43
  export class JsxRuleBuilder extends RuleBuilder {
41
44
  getElements() {
42
- return this.project.getSourceFiles().flatMap(collectJsxElements);
45
+ return cache.get(this.project, SOLE_POPULATION, () => this.project.getSourceFiles().flatMap(collectJsxElements));
43
46
  }
44
47
  // --- Identity predicates (predicate-only, following CallRuleBuilder pattern) ---
45
- /** Filter to JSX elements whose tag/component name matches the pattern. */
48
+ /**
49
+ * Narrows the selection to JSX elements that have a name matching `pattern`.
50
+ *
51
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
52
+ * becomes an assertion. Written after `.should()` it still filters, and the
53
+ * assertion gate reports it as a misplaced predicate rather than letting the
54
+ * rule pass having asserted nothing.
55
+ */
46
56
  haveNameMatching(pattern) {
47
57
  return this.addPredicate(identityHaveNameMatching(pattern));
48
58
  }
49
- /** Filter to JSX elements whose tag/component name starts with the prefix. */
59
+ /**
60
+ * Narrows the selection to JSX elements that have a name starting with `prefix`.
61
+ *
62
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
63
+ * becomes an assertion. Written after `.should()` it still filters, and the
64
+ * assertion gate reports it as a misplaced predicate rather than letting the
65
+ * rule pass having asserted nothing.
66
+ */
50
67
  haveNameStartingWith(prefix) {
51
68
  return this.addPredicate(identityHaveNameStartingWith(prefix));
52
69
  }
53
- /** Filter to JSX elements whose tag/component name ends with the suffix. */
70
+ /**
71
+ * Narrows the selection to JSX elements that have a name ending with `suffix`.
72
+ *
73
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
74
+ * becomes an assertion. Written after `.should()` it still filters, and the
75
+ * assertion gate reports it as a misplaced predicate rather than letting the
76
+ * rule pass having asserted nothing.
77
+ */
54
78
  haveNameEndingWith(suffix) {
55
79
  return this.addPredicate(identityHaveNameEndingWith(suffix));
56
80
  }
57
- /** Filter to JSX elements in a file whose absolute path matches the glob. */
81
+ /**
82
+ * Narrows the selection to JSX elements that reside in a file matching `glob`.
83
+ *
84
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
85
+ * becomes an assertion. Written after `.should()` it still filters, and the
86
+ * assertion gate reports it as a misplaced predicate rather than letting the
87
+ * rule pass having asserted nothing.
88
+ */
58
89
  resideInFile(glob) {
59
90
  return this.addPredicate(identityResideInFile(glob));
60
91
  }
61
- /** Filter to JSX elements in a folder whose path matches the glob. */
92
+ /**
93
+ * Narrows the selection to JSX elements that reside in a folder matching `glob`.
94
+ *
95
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
96
+ * becomes an assertion. Written after `.should()` it still filters, and the
97
+ * assertion gate reports it as a misplaced predicate rather than letting the
98
+ * rule pass having asserted nothing.
99
+ */
62
100
  resideInFolder(glob) {
63
101
  return this.addPredicate(identityResideInFolder(glob));
64
102
  }
65
103
  // --- JSX-specific predicates ---
66
104
  /**
67
- * Filter to intrinsic HTML elements with any of the given lowercase tags
68
- * (e.g. `areHtmlElements('button', 'input')`). Requires at least one tag.
105
+ * Narrows the selection to JSX elements that are the HTML elements named in `tags`.
106
+ *
107
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
108
+ * becomes an assertion. Written after `.should()` it still filters, and the
109
+ * assertion gate reports it as a misplaced predicate rather than letting the
110
+ * rule pass having asserted nothing.
69
111
  */
70
112
  areHtmlElements(...tags) {
71
113
  return this.addPredicate(jsxAreHtmlElements(...tags));
72
114
  }
73
115
  /**
74
- * Filter to component elements (uppercase or dotted names). With no
75
- * arguments matches all components; with names, only those (use the full
76
- * dotted name for namespaced components, e.g. `'Icons.Check'`).
116
+ * Narrows the selection to JSX elements that are the components named in `names`.
117
+ *
118
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
119
+ * becomes an assertion. Written after `.should()` it still filters, and the
120
+ * assertion gate reports it as a misplaced predicate rather than letting the
121
+ * rule pass having asserted nothing.
77
122
  */
78
123
  areComponents(...names) {
79
124
  return this.addPredicate(jsxAreComponents(...names));
80
125
  }
81
- /** Filter to elements that have the named attribute, regardless of value. */
126
+ /**
127
+ * Narrows the selection to JSX elements that have the attribute `name`.
128
+ *
129
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
130
+ * becomes an assertion. Written after `.should()` it still filters, and the
131
+ * assertion gate reports it as a misplaced predicate rather than letting the
132
+ * rule pass having asserted nothing.
133
+ */
82
134
  withAttribute(name) {
83
135
  return this.addPredicate(jsxWithAttribute(name));
84
136
  }
85
- /** Filter to elements whose named attribute value equals the string or matches the regex. */
137
+ /**
138
+ * Narrows the selection to JSX elements that have attribute `name` with a value matching `value`.
139
+ *
140
+ * **Predicate only**, unlike the dual-use methods on this builder: it never
141
+ * becomes an assertion. Written after `.should()` it still filters, and the
142
+ * assertion gate reports it as a misplaced predicate rather than letting the
143
+ * rule pass having asserted nothing.
144
+ */
86
145
  withAttributeMatching(name, value) {
87
146
  return this.addPredicate(jsxWithAttributeMatching(name, value));
88
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-rule-builder.js","sourceRoot":"","sources":["../../src/builders/jsx-rule-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-rule-builder.js","sourceRoot":"","sources":["../../src/builders/jsx-rule-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { SourceFile } from 'ts-morph';
2
- import { RuleBuilder } from '@nielspeter/eess';
2
+ import { RuleBuilder } from '../core/rule-builder.js';
3
3
  import type { ArchProject } from '../core/project.js';
4
4
  import type { ImportOptions } from '../core/import-options.js';
5
5
  import type { ExpressionMatcher } from '../helpers/matchers.js';
@@ -17,7 +17,7 @@ import type { ModuleBodyOptions } from '../helpers/body-traversal.js';
17
17
  * .because('domain must not depend on infrastructure')
18
18
  * .check()
19
19
  */
20
- export declare class ModuleRuleBuilder extends RuleBuilder<SourceFile, ArchProject> {
20
+ export declare class ModuleRuleBuilder extends RuleBuilder<SourceFile> {
21
21
  protected getElements(): SourceFile[];
22
22
  /**
23
23
  * Filter modules whose file name matches the given regex.