@nielspeter/eess-ts 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/README.md +87 -34
  2. package/dist/builders/call-rule-builder.d.ts +66 -26
  3. package/dist/builders/call-rule-builder.d.ts.map +1 -1
  4. package/dist/builders/call-rule-builder.js +73 -31
  5. package/dist/builders/call-rule-builder.js.map +1 -1
  6. package/dist/builders/class-rule-builder.d.ts +125 -26
  7. package/dist/builders/class-rule-builder.d.ts.map +1 -1
  8. package/dist/builders/class-rule-builder.js +134 -30
  9. package/dist/builders/class-rule-builder.js.map +1 -1
  10. package/dist/builders/correspondence-builder.d.ts +287 -0
  11. package/dist/builders/correspondence-builder.d.ts.map +1 -0
  12. package/dist/builders/correspondence-builder.js +393 -0
  13. package/dist/builders/correspondence-builder.js.map +1 -0
  14. package/dist/builders/correspondence-findings.d.ts +104 -0
  15. package/dist/builders/correspondence-findings.d.ts.map +1 -0
  16. package/dist/builders/correspondence-findings.js +301 -0
  17. package/dist/builders/correspondence-findings.js.map +1 -0
  18. package/dist/builders/cross-layer-builder.d.ts +99 -16
  19. package/dist/builders/cross-layer-builder.d.ts.map +1 -1
  20. package/dist/builders/cross-layer-builder.js +181 -35
  21. package/dist/builders/cross-layer-builder.js.map +1 -1
  22. package/dist/builders/function-rule-builder.d.ts +144 -25
  23. package/dist/builders/function-rule-builder.d.ts.map +1 -1
  24. package/dist/builders/function-rule-builder.js +173 -26
  25. package/dist/builders/function-rule-builder.js.map +1 -1
  26. package/dist/builders/jsx-rule-builder.d.ts +70 -14
  27. package/dist/builders/jsx-rule-builder.d.ts.map +1 -1
  28. package/dist/builders/jsx-rule-builder.js +73 -14
  29. package/dist/builders/jsx-rule-builder.js.map +1 -1
  30. package/dist/builders/module-rule-builder.d.ts +2 -2
  31. package/dist/builders/module-rule-builder.d.ts.map +1 -1
  32. package/dist/builders/module-rule-builder.js +12 -3
  33. package/dist/builders/module-rule-builder.js.map +1 -1
  34. package/dist/builders/scoped-function-rule-builder.d.ts +11 -0
  35. package/dist/builders/scoped-function-rule-builder.d.ts.map +1 -1
  36. package/dist/builders/scoped-function-rule-builder.js +12 -0
  37. package/dist/builders/scoped-function-rule-builder.js.map +1 -1
  38. package/dist/builders/slice-discovery-message.d.ts +36 -0
  39. package/dist/builders/slice-discovery-message.d.ts.map +1 -0
  40. package/dist/builders/slice-discovery-message.js +181 -0
  41. package/dist/builders/slice-discovery-message.js.map +1 -0
  42. package/dist/builders/slice-rule-builder.d.ts +151 -12
  43. package/dist/builders/slice-rule-builder.d.ts.map +1 -1
  44. package/dist/builders/slice-rule-builder.js +242 -35
  45. package/dist/builders/slice-rule-builder.js.map +1 -1
  46. package/dist/builders/type-rule-builder.d.ts +95 -24
  47. package/dist/builders/type-rule-builder.d.ts.map +1 -1
  48. package/dist/builders/type-rule-builder.js +105 -29
  49. package/dist/builders/type-rule-builder.js.map +1 -1
  50. package/dist/{helpers → builders}/within.d.ts +2 -2
  51. package/dist/builders/within.d.ts.map +1 -0
  52. package/dist/{helpers → builders}/within.js +1 -1
  53. package/dist/builders/within.js.map +1 -0
  54. package/dist/cli/commands/baseline.d.ts +3 -2
  55. package/dist/cli/commands/baseline.d.ts.map +1 -1
  56. package/dist/cli/commands/baseline.js +68 -6
  57. package/dist/cli/commands/baseline.js.map +1 -1
  58. package/dist/cli/commands/check.d.ts +7 -2
  59. package/dist/cli/commands/check.d.ts.map +1 -1
  60. package/dist/cli/commands/check.js +241 -45
  61. package/dist/cli/commands/check.js.map +1 -1
  62. package/dist/cli/commands/doctor.d.ts +29 -0
  63. package/dist/cli/commands/doctor.d.ts.map +1 -0
  64. package/dist/cli/commands/doctor.js +224 -0
  65. package/dist/cli/commands/doctor.js.map +1 -0
  66. package/dist/cli/commands/explain.d.ts +2 -1
  67. package/dist/cli/commands/explain.d.ts.map +1 -1
  68. package/dist/cli/commands/explain.js +19 -10
  69. package/dist/cli/commands/explain.js.map +1 -1
  70. package/dist/cli/commands/init.d.ts +9 -3
  71. package/dist/cli/commands/init.d.ts.map +1 -1
  72. package/dist/cli/commands/init.js +162 -137
  73. package/dist/cli/commands/init.js.map +1 -1
  74. package/dist/cli/import-rule-module.d.ts +29 -0
  75. package/dist/cli/import-rule-module.d.ts.map +1 -0
  76. package/dist/cli/import-rule-module.js +60 -0
  77. package/dist/cli/import-rule-module.js.map +1 -0
  78. package/dist/cli/index.d.ts +2 -2
  79. package/dist/cli/index.d.ts.map +1 -1
  80. package/dist/cli/index.js +98 -33
  81. package/dist/cli/index.js.map +1 -1
  82. package/dist/cli/load-rules.d.ts +6 -11
  83. package/dist/cli/load-rules.d.ts.map +1 -1
  84. package/dist/cli/load-rules.js +21 -29
  85. package/dist/cli/load-rules.js.map +1 -1
  86. package/dist/cli/resolve-config.d.ts.map +1 -1
  87. package/dist/cli/resolve-config.js +24 -14
  88. package/dist/cli/resolve-config.js.map +1 -1
  89. package/dist/cli/rule-file-findings.d.ts +178 -0
  90. package/dist/cli/rule-file-findings.d.ts.map +1 -0
  91. package/dist/cli/rule-file-findings.js +293 -0
  92. package/dist/cli/rule-file-findings.js.map +1 -0
  93. package/dist/cli/watch.d.ts +20 -7
  94. package/dist/cli/watch.d.ts.map +1 -1
  95. package/dist/cli/watch.js +39 -14
  96. package/dist/cli/watch.js.map +1 -1
  97. package/dist/conditions/body-analysis-function.d.ts.map +1 -1
  98. package/dist/conditions/body-analysis-function.js +16 -7
  99. package/dist/conditions/body-analysis-function.js.map +1 -1
  100. package/dist/conditions/body-analysis-module.d.ts.map +1 -1
  101. package/dist/conditions/body-analysis-module.js +14 -9
  102. package/dist/conditions/body-analysis-module.js.map +1 -1
  103. package/dist/conditions/body-analysis.d.ts.map +1 -1
  104. package/dist/conditions/body-analysis.js +16 -7
  105. package/dist/conditions/body-analysis.js.map +1 -1
  106. package/dist/conditions/call.d.ts.map +1 -1
  107. package/dist/conditions/call.js +38 -17
  108. package/dist/conditions/call.js.map +1 -1
  109. package/dist/conditions/catch-analysis.d.ts +2 -1
  110. package/dist/conditions/catch-analysis.d.ts.map +1 -1
  111. package/dist/conditions/catch-analysis.js.map +1 -1
  112. package/dist/conditions/cross-layer.d.ts +2 -10
  113. package/dist/conditions/cross-layer.d.ts.map +1 -1
  114. package/dist/conditions/cross-layer.js +227 -23
  115. package/dist/conditions/cross-layer.js.map +1 -1
  116. package/dist/conditions/dependency.d.ts +35 -6
  117. package/dist/conditions/dependency.d.ts.map +1 -1
  118. package/dist/conditions/dependency.js +299 -45
  119. package/dist/conditions/dependency.js.map +1 -1
  120. package/dist/conditions/exports.d.ts.map +1 -1
  121. package/dist/conditions/exports.js +10 -0
  122. package/dist/conditions/exports.js.map +1 -1
  123. package/dist/conditions/function.d.ts.map +1 -1
  124. package/dist/conditions/function.js +19 -5
  125. package/dist/conditions/function.js.map +1 -1
  126. package/dist/conditions/helpers.d.ts +2 -1
  127. package/dist/conditions/helpers.d.ts.map +1 -1
  128. package/dist/conditions/helpers.js +4 -1
  129. package/dist/conditions/helpers.js.map +1 -1
  130. package/dist/conditions/jsx.d.ts.map +1 -1
  131. package/dist/conditions/jsx.js +7 -2
  132. package/dist/conditions/jsx.js.map +1 -1
  133. package/dist/conditions/match-identity.d.ts +43 -0
  134. package/dist/conditions/match-identity.d.ts.map +1 -0
  135. package/dist/conditions/match-identity.js +43 -0
  136. package/dist/conditions/match-identity.js.map +1 -0
  137. package/dist/conditions/members.d.ts.map +1 -1
  138. package/dist/conditions/members.js +17 -4
  139. package/dist/conditions/members.js.map +1 -1
  140. package/dist/conditions/reverse-dependency.d.ts +18 -5
  141. package/dist/conditions/reverse-dependency.d.ts.map +1 -1
  142. package/dist/conditions/reverse-dependency.js +109 -92
  143. package/dist/conditions/reverse-dependency.js.map +1 -1
  144. package/dist/conditions/slice.d.ts +86 -2
  145. package/dist/conditions/slice.d.ts.map +1 -1
  146. package/dist/conditions/slice.js +234 -53
  147. package/dist/conditions/slice.js.map +1 -1
  148. package/dist/conditions/structural.d.ts.map +1 -1
  149. package/dist/conditions/structural.js +16 -4
  150. package/dist/conditions/structural.js.map +1 -1
  151. package/dist/core/check-all.d.ts +19 -0
  152. package/dist/core/check-all.d.ts.map +1 -0
  153. package/dist/core/check-all.js +96 -0
  154. package/dist/core/check-all.js.map +1 -0
  155. package/dist/core/combinators.d.ts +48 -0
  156. package/dist/core/combinators.d.ts.map +1 -0
  157. package/dist/core/combinators.js +56 -0
  158. package/dist/core/combinators.js.map +1 -0
  159. package/dist/core/descendant-cache.d.ts +36 -0
  160. package/dist/core/descendant-cache.d.ts.map +1 -0
  161. package/dist/core/descendant-cache.js +119 -0
  162. package/dist/core/descendant-cache.js.map +1 -0
  163. package/dist/core/diagnose.d.ts +234 -0
  164. package/dist/core/diagnose.d.ts.map +1 -0
  165. package/dist/core/diagnose.js +382 -0
  166. package/dist/core/diagnose.js.map +1 -0
  167. package/dist/core/disk-set.d.ts +48 -0
  168. package/dist/core/disk-set.d.ts.map +1 -0
  169. package/dist/core/disk-set.js +218 -0
  170. package/dist/core/disk-set.js.map +1 -0
  171. package/dist/core/element-cache.d.ts +75 -0
  172. package/dist/core/element-cache.d.ts.map +1 -0
  173. package/dist/core/element-cache.js +32 -0
  174. package/dist/core/element-cache.js.map +1 -0
  175. package/dist/core/empty-project-advice.d.ts +75 -0
  176. package/dist/core/empty-project-advice.d.ts.map +1 -0
  177. package/dist/core/empty-project-advice.js +61 -0
  178. package/dist/core/empty-project-advice.js.map +1 -0
  179. package/dist/core/exclusion-comments.d.ts +54 -0
  180. package/dist/core/exclusion-comments.d.ts.map +1 -0
  181. package/dist/core/exclusion-comments.js +310 -0
  182. package/dist/core/exclusion-comments.js.map +1 -0
  183. package/dist/core/execute-rule.d.ts +150 -0
  184. package/dist/core/execute-rule.d.ts.map +1 -0
  185. package/dist/core/execute-rule.js +580 -0
  186. package/dist/core/execute-rule.js.map +1 -0
  187. package/dist/core/glob-diagnosis.d.ts +78 -0
  188. package/dist/core/glob-diagnosis.d.ts.map +1 -0
  189. package/dist/core/glob-diagnosis.js +134 -0
  190. package/dist/core/glob-diagnosis.js.map +1 -0
  191. package/dist/core/glob-evaluator.d.ts +48 -0
  192. package/dist/core/glob-evaluator.d.ts.map +1 -0
  193. package/dist/core/glob-evaluator.js +89 -0
  194. package/dist/core/glob-evaluator.js.map +1 -0
  195. package/dist/core/import-candidates.d.ts +60 -0
  196. package/dist/core/import-candidates.d.ts.map +1 -0
  197. package/dist/core/import-candidates.js +93 -0
  198. package/dist/core/import-candidates.js.map +1 -0
  199. package/dist/core/import-options.d.ts +55 -2
  200. package/dist/core/import-options.d.ts.map +1 -1
  201. package/dist/core/import-options.js +64 -0
  202. package/dist/core/import-options.js.map +1 -1
  203. package/dist/core/line-index.d.ts +3 -0
  204. package/dist/core/line-index.d.ts.map +1 -0
  205. package/dist/core/line-index.js +229 -0
  206. package/dist/core/line-index.js.map +1 -0
  207. package/dist/core/metric-violation.d.ts +86 -0
  208. package/dist/core/metric-violation.d.ts.map +1 -0
  209. package/dist/core/metric-violation.js +132 -0
  210. package/dist/core/metric-violation.js.map +1 -0
  211. package/dist/core/module-edges.d.ts +361 -0
  212. package/dist/core/module-edges.d.ts.map +1 -0
  213. package/dist/core/module-edges.js +592 -0
  214. package/dist/core/module-edges.js.map +1 -0
  215. package/dist/core/object-literal-functions.d.ts +42 -0
  216. package/dist/core/object-literal-functions.d.ts.map +1 -0
  217. package/dist/core/object-literal-functions.js +75 -0
  218. package/dist/core/object-literal-functions.js.map +1 -0
  219. package/dist/core/orphan-exclusions.d.ts +44 -0
  220. package/dist/core/orphan-exclusions.d.ts.map +1 -0
  221. package/dist/core/orphan-exclusions.js +214 -0
  222. package/dist/core/orphan-exclusions.js.map +1 -0
  223. package/dist/core/pair-condition.d.ts +32 -3
  224. package/dist/core/pair-condition.d.ts.map +1 -1
  225. package/dist/core/path-universe.d.ts +54 -0
  226. package/dist/core/path-universe.d.ts.map +1 -0
  227. package/dist/core/path-universe.js +65 -0
  228. package/dist/core/path-universe.js.map +1 -0
  229. package/dist/core/per-root-compiler-options.d.ts +20 -0
  230. package/dist/core/per-root-compiler-options.d.ts.map +1 -0
  231. package/dist/core/per-root-compiler-options.js +57 -0
  232. package/dist/core/per-root-compiler-options.js.map +1 -0
  233. package/dist/core/project-relative.d.ts +98 -0
  234. package/dist/core/project-relative.d.ts.map +1 -0
  235. package/dist/core/project-relative.js +185 -0
  236. package/dist/core/project-relative.js.map +1 -0
  237. package/dist/core/project.d.ts +7 -1
  238. package/dist/core/project.d.ts.map +1 -1
  239. package/dist/core/project.js +24 -0
  240. package/dist/core/project.js.map +1 -1
  241. package/dist/core/rule-builder.d.ts +282 -0
  242. package/dist/core/rule-builder.d.ts.map +1 -0
  243. package/dist/core/rule-builder.js +445 -0
  244. package/dist/core/rule-builder.js.map +1 -0
  245. package/dist/core/rule-declaration.d.ts +32 -0
  246. package/dist/core/rule-declaration.d.ts.map +1 -0
  247. package/dist/core/rule-declaration.js +126 -0
  248. package/dist/core/rule-declaration.js.map +1 -0
  249. package/dist/core/terminal-builder.d.ts +625 -0
  250. package/dist/core/terminal-builder.d.ts.map +1 -0
  251. package/dist/core/terminal-builder.js +787 -0
  252. package/dist/core/terminal-builder.js.map +1 -0
  253. package/dist/core/terminal-execution.d.ts +23 -0
  254. package/dist/core/terminal-execution.d.ts.map +1 -0
  255. package/dist/core/terminal-execution.js +71 -0
  256. package/dist/core/terminal-execution.js.map +1 -0
  257. package/dist/core/vacuity-diagnosis.d.ts +103 -0
  258. package/dist/core/vacuity-diagnosis.d.ts.map +1 -0
  259. package/dist/core/vacuity-diagnosis.js +415 -0
  260. package/dist/core/vacuity-diagnosis.js.map +1 -0
  261. package/dist/core/violation.d.ts +16 -11
  262. package/dist/core/violation.d.ts.map +1 -1
  263. package/dist/core/violation.js +33 -13
  264. package/dist/core/violation.js.map +1 -1
  265. package/dist/graphql/index.js +1 -1
  266. package/dist/graphql/index.js.map +1 -1
  267. package/dist/graphql/resolver-rule-builder.d.ts +98 -23
  268. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
  269. package/dist/graphql/resolver-rule-builder.js +151 -21
  270. package/dist/graphql/resolver-rule-builder.js.map +1 -1
  271. package/dist/graphql/schema-loader.d.ts +21 -0
  272. package/dist/graphql/schema-loader.d.ts.map +1 -1
  273. package/dist/graphql/schema-loader.js +81 -12
  274. package/dist/graphql/schema-loader.js.map +1 -1
  275. package/dist/graphql/schema-rule-builder.d.ts +57 -20
  276. package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
  277. package/dist/graphql/schema-rule-builder.js +101 -25
  278. package/dist/graphql/schema-rule-builder.js.map +1 -1
  279. package/dist/helpers/baseline-diagnostics.d.ts +45 -0
  280. package/dist/helpers/baseline-diagnostics.d.ts.map +1 -0
  281. package/dist/helpers/baseline-diagnostics.js +168 -0
  282. package/dist/helpers/baseline-diagnostics.js.map +1 -0
  283. package/dist/helpers/baseline-generator.d.ts +19 -0
  284. package/dist/helpers/baseline-generator.d.ts.map +1 -0
  285. package/dist/helpers/baseline-generator.js +18 -0
  286. package/dist/helpers/baseline-generator.js.map +1 -0
  287. package/dist/helpers/baseline.d.ts +336 -0
  288. package/dist/helpers/baseline.d.ts.map +1 -0
  289. package/dist/helpers/baseline.js +664 -0
  290. package/dist/helpers/baseline.js.map +1 -0
  291. package/dist/helpers/body-traversal.d.ts +27 -2
  292. package/dist/helpers/body-traversal.d.ts.map +1 -1
  293. package/dist/helpers/body-traversal.js +122 -16
  294. package/dist/helpers/body-traversal.js.map +1 -1
  295. package/dist/helpers/callback-extractor.d.ts.map +1 -1
  296. package/dist/helpers/callback-extractor.js +48 -47
  297. package/dist/helpers/callback-extractor.js.map +1 -1
  298. package/dist/helpers/complexity.d.ts +13 -5
  299. package/dist/helpers/complexity.d.ts.map +1 -1
  300. package/dist/helpers/complexity.js +15 -6
  301. package/dist/helpers/complexity.js.map +1 -1
  302. package/dist/helpers/diff-aware.d.ts +44 -0
  303. package/dist/helpers/diff-aware.d.ts.map +1 -0
  304. package/dist/helpers/diff-aware.js +84 -0
  305. package/dist/helpers/diff-aware.js.map +1 -0
  306. package/dist/helpers/matchers.d.ts +68 -7
  307. package/dist/helpers/matchers.d.ts.map +1 -1
  308. package/dist/helpers/matchers.js +114 -20
  309. package/dist/helpers/matchers.js.map +1 -1
  310. package/dist/helpers/slice-graph.d.ts +100 -8
  311. package/dist/helpers/slice-graph.d.ts.map +1 -1
  312. package/dist/helpers/slice-graph.js +126 -34
  313. package/dist/helpers/slice-graph.js.map +1 -1
  314. package/dist/helpers/tarjan.d.ts +0 -14
  315. package/dist/helpers/tarjan.d.ts.map +1 -1
  316. package/dist/helpers/tarjan.js +29 -16
  317. package/dist/helpers/tarjan.js.map +1 -1
  318. package/dist/index.d.ts +56 -17
  319. package/dist/index.d.ts.map +1 -1
  320. package/dist/index.js +57 -13
  321. package/dist/index.js.map +1 -1
  322. package/dist/models/arch-call.d.ts +3 -2
  323. package/dist/models/arch-call.d.ts.map +1 -1
  324. package/dist/models/arch-call.js.map +1 -1
  325. package/dist/models/arch-function.d.ts +28 -6
  326. package/dist/models/arch-function.d.ts.map +1 -1
  327. package/dist/models/arch-function.js +106 -3
  328. package/dist/models/arch-function.js.map +1 -1
  329. package/dist/models/arch-jsx-element.js +2 -2
  330. package/dist/models/arch-jsx-element.js.map +1 -1
  331. package/dist/models/slice.d.ts +33 -9
  332. package/dist/models/slice.d.ts.map +1 -1
  333. package/dist/models/slice.js +129 -19
  334. package/dist/models/slice.js.map +1 -1
  335. package/dist/predicates/call.d.ts.map +1 -1
  336. package/dist/predicates/call.js +5 -0
  337. package/dist/predicates/call.js.map +1 -1
  338. package/dist/predicates/identity.d.ts +21 -0
  339. package/dist/predicates/identity.d.ts.map +1 -1
  340. package/dist/predicates/identity.js +75 -3
  341. package/dist/predicates/identity.js.map +1 -1
  342. package/dist/predicates/index.d.ts +1 -1
  343. package/dist/predicates/index.d.ts.map +1 -1
  344. package/dist/predicates/index.js +1 -1
  345. package/dist/predicates/index.js.map +1 -1
  346. package/dist/predicates/metrics.d.ts +4 -2
  347. package/dist/predicates/metrics.d.ts.map +1 -1
  348. package/dist/predicates/metrics.js +4 -2
  349. package/dist/predicates/metrics.js.map +1 -1
  350. package/dist/predicates/module.d.ts +4 -12
  351. package/dist/predicates/module.d.ts.map +1 -1
  352. package/dist/predicates/module.js +57 -37
  353. package/dist/predicates/module.js.map +1 -1
  354. package/dist/presets/agent-guardrails.d.ts +22 -15
  355. package/dist/presets/agent-guardrails.d.ts.map +1 -1
  356. package/dist/presets/agent-guardrails.js +124 -19
  357. package/dist/presets/agent-guardrails.js.map +1 -1
  358. package/dist/presets/boundaries.d.ts +45 -2
  359. package/dist/presets/boundaries.d.ts.map +1 -1
  360. package/dist/presets/boundaries.js +132 -23
  361. package/dist/presets/boundaries.js.map +1 -1
  362. package/dist/presets/data-layer.d.ts +22 -2
  363. package/dist/presets/data-layer.d.ts.map +1 -1
  364. package/dist/presets/data-layer.js +58 -16
  365. package/dist/presets/data-layer.js.map +1 -1
  366. package/dist/presets/index.d.ts +7 -5
  367. package/dist/presets/index.d.ts.map +1 -1
  368. package/dist/presets/index.js +9 -3
  369. package/dist/presets/index.js.map +1 -1
  370. package/dist/presets/layered.d.ts +46 -2
  371. package/dist/presets/layered.d.ts.map +1 -1
  372. package/dist/presets/layered.js +66 -29
  373. package/dist/presets/layered.js.map +1 -1
  374. package/dist/presets/recommended.d.ts +80 -9
  375. package/dist/presets/recommended.d.ts.map +1 -1
  376. package/dist/presets/recommended.js +25 -23
  377. package/dist/presets/recommended.js.map +1 -1
  378. package/dist/presets/shared.d.ts +270 -2
  379. package/dist/presets/shared.d.ts.map +1 -1
  380. package/dist/presets/shared.js +338 -4
  381. package/dist/presets/shared.js.map +1 -1
  382. package/dist/rules/code-quality.d.ts.map +1 -1
  383. package/dist/rules/code-quality.js +15 -6
  384. package/dist/rules/code-quality.js.map +1 -1
  385. package/dist/rules/hygiene.d.ts +1 -1
  386. package/dist/rules/hygiene.js +1 -1
  387. package/dist/rules/metrics-function.d.ts +2 -1
  388. package/dist/rules/metrics-function.d.ts.map +1 -1
  389. package/dist/rules/metrics-function.js +33 -6
  390. package/dist/rules/metrics-function.js.map +1 -1
  391. package/dist/rules/metrics.d.ts +2 -1
  392. package/dist/rules/metrics.d.ts.map +1 -1
  393. package/dist/rules/metrics.js +39 -9
  394. package/dist/rules/metrics.js.map +1 -1
  395. package/dist/smells/duplicate-bodies.d.ts +58 -5
  396. package/dist/smells/duplicate-bodies.d.ts.map +1 -1
  397. package/dist/smells/duplicate-bodies.js +137 -56
  398. package/dist/smells/duplicate-bodies.js.map +1 -1
  399. package/dist/smells/fingerprint.d.ts +8 -1
  400. package/dist/smells/fingerprint.d.ts.map +1 -1
  401. package/dist/smells/fingerprint.js +21 -3
  402. package/dist/smells/fingerprint.js.map +1 -1
  403. package/dist/smells/inconsistent-siblings.d.ts +128 -7
  404. package/dist/smells/inconsistent-siblings.d.ts.map +1 -1
  405. package/dist/smells/inconsistent-siblings.js +288 -86
  406. package/dist/smells/inconsistent-siblings.js.map +1 -1
  407. package/dist/smells/sibling-files.d.ts +47 -0
  408. package/dist/smells/sibling-files.d.ts.map +1 -0
  409. package/dist/smells/sibling-files.js +104 -0
  410. package/dist/smells/sibling-files.js.map +1 -0
  411. package/dist/smells/similar-pairs.d.ts +27 -0
  412. package/dist/smells/similar-pairs.d.ts.map +1 -0
  413. package/dist/smells/similar-pairs.js +52 -0
  414. package/dist/smells/similar-pairs.js.map +1 -0
  415. package/dist/smells/smell-builder.d.ts +57 -12
  416. package/dist/smells/smell-builder.d.ts.map +1 -1
  417. package/dist/smells/smell-builder.js +111 -14
  418. package/dist/smells/smell-builder.js.map +1 -1
  419. package/dist/tsconfig/index.d.ts +19 -0
  420. package/dist/tsconfig/index.d.ts.map +1 -0
  421. package/dist/tsconfig/index.js +20 -0
  422. package/dist/tsconfig/index.js.map +1 -0
  423. package/dist/tsconfig/tsconfig-builder.d.ts +42 -9
  424. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
  425. package/dist/tsconfig/tsconfig-builder.js +64 -16
  426. package/dist/tsconfig/tsconfig-builder.js.map +1 -1
  427. package/package.json +3 -2
  428. package/dist/core/module-dependencies.d.ts +0 -28
  429. package/dist/core/module-dependencies.d.ts.map +0 -1
  430. package/dist/core/module-dependencies.js +0 -35
  431. package/dist/core/module-dependencies.js.map +0 -1
  432. package/dist/helpers/within.d.ts.map +0 -1
  433. package/dist/helpers/within.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { getDependencyDecls } from '../core/module-dependencies.js';
1
+ import { edgesOf, FORWARD_EDGE_KINDS } from '../core/module-edges.js';
2
2
  /**
3
3
  * Build a reverse lookup map: file path -> slice name.
4
4
  * Shared by buildSliceDependencyGraph and findSliceDependencyDetails.
@@ -13,25 +13,115 @@ export function buildFileToSliceMap(slices) {
13
13
  return fileToSlice;
14
14
  }
15
15
  /**
16
- * Build a directed dependency graph between slices.
16
+ * The edge kinds a **cycle** question counts: the eager static ones.
17
17
  *
18
- * For each file in each slice, resolve its imports. If an imported file
19
- * belongs to a different slice, add a directed edge from the importing
20
- * slice to the imported slice.
18
+ * A cycle question asks "what does this slice depend on when the program starts", which
19
+ * is what makes a cycle a cycle. Of `module-edges.ts`' five kinds, two qualify — and
20
+ * each exclusion is a decision with a reason, not an omission:
21
21
  *
22
- * @param slices - The resolved slices
23
- * @param fileToSlice - Pre-built file-to-slice map (optional, built internally if not provided)
24
- * @returns Unique directed edges between slices
22
+ * - `import` and `reexport` — **counted.** Both are eager: `export { x } from './b.js'`
23
+ * emits an import of `./b.js`, so that module is evaluated whether or not anything
24
+ * reads `x`. A barrel file is built out of re-exports, and `a → barrel → a` is the
25
+ * cycle real codebases actually have
26
+ * ([ts-archunit plan 0085](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0085-the-slice-graph-cannot-see-a-re-export.md)).
27
+ * - `dynamic` — **not counted.** `import('./b.js')` is lazy, so it cannot deadlock
28
+ * module initialization, and it is most often the *deliberate* fix for a cycle.
29
+ * Reporting it as one would fail the rule for applying its own remedy.
30
+ * - `require` — **not counted.** CJS, and this is an ESM-only package (ADR-004). Named
31
+ * here rather than left implicit, so the next reader knows it was considered. The
32
+ * surviving gap is `require` in an `allowJs` project: recorded, not fixed.
33
+ * - `type-expression` — **not counted**, and excluded by *kind* rather than by
34
+ * `typeOnly`. `type X = import('./b.js').Y` is erased, so it must stay out even
35
+ * under `ignoreTypeImports: false` — filtering it on the flag alone would make that
36
+ * option add a class of edge this graph has never had.
37
+ *
38
+ * **This set is the cycle question's answer and nothing else's.** It governed all three
39
+ * slice conditions until [ts-archunit bug 0059](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0059-slice-conditions-and-module-conditions-disagree-about-a-dependency.md),
40
+ * which is how the cycle rationale came to justify a false negative on two conditions
41
+ * that are not about cycles: `slices(p).should().notDependOn('legacy')` reported **0**
42
+ * while `modules(p).should().notImportFromCondition('**\/legacy/**')` reported **1**, on
43
+ * the same file, the same edge and the same run. See `kindsFor` below.
25
44
  */
45
+ const EAGER_STATIC_KINDS = new Set([
46
+ 'import',
47
+ 'reexport',
48
+ ]);
26
49
  /**
27
- * Collect unique slice edges from a single file's imports.
50
+ * The edges leaving one file, as a slice graph counts them.
51
+ *
52
+ * Reads `edgesOf()` — the one definition of a module edge (plan 0071, from bug 0022,
53
+ * where five sites collecting `getImportDeclarations()` disagreed with the reverse
54
+ * graph about re-exports). The slice graph was the call site that never adopted it, so
55
+ * `export { x } from './banned.js'` was a dependency to `notImportFrom` and invisible
56
+ * to `beFreeOfCycles` **in the same run**. `edgesOf()` is cached per file and
57
+ * invalidated on modification, so this also replaces a per-call resolution walk.
58
+ *
59
+ * `ignoreTypeImports` drops the erased edges. A type-only import or re-export creates
60
+ * no runtime dependency, so counting it invents cycles that cannot exist at runtime —
61
+ *
62
+ * Which erasure the filter reads depends on the `question`: `'module-request'` reads
63
+ * `erasesModuleRequest`, `'type-bindings'` reads `typeOnly`. Those differ for two
64
+ * spellings under `verbatimModuleSyntax: true` — `import { type X } from 's'` emits
65
+ * `import {} from 's'`, so the specifiers are erased and the module request is not
66
+ * ([ts-archunit plan 0087](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0087-an-inline-type-import-still-requests-the-module.md),
67
+ * shipped in v0.49.0; this paragraph described it as unshipped until v0.49.1).
68
+ *
69
+ * [ts-archunit plan 0084](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0084-cycle-detection-that-ignores-type-only-imports.md),
70
+ * which is worth remembering for what it cost: this repo's own `arch/no-cycles` rule
71
+ * sat at `.warn()` for months with a comment saying "switch to .check() when
72
+ * beFreeOfCycles ignores import type", and while it could not fail it let a new cycle
73
+ * in overnight.
74
+ */
75
+ function sliceEdgesOf(file, options, question) {
76
+ const ignoreErased = options?.ignoreTypeImports === true;
77
+ const { counts, erased } = QUESTIONS[question];
78
+ return edgesOf(file).filter((edge) => counts(edge.kind) && !(ignoreErased && erased(edge)));
79
+ }
80
+ /**
81
+ * Which edge kinds the question counts — the fix for
82
+ * [ts-archunit bug 0059](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0059-slice-conditions-and-module-conditions-disagree-about-a-dependency.md).
83
+ *
84
+ * The erasure predicate was already a function of the question
85
+ * ([ts-archunit plan 0087](https://github.com/nielspeter/ts-archunit/blob/main/plans/completed/0087-an-inline-type-import-still-requests-the-module.md));
86
+ * the KIND set was not, so one answer — the cycle one — was serving both questions.
87
+ *
88
+ * - `'module-request'` → the eager static kinds above. A cycle is a deadlock in
89
+ * initialization order, and `import('./b.js')` is lazy: it cannot deadlock, and it is
90
+ * most often the deliberate *fix* for a cycle. Reporting it would fail the rule for
91
+ * applying its own remedy.
92
+ * - `'type-bindings'` → whatever `FORWARD_EDGE_KINDS` says, which is the constant
93
+ * `notImportFrom` and `dependOn` already read. A lazy import of `legacy` is still a
94
+ * forbidden dependency: it is coupling, it breaks when `legacy` is deleted, and nobody
95
+ * is applying a remedy by writing it.
96
+ *
97
+ * **Reusing `FORWARD_EDGE_KINDS` rather than writing a second list is the point.** It is
98
+ * what makes the two families agree *by construction* instead of by two lists someone
99
+ * must keep in step — which is exactly how
100
+ * [ts-archunit bug 0022](https://github.com/nielspeter/ts-archunit/blob/main/bugs/fixed/0022-forward-import-conditions-are-blind-to-reexports-and-dynamic-imports.md)
101
+ * happened one layer down, and how this bug re-opened it one layer up. That constant is
102
+ * a total `Record<ModuleEdgeKind, boolean>`, so a sixth edge kind is a compile error
103
+ * there rather than a silent omission here.
28
104
  */
29
- function collectEdgesFromFile(file, sliceName, fileToSlice, edgeSet, edges) {
30
- for (const importDecl of getDependencyDecls(file)) {
31
- const resolved = importDecl.getModuleSpecifierSourceFile();
32
- if (!resolved)
105
+ const QUESTIONS = {
106
+ 'module-request': {
107
+ counts: (kind) => EAGER_STATIC_KINDS.has(kind),
108
+ erased: (edge) => edge.erasesModuleRequest,
109
+ },
110
+ 'type-bindings': {
111
+ counts: (kind) => FORWARD_EDGE_KINDS[kind],
112
+ erased: (edge) => edge.typeOnly,
113
+ },
114
+ };
115
+ /**
116
+ * Collect unique slice edges from a single file's dependencies.
117
+ */
118
+ function collectEdgesFromFile(file, sliceName, fileToSlice, edgeSet, edges, options, question) {
119
+ for (const edge of sliceEdgesOf(file, options, question)) {
120
+ // A local `export { x }` with no `from` has no specifier, and a specifier the
121
+ // compiler could not resolve points outside the program.
122
+ if (edge.resolvedPath === undefined)
33
123
  continue;
34
- const targetSlice = fileToSlice.get(resolved.getFilePath());
124
+ const targetSlice = fileToSlice.get(edge.resolvedPath);
35
125
  if (targetSlice && targetSlice !== sliceName) {
36
126
  const edgeKey = `${sliceName}->${targetSlice}`;
37
127
  if (!edgeSet.has(edgeKey)) {
@@ -41,45 +131,47 @@ function collectEdgesFromFile(file, sliceName, fileToSlice, edgeSet, edges) {
41
131
  }
42
132
  }
43
133
  }
44
- export function buildSliceDependencyGraph(slices, fileToSlice) {
134
+ /**
135
+ * Build the graph, and bind the details walk to the same question and options.
136
+ *
137
+ * Prefer this over the two loose functions; they remain exported because
138
+ * `tests/` and the reverse-graph work call them directly with an explicit question.
139
+ */
140
+ export function sliceGraph(slices, fileToSlice, options, question) {
141
+ const map = fileToSlice ?? buildFileToSliceMap(slices);
142
+ return {
143
+ edges: buildSliceDependencyGraph(slices, map, options, question),
144
+ detailsFor: (from, to) => findSliceDependencyDetails(slices, from, to, map, options, question),
145
+ };
146
+ }
147
+ function buildSliceDependencyGraph(slices, fileToSlice, options, question) {
45
148
  const map = fileToSlice ?? buildFileToSliceMap(slices);
46
149
  // Collect unique edges
47
150
  const edgeSet = new Set();
48
151
  const edges = [];
49
152
  for (const slice of slices) {
50
153
  for (const file of slice.files) {
51
- collectEdgesFromFile(file, slice.name, map, edgeSet, edges);
154
+ collectEdgesFromFile(file, slice.name, map, edgeSet, edges, options, question);
52
155
  }
53
156
  }
54
157
  return edges;
55
158
  }
56
- /**
57
- * Find which specific files cause a dependency from one slice to another.
58
- * Used for detailed violation messages.
59
- *
60
- * @param slices - The resolved slices
61
- * @param fromSliceName - Source slice name
62
- * @param toSliceName - Target slice name
63
- * @param fileToSlice - Pre-built file-to-slice map (optional, built internally if not provided)
64
- * @returns Array of { sourceFile, importPath, importLine }
65
- */
66
- export function findSliceDependencyDetails(slices, fromSliceName, toSliceName, fileToSlice) {
159
+ function findSliceDependencyDetails(slices, fromSliceName, toSliceName, fileToSlice, options, question) {
67
160
  const map = fileToSlice ?? buildFileToSliceMap(slices);
68
161
  const fromSlice = slices.find((s) => s.name === fromSliceName);
69
162
  if (!fromSlice)
70
163
  return [];
71
164
  const details = [];
72
165
  for (const file of fromSlice.files) {
73
- for (const importDecl of getDependencyDecls(file)) {
74
- const resolved = importDecl.getModuleSpecifierSourceFile();
75
- if (!resolved)
166
+ for (const edge of sliceEdgesOf(file, options, question)) {
167
+ if (edge.resolvedPath === undefined)
76
168
  continue;
77
- const targetSlice = map.get(resolved.getFilePath());
78
- if (targetSlice === toSliceName) {
169
+ if (map.get(edge.resolvedPath) === toSliceName) {
79
170
  details.push({
80
171
  sourceFile: file,
81
- importPath: resolved.getFilePath(),
82
- importLine: importDecl.getStartLineNumber(),
172
+ importPath: edge.resolvedPath,
173
+ importLine: edge.line,
174
+ edge,
83
175
  });
84
176
  }
85
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slice-graph.js","sourceRoot":"","sources":["../../src/helpers/slice-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slice-graph.js","sourceRoot":"","sources":["../../src/helpers/slice-graph.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,5 @@
3
3
  * Keys are node indices, values are arrays of neighbor indices.
4
4
  */
5
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
6
  export declare function tarjanSCC(nodeCount: number, edges: AdjacencyList): number[][];
21
7
  //# sourceMappingURL=tarjan.d.ts.map
@@ -1 +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"}
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;AAsCjD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,EAAE,CAqD7E"}
@@ -12,6 +12,25 @@
12
12
  * @param edges - Adjacency list: node index -> list of neighbor indices
13
13
  * @returns Array of strongly connected components (size > 1)
14
14
  */
15
+ /**
16
+ * Read an index that the algorithm guarantees is in range.
17
+ *
18
+ * `noUncheckedIndexedAccess` types every element access as `T | undefined`, and
19
+ * the original code answered that with `!` — which ADR-005 bars, and which turns
20
+ * a genuinely impossible state into silence if it ever stops being impossible.
21
+ * A named accessor narrows for real and fails LOUDLY instead: every index here
22
+ * comes from `edges`, so an out-of-range one means the caller's adjacency list
23
+ * disagrees with `nodeCount`, which is worth an error rather than a `-1` that
24
+ * reads as "unvisited" and quietly changes the result.
25
+ */
26
+ function at(values, i, what) {
27
+ const value = values[i];
28
+ if (value === undefined) {
29
+ throw new RangeError(`tarjanSCC: ${what}[${String(i)}] is outside the graph (${String(values.length)} nodes) — ` +
30
+ 'the adjacency list names a node that nodeCount does not cover.');
31
+ }
32
+ return value;
33
+ }
15
34
  export function tarjanSCC(nodeCount, edges) {
16
35
  const index = new Array(nodeCount).fill(-1);
17
36
  const lowlink = new Array(nodeCount).fill(-1);
@@ -27,34 +46,28 @@ export function tarjanSCC(nodeCount, edges) {
27
46
  onStack[v] = true;
28
47
  const neighbors = edges.get(v) ?? [];
29
48
  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
49
  if (index[w] === -1) {
34
50
  // w has not been visited
35
51
  strongConnect(w);
36
- const lw = lowlink[w];
37
- if (lv !== undefined && lw !== undefined)
38
- lowlink[v] = Math.min(lv, lw);
52
+ lowlink[v] = Math.min(at(lowlink, v, 'lowlink'), at(lowlink, w, 'lowlink'));
39
53
  }
40
54
  else if (onStack[w]) {
41
55
  // 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);
56
+ lowlink[v] = Math.min(at(lowlink, v, 'lowlink'), at(index, w, 'index'));
45
57
  }
46
58
  }
47
59
  // If v is a root node, pop the SCC
48
60
  if (lowlink[v] === index[v]) {
49
61
  const scc = [];
50
- let popped = stack.pop();
51
- while (popped !== undefined) {
52
- onStack[popped] = false;
53
- scc.push(popped);
54
- if (popped === v)
62
+ let w;
63
+ do {
64
+ const popped = stack.pop();
65
+ if (popped === undefined)
55
66
  break;
56
- popped = stack.pop();
57
- }
67
+ w = popped;
68
+ onStack[w] = false;
69
+ scc.push(w);
70
+ } while (w !== v);
58
71
  // Only report cycles (size > 1)
59
72
  if (scc.length > 1) {
60
73
  sccs.push(scc);
@@ -1 +1 @@
1
- {"version":3,"file":"tarjan.js","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tarjan.js","sourceRoot":"","sources":["../../src/helpers/tarjan.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,24 +1,32 @@
1
1
  export { project, workspace, resetProjectCache } from './core/project.js';
2
+ export { checkAll } from './core/check-all.js';
2
3
  export type { ArchProject } from './core/project.js';
3
4
  export type { Predicate } from '@nielspeter/eess';
4
- export { not, and, or } from '@nielspeter/eess';
5
+ export { not, and, or } from './core/combinators.js';
5
6
  export type { Condition, ConditionContext } from '@nielspeter/eess';
6
- export type { ArchViolation } from './core/violation.js';
7
+ export type { ArchViolation } from '@nielspeter/eess';
8
+ export { severityFor } from '@nielspeter/eess';
7
9
  export { createViolation, getElementName, getElementFile, getElementLine, } from './core/violation.js';
8
- export { RuleBuilder } from '@nielspeter/eess';
9
- export { TerminalBuilder } from '@nielspeter/eess';
10
+ export { remedyRepeatsMessage } from '@nielspeter/eess';
11
+ export { RuleBuilder } from './core/rule-builder.js';
12
+ export { TerminalBuilder } from './core/terminal-builder.js';
10
13
  export { ArchRuleError } from '@nielspeter/eess';
11
14
  export type { RuleMetadata } from '@nielspeter/eess';
12
15
  export type { RuleDescription } from '@nielspeter/eess';
16
+ export type { PathUniverse } from '@nielspeter/eess';
13
17
  export { generateCodeFrame } from '@nielspeter/eess';
14
18
  export type { CodeFrameOptions } from '@nielspeter/eess';
15
19
  export { formatViolations, formatViolationsPlain } from '@nielspeter/eess';
16
20
  export type { FormatOptions } from '@nielspeter/eess';
17
21
  export { definePredicate, defineCondition } from '@nielspeter/eess';
22
+ export type { DeclaredGlob, DeclaredGlobs, GlobBase, GlobKind, GlobNode, GlobPosition, GlobSite, GlobTree, OpaqueGlob, } from '@nielspeter/eess';
23
+ export { combineGlobs, globAnyOf, globNode, negateGlobs, stampGlobs } from '@nielspeter/eess';
24
+ export type { DiagnosableRule, DiagnosticFinding } from './core/diagnose.js';
25
+ export { diagnose } from './core/diagnose.js';
18
26
  export type { Named, Located, Exportable } from './predicates/index.js';
19
- export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, areExported, areNotExported, } from './predicates/index.js';
27
+ export { haveNameMatching, haveNameStartingWith, haveNameEndingWith, resideInFile, resideInFolder, havePathMatching, areExported, areNotExported, } from './predicates/index.js';
20
28
  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';
29
+ export { importFrom, notImportFrom as predicateNotImportFrom, exportSymbolNamed, } from './predicates/module.js';
22
30
  export type { ImportOptions } from './core/import-options.js';
23
31
  export { isTypeOnlyImport } from './core/import-options.js';
24
32
  export { onlyImportFrom, notImportFrom as conditionNotImportFrom, onlyHaveTypeImportsFrom, notHaveAliasedImports, dependOn, } from './conditions/dependency.js';
@@ -28,7 +36,10 @@ export { extend, implement, haveDecorator, haveDecoratorMatching, areAbstract, h
28
36
  export { shouldExtend, shouldImplement, shouldHaveMethodNamed, shouldNotHaveMethodMatching, acceptParameterOfType as classAcceptParameterOfType, notAcceptParameterOfType as classNotAcceptParameterOfType, } from './conditions/class.js';
29
37
  export { functions, FunctionRuleBuilder } from './builders/function-rule-builder.js';
30
38
  export type { ArchFunction } from './models/arch-function.js';
31
- export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, } from './models/arch-function.js';
39
+ export { collectFunctions, fromFunctionDeclaration, fromArrowVariableDeclaration, fromMethodDeclaration, fromObjectLiteralFunction, } from './models/arch-function.js';
40
+ export type { FunctionCollectionOptions } from './models/arch-function.js';
41
+ export { collectObjectLiteralFunctions } from './core/object-literal-functions.js';
42
+ export type { ObjectLiteralFunction } from './core/object-literal-functions.js';
32
43
  export { arePublic, areProtected, arePrivate, areAsync, areNotAsync, haveParameterCount, haveParameterCountGreaterThan, haveParameterCountLessThan, haveParameterNamed, haveReturnType, haveRestParameter, haveOptionalParameter, haveParameterOfType, haveParameterNameMatching, } from './predicates/function.js';
33
44
  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
45
  export { types, TypeRuleBuilder } from './builders/type-rule-builder.js';
@@ -52,23 +63,25 @@ export { beFreeOfCycles, respectLayerOrder, notDependOn } from './conditions/sli
52
63
  export { slices, SliceRuleBuilder } from './builders/slice-rule-builder.js';
53
64
  export type { CheckOptions, OutputFormat } from '@nielspeter/eess';
54
65
  export { formatViolationsJson } from '@nielspeter/eess';
66
+ export type { ArchJsonReport, ArchJsonViolation, ArchJsonSuppression, ArchJsonUntestedAllowlist, } from '@nielspeter/eess';
55
67
  export { formatViolationsGitHub } from '@nielspeter/eess';
56
68
  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';
69
+ export { withBaseline, generateBaseline, Baseline } from './helpers/baseline.js';
70
+ export type { BaselineDelta } from './helpers/baseline.js';
71
+ export type { BaselineEntry, BaselineFile, BaselineOptions } from './helpers/baseline.js';
72
+ export { diffAware, DiffFilter } from './helpers/diff-aware.js';
73
+ export { parseExclusionComments, isExcludedByComment } from './core/exclusion-comments.js';
74
+ export type { ExclusionComment, ExclusionWarning, ParseResult } from './core/exclusion-comments.js';
62
75
  export { silent } from '@nielspeter/eess';
63
76
  export type { SilentExclusion } from '@nielspeter/eess';
64
- export { collectViolations } from '@nielspeter/eess';
77
+ export { collectViolations } from './helpers/baseline-generator.js';
65
78
  export { calls, CallRuleBuilder } from './builders/call-rule-builder.js';
66
79
  export type { ArchCall } from './models/arch-call.js';
67
80
  export { collectCalls, fromCallExpression } from './models/arch-call.js';
68
81
  export { onObject, withMethod, withArgMatching, withStringArg } from './predicates/call.js';
69
82
  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';
83
+ export { within } from './builders/within.js';
84
+ export type { ScopedContext } from './builders/within.js';
72
85
  export { ScopedFunctionRuleBuilder } from './builders/scoped-function-rule-builder.js';
73
86
  export { extractCallbacks } from './helpers/callback-extractor.js';
74
87
  export type { ExtractedCallback } from './helpers/callback-extractor.js';
@@ -77,8 +90,8 @@ export type { ArchPattern, PropertyConstraint } from './helpers/pattern.js';
77
90
  export { followPattern } from './conditions/pattern.js';
78
91
  export { smells } from './smells/index.js';
79
92
  export { SmellBuilder } from './smells/smell-builder.js';
80
- export { tsconfig, TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
81
- export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE, type StrictFamilyFlag, } from './tsconfig/strict-family.js';
93
+ export { tsconfig } from './tsconfig/index.js';
94
+ export { TsconfigBuilder } from './tsconfig/tsconfig-builder.js';
82
95
  export { DuplicateBodiesBuilder } from './smells/duplicate-bodies.js';
83
96
  export { InconsistentSiblingsBuilder } from './smells/inconsistent-siblings.js';
84
97
  export type { Fingerprint } from './smells/fingerprint.js';
@@ -87,6 +100,10 @@ export type { Layer, LayerPair } from './models/cross-layer.js';
87
100
  export type { PairCondition } from './core/pair-condition.js';
88
101
  export { crossLayer, CrossLayerBuilder } from './builders/cross-layer-builder.js';
89
102
  export { haveMatchingCounterpart, haveConsistentExports, satisfyPairCondition, } from './conditions/cross-layer.js';
103
+ export { crossProject, CrossProjectBuilder, byName, byArg, byPropertyNames, } from './builders/correspondence-builder.js';
104
+ export type { KeyFn, KeysSource } from './builders/correspondence-builder.js';
105
+ export { setCorrespondence } from '@nielspeter/eess';
106
+ export type { CorrespondenceResult } from '@nielspeter/eess';
90
107
  export { haveCyclomaticComplexity, haveMoreLinesThan, haveMoreMethodsThan, haveComplexity, haveMoreFunctionLinesThan, } from './predicates/metrics.js';
91
108
  export { cyclomaticComplexity, linesOfCode } from './helpers/complexity.js';
92
109
  export { noEval, noFunctionConstructor, noProcessEnv, noConsoleLog, noConsole, noJsonParse, functionNoEval, functionNoFunctionConstructor, functionNoProcessEnv, functionNoConsoleLog, functionNoConsole, functionNoJsonParse, moduleNoEval, moduleNoProcessEnv, moduleNoConsoleLog, } from './rules/security.js';
@@ -100,4 +117,26 @@ export { areHtmlElements, areComponents, withAttribute as jsxWithAttribute, with
100
117
  export { notExist as jsxNotExist, haveAttribute as jsxHaveAttribute, notHaveAttribute as jsxNotHaveAttribute, haveAttributeMatching as jsxHaveAttributeMatching, notHaveAttributeMatching as jsxNotHaveAttributeMatching, } from './conditions/jsx.js';
101
118
  export { defineConfig } from './cli/config.js';
102
119
  export type { CliConfig } from './cli/config.js';
120
+ export { orphanExclusions } from './core/orphan-exclusions.js';
121
+ export type { OrphanExclusion } from './core/orphan-exclusions.js';
122
+ export type { Selection, ElementInfo, RuleBuilderLike, EdgeCoverage, GlobLeaf, ReportMode, } from '@nielspeter/eess';
123
+ export { registerProjectRoots, rootFromTsConfigPath, rootOf, relativeToRoot, } from './core/project-relative.js';
124
+ export { registerRootCompilerOptions, verbatimModuleSyntaxFor, } from './core/per-root-compiler-options.js';
125
+ export { syntacticFault, diagnoseGlob, FAULT_ADVICE, ON_DISK_ADVICE, } from './core/glob-diagnosis.js';
126
+ export { isStrictFamily, resolveFlag, STRICT_FAMILY_SIZE } from './tsconfig/strict-family.js';
127
+ export { isFaultPosition, countDeclaredGlobs, isGlobNode, isOpaqueGlob, resetCommentSuppression, recordCommentSuppression, commentSuppressions, commentSuppressionNotice, dispatchRule, throwIfViolations, presetConstructsNothingViolation, finishPreset, byCodepoint, assertionLessViolation, recordEdgeCoverage, untestedRules, edgeCoverageNotice, resetEdgeCoverage, } from '@nielspeter/eess';
128
+ export type { RuleSeverity, PresetBaseOptions, PresetReportOptions, ReportOptions, } from '@nielspeter/eess';
129
+ export { UNSUPPRESSABLE, activeNotice, assertsCardinality, dedupeConfigFindings, discoverIdentityRoot, isAnchored, isNullaryCallable, isProjectRelative, isRecord, marksAssertsCardinality, normalizeIdentityText, reportViolations, resetDiffDisclosureForTests, shallowClone, suppressionNotice, viewsFor, } from '@nielspeter/eess';
130
+ export type { BaselineFilter, DiffFilterLike, Matcher, UntestedReason } from '@nielspeter/eess';
131
+ export type { CollectResult } from './core/terminal-builder.js';
132
+ export type { DiskSet, OnDisk } from './core/disk-set.js';
133
+ export { buildDiskSet, diskSet } from './core/disk-set.js';
134
+ export type { GlobFault } from './core/glob-diagnosis.js';
135
+ export { pathUniverse } from './core/path-universe.js';
136
+ export { globSitesOf, isDeadGlobTree, isDeadSite } from './core/glob-evaluator.js';
137
+ export { isTypeOnlyReExport, splitGlobArgs } from './core/import-options.js';
138
+ export { emptyProjectAdvice, loadedNothing } from './core/empty-project-advice.js';
139
+ export { validateOverrides } from './presets/shared.js';
140
+ export type { StrictFamilyFlag } from './tsconfig/strict-family.js';
141
+ export type { PresetDelivery } from './presets/shared.js';
103
142
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAGpD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAA;AAU5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAKnE,YAAY,EACV,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAK7F,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,YAAY,IAAI,qBAAqB,EACrC,cAAc,IAAI,uBAAuB,EACzC,gBAAgB,IAAI,yBAAyB,EAC7C,UAAU,EACV,QAAQ,GACT,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,UAAU,EACV,aAAa,IAAI,sBAAsB,EACvC,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAG/B,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EACL,cAAc,EACd,aAAa,IAAI,sBAAsB,EACvC,uBAAuB,EACvB,qBAAqB,EACrB,QAAQ,GACT,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAG9E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAG5E,OAAO,EACL,MAAM,EACN,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,eAAe,IAAI,oBAAoB,EACvC,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,IAAI,0BAA0B,EACnD,wBAAwB,IAAI,6BAA6B,GAC1D,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACpF,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAE1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,UAAU,IAAI,kBAAkB,EAChC,OAAO,IAAI,eAAe,EAC1B,gBAAgB,IAAI,wBAAwB,EAC5C,qBAAqB,IAAI,6BAA6B,EACtD,wBAAwB,IAAI,gCAAgC,EAC5D,sBAAsB,IAAI,8BAA8B,GACzD,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAGxE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAG7D,OAAO,EACL,iBAAiB,IAAI,0BAA0B,EAC/C,oBAAoB,IAAI,6BAA6B,EACrD,oBAAoB,IAAI,6BAA6B,EACrD,uBAAuB,IAAI,gCAAgC,EAC3D,0BAA0B,EAC1B,aAAa,GACd,MAAM,yBAAyB,CAAA;AAGhC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,QAAQ,EACR,OAAO,GACR,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,EACP,UAAU,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAGpF,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGjG,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,oCAAoC,CAAA;AAG3C,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGtF,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAG3E,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhF,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGzF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAC1F,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAGnG,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGnE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACxE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGxE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG3F,OAAO,EACL,sBAAsB,IAAI,0BAA0B,EACpD,yBAAyB,IAAI,6BAA6B,EAC1D,QAAQ,IAAI,YAAY,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,IAAI,0BAA0B,EACpD,yBAAyB,IAAI,6BAA6B,GAC3D,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAA;AAGtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAA;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAG7E,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACjF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,KAAK,EACL,eAAe,GAChB,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAG5D,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,yBAAyB,GAC1B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAG3E,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,cAAc,EACd,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlG,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAGrF,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,IAAI,gBAAgB,EACjC,qBAAqB,IAAI,wBAAwB,GAClD,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,aAAa,IAAI,gBAAgB,EACjC,gBAAgB,IAAI,mBAAmB,EACvC,qBAAqB,IAAI,wBAAwB,EACjD,wBAAwB,IAAI,2BAA2B,GACxD,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAOlE,YAAY,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,YAAY,EACZ,QAAQ,EAER,UAAU,GACX,MAAM,kBAAkB,CAAA;AAWzB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,EACN,cAAc,GACf,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAC7F,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,gCAAgC,EAChC,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,QAAQ,GACT,MAAM,kBAAkB,CAAA;AAgCzB,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC/F,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAMnE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}