@nielspeter/eess-ts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +364 -0
  3. package/dist/builders/call-rule-builder.d.ts +199 -0
  4. package/dist/builders/call-rule-builder.d.ts.map +1 -0
  5. package/dist/builders/call-rule-builder.js +254 -0
  6. package/dist/builders/call-rule-builder.js.map +1 -0
  7. package/dist/builders/class-rule-builder.d.ts +136 -0
  8. package/dist/builders/class-rule-builder.d.ts.map +1 -0
  9. package/dist/builders/class-rule-builder.js +253 -0
  10. package/dist/builders/class-rule-builder.js.map +1 -0
  11. package/dist/builders/cross-layer-builder.d.ts +96 -0
  12. package/dist/builders/cross-layer-builder.d.ts.map +1 -0
  13. package/dist/builders/cross-layer-builder.js +172 -0
  14. package/dist/builders/cross-layer-builder.js.map +1 -0
  15. package/dist/builders/function-rule-builder.d.ts +198 -0
  16. package/dist/builders/function-rule-builder.d.ts.map +1 -0
  17. package/dist/builders/function-rule-builder.js +287 -0
  18. package/dist/builders/function-rule-builder.js.map +1 -0
  19. package/dist/builders/jsx-rule-builder.d.ts +113 -0
  20. package/dist/builders/jsx-rule-builder.d.ts.map +1 -0
  21. package/dist/builders/jsx-rule-builder.js +150 -0
  22. package/dist/builders/jsx-rule-builder.js.map +1 -0
  23. package/dist/builders/module-rule-builder.d.ts +159 -0
  24. package/dist/builders/module-rule-builder.d.ts.map +1 -0
  25. package/dist/builders/module-rule-builder.js +237 -0
  26. package/dist/builders/module-rule-builder.js.map +1 -0
  27. package/dist/builders/scoped-function-rule-builder.d.ts +21 -0
  28. package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -0
  29. package/dist/builders/scoped-function-rule-builder.js +26 -0
  30. package/dist/builders/scoped-function-rule-builder.js.map +1 -0
  31. package/dist/builders/slice-rule-builder.d.ts +85 -0
  32. package/dist/builders/slice-rule-builder.d.ts.map +1 -0
  33. package/dist/builders/slice-rule-builder.js +134 -0
  34. package/dist/builders/slice-rule-builder.js.map +1 -0
  35. package/dist/builders/type-rule-builder.d.ts +103 -0
  36. package/dist/builders/type-rule-builder.d.ts.map +1 -0
  37. package/dist/builders/type-rule-builder.js +170 -0
  38. package/dist/builders/type-rule-builder.js.map +1 -0
  39. package/dist/cli/bin.d.ts +3 -0
  40. package/dist/cli/bin.d.ts.map +1 -0
  41. package/dist/cli/bin.js +4 -0
  42. package/dist/cli/bin.js.map +1 -0
  43. package/dist/cli/commands/baseline.d.ts +11 -0
  44. package/dist/cli/commands/baseline.d.ts.map +1 -0
  45. package/dist/cli/commands/baseline.js +16 -0
  46. package/dist/cli/commands/baseline.js.map +1 -0
  47. package/dist/cli/commands/check.d.ts +21 -0
  48. package/dist/cli/commands/check.d.ts.map +1 -0
  49. package/dist/cli/commands/check.js +94 -0
  50. package/dist/cli/commands/check.js.map +1 -0
  51. package/dist/cli/commands/explain.d.ts +9 -0
  52. package/dist/cli/commands/explain.d.ts.map +1 -0
  53. package/dist/cli/commands/explain.js +49 -0
  54. package/dist/cli/commands/explain.js.map +1 -0
  55. package/dist/cli/config.d.ts +31 -0
  56. package/dist/cli/config.d.ts.map +1 -0
  57. package/dist/cli/config.js +20 -0
  58. package/dist/cli/config.js.map +1 -0
  59. package/dist/cli/index.d.ts +21 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +168 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/cli/load-rules.d.ts +20 -0
  64. package/dist/cli/load-rules.d.ts.map +1 -0
  65. package/dist/cli/load-rules.js +97 -0
  66. package/dist/cli/load-rules.js.map +1 -0
  67. package/dist/cli/resolve-config.d.ts +11 -0
  68. package/dist/cli/resolve-config.d.ts.map +1 -0
  69. package/dist/cli/resolve-config.js +61 -0
  70. package/dist/cli/resolve-config.js.map +1 -0
  71. package/dist/cli/watch.d.ts +49 -0
  72. package/dist/cli/watch.d.ts.map +1 -0
  73. package/dist/cli/watch.js +138 -0
  74. package/dist/cli/watch.js.map +1 -0
  75. package/dist/conditions/body-analysis-function.d.ts +23 -0
  76. package/dist/conditions/body-analysis-function.d.ts.map +1 -0
  77. package/dist/conditions/body-analysis-function.js +103 -0
  78. package/dist/conditions/body-analysis-function.js.map +1 -0
  79. package/dist/conditions/body-analysis-module.d.ts +27 -0
  80. package/dist/conditions/body-analysis-module.d.ts.map +1 -0
  81. package/dist/conditions/body-analysis-module.js +99 -0
  82. package/dist/conditions/body-analysis-module.js.map +1 -0
  83. package/dist/conditions/body-analysis.d.ts +34 -0
  84. package/dist/conditions/body-analysis.d.ts.map +1 -0
  85. package/dist/conditions/body-analysis.js +95 -0
  86. package/dist/conditions/body-analysis.js.map +1 -0
  87. package/dist/conditions/call.d.ts +62 -0
  88. package/dist/conditions/call.d.ts.map +1 -0
  89. package/dist/conditions/call.js +267 -0
  90. package/dist/conditions/call.js.map +1 -0
  91. package/dist/conditions/catch-analysis.d.ts +31 -0
  92. package/dist/conditions/catch-analysis.d.ts.map +1 -0
  93. package/dist/conditions/catch-analysis.js +78 -0
  94. package/dist/conditions/catch-analysis.js.map +1 -0
  95. package/dist/conditions/class.d.ts +33 -0
  96. package/dist/conditions/class.d.ts.map +1 -0
  97. package/dist/conditions/class.js +110 -0
  98. package/dist/conditions/class.js.map +1 -0
  99. package/dist/conditions/cross-layer.d.ts +28 -0
  100. package/dist/conditions/cross-layer.d.ts.map +1 -0
  101. package/dist/conditions/cross-layer.js +105 -0
  102. package/dist/conditions/cross-layer.js.map +1 -0
  103. package/dist/conditions/dependency.d.ts +73 -0
  104. package/dist/conditions/dependency.d.ts.map +1 -0
  105. package/dist/conditions/dependency.js +177 -0
  106. package/dist/conditions/dependency.js.map +1 -0
  107. package/dist/conditions/exports.d.ts +33 -0
  108. package/dist/conditions/exports.d.ts.map +1 -0
  109. package/dist/conditions/exports.js +101 -0
  110. package/dist/conditions/exports.js.map +1 -0
  111. package/dist/conditions/function.d.ts +79 -0
  112. package/dist/conditions/function.d.ts.map +1 -0
  113. package/dist/conditions/function.js +167 -0
  114. package/dist/conditions/function.js.map +1 -0
  115. package/dist/conditions/helpers.d.ts +14 -0
  116. package/dist/conditions/helpers.d.ts.map +1 -0
  117. package/dist/conditions/helpers.js +26 -0
  118. package/dist/conditions/helpers.js.map +1 -0
  119. package/dist/conditions/jsx.d.ts +40 -0
  120. package/dist/conditions/jsx.d.ts.map +1 -0
  121. package/dist/conditions/jsx.js +133 -0
  122. package/dist/conditions/jsx.js.map +1 -0
  123. package/dist/conditions/members.d.ts +74 -0
  124. package/dist/conditions/members.d.ts.map +1 -0
  125. package/dist/conditions/members.js +224 -0
  126. package/dist/conditions/members.js.map +1 -0
  127. package/dist/conditions/pattern.d.ts +20 -0
  128. package/dist/conditions/pattern.d.ts.map +1 -0
  129. package/dist/conditions/pattern.js +108 -0
  130. package/dist/conditions/pattern.js.map +1 -0
  131. package/dist/conditions/reverse-dependency.d.ts +28 -0
  132. package/dist/conditions/reverse-dependency.d.ts.map +1 -0
  133. package/dist/conditions/reverse-dependency.js +275 -0
  134. package/dist/conditions/reverse-dependency.js.map +1 -0
  135. package/dist/conditions/slice.d.ts +49 -0
  136. package/dist/conditions/slice.d.ts.map +1 -0
  137. package/dist/conditions/slice.js +153 -0
  138. package/dist/conditions/slice.js.map +1 -0
  139. package/dist/conditions/structural.d.ts +58 -0
  140. package/dist/conditions/structural.d.ts.map +1 -0
  141. package/dist/conditions/structural.js +102 -0
  142. package/dist/conditions/structural.js.map +1 -0
  143. package/dist/conditions/type-level.d.ts +29 -0
  144. package/dist/conditions/type-level.d.ts.map +1 -0
  145. package/dist/conditions/type-level.js +48 -0
  146. package/dist/conditions/type-level.js.map +1 -0
  147. package/dist/core/import-options.d.ts +32 -0
  148. package/dist/core/import-options.d.ts.map +1 -0
  149. package/dist/core/import-options.js +29 -0
  150. package/dist/core/import-options.js.map +1 -0
  151. package/dist/core/module-dependencies.d.ts +28 -0
  152. package/dist/core/module-dependencies.d.ts.map +1 -0
  153. package/dist/core/module-dependencies.js +35 -0
  154. package/dist/core/module-dependencies.js.map +1 -0
  155. package/dist/core/pair-condition.d.ts +10 -0
  156. package/dist/core/pair-condition.d.ts.map +1 -0
  157. package/dist/core/pair-condition.js +2 -0
  158. package/dist/core/pair-condition.js.map +1 -0
  159. package/dist/core/project.d.ts +68 -0
  160. package/dist/core/project.d.ts.map +1 -0
  161. package/dist/core/project.js +127 -0
  162. package/dist/core/project.js.map +1 -0
  163. package/dist/core/type-matcher.d.ts +10 -0
  164. package/dist/core/type-matcher.d.ts.map +1 -0
  165. package/dist/core/type-matcher.js +2 -0
  166. package/dist/core/type-matcher.js.map +1 -0
  167. package/dist/core/violation.d.ts +38 -0
  168. package/dist/core/violation.d.ts.map +1 -0
  169. package/dist/core/violation.js +130 -0
  170. package/dist/core/violation.js.map +1 -0
  171. package/dist/graphql/index.d.ts +76 -0
  172. package/dist/graphql/index.d.ts.map +1 -0
  173. package/dist/graphql/index.js +108 -0
  174. package/dist/graphql/index.js.map +1 -0
  175. package/dist/graphql/resolver-rule-builder.d.ts +75 -0
  176. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -0
  177. package/dist/graphql/resolver-rule-builder.js +146 -0
  178. package/dist/graphql/resolver-rule-builder.js.map +1 -0
  179. package/dist/graphql/schema-conditions.d.ts +31 -0
  180. package/dist/graphql/schema-conditions.d.ts.map +1 -0
  181. package/dist/graphql/schema-conditions.js +119 -0
  182. package/dist/graphql/schema-conditions.js.map +1 -0
  183. package/dist/graphql/schema-loader.d.ts +75 -0
  184. package/dist/graphql/schema-loader.d.ts.map +1 -0
  185. package/dist/graphql/schema-loader.js +113 -0
  186. package/dist/graphql/schema-loader.js.map +1 -0
  187. package/dist/graphql/schema-predicates.d.ts +42 -0
  188. package/dist/graphql/schema-predicates.d.ts.map +1 -0
  189. package/dist/graphql/schema-predicates.js +74 -0
  190. package/dist/graphql/schema-predicates.js.map +1 -0
  191. package/dist/graphql/schema-rule-builder.d.ts +74 -0
  192. package/dist/graphql/schema-rule-builder.d.ts.map +1 -0
  193. package/dist/graphql/schema-rule-builder.js +188 -0
  194. package/dist/graphql/schema-rule-builder.js.map +1 -0
  195. package/dist/helpers/body-traversal.d.ts +58 -0
  196. package/dist/helpers/body-traversal.d.ts.map +1 -0
  197. package/dist/helpers/body-traversal.js +180 -0
  198. package/dist/helpers/body-traversal.js.map +1 -0
  199. package/dist/helpers/callback-extractor.d.ts +28 -0
  200. package/dist/helpers/callback-extractor.d.ts.map +1 -0
  201. package/dist/helpers/callback-extractor.js +159 -0
  202. package/dist/helpers/callback-extractor.js.map +1 -0
  203. package/dist/helpers/complexity.d.ts +26 -0
  204. package/dist/helpers/complexity.d.ts.map +1 -0
  205. package/dist/helpers/complexity.js +64 -0
  206. package/dist/helpers/complexity.js.map +1 -0
  207. package/dist/helpers/matchers.d.ts +206 -0
  208. package/dist/helpers/matchers.d.ts.map +1 -0
  209. package/dist/helpers/matchers.js +470 -0
  210. package/dist/helpers/matchers.js.map +1 -0
  211. package/dist/helpers/pattern.d.ts +37 -0
  212. package/dist/helpers/pattern.d.ts.map +1 -0
  213. package/dist/helpers/pattern.js +22 -0
  214. package/dist/helpers/pattern.js.map +1 -0
  215. package/dist/helpers/slice-graph.d.ts +32 -0
  216. package/dist/helpers/slice-graph.d.ts.map +1 -0
  217. package/dist/helpers/slice-graph.js +89 -0
  218. package/dist/helpers/slice-graph.js.map +1 -0
  219. package/dist/helpers/tarjan.d.ts +21 -0
  220. package/dist/helpers/tarjan.d.ts.map +1 -0
  221. package/dist/helpers/tarjan.js +71 -0
  222. package/dist/helpers/tarjan.js.map +1 -0
  223. package/dist/helpers/type-matchers.d.ts +67 -0
  224. package/dist/helpers/type-matchers.d.ts.map +1 -0
  225. package/dist/helpers/type-matchers.js +108 -0
  226. package/dist/helpers/type-matchers.js.map +1 -0
  227. package/dist/helpers/within.d.ts +41 -0
  228. package/dist/helpers/within.d.ts.map +1 -0
  229. package/dist/helpers/within.js +32 -0
  230. package/dist/helpers/within.js.map +1 -0
  231. package/dist/index.d.ts +101 -0
  232. package/dist/index.d.ts.map +1 -0
  233. package/dist/index.js +116 -0
  234. package/dist/index.js.map +1 -0
  235. package/dist/models/arch-call.d.ts +83 -0
  236. package/dist/models/arch-call.d.ts.map +1 -0
  237. package/dist/models/arch-call.js +90 -0
  238. package/dist/models/arch-call.js.map +1 -0
  239. package/dist/models/arch-function.d.ts +76 -0
  240. package/dist/models/arch-function.d.ts.map +1 -0
  241. package/dist/models/arch-function.js +122 -0
  242. package/dist/models/arch-function.js.map +1 -0
  243. package/dist/models/arch-jsx-element.d.ts +75 -0
  244. package/dist/models/arch-jsx-element.d.ts.map +1 -0
  245. package/dist/models/arch-jsx-element.js +231 -0
  246. package/dist/models/arch-jsx-element.js.map +1 -0
  247. package/dist/models/cross-layer.d.ts +15 -0
  248. package/dist/models/cross-layer.d.ts.map +1 -0
  249. package/dist/models/cross-layer.js +2 -0
  250. package/dist/models/cross-layer.js.map +1 -0
  251. package/dist/models/slice.d.ts +60 -0
  252. package/dist/models/slice.d.ts.map +1 -0
  253. package/dist/models/slice.js +89 -0
  254. package/dist/models/slice.js.map +1 -0
  255. package/dist/predicates/call.d.ts +49 -0
  256. package/dist/predicates/call.d.ts.map +1 -0
  257. package/dist/predicates/call.js +115 -0
  258. package/dist/predicates/call.js.map +1 -0
  259. package/dist/predicates/class.d.ts +42 -0
  260. package/dist/predicates/class.d.ts.map +1 -0
  261. package/dist/predicates/class.js +83 -0
  262. package/dist/predicates/class.js.map +1 -0
  263. package/dist/predicates/function.d.ts +81 -0
  264. package/dist/predicates/function.d.ts.map +1 -0
  265. package/dist/predicates/function.js +157 -0
  266. package/dist/predicates/function.js.map +1 -0
  267. package/dist/predicates/identity.d.ts +55 -0
  268. package/dist/predicates/identity.d.ts.map +1 -0
  269. package/dist/predicates/identity.js +96 -0
  270. package/dist/predicates/identity.js.map +1 -0
  271. package/dist/predicates/index.d.ts +4 -0
  272. package/dist/predicates/index.d.ts.map +1 -0
  273. package/dist/predicates/index.js +3 -0
  274. package/dist/predicates/index.js.map +1 -0
  275. package/dist/predicates/jsx.d.ts +41 -0
  276. package/dist/predicates/jsx.d.ts.map +1 -0
  277. package/dist/predicates/jsx.js +84 -0
  278. package/dist/predicates/jsx.js.map +1 -0
  279. package/dist/predicates/metrics.d.ts +30 -0
  280. package/dist/predicates/metrics.d.ts.map +1 -0
  281. package/dist/predicates/metrics.js +65 -0
  282. package/dist/predicates/metrics.js.map +1 -0
  283. package/dist/predicates/module.d.ts +44 -0
  284. package/dist/predicates/module.d.ts.map +1 -0
  285. package/dist/predicates/module.js +70 -0
  286. package/dist/predicates/module.js.map +1 -0
  287. package/dist/predicates/type.d.ts +48 -0
  288. package/dist/predicates/type.d.ts.map +1 -0
  289. package/dist/predicates/type.js +107 -0
  290. package/dist/predicates/type.js.map +1 -0
  291. package/dist/presets/boundaries.d.ts +19 -0
  292. package/dist/presets/boundaries.d.ts.map +1 -0
  293. package/dist/presets/boundaries.js +93 -0
  294. package/dist/presets/boundaries.js.map +1 -0
  295. package/dist/presets/data-layer.d.ts +20 -0
  296. package/dist/presets/data-layer.d.ts.map +1 -0
  297. package/dist/presets/data-layer.js +30 -0
  298. package/dist/presets/data-layer.js.map +1 -0
  299. package/dist/presets/index.d.ts +9 -0
  300. package/dist/presets/index.d.ts.map +1 -0
  301. package/dist/presets/index.js +5 -0
  302. package/dist/presets/index.js.map +1 -0
  303. package/dist/presets/layered.d.ts +21 -0
  304. package/dist/presets/layered.d.ts.map +1 -0
  305. package/dist/presets/layered.js +103 -0
  306. package/dist/presets/layered.js.map +1 -0
  307. package/dist/presets/shared.d.ts +3 -0
  308. package/dist/presets/shared.d.ts.map +1 -0
  309. package/dist/presets/shared.js +5 -0
  310. package/dist/presets/shared.js.map +1 -0
  311. package/dist/rules/architecture.d.ts +10 -0
  312. package/dist/rules/architecture.d.ts.map +1 -0
  313. package/dist/rules/architecture.js +14 -0
  314. package/dist/rules/architecture.js.map +1 -0
  315. package/dist/rules/code-quality.d.ts +55 -0
  316. package/dist/rules/code-quality.d.ts.map +1 -0
  317. package/dist/rules/code-quality.js +116 -0
  318. package/dist/rules/code-quality.js.map +1 -0
  319. package/dist/rules/dependencies.d.ts +32 -0
  320. package/dist/rules/dependencies.d.ts.map +1 -0
  321. package/dist/rules/dependencies.js +37 -0
  322. package/dist/rules/dependencies.js.map +1 -0
  323. package/dist/rules/errors.d.ts +31 -0
  324. package/dist/rules/errors.d.ts.map +1 -0
  325. package/dist/rules/errors.js +97 -0
  326. package/dist/rules/errors.js.map +1 -0
  327. package/dist/rules/hygiene.d.ts +54 -0
  328. package/dist/rules/hygiene.d.ts.map +1 -0
  329. package/dist/rules/hygiene.js +62 -0
  330. package/dist/rules/hygiene.js.map +1 -0
  331. package/dist/rules/metrics-function.d.ts +45 -0
  332. package/dist/rules/metrics-function.d.ts.map +1 -0
  333. package/dist/rules/metrics-function.js +87 -0
  334. package/dist/rules/metrics-function.js.map +1 -0
  335. package/dist/rules/metrics.d.ts +64 -0
  336. package/dist/rules/metrics.d.ts.map +1 -0
  337. package/dist/rules/metrics.js +157 -0
  338. package/dist/rules/metrics.js.map +1 -0
  339. package/dist/rules/naming.d.ts +24 -0
  340. package/dist/rules/naming.d.ts.map +1 -0
  341. package/dist/rules/naming.js +51 -0
  342. package/dist/rules/naming.js.map +1 -0
  343. package/dist/rules/security.d.ts +59 -0
  344. package/dist/rules/security.d.ts.map +1 -0
  345. package/dist/rules/security.js +92 -0
  346. package/dist/rules/security.js.map +1 -0
  347. package/dist/rules/typescript.d.ts +73 -0
  348. package/dist/rules/typescript.d.ts.map +1 -0
  349. package/dist/rules/typescript.js +105 -0
  350. package/dist/rules/typescript.js.map +1 -0
  351. package/dist/smells/duplicate-bodies.d.ts +24 -0
  352. package/dist/smells/duplicate-bodies.d.ts.map +1 -0
  353. package/dist/smells/duplicate-bodies.js +131 -0
  354. package/dist/smells/duplicate-bodies.js.map +1 -0
  355. package/dist/smells/fingerprint.d.ts +27 -0
  356. package/dist/smells/fingerprint.d.ts.map +1 -0
  357. package/dist/smells/fingerprint.js +50 -0
  358. package/dist/smells/fingerprint.js.map +1 -0
  359. package/dist/smells/inconsistent-siblings.d.ts +21 -0
  360. package/dist/smells/inconsistent-siblings.d.ts.map +1 -0
  361. package/dist/smells/inconsistent-siblings.js +135 -0
  362. package/dist/smells/inconsistent-siblings.js.map +1 -0
  363. package/dist/smells/index.d.ts +12 -0
  364. package/dist/smells/index.d.ts.map +1 -0
  365. package/dist/smells/index.js +15 -0
  366. package/dist/smells/index.js.map +1 -0
  367. package/dist/smells/smell-builder.d.ts +37 -0
  368. package/dist/smells/smell-builder.d.ts.map +1 -0
  369. package/dist/smells/smell-builder.js +51 -0
  370. package/dist/smells/smell-builder.js.map +1 -0
  371. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-graph.js","sourceRoot":"","sources":["../../src/helpers/slice-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * An adjacency list representation of a directed graph.
3
+ * Keys are node indices, values are arrays of neighbor indices.
4
+ */
5
+ export type AdjacencyList = Map<number, number[]>;
6
+ /**
7
+ * Find all strongly connected components in a directed graph
8
+ * using Tarjan's algorithm.
9
+ *
10
+ * Returns only components with size > 1 (i.e., actual cycles).
11
+ * Each component is an array of node indices forming a cycle.
12
+ *
13
+ * Time complexity: O(V + E)
14
+ * Space complexity: O(V)
15
+ *
16
+ * @param nodeCount - Total number of nodes (0-indexed)
17
+ * @param edges - Adjacency list: node index -> list of neighbor indices
18
+ * @returns Array of strongly connected components (size > 1)
19
+ */
20
+ export declare function tarjanSCC(nodeCount: number, edges: AdjacencyList): number[][];
21
+ //# sourceMappingURL=tarjan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarjan.d.ts","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;AAEjD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,EAAE,CAyD7E"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Find all strongly connected components in a directed graph
3
+ * using Tarjan's algorithm.
4
+ *
5
+ * Returns only components with size > 1 (i.e., actual cycles).
6
+ * Each component is an array of node indices forming a cycle.
7
+ *
8
+ * Time complexity: O(V + E)
9
+ * Space complexity: O(V)
10
+ *
11
+ * @param nodeCount - Total number of nodes (0-indexed)
12
+ * @param edges - Adjacency list: node index -> list of neighbor indices
13
+ * @returns Array of strongly connected components (size > 1)
14
+ */
15
+ export function tarjanSCC(nodeCount, edges) {
16
+ const index = new Array(nodeCount).fill(-1);
17
+ const lowlink = new Array(nodeCount).fill(-1);
18
+ const onStack = new Array(nodeCount).fill(false);
19
+ const stack = [];
20
+ let currentIndex = 0;
21
+ const sccs = [];
22
+ function strongConnect(v) {
23
+ index[v] = currentIndex;
24
+ lowlink[v] = currentIndex;
25
+ currentIndex++;
26
+ stack.push(v);
27
+ onStack[v] = true;
28
+ const neighbors = edges.get(v) ?? [];
29
+ for (const w of neighbors) {
30
+ // lv/lw/iw are always defined here (v and w are bounded indices into
31
+ // pre-filled arrays); the guards satisfy noUncheckedIndexedAccess.
32
+ const lv = lowlink[v];
33
+ if (index[w] === -1) {
34
+ // w has not been visited
35
+ strongConnect(w);
36
+ const lw = lowlink[w];
37
+ if (lv !== undefined && lw !== undefined)
38
+ lowlink[v] = Math.min(lv, lw);
39
+ }
40
+ else if (onStack[w]) {
41
+ // w is on the stack, so it's in the current SCC
42
+ const iw = index[w];
43
+ if (lv !== undefined && iw !== undefined)
44
+ lowlink[v] = Math.min(lv, iw);
45
+ }
46
+ }
47
+ // If v is a root node, pop the SCC
48
+ if (lowlink[v] === index[v]) {
49
+ const scc = [];
50
+ let popped = stack.pop();
51
+ while (popped !== undefined) {
52
+ onStack[popped] = false;
53
+ scc.push(popped);
54
+ if (popped === v)
55
+ break;
56
+ popped = stack.pop();
57
+ }
58
+ // Only report cycles (size > 1)
59
+ if (scc.length > 1) {
60
+ sccs.push(scc);
61
+ }
62
+ }
63
+ }
64
+ for (let v = 0; v < nodeCount; v++) {
65
+ if (index[v] === -1) {
66
+ strongConnect(v);
67
+ }
68
+ }
69
+ return sccs;
70
+ }
71
+ //# sourceMappingURL=tarjan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarjan.js","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { TypeMatcher } from '../core/type-matcher.js';
2
+ export type { TypeMatcher };
3
+ /**
4
+ * Matches bare `string` type.
5
+ * Does NOT match string literal types like `'foo'` or unions of string literals.
6
+ *
7
+ * @example
8
+ * isString() // matches `string`, not `'a' | 'b'`
9
+ */
10
+ export declare function isString(): TypeMatcher;
11
+ /**
12
+ * Matches bare `number` type.
13
+ * Does NOT match number literal types like `42` or unions of number literals.
14
+ */
15
+ export declare function isNumber(): TypeMatcher;
16
+ /**
17
+ * Matches bare `boolean` type.
18
+ */
19
+ export declare function isBoolean(): TypeMatcher;
20
+ /**
21
+ * Matches a union of string literals OR number literals.
22
+ * Requires at least 2 union members (a single literal is not a "union of literals").
23
+ *
24
+ * Handles: `'a' | 'b'`, `1 | 2 | 3`, NOT `string`, NOT `'a' | string`.
25
+ *
26
+ * @example
27
+ * isUnionOfLiterals() // matches `'asc' | 'desc'`, not `string`
28
+ */
29
+ export declare function isUnionOfLiterals(): TypeMatcher;
30
+ /**
31
+ * Matches a specific string literal type (e.g., `'created_at'`).
32
+ * If no value is provided, matches ANY string literal type.
33
+ *
34
+ * @example
35
+ * isStringLiteral() // matches any string literal
36
+ * isStringLiteral('created_at') // matches only 'created_at'
37
+ */
38
+ export declare function isStringLiteral(value?: string): TypeMatcher;
39
+ /**
40
+ * Matches an array type where the element type satisfies the inner matcher.
41
+ *
42
+ * @example
43
+ * arrayOf(isString()) // matches `string[]`
44
+ * arrayOf(isUnionOfLiterals()) // matches `('a' | 'b')[]`
45
+ */
46
+ export declare function arrayOf(elementMatcher: TypeMatcher): TypeMatcher;
47
+ /**
48
+ * Matches when the type's text representation matches the given regex.
49
+ * Escape hatch for types not covered by semantic matchers.
50
+ *
51
+ * Operates on the result of `type.getText()` which returns the type
52
+ * as TypeScript would display it.
53
+ *
54
+ * @example
55
+ * matching(/^Record</) // matches Record<string, unknown>, etc.
56
+ * matching(/Promise/) // matches Promise<T> types
57
+ */
58
+ export declare function matching(regex: RegExp): TypeMatcher;
59
+ /**
60
+ * Matches when the type text is exactly the given string.
61
+ * Useful for matching specific type references.
62
+ *
63
+ * @example
64
+ * exactly('SortColumn') // matches the SortColumn type alias
65
+ */
66
+ export declare function exactly(typeText: string): TypeMatcher;
67
+ //# sourceMappingURL=type-matchers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-matchers.d.ts","sourceRoot":"","sources":["../../src/helpers/type-matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D,YAAY,EAAE,WAAW,EAAE,CAAA;AAE3B;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,WAAW,CAEvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAQ/C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAO3D;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,cAAc,EAAE,WAAW,GAAG,WAAW,CAOhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAKnD;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAKrD"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Matches bare `string` type.
3
+ * Does NOT match string literal types like `'foo'` or unions of string literals.
4
+ *
5
+ * @example
6
+ * isString() // matches `string`, not `'a' | 'b'`
7
+ */
8
+ export function isString() {
9
+ return (type) => type.getNonNullableType().isString();
10
+ }
11
+ /**
12
+ * Matches bare `number` type.
13
+ * Does NOT match number literal types like `42` or unions of number literals.
14
+ */
15
+ export function isNumber() {
16
+ return (type) => type.getNonNullableType().isNumber();
17
+ }
18
+ /**
19
+ * Matches bare `boolean` type.
20
+ */
21
+ export function isBoolean() {
22
+ return (type) => type.getNonNullableType().isBoolean();
23
+ }
24
+ /**
25
+ * Matches a union of string literals OR number literals.
26
+ * Requires at least 2 union members (a single literal is not a "union of literals").
27
+ *
28
+ * Handles: `'a' | 'b'`, `1 | 2 | 3`, NOT `string`, NOT `'a' | string`.
29
+ *
30
+ * @example
31
+ * isUnionOfLiterals() // matches `'asc' | 'desc'`, not `string`
32
+ */
33
+ export function isUnionOfLiterals() {
34
+ return (type) => {
35
+ const t = type.getNonNullableType();
36
+ if (!t.isUnion())
37
+ return false;
38
+ const members = t.getUnionTypes();
39
+ if (members.length < 2)
40
+ return false;
41
+ return members.every((m) => m.isStringLiteral() || m.isNumberLiteral());
42
+ };
43
+ }
44
+ /**
45
+ * Matches a specific string literal type (e.g., `'created_at'`).
46
+ * If no value is provided, matches ANY string literal type.
47
+ *
48
+ * @example
49
+ * isStringLiteral() // matches any string literal
50
+ * isStringLiteral('created_at') // matches only 'created_at'
51
+ */
52
+ export function isStringLiteral(value) {
53
+ return (type) => {
54
+ const t = type.getNonNullableType();
55
+ if (!t.isStringLiteral())
56
+ return false;
57
+ if (value === undefined)
58
+ return true;
59
+ return t.getLiteralValue() === value;
60
+ };
61
+ }
62
+ /**
63
+ * Matches an array type where the element type satisfies the inner matcher.
64
+ *
65
+ * @example
66
+ * arrayOf(isString()) // matches `string[]`
67
+ * arrayOf(isUnionOfLiterals()) // matches `('a' | 'b')[]`
68
+ */
69
+ export function arrayOf(elementMatcher) {
70
+ return (type) => {
71
+ const t = type.getNonNullableType();
72
+ if (!t.isArray())
73
+ return false;
74
+ const elementType = t.getArrayElementTypeOrThrow();
75
+ return elementMatcher(elementType);
76
+ };
77
+ }
78
+ /**
79
+ * Matches when the type's text representation matches the given regex.
80
+ * Escape hatch for types not covered by semantic matchers.
81
+ *
82
+ * Operates on the result of `type.getText()` which returns the type
83
+ * as TypeScript would display it.
84
+ *
85
+ * @example
86
+ * matching(/^Record</) // matches Record<string, unknown>, etc.
87
+ * matching(/Promise/) // matches Promise<T> types
88
+ */
89
+ export function matching(regex) {
90
+ return (type) => {
91
+ const t = type.getNonNullableType();
92
+ return regex.test(t.getText());
93
+ };
94
+ }
95
+ /**
96
+ * Matches when the type text is exactly the given string.
97
+ * Useful for matching specific type references.
98
+ *
99
+ * @example
100
+ * exactly('SortColumn') // matches the SortColumn type alias
101
+ */
102
+ export function exactly(typeText) {
103
+ return (type) => {
104
+ const t = type.getNonNullableType();
105
+ return t.getText() === typeText;
106
+ };
107
+ }
108
+ //# sourceMappingURL=type-matchers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-matchers.js","sourceRoot":"","sources":["../../src/helpers/type-matchers.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAA;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,CAAA;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACnC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,EAAE,CAAA;QACjC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACpC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;IACzE,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACnC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;YAAE,OAAO,KAAK,CAAA;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QACpC,OAAO,CAAC,CAAC,eAAe,EAAE,KAAK,KAAK,CAAA;IACtC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,cAA2B;IACjD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACnC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAA;QAC9B,MAAM,WAAW,GAAG,CAAC,CAAC,0BAA0B,EAAE,CAAA;QAClD,OAAO,cAAc,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,QAAgB;IACtC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACnC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAA;IACjC,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { CallRuleBuilder } from '../builders/call-rule-builder.js';
2
+ import { ScopedFunctionRuleBuilder } from '../builders/scoped-function-rule-builder.js';
3
+ /**
4
+ * A scoped context that restricts entry points to elements found
5
+ * inside the callback arguments of matched call expressions.
6
+ *
7
+ * Created by `within()`. Provides the same entry point functions
8
+ * as the top-level API, but scoped to the matched callbacks.
9
+ */
10
+ export interface ScopedContext {
11
+ /**
12
+ * Function-level rules scoped to callbacks of the matched calls.
13
+ * Only examines functions that appear as inline arguments.
14
+ */
15
+ functions(): ScopedFunctionRuleBuilder;
16
+ }
17
+ /**
18
+ * Scope rules to a call selection context.
19
+ *
20
+ * `within(selection)` restricts the search space to callback arguments
21
+ * of the matched call expressions. Instead of scanning all source files,
22
+ * scoped entry points only examine functions that are inline arguments
23
+ * to the matched calls.
24
+ *
25
+ * @param selection - A CallRuleBuilder with predicates already applied.
26
+ * The predicates are evaluated lazily when a terminal method is called.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const routes = calls(p)
31
+ * .that()
32
+ * .onObject('app')
33
+ * .and()
34
+ * .withMethod(/^(get|post|put|delete|patch)$/)
35
+ *
36
+ * // Only check functions inside route handler callbacks
37
+ * within(routes).functions().should().contain(call('normalizePagination')).check()
38
+ * ```
39
+ */
40
+ export declare function within(selection: CallRuleBuilder): ScopedContext;
41
+ //# sourceMappingURL=within.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"within.d.ts","sourceRoot":"","sources":["../../src/helpers/within.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,SAAS,IAAI,yBAAyB,CAAA;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,aAAa,CAMhE"}
@@ -0,0 +1,32 @@
1
+ import { ScopedFunctionRuleBuilder } from '../builders/scoped-function-rule-builder.js';
2
+ /**
3
+ * Scope rules to a call selection context.
4
+ *
5
+ * `within(selection)` restricts the search space to callback arguments
6
+ * of the matched call expressions. Instead of scanning all source files,
7
+ * scoped entry points only examine functions that are inline arguments
8
+ * to the matched calls.
9
+ *
10
+ * @param selection - A CallRuleBuilder with predicates already applied.
11
+ * The predicates are evaluated lazily when a terminal method is called.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const routes = calls(p)
16
+ * .that()
17
+ * .onObject('app')
18
+ * .and()
19
+ * .withMethod(/^(get|post|put|delete|patch)$/)
20
+ *
21
+ * // Only check functions inside route handler callbacks
22
+ * within(routes).functions().should().contain(call('normalizePagination')).check()
23
+ * ```
24
+ */
25
+ export function within(selection) {
26
+ return {
27
+ functions() {
28
+ return new ScopedFunctionRuleBuilder(selection);
29
+ },
30
+ };
31
+ }
32
+ //# sourceMappingURL=within.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"within.js","sourceRoot":"","sources":["../../src/helpers/within.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAiBvF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,MAAM,CAAC,SAA0B;IAC/C,OAAO;QACL,SAAS;YACP,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,101 @@
1
+ export { project, workspace, resetProjectCache } from './core/project.js';
2
+ export type { ArchProject } from './core/project.js';
3
+ export type { Predicate } from '@nielspeter/eess';
4
+ export { not, and, or } from '@nielspeter/eess';
5
+ export type { Condition, ConditionContext } from '@nielspeter/eess';
6
+ export type { ArchViolation } from './core/violation.js';
7
+ export { createViolation, getElementName, getElementFile, getElementLine, } from './core/violation.js';
8
+ export { RuleBuilder } from '@nielspeter/eess';
9
+ export { TerminalBuilder } from '@nielspeter/eess';
10
+ export { ArchRuleError } from '@nielspeter/eess';
11
+ export type { RuleMetadata } from '@nielspeter/eess';
12
+ export type { RuleDescription } from '@nielspeter/eess';
13
+ export { generateCodeFrame } from '@nielspeter/eess';
14
+ export type { CodeFrameOptions } from '@nielspeter/eess';
15
+ export { formatViolations, formatViolationsPlain } from '@nielspeter/eess';
16
+ export type { FormatOptions } from '@nielspeter/eess';
17
+ export { definePredicate, defineCondition } from '@nielspeter/eess';
18
+ export type { Named, Located, Exportable } from './predicates/index.js';
19
+ export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, areExported, areNotExported, } from './predicates/index.js';
20
+ export { resideInFile as conditionResideInFile, resideInFolder as conditionResideInFolder, haveNameMatching as conditionHaveNameMatching, beExported, notExist, } from './conditions/structural.js';
21
+ export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed, havePathMatching, } from './predicates/module.js';
22
+ export type { ImportOptions } from './core/import-options.js';
23
+ export { isTypeOnlyImport } from './core/import-options.js';
24
+ export { onlyImportFrom, notImportFrom as conditionNotImportFrom, onlyHaveTypeImportsFrom, notHaveAliasedImports, dependOn, } from './conditions/dependency.js';
25
+ export { modules, ModuleRuleBuilder } from './builders/module-rule-builder.js';
26
+ export { classes, ClassRuleBuilder } from './builders/class-rule-builder.js';
27
+ export { extend, implement, haveDecorator, haveDecoratorMatching, areAbstract, haveMethodNamed as classHaveMethodNamed, haveMethodMatching, havePropertyNamed, } from './predicates/class.js';
28
+ export { shouldExtend, shouldImplement, shouldHaveMethodNamed, shouldNotHaveMethodMatching, acceptParameterOfType as classAcceptParameterOfType, notAcceptParameterOfType as classNotAcceptParameterOfType, } from './conditions/class.js';
29
+ export { functions, FunctionRuleBuilder } from './builders/function-rule-builder.js';
30
+ export type { ArchFunction } from './models/arch-function.js';
31
+ export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, } from './models/arch-function.js';
32
+ export { arePublic, areProtected, arePrivate, areAsync, areNotAsync, haveParameterCount, haveParameterCountGreaterThan, haveParameterCountLessThan, haveParameterNamed, haveReturnType, haveRestParameter, haveOptionalParameter, haveParameterOfType, haveParameterNameMatching, } from './predicates/function.js';
33
+ export { notExist as functionNotExist, beExported as functionBeExported, beAsync as functionBeAsync, haveNameMatching as functionHaveNameMatching, acceptParameterOfType as functionAcceptParameterOfType, notAcceptParameterOfType as functionNotAcceptParameterOfType, haveReturnTypeMatching as functionHaveReturnTypeMatching, } from './conditions/function.js';
34
+ export { types, TypeRuleBuilder } from './builders/type-rule-builder.js';
35
+ export type { TypeDeclaration } from './predicates/type.js';
36
+ export { areInterfaces, areTypeAliases, haveProperty, havePropertyOfType, extendType, } from './predicates/type.js';
37
+ export { havePropertyType } from './conditions/type-level.js';
38
+ export { havePropertyNamed as conditionHavePropertyNamed, notHavePropertyNamed as conditionNotHavePropertyNamed, havePropertyMatching as conditionHavePropertyMatching, notHavePropertyMatching as conditionNotHavePropertyMatching, haveOnlyReadonlyProperties, maxProperties, } from './conditions/members.js';
39
+ export type { PropertyBearingNode } from './conditions/members.js';
40
+ export type { TypeMatcher } from './helpers/type-matchers.js';
41
+ export { isString, isNumber, isBoolean, isUnionOfLiterals, isStringLiteral, arrayOf, matching, exactly, } from './helpers/type-matchers.js';
42
+ export { call, access, newExpr, expression, property, comment, jsxElement, jsxText, typeAssertion, nonNullAssertion, STUB_PATTERNS, } from './helpers/matchers.js';
43
+ export type { ExpressionMatcher, TypeAssertionOptions } from './helpers/matchers.js';
44
+ export { classContain, classNotContain, classUseInsteadOf, classNotHaveEmptyBody, } from './conditions/body-analysis.js';
45
+ export { functionContain, functionNotContain, functionUseInsteadOf, functionNotHaveEmptyBody, } from './conditions/body-analysis-function.js';
46
+ export { moduleContain, moduleNotContain, moduleUseInsteadOf, } from './conditions/body-analysis-module.js';
47
+ export type { ModuleBodyOptions } from './helpers/body-traversal.js';
48
+ export { notHaveDefaultExport, haveDefaultExport, haveMaxExports } from './conditions/exports.js';
49
+ export { onlyBeImportedVia, beImported, haveNoUnusedExports, } from './conditions/reverse-dependency.js';
50
+ export type { Slice, SliceDefinition } from './models/slice.js';
51
+ export { beFreeOfCycles, respectLayerOrder, notDependOn } from './conditions/slice.js';
52
+ export { slices, SliceRuleBuilder } from './builders/slice-rule-builder.js';
53
+ export type { CheckOptions, OutputFormat } from '@nielspeter/eess';
54
+ export { formatViolationsJson } from '@nielspeter/eess';
55
+ export { formatViolationsGitHub } from '@nielspeter/eess';
56
+ export { detectFormat, isCI } from '@nielspeter/eess';
57
+ export { withBaseline, generateBaseline, Baseline } from '@nielspeter/eess';
58
+ export type { BaselineEntry, BaselineFile } from '@nielspeter/eess';
59
+ export { diffAware, DiffFilter } from '@nielspeter/eess';
60
+ export { parseExclusionComments, isExcludedByComment } from '@nielspeter/eess';
61
+ export type { ExclusionComment, ExclusionWarning, ParseResult } from '@nielspeter/eess';
62
+ export { silent } from '@nielspeter/eess';
63
+ export type { SilentExclusion } from '@nielspeter/eess';
64
+ export { collectViolations } from '@nielspeter/eess';
65
+ export { calls, CallRuleBuilder } from './builders/call-rule-builder.js';
66
+ export type { ArchCall } from './models/arch-call.js';
67
+ export { collectCalls, fromCallExpression } from './models/arch-call.js';
68
+ export { onObject, withMethod, withArgMatching, withStringArg } from './predicates/call.js';
69
+ export { haveCallbackContaining as callHaveCallbackContaining, notHaveCallbackContaining as callNotHaveCallbackContaining, notExist as callNotExist, haveArgumentWithProperty, notHaveArgumentWithProperty, haveArgumentContaining as callHaveArgumentContaining, notHaveArgumentContaining as callNotHaveArgumentContaining, } from './conditions/call.js';
70
+ export { within } from './helpers/within.js';
71
+ export type { ScopedContext } from './helpers/within.js';
72
+ export { ScopedFunctionRuleBuilder } from './builders/scoped-function-rule-builder.js';
73
+ export { extractCallbacks } from './helpers/callback-extractor.js';
74
+ export type { ExtractedCallback } from './helpers/callback-extractor.js';
75
+ export { definePattern } from './helpers/pattern.js';
76
+ export type { ArchPattern, PropertyConstraint } from './helpers/pattern.js';
77
+ export { followPattern } from './conditions/pattern.js';
78
+ export { smells } from './smells/index.js';
79
+ export { SmellBuilder } from './smells/smell-builder.js';
80
+ export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
81
+ export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
82
+ export type { Fingerprint } from './smells/fingerprint.js';
83
+ export { buildFingerprint, computeSimilarity } from './smells/fingerprint.js';
84
+ export type { Layer, LayerPair } from './models/cross-layer.js';
85
+ export type { PairCondition } from './core/pair-condition.js';
86
+ export { crossLayer, CrossLayerBuilder } from './builders/cross-layer-builder.js';
87
+ export { haveMatchingCounterpart, haveConsistentExports, satisfyPairCondition, } from './conditions/cross-layer.js';
88
+ export { haveCyclomaticComplexity, haveMoreLinesThan, haveMoreMethodsThan, haveComplexity, haveMoreFunctionLinesThan, } from './predicates/metrics.js';
89
+ export { cyclomaticComplexity, linesOfCode } from './helpers/complexity.js';
90
+ export { noEval, noFunctionConstructor, noProcessEnv, noConsoleLog, noConsole, noJsonParse, functionNoEval, functionNoFunctionConstructor, functionNoProcessEnv, functionNoConsoleLog, functionNoConsole, functionNoJsonParse, moduleNoEval, moduleNoProcessEnv, moduleNoConsoleLog, } from './rules/security.js';
91
+ export { noGenericErrors, noTypeErrors, functionNoGenericErrors, functionNoTypeErrors, noSilentCatch, functionNoSilentCatch, moduleNoSilentCatch, } from './rules/errors.js';
92
+ export { mustCall, classMustCall } from './rules/architecture.js';
93
+ export { noDeadModules, noUnusedExports, noStubComments, noEmptyBodies } from './rules/hygiene.js';
94
+ export { jsxElements, JsxRuleBuilder } from './builders/jsx-rule-builder.js';
95
+ export type { ArchJsxElement } from './models/arch-jsx-element.js';
96
+ export { collectJsxElements, STANDARD_HTML_TAGS } from './models/arch-jsx-element.js';
97
+ export { areHtmlElements, areComponents, withAttribute as jsxWithAttribute, withAttributeMatching as jsxWithAttributeMatching, } from './predicates/jsx.js';
98
+ export { notExist as jsxNotExist, haveAttribute as jsxHaveAttribute, notHaveAttribute as jsxNotHaveAttribute, haveAttributeMatching as jsxHaveAttributeMatching, notHaveAttributeMatching as jsxNotHaveAttributeMatching, } from './conditions/jsx.js';
99
+ export { defineConfig } from './cli/config.js';
100
+ export type { CliConfig } from './cli/config.js';
101
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,116 @@
1
+ // Core — project loader
2
+ export { project, workspace, resetProjectCache } from './core/project.js';
3
+ export { not, and, or } from '@nielspeter/eess';
4
+ export { createViolation, getElementName, getElementFile, getElementLine, } from './core/violation.js';
5
+ // Core — rule builder, error & metadata
6
+ export { RuleBuilder } from '@nielspeter/eess';
7
+ export { TerminalBuilder } from '@nielspeter/eess';
8
+ export { ArchRuleError } from '@nielspeter/eess';
9
+ // Core — code frame & formatting
10
+ export { generateCodeFrame } from '@nielspeter/eess';
11
+ export { formatViolations, formatViolationsPlain } from '@nielspeter/eess';
12
+ // Core — custom predicate/condition factories
13
+ export { definePredicate, defineCondition } from '@nielspeter/eess';
14
+ export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, areExported, areNotExported, } from './predicates/index.js';
15
+ // Structural conditions
16
+ export { resideInFile as conditionResideInFile, resideInFolder as conditionResideInFolder, haveNameMatching as conditionHaveNameMatching, beExported, notExist, } from './conditions/structural.js';
17
+ // Module predicates
18
+ export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed, havePathMatching, } from './predicates/module.js';
19
+ export { isTypeOnlyImport } from './core/import-options.js';
20
+ export { onlyImportFrom, notImportFrom as conditionNotImportFrom, onlyHaveTypeImportsFrom, notHaveAliasedImports, dependOn, } from './conditions/dependency.js';
21
+ // Module entry point
22
+ export { modules, ModuleRuleBuilder } from './builders/module-rule-builder.js';
23
+ // Class entry point
24
+ export { classes, ClassRuleBuilder } from './builders/class-rule-builder.js';
25
+ // Class predicates (standalone)
26
+ export { extend, implement, haveDecorator, haveDecoratorMatching, areAbstract, haveMethodNamed as classHaveMethodNamed, haveMethodMatching, havePropertyNamed, } from './predicates/class.js';
27
+ // Class conditions (standalone)
28
+ export { shouldExtend, shouldImplement, shouldHaveMethodNamed, shouldNotHaveMethodMatching, acceptParameterOfType as classAcceptParameterOfType, notAcceptParameterOfType as classNotAcceptParameterOfType, } from './conditions/class.js';
29
+ // Function entry point
30
+ export { functions, FunctionRuleBuilder } from './builders/function-rule-builder.js';
31
+ export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, } from './models/arch-function.js';
32
+ // Function predicates
33
+ export { arePublic, areProtected, arePrivate, areAsync, areNotAsync, haveParameterCount, haveParameterCountGreaterThan, haveParameterCountLessThan, haveParameterNamed, haveReturnType, haveRestParameter, haveOptionalParameter, haveParameterOfType, haveParameterNameMatching, } from './predicates/function.js';
34
+ // Function conditions
35
+ export { notExist as functionNotExist, beExported as functionBeExported, beAsync as functionBeAsync, haveNameMatching as functionHaveNameMatching, acceptParameterOfType as functionAcceptParameterOfType, notAcceptParameterOfType as functionNotAcceptParameterOfType, haveReturnTypeMatching as functionHaveReturnTypeMatching, } from './conditions/function.js';
36
+ // Type entry point
37
+ export { types, TypeRuleBuilder } from './builders/type-rule-builder.js';
38
+ export { areInterfaces, areTypeAliases, haveProperty, havePropertyOfType, extendType, } from './predicates/type.js';
39
+ // Type-level conditions
40
+ export { havePropertyType } from './conditions/type-level.js';
41
+ // Member property conditions (plan 0030)
42
+ export { havePropertyNamed as conditionHavePropertyNamed, notHavePropertyNamed as conditionNotHavePropertyNamed, havePropertyMatching as conditionHavePropertyMatching, notHavePropertyMatching as conditionNotHavePropertyMatching, haveOnlyReadonlyProperties, maxProperties, } from './conditions/members.js';
43
+ export { isString, isNumber, isBoolean, isUnionOfLiterals, isStringLiteral, arrayOf, matching, exactly, } from './helpers/type-matchers.js';
44
+ // Body analysis helpers (plan 0011 + 0046)
45
+ export { call, access, newExpr, expression, property, comment, jsxElement, jsxText, typeAssertion, nonNullAssertion, STUB_PATTERNS, } from './helpers/matchers.js';
46
+ // Body analysis conditions (for advanced composition)
47
+ export { classContain, classNotContain, classUseInsteadOf, classNotHaveEmptyBody, } from './conditions/body-analysis.js';
48
+ export { functionContain, functionNotContain, functionUseInsteadOf, functionNotHaveEmptyBody, } from './conditions/body-analysis-function.js';
49
+ export { moduleContain, moduleNotContain, moduleUseInsteadOf, } from './conditions/body-analysis-module.js';
50
+ // Export conditions (plan 0041 phase 3)
51
+ export { notHaveDefaultExport, haveDefaultExport, haveMaxExports } from './conditions/exports.js';
52
+ // Reverse dependency conditions (plan 0041 phase 4)
53
+ export { onlyBeImportedVia, beImported, haveNoUnusedExports, } from './conditions/reverse-dependency.js';
54
+ // Slice conditions
55
+ export { beFreeOfCycles, respectLayerOrder, notDependOn } from './conditions/slice.js';
56
+ // Slice entry point
57
+ export { slices, SliceRuleBuilder } from './builders/slice-rule-builder.js';
58
+ // Output formats
59
+ export { formatViolationsJson } from '@nielspeter/eess';
60
+ export { formatViolationsGitHub } from '@nielspeter/eess';
61
+ export { detectFormat, isCI } from '@nielspeter/eess';
62
+ // Baseline mode
63
+ export { withBaseline, generateBaseline, Baseline } from '@nielspeter/eess';
64
+ // Diff-aware mode
65
+ export { diffAware, DiffFilter } from '@nielspeter/eess';
66
+ // Exclusion comments
67
+ export { parseExclusionComments, isExcludedByComment } from '@nielspeter/eess';
68
+ // Silent exclusion wrapper
69
+ export { silent } from '@nielspeter/eess';
70
+ // Baseline generation helper
71
+ export { collectViolations } from '@nielspeter/eess';
72
+ // Call entry point (plan 0014)
73
+ export { calls, CallRuleBuilder } from './builders/call-rule-builder.js';
74
+ export { collectCalls, fromCallExpression } from './models/arch-call.js';
75
+ // Call predicates (standalone)
76
+ export { onObject, withMethod, withArgMatching, withStringArg } from './predicates/call.js';
77
+ // Call conditions (standalone)
78
+ export { haveCallbackContaining as callHaveCallbackContaining, notHaveCallbackContaining as callNotHaveCallbackContaining, notExist as callNotExist, haveArgumentWithProperty, notHaveArgumentWithProperty, haveArgumentContaining as callHaveArgumentContaining, notHaveArgumentContaining as callNotHaveArgumentContaining, } from './conditions/call.js';
79
+ // Scoped rules --- within() (plan 0015)
80
+ export { within } from './helpers/within.js';
81
+ export { ScopedFunctionRuleBuilder } from './builders/scoped-function-rule-builder.js';
82
+ // Callback extraction (plan 0015)
83
+ export { extractCallbacks } from './helpers/callback-extractor.js';
84
+ // Pattern templates (plan 0017)
85
+ export { definePattern } from './helpers/pattern.js';
86
+ export { followPattern } from './conditions/pattern.js';
87
+ // Smell detectors (plan 0018)
88
+ export { smells } from './smells/index.js';
89
+ export { SmellBuilder } from './smells/smell-builder.js';
90
+ export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
91
+ export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
92
+ export { buildFingerprint, computeSimilarity } from './smells/fingerprint.js';
93
+ export { crossLayer, CrossLayerBuilder } from './builders/cross-layer-builder.js';
94
+ export { haveMatchingCounterpart, haveConsistentExports, satisfyPairCondition, } from './conditions/cross-layer.js';
95
+ // Metric predicates (plan 0028)
96
+ export { haveCyclomaticComplexity, haveMoreLinesThan, haveMoreMethodsThan, haveComplexity, haveMoreFunctionLinesThan, } from './predicates/metrics.js';
97
+ // Complexity calculator (for custom rules)
98
+ export { cyclomaticComplexity, linesOfCode } from './helpers/complexity.js';
99
+ // Standard rules — security function/module variants (plan 0042)
100
+ export { noEval, noFunctionConstructor, noProcessEnv, noConsoleLog, noConsole, noJsonParse, functionNoEval, functionNoFunctionConstructor, functionNoProcessEnv, functionNoConsoleLog, functionNoConsole, functionNoJsonParse, moduleNoEval, moduleNoProcessEnv, moduleNoConsoleLog, } from './rules/security.js';
101
+ // Standard rules — error function variants (plan 0042)
102
+ export { noGenericErrors, noTypeErrors, functionNoGenericErrors, functionNoTypeErrors, noSilentCatch, functionNoSilentCatch, moduleNoSilentCatch, } from './rules/errors.js';
103
+ // Standard rules — architecture (plan 0042)
104
+ export { mustCall, classMustCall } from './rules/architecture.js';
105
+ // Standard rules — hygiene (plan 0042)
106
+ export { noDeadModules, noUnusedExports, noStubComments, noEmptyBodies } from './rules/hygiene.js';
107
+ // JSX entry point (proposal 010)
108
+ export { jsxElements, JsxRuleBuilder } from './builders/jsx-rule-builder.js';
109
+ export { collectJsxElements, STANDARD_HTML_TAGS } from './models/arch-jsx-element.js';
110
+ // JSX predicates (standalone)
111
+ export { areHtmlElements, areComponents, withAttribute as jsxWithAttribute, withAttributeMatching as jsxWithAttributeMatching, } from './predicates/jsx.js';
112
+ // JSX conditions (standalone)
113
+ export { notExist as jsxNotExist, haveAttribute as jsxHaveAttribute, notHaveAttribute as jsxNotHaveAttribute, haveAttributeMatching as jsxHaveAttributeMatching, notHaveAttributeMatching as jsxNotHaveAttributeMatching, } from './conditions/jsx.js';
114
+ // CLI config (plan 0020)
115
+ export { defineConfig } from './cli/config.js';
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}