@nielspeter/eess-ts 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/dist/builders/call-rule-builder.d.ts.map +1 -1
  2. package/dist/builders/call-rule-builder.js +2 -1
  3. package/dist/builders/call-rule-builder.js.map +1 -1
  4. package/dist/builders/class-rule-builder.d.ts.map +1 -1
  5. package/dist/builders/class-rule-builder.js +7 -25
  6. package/dist/builders/class-rule-builder.js.map +1 -1
  7. package/dist/builders/correspondence-builder.d.ts.map +1 -1
  8. package/dist/builders/correspondence-builder.js +6 -14
  9. package/dist/builders/correspondence-builder.js.map +1 -1
  10. package/dist/builders/cross-layer-builder.d.ts.map +1 -1
  11. package/dist/builders/cross-layer-builder.js +7 -6
  12. package/dist/builders/cross-layer-builder.js.map +1 -1
  13. package/dist/builders/function-rule-builder.d.ts.map +1 -1
  14. package/dist/builders/function-rule-builder.js +4 -13
  15. package/dist/builders/function-rule-builder.js.map +1 -1
  16. package/dist/builders/module-rule-builder.d.ts.map +1 -1
  17. package/dist/builders/module-rule-builder.js +4 -16
  18. package/dist/builders/module-rule-builder.js.map +1 -1
  19. package/dist/builders/slice-rule-builder.d.ts.map +1 -1
  20. package/dist/builders/slice-rule-builder.js +4 -3
  21. package/dist/builders/slice-rule-builder.js.map +1 -1
  22. package/dist/builders/type-rule-builder.d.ts.map +1 -1
  23. package/dist/builders/type-rule-builder.js +4 -13
  24. package/dist/builders/type-rule-builder.js.map +1 -1
  25. package/dist/cli/commands/baseline.d.ts +5 -1
  26. package/dist/cli/commands/baseline.d.ts.map +1 -1
  27. package/dist/cli/commands/baseline.js +47 -5
  28. package/dist/cli/commands/baseline.js.map +1 -1
  29. package/dist/cli/commands/check.d.ts.map +1 -1
  30. package/dist/cli/commands/check.js +155 -13
  31. package/dist/cli/commands/check.js.map +1 -1
  32. package/dist/cli/commands/doctor.js +1 -1
  33. package/dist/cli/commands/doctor.js.map +1 -1
  34. package/dist/cli/commands/explain.js +1 -1
  35. package/dist/cli/commands/explain.js.map +1 -1
  36. package/dist/cli/commands/init.js +1 -1
  37. package/dist/cli/commands/init.js.map +1 -1
  38. package/dist/cli/import-rule-module.d.ts.map +1 -1
  39. package/dist/cli/import-rule-module.js +1 -14
  40. package/dist/cli/import-rule-module.js.map +1 -1
  41. package/dist/cli/index.d.ts.map +1 -1
  42. package/dist/cli/index.js +4 -11
  43. package/dist/cli/index.js.map +1 -1
  44. package/dist/cli/load-rules.d.ts.map +1 -1
  45. package/dist/cli/load-rules.js +5 -4
  46. package/dist/cli/load-rules.js.map +1 -1
  47. package/dist/cli/resolve-config.d.ts +0 -8
  48. package/dist/cli/resolve-config.d.ts.map +1 -1
  49. package/dist/cli/resolve-config.js +18 -48
  50. package/dist/cli/resolve-config.js.map +1 -1
  51. package/dist/cli/rule-file-findings.d.ts.map +1 -1
  52. package/dist/cli/rule-file-findings.js +60 -2
  53. package/dist/cli/rule-file-findings.js.map +1 -1
  54. package/dist/cli/watch.d.ts +13 -43
  55. package/dist/cli/watch.d.ts.map +1 -1
  56. package/dist/cli/watch.js +8 -148
  57. package/dist/cli/watch.js.map +1 -1
  58. package/dist/conditions/call.d.ts.map +1 -1
  59. package/dist/conditions/call.js +4 -3
  60. package/dist/conditions/call.js.map +1 -1
  61. package/dist/conditions/cross-layer.js +2 -2
  62. package/dist/conditions/cross-layer.js.map +1 -1
  63. package/dist/conditions/dependency.js +2 -2
  64. package/dist/conditions/dependency.js.map +1 -1
  65. package/dist/conditions/exports.d.ts.map +1 -1
  66. package/dist/conditions/exports.js +31 -37
  67. package/dist/conditions/exports.js.map +1 -1
  68. package/dist/conditions/function.js +1 -1
  69. package/dist/conditions/function.js.map +1 -1
  70. package/dist/conditions/jsx.js +1 -1
  71. package/dist/conditions/jsx.js.map +1 -1
  72. package/dist/conditions/members.d.ts.map +1 -1
  73. package/dist/conditions/members.js +3 -2
  74. package/dist/conditions/members.js.map +1 -1
  75. package/dist/conditions/reverse-dependency.d.ts.map +1 -1
  76. package/dist/conditions/reverse-dependency.js +47 -2
  77. package/dist/conditions/reverse-dependency.js.map +1 -1
  78. package/dist/conditions/slice.js +1 -1
  79. package/dist/conditions/slice.js.map +1 -1
  80. package/dist/conditions/structural.js +1 -1
  81. package/dist/conditions/structural.js.map +1 -1
  82. package/dist/core/check-all.d.ts.map +1 -1
  83. package/dist/core/check-all.js +61 -7
  84. package/dist/core/check-all.js.map +1 -1
  85. package/dist/core/combinators.d.ts.map +1 -1
  86. package/dist/core/combinators.js +20 -27
  87. package/dist/core/combinators.js.map +1 -1
  88. package/dist/core/descendant-cache.d.ts.map +1 -1
  89. package/dist/core/descendant-cache.js +5 -7
  90. package/dist/core/descendant-cache.js.map +1 -1
  91. package/dist/core/diagnose.js +15 -7
  92. package/dist/core/diagnose.js.map +1 -1
  93. package/dist/core/disk-set.js +1 -1
  94. package/dist/core/disk-set.js.map +1 -1
  95. package/dist/core/element-cache.js +1 -1
  96. package/dist/core/element-cache.js.map +1 -1
  97. package/dist/core/exclusion-comments.d.ts +15 -50
  98. package/dist/core/exclusion-comments.d.ts.map +1 -1
  99. package/dist/core/exclusion-comments.js +4 -307
  100. package/dist/core/exclusion-comments.js.map +1 -1
  101. package/dist/core/execute-rule.d.ts +8 -0
  102. package/dist/core/execute-rule.d.ts.map +1 -1
  103. package/dist/core/execute-rule.js +99 -13
  104. package/dist/core/execute-rule.js.map +1 -1
  105. package/dist/core/glob-evaluator.js +2 -2
  106. package/dist/core/glob-evaluator.js.map +1 -1
  107. package/dist/core/invalidate-on-modify.d.ts +20 -0
  108. package/dist/core/invalidate-on-modify.d.ts.map +1 -0
  109. package/dist/core/invalidate-on-modify.js +26 -0
  110. package/dist/core/invalidate-on-modify.js.map +1 -0
  111. package/dist/core/line-index.d.ts.map +1 -1
  112. package/dist/core/line-index.js +6 -8
  113. package/dist/core/line-index.js.map +1 -1
  114. package/dist/core/metric-violation.d.ts +1 -1
  115. package/dist/core/module-edges.d.ts.map +1 -1
  116. package/dist/core/module-edges.js +26 -25
  117. package/dist/core/module-edges.js.map +1 -1
  118. package/dist/core/orphan-exclusions.d.ts.map +1 -1
  119. package/dist/core/orphan-exclusions.js +15 -5
  120. package/dist/core/orphan-exclusions.js.map +1 -1
  121. package/dist/core/path-universe.d.ts +10 -42
  122. package/dist/core/path-universe.d.ts.map +1 -1
  123. package/dist/core/path-universe.js +0 -20
  124. package/dist/core/path-universe.js.map +1 -1
  125. package/dist/core/project.d.ts.map +1 -1
  126. package/dist/core/project.js +6 -5
  127. package/dist/core/project.js.map +1 -1
  128. package/dist/core/rule-builder.d.ts +22 -1
  129. package/dist/core/rule-builder.d.ts.map +1 -1
  130. package/dist/core/rule-builder.js +38 -20
  131. package/dist/core/rule-builder.js.map +1 -1
  132. package/dist/core/rule-declaration.d.ts.map +1 -1
  133. package/dist/core/rule-declaration.js +14 -52
  134. package/dist/core/rule-declaration.js.map +1 -1
  135. package/dist/core/terminal-builder.d.ts +17 -13
  136. package/dist/core/terminal-builder.d.ts.map +1 -1
  137. package/dist/core/terminal-builder.js +41 -21
  138. package/dist/core/terminal-builder.js.map +1 -1
  139. package/dist/core/terminal-execution.d.ts +22 -6
  140. package/dist/core/terminal-execution.d.ts.map +1 -1
  141. package/dist/core/terminal-execution.js +39 -7
  142. package/dist/core/terminal-execution.js.map +1 -1
  143. package/dist/core/ts-comment-mask.d.ts +2 -0
  144. package/dist/core/ts-comment-mask.d.ts.map +1 -0
  145. package/dist/core/ts-comment-mask.js +102 -0
  146. package/dist/core/ts-comment-mask.js.map +1 -0
  147. package/dist/core/vacuity-diagnosis.js +1 -1
  148. package/dist/core/vacuity-diagnosis.js.map +1 -1
  149. package/dist/graphql/graphql-rule-builder.d.ts +95 -0
  150. package/dist/graphql/graphql-rule-builder.d.ts.map +1 -0
  151. package/dist/graphql/graphql-rule-builder.js +127 -0
  152. package/dist/graphql/graphql-rule-builder.js.map +1 -0
  153. package/dist/graphql/index.d.ts +1 -0
  154. package/dist/graphql/index.d.ts.map +1 -1
  155. package/dist/graphql/index.js +1 -0
  156. package/dist/graphql/index.js.map +1 -1
  157. package/dist/graphql/resolver-rule-builder.d.ts +22 -76
  158. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
  159. package/dist/graphql/resolver-rule-builder.js +8 -130
  160. package/dist/graphql/resolver-rule-builder.js.map +1 -1
  161. package/dist/graphql/schema-loader.d.ts.map +1 -1
  162. package/dist/graphql/schema-loader.js +4 -3
  163. package/dist/graphql/schema-loader.js.map +1 -1
  164. package/dist/graphql/schema-predicates.d.ts.map +1 -1
  165. package/dist/graphql/schema-predicates.js +17 -12
  166. package/dist/graphql/schema-predicates.js.map +1 -1
  167. package/dist/graphql/schema-rule-builder.d.ts +21 -67
  168. package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
  169. package/dist/graphql/schema-rule-builder.js +6 -120
  170. package/dist/graphql/schema-rule-builder.js.map +1 -1
  171. package/dist/helpers/baseline-generator.d.ts +9 -0
  172. package/dist/helpers/baseline-generator.d.ts.map +1 -1
  173. package/dist/helpers/baseline-generator.js +9 -0
  174. package/dist/helpers/baseline-generator.js.map +1 -1
  175. package/dist/helpers/baseline.d.ts.map +1 -1
  176. package/dist/helpers/baseline.js +4 -4
  177. package/dist/helpers/baseline.js.map +1 -1
  178. package/dist/helpers/body-traversal.d.ts.map +1 -1
  179. package/dist/helpers/body-traversal.js +13 -0
  180. package/dist/helpers/body-traversal.js.map +1 -1
  181. package/dist/helpers/callback-extractor.js +6 -38
  182. package/dist/helpers/callback-extractor.js.map +1 -1
  183. package/dist/helpers/complexity.d.ts +1 -1
  184. package/dist/helpers/complexity.js +1 -1
  185. package/dist/helpers/diff-aware.d.ts +11 -39
  186. package/dist/helpers/diff-aware.d.ts.map +1 -1
  187. package/dist/helpers/diff-aware.js +11 -79
  188. package/dist/helpers/diff-aware.js.map +1 -1
  189. package/dist/helpers/matchers.d.ts.map +1 -1
  190. package/dist/helpers/matchers.js +51 -67
  191. package/dist/helpers/matchers.js.map +1 -1
  192. package/dist/index.d.ts +15 -18
  193. package/dist/index.d.ts.map +1 -1
  194. package/dist/index.js +26 -18
  195. package/dist/index.js.map +1 -1
  196. package/dist/models/arch-function.d.ts +26 -2
  197. package/dist/models/arch-function.d.ts.map +1 -1
  198. package/dist/models/arch-function.js +51 -17
  199. package/dist/models/arch-function.js.map +1 -1
  200. package/dist/models/arch-jsx-element.d.ts.map +1 -1
  201. package/dist/models/arch-jsx-element.js +16 -17
  202. package/dist/models/arch-jsx-element.js.map +1 -1
  203. package/dist/predicates/jsx.d.ts.map +1 -1
  204. package/dist/predicates/jsx.js +2 -1
  205. package/dist/predicates/jsx.js.map +1 -1
  206. package/dist/presets/agent-guardrails.d.ts +29 -3
  207. package/dist/presets/agent-guardrails.d.ts.map +1 -1
  208. package/dist/presets/agent-guardrails.js +185 -1
  209. package/dist/presets/agent-guardrails.js.map +1 -1
  210. package/dist/presets/boundaries.d.ts +2 -2
  211. package/dist/presets/boundaries.d.ts.map +1 -1
  212. package/dist/presets/data-layer.d.ts +2 -2
  213. package/dist/presets/data-layer.d.ts.map +1 -1
  214. package/dist/presets/index.d.ts +4 -1
  215. package/dist/presets/index.d.ts.map +1 -1
  216. package/dist/presets/index.js +11 -1
  217. package/dist/presets/index.js.map +1 -1
  218. package/dist/presets/layered.d.ts +2 -2
  219. package/dist/presets/layered.d.ts.map +1 -1
  220. package/dist/presets/recommended.d.ts +3 -3
  221. package/dist/presets/recommended.d.ts.map +1 -1
  222. package/dist/presets/shared.d.ts +8 -11
  223. package/dist/presets/shared.d.ts.map +1 -1
  224. package/dist/presets/shared.js +57 -28
  225. package/dist/presets/shared.js.map +1 -1
  226. package/dist/rules/metrics-function.d.ts.map +1 -1
  227. package/dist/rules/metrics-function.js +59 -62
  228. package/dist/rules/metrics-function.js.map +1 -1
  229. package/dist/rules/metrics.d.ts.map +1 -1
  230. package/dist/rules/metrics.js +62 -59
  231. package/dist/rules/metrics.js.map +1 -1
  232. package/dist/smells/clusters.d.ts +78 -0
  233. package/dist/smells/clusters.d.ts.map +1 -0
  234. package/dist/smells/clusters.js +124 -0
  235. package/dist/smells/clusters.js.map +1 -0
  236. package/dist/smells/duplicate-bodies.d.ts +38 -4
  237. package/dist/smells/duplicate-bodies.d.ts.map +1 -1
  238. package/dist/smells/duplicate-bodies.js +93 -44
  239. package/dist/smells/duplicate-bodies.js.map +1 -1
  240. package/dist/smells/duplicate-report.d.ts +90 -0
  241. package/dist/smells/duplicate-report.d.ts.map +1 -0
  242. package/dist/smells/duplicate-report.js +344 -0
  243. package/dist/smells/duplicate-report.js.map +1 -0
  244. package/dist/smells/fingerprint.d.ts +12 -0
  245. package/dist/smells/fingerprint.d.ts.map +1 -1
  246. package/dist/smells/fingerprint.js +8 -2
  247. package/dist/smells/fingerprint.js.map +1 -1
  248. package/dist/smells/inconsistent-siblings.js +1 -1
  249. package/dist/smells/inconsistent-siblings.js.map +1 -1
  250. package/dist/smells/similar-pairs.d.ts +9 -8
  251. package/dist/smells/similar-pairs.d.ts.map +1 -1
  252. package/dist/smells/similar-pairs.js +83 -1
  253. package/dist/smells/similar-pairs.js.map +1 -1
  254. package/dist/smells/smell-builder.d.ts.map +1 -1
  255. package/dist/smells/smell-builder.js +3 -2
  256. package/dist/smells/smell-builder.js.map +1 -1
  257. package/dist/smells/variation.d.ts +47 -0
  258. package/dist/smells/variation.d.ts.map +1 -0
  259. package/dist/smells/variation.js +90 -0
  260. package/dist/smells/variation.js.map +1 -0
  261. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
  262. package/dist/tsconfig/tsconfig-builder.js +3 -2
  263. package/dist/tsconfig/tsconfig-builder.js.map +1 -1
  264. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AA2DA,UAAU,UAAU;IAClB,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAyBvD;AAsGD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AA2DA,UAAU,UAAU;IAClB,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAyBvD;AA6FD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGvD"}
package/dist/cli/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { parseArgs } from 'node:util';
2
- import { isRecord } from '@nielspeter/eess';
2
+ import { isRecord, requireRuleFiles } from '@nielspeter/eess/internal';
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import path from 'node:path';
@@ -82,16 +82,9 @@ export function parseCliArgs(args) {
82
82
  });
83
83
  }
84
84
  /** Require rule files to be specified, printing an error and setting exit code if missing. */
85
- function requireRuleFiles(ruleFiles) {
86
- if (ruleFiles.length > 0)
87
- return true;
88
- console.error('Error: No rule files specified. Pass rule files as arguments or set them in config.');
89
- process.exitCode = 1;
90
- return false;
91
- }
92
85
  /** Handle the `check` subcommand. */
93
86
  async function handleCheck(ruleFiles, values, config, format, baseline, changed, base) {
94
- if (!requireRuleFiles(ruleFiles))
87
+ if (!requireRuleFiles(ruleFiles, 'eess-ts.config.ts'))
95
88
  return;
96
89
  if (values.watch === true) {
97
90
  const watchDirs = config.watchDirs ?? ['src'];
@@ -128,7 +121,7 @@ async function handleCheck(ruleFiles, values, config, format, baseline, changed,
128
121
  }
129
122
  /** Handle the `baseline` subcommand. */
130
123
  async function handleBaseline(ruleFiles, output) {
131
- if (!requireRuleFiles(ruleFiles))
124
+ if (!requireRuleFiles(ruleFiles, 'eess-ts.config.ts'))
132
125
  return;
133
126
  const code = await runBaseline({ ruleFiles, output });
134
127
  if (code !== 0)
@@ -156,7 +149,7 @@ function isValidFormat(command, format) {
156
149
  }
157
150
  /** Handle the `explain` subcommand. */
158
151
  async function handleExplain(ruleFiles, markdown, format) {
159
- if (!requireRuleFiles(ruleFiles))
152
+ if (!requireRuleFiles(ruleFiles, 'eess-ts.config.ts'))
160
153
  return;
161
154
  await runExplain({ ruleFiles, markdown, format });
162
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-rules.d.ts","sourceRoot":"","sources":["../../src/cli/load-rules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIvD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,UAAU,WAAW;IACnB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAkC5B"}
1
+ {"version":3,"file":"load-rules.d.ts","sourceRoot":"","sources":["../../src/cli/load-rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIvD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,UAAU,WAAW;IACnB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAmC5B"}
@@ -1,6 +1,7 @@
1
+ import { ArchConfigError } from '@nielspeter/eess';
1
2
  import path from 'node:path';
2
3
  import { importRuleModule } from './import-rule-module.js';
3
- import { isNullaryCallable } from '@nielspeter/eess';
4
+ import { isNullaryCallable } from '@nielspeter/eess/internal';
4
5
  /**
5
6
  * Load rule files (supports `.ts` and `.js`/`.mjs`).
6
7
  *
@@ -28,7 +29,7 @@ export async function loadRuleFiles(files, options) {
28
29
  // with `tests/cli/load-rules.test.ts` carrying eess's assertions.
29
30
  items.forEach((item, index) => {
30
31
  if (!isRuleBuilderLike(item)) {
31
- throw new Error(`Rule file "${file}": default export entry [${index}] is not a rule builder ` +
32
+ throw new ArchConfigError('loadRuleFiles', `Rule file "${file}": default export entry [${index}] is not a rule builder ` +
32
33
  `(got ${describeValue(item)}). Every entry must be a builder with a .check() ` +
33
34
  `method — e.g. \`modules(p).that()…\`. A preset that returns void cannot be placed ` +
34
35
  `directly in the array; call it in its own statement, or export a builder.`);
@@ -55,10 +56,10 @@ function resolveExported(exported, file) {
55
56
  if (Array.isArray(result)) {
56
57
  return result;
57
58
  }
58
- throw new Error(`Rule file "${file}": default-exported function must return an array of rule builders ` +
59
+ throw new ArchConfigError('resolveExported', `Rule file "${file}": default-exported function must return an array of rule builders ` +
59
60
  `(got ${describeValue(result)}).`);
60
61
  }
61
- throw new Error(`Rule file "${file}": default export must be an array of rule builders, or a function ` +
62
+ throw new ArchConfigError('resolveExported', `Rule file "${file}": default export must be an array of rule builders, or a function ` +
62
63
  `returning one (got ${describeValue(exported)}). Add \`export default [ …builders ]\`.`);
63
64
  }
64
65
  /** Short human-readable description of an unexpected value, for error messages. */
@@ -1 +1 @@
1
- {"version":3,"file":"load-rules.js","sourceRoot":"","sources":["../../src/cli/load-rules.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAYpD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAe,EACf,OAAqB;IAErB,MAAM,QAAQ,GAAsB,EAAE,CAAA;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,GAAG,GAAY,MAAM,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;QAE9E,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC7C,2EAA2E;QAC3E,gEAAgE;QAChE,2EAA2E;QAC3E,wEAAwE;QACxE,kDAAkD;QAClD,EAAE;QACF,oEAAoE;QACpE,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,kEAAkE;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,4BAA4B,KAAK,0BAA0B;oBAC3E,QAAQ,aAAa,CAAC,IAAI,CAAC,mDAAmD;oBAC9E,oFAAoF;oBACpF,2EAA2E,CAC9E,CAAA;YACH,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,QAAiB,EAAE,IAAY;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAY,QAAQ,EAAE,CAAA;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,qEAAqE;YACrF,QAAQ,aAAa,CAAC,MAAM,CAAC,IAAI,CACpC,CAAA;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,qEAAqE;QACrF,sBAAsB,aAAa,CAAC,QAAQ,CAAC,0CAA0C,CAC1F,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAA;IAC3C,OAAO,OAAO,KAAK,CAAA;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,yEAAyE;IACzE,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,yDAAyD;IACzD,OAAO,YAAY,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,CAAA;AACxE,CAAC"}
1
+ {"version":3,"file":"load-rules.js","sourceRoot":"","sources":["../../src/cli/load-rules.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,3 @@
1
1
  import type { CliConfig } from './config.js';
2
- /**
3
- * Resolve CLI configuration from an explicit path or by searching for a config file.
4
- *
5
- * Config resolution order:
6
- * 1. CLI flags (highest priority) — handled by caller
7
- * 2. eess-ts.config.ts in project root
8
- * 3. Defaults (project: 'tsconfig.json', format: 'auto')
9
- */
10
2
  export declare function resolveConfig(explicitPath?: string): Promise<CliConfig>;
11
3
  //# sourceMappingURL=resolve-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAU7E"}
1
+ {"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAgB5C,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAS7E"}
@@ -1,71 +1,41 @@
1
1
  import path from 'node:path';
2
+ import { findConfigFile, extractSharedConfig, isRecord } from '@nielspeter/eess/internal';
2
3
  import { importRuleModule } from './import-rule-module.js';
3
- import { isRecord } from '@nielspeter/eess';
4
- import fs from 'node:fs';
5
- const CONFIG_FILENAMES = ['eess-ts.config.ts', 'eess-ts.config.js'];
6
4
  /**
7
- * Resolve CLI configuration from an explicit path or by searching for a config file.
5
+ * Resolve CLI configuration from an explicit path or by searching for one.
8
6
  *
9
7
  * Config resolution order:
10
8
  * 1. CLI flags (highest priority) — handled by caller
11
9
  * 2. eess-ts.config.ts in project root
12
10
  * 3. Defaults (project: 'tsconfig.json', format: 'auto')
11
+ *
12
+ * Finding the file and validating the shared fields are the kernel's — they were
13
+ * duplicated with `eess-mermaid` (`findConfigFile` scored 100%). What stays here
14
+ * is this dialect's own filenames, its own two extra fields, and its loader.
13
15
  */
16
+ const CONFIG_FILENAMES = ['eess-ts.config.ts', 'eess-ts.config.js'];
14
17
  export async function resolveConfig(explicitPath) {
15
- const configPath = explicitPath ?? findConfigFile();
18
+ const configPath = explicitPath ?? findConfigFile(CONFIG_FILENAMES);
16
19
  if (configPath === undefined)
17
20
  return {};
18
21
  // Native `import()` first, jiti only if Node refuses the file's module format
19
22
  // — see `import-rule-module.ts`. A config in a `"type": "commonjs"` project is
20
23
  // bug 0074; a config in an ESM project must share the CLI's module registry.
21
24
  const mod = await importRuleModule(path.resolve(configPath), false);
22
- return extractDefault(mod);
23
- }
24
- function findConfigFile() {
25
- const cwd = process.cwd();
26
- for (const name of CONFIG_FILENAMES) {
27
- const candidate = path.join(cwd, name);
28
- if (fs.existsSync(candidate))
29
- return candidate;
30
- }
31
- return undefined;
25
+ return { ...extractSharedConfig(mod), ...tsOnlyFields(mod) };
32
26
  }
33
- /**
34
- * Extract the default export from an ESM module.
35
- * Supports both `export default config` and `module.exports = config`.
36
- */
37
- function extractDefault(mod) {
38
- if (mod === null || mod === undefined || typeof mod !== 'object') {
27
+ /** `project` and `baseline` — the two fields no other dialect has. */
28
+ function tsOnlyFields(mod) {
29
+ if (!isRecord(mod) || !('default' in mod))
39
30
  return {};
40
- }
41
- // Dynamic import returns a module namespace — 'in' narrows safely
42
- if (!('default' in mod)) {
43
- return {};
44
- }
45
31
  const defaultExport = mod.default;
46
- if (defaultExport === null || defaultExport === undefined || typeof defaultExport !== 'object') {
47
- return {};
48
- }
49
- // Runtime validate: only pick known CliConfig fields
50
32
  if (!isRecord(defaultExport))
51
33
  return {};
52
- const obj = defaultExport;
53
- const config = {};
54
- if (typeof obj['project'] === 'string')
55
- config.project = obj['project'];
56
- if (typeof obj['baseline'] === 'string')
57
- config.baseline = obj['baseline'];
58
- if (typeof obj['format'] === 'string') {
59
- // A guard over the literal union, so the narrowing is the check rather than
60
- // a cast that repeats it. `includes` on a `string[]` cannot narrow; a
61
- // predicate over the same list can.
62
- const isFormat = (v) => ['terminal', 'json', 'github', 'auto'].some((f) => f === v);
63
- if (isFormat(obj['format'])) {
64
- config.format = obj['format'];
65
- }
66
- }
67
- if (Array.isArray(obj['rules']))
68
- config.rules = obj['rules'].filter((r) => typeof r === 'string');
69
- return config;
34
+ const out = {};
35
+ if (typeof defaultExport['project'] === 'string')
36
+ out.project = defaultExport['project'];
37
+ if (typeof defaultExport['baseline'] === 'string')
38
+ out.baseline = defaultExport['baseline'];
39
+ return out;
70
40
  }
71
41
  //# sourceMappingURL=resolve-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-config.js","sourceRoot":"","sources":["../../src/cli/resolve-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAG1D;;;;;;;;;;;GAWG;AACH,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;AAEnE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,YAAqB;IACvD,MAAM,UAAU,GAAG,YAAY,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACnE,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEvC,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,GAAG,GAAY,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5E,OAAO,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;AAC9D,CAAC;AAED,sEAAsE;AACtE,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IACpD,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAA;IACjC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,CAAA;IACvC,MAAM,GAAG,GAA4C,EAAE,CAAA;IACvD,IAAI,OAAO,aAAa,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACxF,IAAI,OAAO,aAAa,CAAC,UAAU,CAAC,KAAK,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3F,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-file-findings.d.ts","sourceRoot":"","sources":["../../src/cli/rule-file-findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CA0B9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAqBhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC/C,aAAa,CAkDf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAsBtE"}
1
+ {"version":3,"file":"rule-file-findings.d.ts","sourceRoot":"","sources":["../../src/cli/rule-file-findings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAEjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CA0B9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,aAAa,EAAE,CASjB;AA2DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAqBhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC/C,aAAa,CAkDf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAsBtE"}
@@ -1,4 +1,4 @@
1
- import { isArchRuleError } from '@nielspeter/eess';
1
+ import { isArchRuleError, isArchConfigError } from '@nielspeter/eess';
2
2
  import { basename } from 'node:path';
3
3
  /**
4
4
  * Attribute findings that have no source location of their own to the rule file
@@ -94,7 +94,65 @@ export function ruleFileFailure(file, error, ruleFiles) {
94
94
  * did with everything else.
95
95
  */
96
96
  export function failureOrViolations(file, error, ruleFiles) {
97
- return isArchRuleError(error) ? error.violations : [ruleFileFailure(file, error, ruleFiles)];
97
+ if (isArchRuleError(error))
98
+ return error.violations;
99
+ // Bug 0241. `ArchConfigError` knows WHAT was misconfigured, so it is the one
100
+ // error here that can carry a specific remedy without guessing — which is the
101
+ // whole reason the type exists, and it shipped with 17 throw sites and nothing
102
+ // reading it. Ordered after the rule-error branch, never before: a rule file
103
+ // that self-executes a failing check reports its own findings.
104
+ if (isArchConfigError(error))
105
+ return [ruleFileMisconfigured(file, error, ruleFiles)];
106
+ return [ruleFileFailure(file, error, ruleFiles)];
107
+ }
108
+ /**
109
+ * A rule file misconfigured something eess offers, and eess knows which thing.
110
+ *
111
+ * The sibling `ruleFileFailure` is deliberately vague because it answers for any
112
+ * error a rule file can raise, and naming one cause for all of them is ADR-009
113
+ * rule 2's defect. This one is the opposite case and gets the opposite
114
+ * treatment: the thrower named its subject — `havePropertyNamed`,
115
+ * `requireGraphQL`, `workspace` — so the remedy can point at the call instead of
116
+ * hedging about what the message might mean.
117
+ *
118
+ * The distinction is for the reader this project actually ships to. "Your rule
119
+ * file is wrong, fix the argument" and "eess crashed" ask an agent for opposite
120
+ * next actions, and before this they rendered identically.
121
+ *
122
+ * NOT exported, unlike its sibling `ruleFileFailure`. Nothing outside this
123
+ * module calls it — `failureOrViolations` is the seam, and the tests drive it
124
+ * through that. Exporting it anyway would have added a fourth instance of the
125
+ * exact shape bug 0241 is about, in the fix for bug 0241; `check:arch`'s
126
+ * no-unused-exports rule said so before this comment existed.
127
+ */
128
+ function ruleFileMisconfigured(file, error, ruleFiles) {
129
+ const others = ruleFiles > 1 ? ' The other rule files in this run were still checked.' : '';
130
+ // The cause, when it adds something. `schema-loader.ts` throws the same
131
+ // subject for "the graphql package is not installed" and "it is installed but
132
+ // failed to load", and only the cause separates them — its own fix records
133
+ // that discarding it "used to be reported as 'not installed' too, discarding
134
+ // the one line that would have told the reader what actually happened".
135
+ // Nothing rendered `cause` before this, so that line was reaching nobody.
136
+ const cause = error.cause instanceof Error ? error.cause.message : undefined;
137
+ const detail = cause !== undefined && !error.message.includes(cause)
138
+ ? `${error.message} (${cause})`
139
+ : error.message;
140
+ return {
141
+ // The subject, not the file's basename: the thing to open is the CALL. The
142
+ // file is already in `file`, and the generic path uses the basename there.
143
+ rule: 'eess-ts: rule file',
144
+ element: error.subject,
145
+ file,
146
+ line: 1,
147
+ message: `${error.subject} is misconfigured in this rule file, so its rules enforced nothing in ` +
148
+ `this run: ${detail}${others}`,
149
+ // Specific, because this error earned it. `ruleFileFailure`'s remedy has to
150
+ // hedge ("if it names a builder method…"); this one does not, and asserting
151
+ // that it does not is how the two stay distinguishable.
152
+ suggestion: `Fix the call to ${error.subject} in this rule file. This is a fault in how the rule was ` +
153
+ `configured, not a finding about the code under test — editing the code cannot clear it.`,
154
+ bypassFilters: true,
155
+ };
98
156
  }
99
157
  /**
100
158
  * A rule file stopped evaluating partway, so the rules after that point never ran.
@@ -1 +1 @@
1
- {"version":3,"file":"rule-file-findings.js","sourceRoot":"","sources":["../../src/cli/rule-file-findings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-file-findings.js","sourceRoot":"","sources":["../../src/cli/rule-file-findings.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Watch mode for `eess-ts`.
3
+ *
4
+ * The scheduling and the watch loop live in the kernel — they were duplicated
5
+ * with `eess-mermaid` and the copies drifted (see `@nielspeter/eess`'s
6
+ * `watch.ts`). What is dialect-specific is only which filenames count.
7
+ */
1
8
  interface WatchOptions {
2
9
  /** Directories to watch for changes */
3
10
  watchDirs: string[];
@@ -9,53 +16,16 @@ interface WatchOptions {
9
16
  debounceMs?: number;
10
17
  }
11
18
  export declare const TS_FILE_RE: RegExp;
12
- /**
13
- * Scheduling logic for watch mode — extracted for testability.
14
- *
15
- * Debounces rapid triggers. If a trigger arrives while the callback
16
- * is running, it queues a re-run after the current run completes.
17
- */
18
- export declare class RunScheduler {
19
- #private;
20
- private debounceTimer;
21
- private running;
22
- private _pendingRerun;
23
- private readonly debounceMs;
24
- private readonly onRun;
25
- /** Completed runs. */
26
- get runCount(): number;
27
- constructor(onRun: (trigger: string) => Promise<void>, debounceMs?: number);
28
- get pendingRerun(): boolean;
29
- get isRunning(): boolean;
30
- /**
31
- * Queue a re-run, debounced.
32
- *
33
- * A run already in flight is not interrupted: the request is remembered and
34
- * replayed when it finishes, so a save during a run is never dropped and
35
- * never starts a second concurrent run.
36
- */
37
- schedule(trigger: string): void;
38
- private executeRun;
39
- }
40
- /**
41
- * Watch for file changes and re-run the callback.
42
- *
43
- * Uses Node.js `fs.watch` with `recursive: true` (Node 24+).
44
- * Debounces rapid filesystem events. If a change arrives while
45
- * a run is in progress, it is queued and executed after the
46
- * current run completes.
47
- *
48
- * Known limitation: each re-run uses `importFresh` which creates
49
- * a new ESM module cache entry. Over long sessions, memory grows.
50
- * Restart the watcher periodically for long sessions.
51
- */
52
19
  export declare function watchAndRerun(options: WatchOptions): void;
53
20
  /**
54
21
  * Import a module with cache-busting for watch mode.
55
22
  *
56
- * Node ESM has no cache eviction API. Each call creates a new
57
- * module entry via a unique query string. Over long sessions
58
- * this leaks memory — see watchAndRerun JSDoc.
23
+ * Node ESM has no cache eviction API. Each call creates a new module entry via a
24
+ * unique query string. Over long sessions this leaks memory.
25
+ *
26
+ * Stays in this package rather than moving to the kernel with the watch loop:
27
+ * `eess-mermaid` has no equivalent, so it is not duplicated and unifying it
28
+ * would be inventing shared surface rather than removing copied surface.
59
29
  */
60
30
  export declare function importFresh(filePath: string): Promise<unknown>;
61
31
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,mDAAmD;IACnD,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAGD,eAAO,MAAM,UAAU,QAAiB,CAAA;AAExC;;;;;GAKG;AAEH,qBAAa,YAAY;;IACvB,OAAO,CAAC,aAAa,CAA2C;IAChE,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAU1D,sBAAsB;IACtB,IAAI,QAAQ,IAAI,MAAM,CAErB;gBAEW,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,SAAM;IAKvE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW/B,OAAO,CAAC,UAAU;CAwBnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAsDzD;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIpE"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,UAAU,YAAY;IACpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,mDAAmD;IACnD,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAGD,eAAO,MAAM,UAAU,QAAiB,CAAA;AAExC,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIpE"}
package/dist/cli/watch.js CHANGED
@@ -1,159 +1,19 @@
1
- import { watch } from 'node:fs/promises';
2
- import { isNullaryCallable } from '@nielspeter/eess';
3
1
  import path from 'node:path';
4
- import { isArchRuleError } from '@nielspeter/eess';
2
+ import { watchAndRerun as watchAndRerunShared } from '@nielspeter/eess/internal';
5
3
  // eess-exclude eess/no-unused-exports: consumed by the test suite; the build tsconfig this gate reads excludes tests, so `src` is the only usage it can see
6
4
  export const TS_FILE_RE = /\.[cm]?tsx?$/;
7
- /**
8
- * Scheduling logic for watch mode — extracted for testability.
9
- *
10
- * Debounces rapid triggers. If a trigger arrives while the callback
11
- * is running, it queues a re-run after the current run completes.
12
- */
13
- // eess-exclude eess/no-unused-exports: consumed by the test suite; the build tsconfig this gate reads excludes tests, so `src` is the only usage it can see
14
- export class RunScheduler {
15
- debounceTimer;
16
- running = false;
17
- _pendingRerun = false;
18
- debounceMs;
19
- onRun;
20
- /**
21
- * How many runs have completed — read by the watch loop's own tests.
22
- *
23
- * Hard-private with a getter, matching `eess-mermaid`'s `RunScheduler`: the
24
- * counter is this class's bookkeeping and a caller that could reassign it
25
- * would make the number mean nothing.
26
- */
27
- #runCount = 0;
28
- /** Completed runs. */
29
- get runCount() {
30
- return this.#runCount;
31
- }
32
- constructor(onRun, debounceMs = 250) {
33
- this.onRun = onRun;
34
- this.debounceMs = debounceMs;
35
- }
36
- get pendingRerun() {
37
- return this._pendingRerun;
38
- }
39
- get isRunning() {
40
- return this.running;
41
- }
42
- /**
43
- * Queue a re-run, debounced.
44
- *
45
- * A run already in flight is not interrupted: the request is remembered and
46
- * replayed when it finishes, so a save during a run is never dropped and
47
- * never starts a second concurrent run.
48
- */
49
- schedule(trigger) {
50
- if (this.debounceTimer)
51
- clearTimeout(this.debounceTimer);
52
- this.debounceTimer = setTimeout(() => {
53
- if (this.running) {
54
- this._pendingRerun = true;
55
- return;
56
- }
57
- this.executeRun(trigger);
58
- }, this.debounceMs);
59
- }
60
- executeRun(trigger) {
61
- this.running = true;
62
- this._pendingRerun = false;
63
- this.#runCount++;
64
- process.stdout.write('\x1B[2J\x1B[H'); // clear screen, preserve scrollback
65
- process.stdout.write(`Change detected: ${trigger}\n\n`);
66
- this.onRun(trigger)
67
- .catch((err) => {
68
- // Rule failures are expected — swallow ArchRuleError, print others
69
- if (!isArchRuleError(err)) {
70
- if (err instanceof Error) {
71
- console.error(err.message);
72
- }
73
- }
74
- })
75
- .finally(() => {
76
- this.running = false;
77
- if (this._pendingRerun) {
78
- this.executeRun('(queued change)');
79
- }
80
- else {
81
- process.stdout.write('\nWatching for changes...\n');
82
- }
83
- });
84
- }
85
- }
86
- /**
87
- * Watch for file changes and re-run the callback.
88
- *
89
- * Uses Node.js `fs.watch` with `recursive: true` (Node 24+).
90
- * Debounces rapid filesystem events. If a change arrives while
91
- * a run is in progress, it is queued and executed after the
92
- * current run completes.
93
- *
94
- * Known limitation: each re-run uses `importFresh` which creates
95
- * a new ESM module cache entry. Over long sessions, memory grows.
96
- * Restart the watcher periodically for long sessions.
97
- */
98
5
  export function watchAndRerun(options) {
99
- const { watchDirs, watchFiles, onChangeDetected, debounceMs = 250 } = options;
100
- const scheduler = new RunScheduler(onChangeDetected, debounceMs);
101
- const watchers = [];
102
- // Watch directories recursively
103
- for (const dir of watchDirs) {
104
- const resolved = path.resolve(dir);
105
- const watcher = watch(resolved, { recursive: true });
106
- watchers.push(watcher);
107
- void (async () => {
108
- try {
109
- for await (const event of watcher) {
110
- if (event.filename && TS_FILE_RE.test(event.filename)) {
111
- scheduler.schedule(event.filename);
112
- }
113
- }
114
- }
115
- catch (err) {
116
- if (err instanceof Error && err.message !== 'The operation was aborted') {
117
- console.error(`Watcher error on ${dir}: ${err.message}`);
118
- }
119
- }
120
- })();
121
- }
122
- // Watch individual rule files
123
- for (const file of watchFiles) {
124
- const resolved = path.resolve(file);
125
- const watcher = watch(resolved);
126
- watchers.push(watcher);
127
- void (async () => {
128
- try {
129
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- must consume async iterator
130
- for await (const _event of watcher) {
131
- scheduler.schedule(path.basename(file));
132
- }
133
- }
134
- catch (err) {
135
- if (err instanceof Error && err.message !== 'The operation was aborted') {
136
- console.error(`Watcher error on ${file}: ${err.message}`);
137
- }
138
- }
139
- })();
140
- }
141
- // Graceful shutdown — close all watchers on SIGINT
142
- process.on('SIGINT', () => {
143
- for (const w of watchers) {
144
- if ('return' in w && isNullaryCallable(w.return)) {
145
- void w.return();
146
- }
147
- }
148
- process.exit(0);
149
- });
6
+ watchAndRerunShared({ ...options, watchedFileRe: TS_FILE_RE });
150
7
  }
151
8
  /**
152
9
  * Import a module with cache-busting for watch mode.
153
10
  *
154
- * Node ESM has no cache eviction API. Each call creates a new
155
- * module entry via a unique query string. Over long sessions
156
- * this leaks memory — see watchAndRerun JSDoc.
11
+ * Node ESM has no cache eviction API. Each call creates a new module entry via a
12
+ * unique query string. Over long sessions this leaks memory.
13
+ *
14
+ * Stays in this package rather than moving to the kernel with the watch loop:
15
+ * `eess-mermaid` has no equivalent, so it is not duplicated and unifying it
16
+ * would be inventing shared surface rather than removing copied surface.
157
17
  */
158
18
  export async function importFresh(filePath) {
159
19
  const resolved = path.resolve(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/cli/watch.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAoBhF,4JAA4J;AAC5J,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAA;AAExC,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,UAAU,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/conditions/call.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAgDtD;;GAEG;AACH,wBAAgB,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,CAiB9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAoBtF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAsCzF;AAiCD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAsChF;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAqCnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA4BtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA+BzF"}
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/conditions/call.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAgDtD;;GAEG;AACH,wBAAgB,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,CAiB9C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAoBtF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAsCzF;AAiCD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAyChF;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAwCnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA4BtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,CA+BzF"}