@nielspeter/eess-ts 0.2.1 → 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 +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 +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 -24
  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
package/dist/index.js CHANGED
@@ -1,21 +1,35 @@
1
1
  // Core — project loader
2
2
  export { project, workspace, resetProjectCache } from './core/project.js';
3
- export { not, and, or } from '@nielspeter/eess';
3
+ export { checkAll } from './core/check-all.js';
4
+ export { not, and, or } from './core/combinators.js';
5
+ export { severityFor } from '@nielspeter/eess';
4
6
  export { createViolation, getElementName, getElementFile, getElementLine, } from './core/violation.js';
7
+ // Violation semantics an external renderer or aggregator cannot re-derive from
8
+ // the `ArchViolation` type alone. `formatViolationsPlain`'s docstring invites
9
+ // callers that aggregate violations themselves, and without these two such a
10
+ // caller reprints a remedy that is already in the message (the defect 0.23.0
11
+ // fixed in our own three renderers) and grades a configuration finding by the
12
+ // rule's requested severity (which `severityFor` exists to refuse).
13
+ // Re-exported from the kernel since plan 0165 Phase 2 — they are pure, so they
14
+ // live in `@nielspeter/eess`, and eess-ts forwards them so a standalone
15
+ // installation still sees them (`tests/standalone-surface.test.ts`).
16
+ export { remedyRepeatsMessage } from '@nielspeter/eess';
5
17
  // Core — rule builder, error & metadata
6
- export { RuleBuilder } from '@nielspeter/eess';
7
- export { TerminalBuilder } from '@nielspeter/eess';
18
+ export { RuleBuilder } from './core/rule-builder.js';
19
+ export { TerminalBuilder } from './core/terminal-builder.js';
8
20
  export { ArchRuleError } from '@nielspeter/eess';
9
21
  // Core — code frame & formatting
10
22
  export { generateCodeFrame } from '@nielspeter/eess';
11
23
  export { formatViolations, formatViolationsPlain } from '@nielspeter/eess';
12
24
  // Core — custom predicate/condition factories
13
25
  export { definePredicate, defineCondition } from '@nielspeter/eess';
14
- export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, areExported, areNotExported, } from './predicates/index.js';
26
+ export { combineGlobs, globAnyOf, globNode, negateGlobs, stampGlobs } from '@nielspeter/eess';
27
+ export { diagnose } from './core/diagnose.js';
28
+ export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, havePathMatching, areExported, areNotExported, } from './predicates/index.js';
15
29
  // Structural conditions
16
30
  export { resideInFile as conditionResideInFile, resideInFolder as conditionResideInFolder, haveNameMatching as conditionHaveNameMatching, beExported, notExist, } from './conditions/structural.js';
17
31
  // Module predicates
18
- export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed, havePathMatching, } from './predicates/module.js';
32
+ export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed, } from './predicates/module.js';
19
33
  export { isTypeOnlyImport } from './core/import-options.js';
20
34
  export { onlyImportFrom, notImportFrom as conditionNotImportFrom, onlyHaveTypeImportsFrom, notHaveAliasedImports, dependOn, } from './conditions/dependency.js';
21
35
  // Module entry point
@@ -28,7 +42,9 @@ export { extend, implement, haveDecorator, haveDecoratorMatching, areAbstract, h
28
42
  export { shouldExtend, shouldImplement, shouldHaveMethodNamed, shouldNotHaveMethodMatching, acceptParameterOfType as classAcceptParameterOfType, notAcceptParameterOfType as classNotAcceptParameterOfType, } from './conditions/class.js';
29
43
  // Function entry point
30
44
  export { functions, FunctionRuleBuilder } from './builders/function-rule-builder.js';
31
- export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, } from './models/arch-function.js';
45
+ export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, fromObjectLiteralFunction, } from './models/arch-function.js';
46
+ // Shared object-literal function traversal (proposal 016 / F3)
47
+ export { collectObjectLiteralFunctions } from './core/object-literal-functions.js';
32
48
  // Function predicates
33
49
  export { arePublic, areProtected, arePrivate, areAsync, areNotAsync, haveParameterCount, haveParameterCountGreaterThan, haveParameterCountLessThan, haveParameterNamed, haveReturnType, haveRestParameter, haveOptionalParameter, haveParameterOfType, haveParameterNameMatching, } from './predicates/function.js';
34
50
  // Function conditions
@@ -60,15 +76,15 @@ export { formatViolationsJson } from '@nielspeter/eess';
60
76
  export { formatViolationsGitHub } from '@nielspeter/eess';
61
77
  export { detectFormat, isCI } from '@nielspeter/eess';
62
78
  // Baseline mode
63
- export { withBaseline, generateBaseline, Baseline } from '@nielspeter/eess';
79
+ export { withBaseline, generateBaseline, Baseline } from './helpers/baseline.js';
64
80
  // Diff-aware mode
65
- export { diffAware, DiffFilter } from '@nielspeter/eess';
81
+ export { diffAware, DiffFilter } from './helpers/diff-aware.js';
66
82
  // Exclusion comments
67
- export { parseExclusionComments, isExcludedByComment } from '@nielspeter/eess';
83
+ export { parseExclusionComments, isExcludedByComment } from './core/exclusion-comments.js';
68
84
  // Silent exclusion wrapper
69
85
  export { silent } from '@nielspeter/eess';
70
86
  // Baseline generation helper
71
- export { collectViolations } from '@nielspeter/eess';
87
+ export { collectViolations } from './helpers/baseline-generator.js';
72
88
  // Call entry point (plan 0014)
73
89
  export { calls, CallRuleBuilder } from './builders/call-rule-builder.js';
74
90
  export { collectCalls, fromCallExpression } from './models/arch-call.js';
@@ -77,7 +93,7 @@ export { onObject, withMethod, withArgMatching, withStringArg } from './predicat
77
93
  // Call conditions (standalone)
78
94
  export { haveCallbackContaining as callHaveCallbackContaining, notHaveCallbackContaining as callNotHaveCallbackContaining, notExist as callNotExist, haveArgumentWithProperty, notHaveArgumentWithProperty, haveArgumentContaining as callHaveArgumentContaining, notHaveArgumentContaining as callNotHaveArgumentContaining, } from './conditions/call.js';
79
95
  // Scoped rules --- within() (plan 0015)
80
- export { within } from './helpers/within.js';
96
+ export { within } from './builders/within.js';
81
97
  export { ScopedFunctionRuleBuilder } from './builders/scoped-function-rule-builder.js';
82
98
  // Callback extraction (plan 0015)
83
99
  export { extractCallbacks } from './helpers/callback-extractor.js';
@@ -87,13 +103,16 @@ export { followPattern } from './conditions/pattern.js';
87
103
  // Smell detectors (plan 0018)
88
104
  export { smells } from './smells/index.js';
89
105
  export { SmellBuilder } from './smells/smell-builder.js';
90
- export { tsconfig, TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
91
- export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE, } from './tsconfig/strict-family.js';
106
+ export { tsconfig } from './tsconfig/index.js';
107
+ export { TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
92
108
  export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
93
109
  export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
94
110
  export { buildFingerprint, computeSimilarity } from './smells/fingerprint.js';
95
111
  export { crossLayer, CrossLayerBuilder } from './builders/cross-layer-builder.js';
96
112
  export { haveMatchingCounterpart, haveConsistentExports, satisfyPairCondition, } from './conditions/cross-layer.js';
113
+ // Correspondence / coverage primitive (proposal 017)
114
+ export { crossProject, CrossProjectBuilder, byName, byArg, byPropertyNames, } from './builders/correspondence-builder.js';
115
+ export { setCorrespondence } from '@nielspeter/eess';
97
116
  // Metric predicates (plan 0028)
98
117
  export { haveCyclomaticComplexity, haveMoreLinesThan, haveMoreMethodsThan, haveComplexity, haveMoreFunctionLinesThan, } from './predicates/metrics.js';
99
118
  // Complexity calculator (for custom rules)
@@ -115,4 +134,29 @@ export { areHtmlElements, areComponents, withAttribute as jsxWithAttribute, with
115
134
  export { notExist as jsxNotExist, haveAttribute as jsxHaveAttribute, notHaveAttribute as jsxNotHaveAttribute, haveAttributeMatching as jsxHaveAttributeMatching, notHaveAttributeMatching as jsxNotHaveAttributeMatching, } from './conditions/jsx.js';
116
135
  // CLI config (plan 0020)
117
136
  export { defineConfig } from './cli/config.js';
137
+ export { orphanExclusions } from './core/orphan-exclusions.js';
138
+ // ─── Restored published surface — plan 0165 Phase 3 ──────────────────────────
139
+ //
140
+ // Every name below was exported by `@nielspeter/eess-ts` before the engine copy
141
+ // and stopped being exported by it. Removing a published export is a BREAKING
142
+ // change; re-exporting is additive, so the burden of justification sits on the
143
+ // removal, not on keeping them. Verified against `packages/ts/src/index.ts` at
144
+ // 3b851d2 — the last commit before the copy — rather than against the baseline
145
+ // the copy had already damaged. (Phase 2's exclusion list made exactly that
146
+ // mistake, and its record says so.)
147
+ export { registerProjectRoots, rootFromTsConfigPath, rootOf, relativeToRoot, } from './core/project-relative.js';
148
+ export { registerRootCompilerOptions, verbatimModuleSyntaxFor, } from './core/per-root-compiler-options.js';
149
+ export { syntacticFault, diagnoseGlob, FAULT_ADVICE, ON_DISK_ADVICE, } from './core/glob-diagnosis.js';
150
+ export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE } from './tsconfig/strict-family.js';
151
+ export { isFaultPosition, countDeclaredGlobs, isGlobNode, isOpaqueGlob, resetCommentSuppression, recordCommentSuppression, commentSuppressions, commentSuppressionNotice, dispatchRule, throwIfViolations, presetConstructsNothingViolation, finishPreset, byCodepoint, assertionLessViolation, recordEdgeCoverage, untestedRules, edgeCoverageNotice, resetEdgeCoverage, } from '@nielspeter/eess';
152
+ // The remainder of the pre-copy surface (same rule as the block above): these
153
+ // were public in eess-ts before the engine copy, so their absence is a break,
154
+ // not a cleanup.
155
+ export { UNSUPPRESSABLE, activeNotice, assertsCardinality, dedupeConfigFindings, discoverIdentityRoot, isAnchored, isNullaryCallable, isProjectRelative, isRecord, marksAssertsCardinality, normalizeIdentityText, reportViolations, resetDiffDisclosureForTests, shallowClone, suppressionNotice, viewsFor, } from '@nielspeter/eess';
156
+ export { buildDiskSet, diskSet } from './core/disk-set.js';
157
+ export { pathUniverse } from './core/path-universe.js';
158
+ export { globSitesOf, isDeadGlobTree, isDeadSite } from './core/glob-evaluator.js';
159
+ export { isTypeOnlyReExport, splitGlobArgs } from './core/import-options.js';
160
+ export { emptyProjectAdvice, loadedNothing } from './core/empty-project-advice.js';
161
+ export { validateOverrides } from './presets/shared.js';
118
162
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { type CallExpression, type SourceFile, type Node } from 'ts-morph';
6
6
  * `${object}.${method}` form (e.g. `app.post`) — the predicate-visible
7
7
  * identity.
8
8
  */
9
- export interface GetNameOptions {
9
+ interface GetNameOptions {
10
10
  /**
11
11
  * Index of an argument whose source text should be folded into the
12
12
  * returned name. When the indexed argument is a `StringLiteral` or
@@ -34,7 +34,7 @@ export interface GetNameOptions {
34
34
  * efficient predicate evaluation.
35
35
  *
36
36
  * Satisfies Named and Located interfaces from identity predicates.
37
- * Does NOT satisfy Exportable --- call expressions cannot be exported.
37
+ * Does NOT satisfy Exportable --- call expressions cannot are exported.
38
38
  */
39
39
  export interface ArchCall {
40
40
  /**
@@ -80,4 +80,5 @@ export declare function fromCallExpression(expr: CallExpression): ArchCall;
80
80
  * users filter with predicates to select the calls they care about.
81
81
  */
82
82
  export declare function collectCalls(sourceFile: SourceFile): ArchCall[];
83
+ export {};
83
84
  //# sourceMappingURL=arch-call.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch-call.d.ts","sourceRoot":"","sources":["../../src/models/arch-call.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,IAAI,EAGV,MAAM,UAAU,CAAA;AAEjB;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;IAErD,mDAAmD;IACnD,aAAa,IAAI,UAAU,CAAA;IAE3B,uEAAuE;IACvE,aAAa,IAAI,MAAM,GAAG,SAAS,CAAA;IAEnC,4DAA4D;IAC5D,aAAa,IAAI,MAAM,GAAG,SAAS,CAAA;IAEnC,4CAA4C;IAC5C,YAAY,IAAI,IAAI,EAAE,CAAA;IAEtB,+CAA+C;IAC/C,OAAO,IAAI,cAAc,CAAA;IAEzB,4CAA4C;IAC5C,kBAAkB,IAAI,MAAM,CAAA;CAC7B;AAqCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CAmCjE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,EAAE,CAM/D"}
1
+ {"version":3,"file":"arch-call.d.ts","sourceRoot":"","sources":["../../src/models/arch-call.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,IAAI,EAGV,MAAM,UAAU,CAAA;AAEjB;;;;;;GAMG;AACH,UAAU,cAAc;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;IAErD,mDAAmD;IACnD,aAAa,IAAI,UAAU,CAAA;IAE3B,uEAAuE;IACvE,aAAa,IAAI,MAAM,GAAG,SAAS,CAAA;IAEnC,4DAA4D;IAC5D,aAAa,IAAI,MAAM,GAAG,SAAS,CAAA;IAEnC,4CAA4C;IAC5C,YAAY,IAAI,IAAI,EAAE,CAAA;IAEtB,+CAA+C;IAC/C,OAAO,IAAI,cAAc,CAAA;IAEzB,4CAA4C;IAC5C,kBAAkB,IAAI,MAAM,CAAA;CAC7B;AAqCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CAmCjE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,EAAE,CAM/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"arch-call.js","sourceRoot":"","sources":["../../src/models/arch-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arch-call.js","sourceRoot":"","sources":["../../src/models/arch-call.ts"],"names":[],"mappings":"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"}
@@ -60,17 +60,39 @@ export declare function fromArrowVariableDeclaration(decl: VariableDeclaration):
60
60
  */
61
61
  export declare function fromMethodDeclaration(method: MethodDeclaration): ArchFunction;
62
62
  /**
63
- * Scan a source file for all functions.
63
+ * Options for {@link collectFunctions} / the `functions()` entry point.
64
+ */
65
+ export interface FunctionCollectionOptions {
66
+ /** Include class methods (pattern 3). Default: `true`. */
67
+ includeMethods?: boolean;
68
+ /**
69
+ * Include object-literal function property values — arrows, function
70
+ * expressions, and method shorthand (`{ GET: () => {} }`, `{ GET(){} }`).
71
+ * Default: `false`. Opt-in because it widens the "named unit" default set
72
+ * (proposal 016). Each is named by its qualified property-key path.
73
+ */
74
+ includeObjectLiteralFunctions?: boolean;
75
+ }
76
+ /**
77
+ * Scan a source file for functions.
64
78
  *
65
- * Returns ArchFunction wrappers for:
79
+ * Returns ArchFunction wrappers for these *named* shapes by default:
66
80
  * 1. FunctionDeclarations — `function foo() {}`
67
81
  * 2. VariableDeclarations with ArrowFunction initializer — `const foo = () => {}`
68
82
  * 3. Class MethodDeclarations — `class Foo { bar() {} }` (when includeMethods is true)
69
83
  *
84
+ * Plus, when `includeObjectLiteralFunctions` is set (default off):
85
+ * 4. Object-literal function property values (arrows / function expressions /
86
+ * method shorthand), named by their qualified property-key path.
87
+ *
70
88
  * @param sourceFile - The source file to scan
71
- * @param options - Set `includeMethods: true` to include class methods (default: true)
89
+ * @param options - {@link FunctionCollectionOptions}
72
90
  */
73
- export declare function collectFunctions(sourceFile: SourceFile, options?: {
74
- includeMethods?: boolean;
75
- }): ArchFunction[];
91
+ export declare function collectFunctions(sourceFile: SourceFile, options?: FunctionCollectionOptions): ArchFunction[];
92
+ /**
93
+ * Build an ArchFunction for an object-literal function value (arrow / function
94
+ * expression / method shorthand), named by its qualified property-key path
95
+ * (e.g. `routes["/x"].GET`) so violations identify the subject uniquely.
96
+ */
97
+ export declare function fromObjectLiteralFunction(node: Node, keyPath: readonly string[]): ArchFunction | undefined;
76
98
  //# sourceMappingURL=arch-function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch-function.d.ts","sourceRoot":"","sources":["../../src/models/arch-function.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,IAAI,EACT,KAAK,IAAI,EAIV,MAAM,UAAU,CAAA;AAEjB;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,OAAO,IAAI,MAAM,GAAG,SAAS,CAAA;IAE7B,4CAA4C;IAC5C,aAAa,IAAI,UAAU,CAAA;IAE3B,yDAAyD;IACzD,UAAU,IAAI,OAAO,CAAA;IAErB,+CAA+C;IAC/C,OAAO,IAAI,OAAO,CAAA;IAElB,+CAA+C;IAC/C,aAAa,IAAI,oBAAoB,EAAE,CAAA;IAEvC,mEAAmE;IACnE,aAAa,IAAI,IAAI,CAAA;IAErB,yDAAyD;IACzD,OAAO,IAAI,IAAI,GAAG,SAAS,CAAA;IAE3B;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAA;IAEf;;;OAGG;IACH,kBAAkB,IAAI,MAAM,CAAA;IAE5B;;;;;;OAMG;IACH,QAAQ,IAAI,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;CAC/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAa/E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAoBpF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAgC7E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,YAAY,EAAE,CA0BhB"}
1
+ {"version":3,"file":"arch-function.d.ts","sourceRoot":"","sources":["../../src/models/arch-function.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,IAAI,EACT,KAAK,IAAI,EAIV,MAAM,UAAU,CAAA;AAGjB;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,OAAO,IAAI,MAAM,GAAG,SAAS,CAAA;IAE7B,4CAA4C;IAC5C,aAAa,IAAI,UAAU,CAAA;IAE3B,yDAAyD;IACzD,UAAU,IAAI,OAAO,CAAA;IAErB,+CAA+C;IAC/C,OAAO,IAAI,OAAO,CAAA;IAElB,+CAA+C;IAC/C,aAAa,IAAI,oBAAoB,EAAE,CAAA;IAEvC,mEAAmE;IACnE,aAAa,IAAI,IAAI,CAAA;IAErB,yDAAyD;IACzD,OAAO,IAAI,IAAI,GAAG,SAAS,CAAA;IAE3B;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAA;IAEf;;;OAGG;IACH,kBAAkB,IAAI,MAAM,CAAA;IAE5B;;;;;;OAMG;IACH,QAAQ,IAAI,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;CAC/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAa/E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAoBpF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAgC7E;AAED;;GAEG;AAEH,MAAM,WAAW,yBAAyB;IACxC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAA;CACxC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,yBAAyB,GAClC,YAAY,EAAE,CAoDhB;AAkCD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,YAAY,GAAG,SAAS,CAqB1B"}
@@ -1,4 +1,5 @@
1
1
  import { Node as NodeClass, Scope, SyntaxKind, } from 'ts-morph';
2
+ import { collectObjectLiteralFunctions } from '../core/object-literal-functions.js';
2
3
  /**
3
4
  * Create an ArchFunction from a FunctionDeclaration.
4
5
  */
@@ -86,18 +87,23 @@ export function fromMethodDeclaration(method) {
86
87
  };
87
88
  }
88
89
  /**
89
- * Scan a source file for all functions.
90
+ * Scan a source file for functions.
90
91
  *
91
- * Returns ArchFunction wrappers for:
92
+ * Returns ArchFunction wrappers for these *named* shapes by default:
92
93
  * 1. FunctionDeclarations — `function foo() {}`
93
94
  * 2. VariableDeclarations with ArrowFunction initializer — `const foo = () => {}`
94
95
  * 3. Class MethodDeclarations — `class Foo { bar() {} }` (when includeMethods is true)
95
96
  *
97
+ * Plus, when `includeObjectLiteralFunctions` is set (default off):
98
+ * 4. Object-literal function property values (arrows / function expressions /
99
+ * method shorthand), named by their qualified property-key path.
100
+ *
96
101
  * @param sourceFile - The source file to scan
97
- * @param options - Set `includeMethods: true` to include class methods (default: true)
102
+ * @param options - {@link FunctionCollectionOptions}
98
103
  */
99
104
  export function collectFunctions(sourceFile, options) {
100
105
  const includeMethods = options?.includeMethods ?? true;
106
+ const includeObjectLiteralFunctions = options?.includeObjectLiteralFunctions ?? false;
101
107
  const functions = [];
102
108
  // Pattern 1: FunctionDeclarations
103
109
  for (const fn of sourceFile.getFunctions()) {
@@ -117,6 +123,103 @@ export function collectFunctions(sourceFile, options) {
117
123
  }
118
124
  }
119
125
  }
126
+ // Pattern 4: object-literal function property values (opt-in, proposal 016).
127
+ // Collect from top-level object literals only; the shared traversal recurses
128
+ // into nested ones, so each function is collected exactly once.
129
+ if (includeObjectLiteralFunctions) {
130
+ const roots = sourceFile
131
+ .getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression)
132
+ .filter((objectLiteral) => !isNestedInObjectLiteral(objectLiteral));
133
+ for (const root of roots) {
134
+ // Prefix the binding that owns the literal, so two object literals in one
135
+ // file that share a key name (`routeA.handler` and `routeB.handler`) are
136
+ // distinguishable. Without it both are just `handler`: the rendered
137
+ // violation is ambiguous, `.excluding('handler')` hits both, and — since
138
+ // duplicate-pair identity is built from these names — accepting one
139
+ // finding silently accepts the other (bug 0010 collision, measured 3
140
+ // findings collapsing to 2 identities). The documented example
141
+ // (`routes["/x"].GET`) always implied this prefix; the code never added it.
142
+ const owner = owningBindingName(root);
143
+ for (const found of collectObjectLiteralFunctions(root)) {
144
+ const keyPath = owner === undefined ? found.keyPath : [owner, ...found.keyPath];
145
+ const fn = fromObjectLiteralFunction(found.node, keyPath);
146
+ if (fn)
147
+ functions.push(fn);
148
+ }
149
+ }
150
+ }
120
151
  return functions;
121
152
  }
153
+ /**
154
+ * The name of the binding an object literal is assigned to, if any.
155
+ *
156
+ * Only the immediate parent is considered: `const routes = {...}` and
157
+ * `class C { routes = {...} }` name the literal, whereas a literal passed as a
158
+ * call argument or returned from a factory genuinely has no binding, and
159
+ * inventing one from a distant ancestor would be a guess.
160
+ */
161
+ function owningBindingName(objectLiteral) {
162
+ const parent = objectLiteral.getParent();
163
+ if (!parent)
164
+ return undefined;
165
+ if (NodeClass.isVariableDeclaration(parent) || NodeClass.isPropertyDeclaration(parent)) {
166
+ return parent.getName();
167
+ }
168
+ if (NodeClass.isPropertyAssignment(parent)) {
169
+ const nameNode = parent.getNameNode();
170
+ if (NodeClass.isStringLiteral(nameNode))
171
+ return nameNode.getLiteralValue();
172
+ if (!NodeClass.isComputedPropertyName(nameNode))
173
+ return nameNode.getText();
174
+ }
175
+ return undefined;
176
+ }
177
+ /** True if `node` is nested inside another object literal (so a root walk covers it). */
178
+ function isNestedInObjectLiteral(node) {
179
+ let current = node.getParent();
180
+ while (current) {
181
+ if (NodeClass.isObjectLiteralExpression(current))
182
+ return true;
183
+ current = current.getParent();
184
+ }
185
+ return false;
186
+ }
187
+ /**
188
+ * Build an ArchFunction for an object-literal function value (arrow / function
189
+ * expression / method shorthand), named by its qualified property-key path
190
+ * (e.g. `routes["/x"].GET`) so violations identify the subject uniquely.
191
+ */
192
+ export function fromObjectLiteralFunction(node, keyPath) {
193
+ const name = qualifiedName(keyPath);
194
+ if (NodeClass.isArrowFunction(node) ||
195
+ NodeClass.isFunctionExpression(node) ||
196
+ NodeClass.isMethodDeclaration(node)) {
197
+ return {
198
+ getName: () => name,
199
+ getSourceFile: () => node.getSourceFile(),
200
+ isExported: () => false,
201
+ isAsync: () => node.isAsync(),
202
+ getParameters: () => node.getParameters(),
203
+ getReturnType: () => node.getReturnType(),
204
+ getBody: () => node.getBody(),
205
+ getNode: () => node,
206
+ getStartLineNumber: () => node.getStartLineNumber(),
207
+ getScope: () => 'public',
208
+ };
209
+ }
210
+ return undefined;
211
+ }
212
+ /** Render a property-key path: `a.b`, bracketing non-identifier keys (`a["/x"].c`). */
213
+ function qualifiedName(keyPath) {
214
+ if (keyPath.length === 0)
215
+ return '<anonymous>';
216
+ return keyPath
217
+ .map((key, index) => {
218
+ const isIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key);
219
+ if (index === 0)
220
+ return key;
221
+ return isIdentifier ? `.${key}` : `[${JSON.stringify(key)}]`;
222
+ })
223
+ .join('');
224
+ }
122
225
  //# sourceMappingURL=arch-function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arch-function.js","sourceRoot":"","sources":["../../src/models/arch-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arch-function.js","sourceRoot":"","sources":["../../src/models/arch-function.ts"],"names":[],"mappings":"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"}
@@ -169,7 +169,7 @@ function buildAttributeAccessors(getAttrs) {
169
169
  /**
170
170
  * Create an ArchJsxElement from a JsxElement (has opening + closing tags).
171
171
  */
172
- // eess-exclude eess/no-unused-exports: consumed by the test suite (tests are outside the build project)
172
+ // eess-exclude eess/no-unused-exports: consumed by the test suite; the build tsconfig this gate reads excludes tests, so `src` is the only usage it can see
173
173
  export function fromJsxElement(el) {
174
174
  const opening = el.getOpeningElement();
175
175
  const tagName = opening.getTagNameNode().getText();
@@ -189,7 +189,7 @@ export function fromJsxElement(el) {
189
189
  /**
190
190
  * Create an ArchJsxElement from a JsxSelfClosingElement (no children).
191
191
  */
192
- // eess-exclude eess/no-unused-exports: consumed by the test suite (tests are outside the build project)
192
+ // eess-exclude eess/no-unused-exports: consumed by the test suite; the build tsconfig this gate reads excludes tests, so `src` is the only usage it can see
193
193
  export function fromJsxSelfClosingElement(el) {
194
194
  const tagName = el.getTagNameNode().getText();
195
195
  const htmlTag = isHtmlTag(tagName);
@@ -1 +1 @@
1
- {"version":3,"file":"arch-jsx-element.js","sourceRoot":"","sources":["../../src/models/arch-jsx-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arch-jsx-element.js","sourceRoot":"","sources":["../../src/models/arch-jsx-element.ts"],"names":[],"mappings":"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"}
@@ -22,20 +22,44 @@ export interface Slice {
22
22
  * }
23
23
  */
24
24
  export type SliceDefinition = Record<string, string>;
25
+ /**
26
+ * The literal directory prefix a `matching()` glob would search for, or `''` when
27
+ * it has none (`'*'`, `'src'`, `'{a,b}/x/*'`). Exposed so the rule builder can
28
+ * state the *actual* cause of an empty result instead of guessing at one.
29
+ */
30
+ export declare function matchingGlobPrefix(glob: string): string;
31
+ /**
32
+ * The glob `matching()` actually hands to picomatch.
33
+ *
34
+ * Exposed for glob diagnosis (plan 0069), which must declare **the string the
35
+ * matcher receives** — the same rule `GlobKind` states for what a glob is
36
+ * matched against. Declaring the author's spelling instead makes the whole
37
+ * mechanism wrong for this entry point: `'src/features/*'` is rewritten to
38
+ * `'**\/src/features/**\/*'`-shaped, so the author's string matches nothing in
39
+ * either view and every nested-layout `matching()` rule — the shape the docs
40
+ * teach — is reported dead. It also made `'./src/features/*'`, which
41
+ * `parseMatchingGlob` deliberately supports, report a `dot-segment` fault with
42
+ * a remedy that would break a working rule.
43
+ */
44
+ export declare function matchingGlobPattern(glob: string): string;
25
45
  /**
26
46
  * Resolve slices by matching a glob pattern against source file paths.
27
- * Each unique directory matching the glob becomes a slice.
28
47
  *
29
- * The glob must contain a wildcard segment that distinguishes slices.
30
- * For example, 'src/features/*\/' matches each subdirectory of src/features/
31
- * as a separate slice.
48
+ * The segment following the glob's literal prefix names each slice. That segment
49
+ * is a **directory** when files are nested under it, and otherwise each matching
50
+ * **file** name — `matching('src/features/*')` over `features/billing/order.ts`
51
+ * yields a `billing` slice, while over a flat `services/order.service.ts` it
52
+ * yields an `order.service.ts` slice.
53
+ *
54
+ * Every spelling of the same intent agrees: `'src/features/*'`,
55
+ * `'src/features/*\/'`, `'src/features/'` and `'**\/src/features/*'` are equivalent.
32
56
  *
33
57
  * @param project - The loaded ArchProject
34
- * @param glob - A glob pattern where the wildcard segment defines slice boundaries
35
- * @returns Array of slices, one per matching directory
58
+ * @param glob - A glob whose literal prefix locates the slices; the next segment names them
59
+ * @returns Array of slices, one per distinct name
36
60
  *
37
61
  * @example
38
- * resolveByMatching(project, 'src/features/*\/')
62
+ * resolveByMatching(project, 'src/features/*')
39
63
  * // => [{ name: 'auth', files: [...] }, { name: 'billing', files: [...] }]
40
64
  */
41
65
  export declare function resolveByMatching(project: ArchProject, glob: string): Slice[];
@@ -52,8 +76,8 @@ export declare function resolveByMatching(project: ArchProject, glob: string): S
52
76
  *
53
77
  * @example
54
78
  * resolveByDefinition(project, {
55
- * presentation: 'src/controllers/**',
56
- * domain: 'src/domain/**',
79
+ * presentation: 'src/controllers/**', // relative: those folders AT THE ROOT
80
+ * domain: '**\/domain/**', // anchored: a domain/ anywhere
57
81
  * })
58
82
  */
59
83
  export declare function resolveByDefinition(project: ArchProject, definition: SliceDefinition): Slice[];
@@ -1 +1 @@
1
- {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/models/slice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEpD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAoC7E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,GAAG,KAAK,EAAE,CAsB9F"}
1
+ {"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../src/models/slice.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AA+FpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAkC7E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,GAAG,KAAK,EAAE,CA0C9F"}