@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalidate-on-modify.d.ts","sourceRoot":"","sources":["../../src/core/invalidate-on-modify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,EAC5B,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GACrC,IAAI,CAMN"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Drop a file's cached derivations the first time it is modified, registering
3
+ * the listener exactly once.
4
+ *
5
+ * `descendant-cache.ts` and `line-index.ts` each carried this. They are the two
6
+ * per-file memo caches in this package, so they need the same invalidation and
7
+ * had the same code for it — `no-copy-paste` reported it at 100%.
8
+ *
9
+ * **`invalidate` is a callback rather than the caches themselves, and that is
10
+ * not a style choice.** Both modules RESET by reassigning their `WeakMap`s
11
+ * (`byFile = new WeakMap(...)`), so a listener holding the map objects would go
12
+ * on deleting from the map that was replaced, leaving the live one stale. A
13
+ * callback reads the module's current bindings at the moment it fires.
14
+ *
15
+ * `watched` stays the caller's, because it is reset alongside the caches it
16
+ * guards.
17
+ */
18
+ export function invalidateOnModify(sourceFile, watched, invalidate) {
19
+ if (watched.has(sourceFile))
20
+ return;
21
+ watched.add(sourceFile);
22
+ sourceFile.onModified(() => {
23
+ invalidate(sourceFile);
24
+ });
25
+ }
26
+ //# sourceMappingURL=invalidate-on-modify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalidate-on-modify.js","sourceRoot":"","sources":["../../src/core/invalidate-on-modify.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAsB,EACtB,OAA4B,EAC5B,UAAsC;IAEtC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAM;IACnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACvB,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE;QACzB,UAAU,CAAC,UAAU,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"line-index.d.ts","sourceRoot":"","sources":["../../src/core/line-index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,UAAU,CAAA;AA8NhD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYjD"}
1
+ {"version":3,"file":"line-index.d.ts","sourceRoot":"","sources":["../../src/core/line-index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,UAAU,CAAA;AA6NhD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYjD"}
@@ -1,5 +1,6 @@
1
1
  import { SyntaxKind } from 'ts-morph';
2
- import { registerCacheReset } from '@nielspeter/eess';
2
+ import { registerCacheReset } from '@nielspeter/eess/internal';
3
+ import { invalidateOnModify } from './invalidate-on-modify.js';
3
4
  /**
4
5
  * The per-file line index behind `linesOfCode`.
5
6
  *
@@ -30,7 +31,7 @@ const NON_CODE_KINDS = new Set([
30
31
  * `}` still counts — it is a source line; this is not a statement count.
31
32
  *
32
33
  * **Why not the span.**
33
- * [Bug 0170](../../../../work/bugs/0170-linesofcode-counts-comments-so-documentation-reads-as-size.md):
34
+ * [Bug 0170](../../../../work/bugs/fixed/0170-linesofcode-counts-comments-so-documentation-reads-as-size.md):
34
35
  * this was `end - start + 1`, which measures documentation as size. In this repo
35
36
  * that put two rules in direct conflict — `eess/jsdoc-on-public-methods` requires
36
37
  * a doc block on every public method, and `eess/max-class-lines` then counted
@@ -153,12 +154,9 @@ registerCacheReset(() => {
153
154
  * first.
154
155
  */
155
156
  function watchOnce(sourceFile) {
156
- if (watched.has(sourceFile))
157
- return;
158
- watched.add(sourceFile);
159
- sourceFile.onModified(() => {
160
- lineStartsByFile.delete(sourceFile);
161
- codeLinesByFile.delete(sourceFile);
157
+ invalidateOnModify(sourceFile, watched, (file) => {
158
+ lineStartsByFile.delete(file);
159
+ codeLinesByFile.delete(file);
162
160
  });
163
161
  }
164
162
  function codeLinesOf(sourceFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"line-index.js","sourceRoot":"","sources":["../../src/core/line-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"line-index.js","sourceRoot":"","sources":["../../src/core/line-index.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export declare function metricViolation(node: Node, options: {
60
60
  * What `measured` COUNTS, when that is not simply the metric's name.
61
61
  *
62
62
  * The baseline persists this and refuses to compare across a change of unit
63
- * ([bug 0171](../../../../work/bugs/0171-a-metric-unit-change-silently-loosens-every-baselined-ratchet.md)).
63
+ * ([bug 0171](../../../../work/bugs/fixed/0171-a-metric-unit-change-silently-loosens-every-baselined-ratchet.md)).
64
64
  * `lines` is why it exists: the metric kept its name while `linesOfCode`
65
65
  * changed from counting a span to counting code, so identity still matched
66
66
  * and every baselined ceiling silently tripled. A metric whose name already
@@ -1 +1 @@
1
- {"version":3,"file":"module-edges.d.ts","sourceRoot":"","sources":["../../src/core/module-edges.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAA;AAKzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;AAE9F,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAYrE;AAqFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAY1D;AA0ND;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAarD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAa5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CA4BnF;AAED;;;;;;GAMG;AACH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAM9D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CA8BzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAW7D"}
1
+ {"version":3,"file":"module-edges.d.ts","sourceRoot":"","sources":["../../src/core/module-edges.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAA;AAKzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;AAE9F,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAYrE;AAqFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAY1D;AA0ND;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAErD;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CA4BnF;AAED;;;;;;GAMG;AACH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAM9D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CA8BzE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAW7D"}
@@ -1,6 +1,6 @@
1
1
  import { Node, SyntaxKind } from 'ts-morph';
2
2
  import { isTypeOnlyImport, isTypeOnlyReExport } from './import-options.js';
3
- import { registerCacheReset } from '@nielspeter/eess';
3
+ import { registerCacheReset } from '@nielspeter/eess/internal';
4
4
  import { verbatimModuleSyntaxFor } from './per-root-compiler-options.js';
5
5
  /**
6
6
  * Every module edge leaving each file, in one call (ADR-007 rule 2).
@@ -407,19 +407,31 @@ function namesOf(kind, parent) {
407
407
  * findings are NOT absorbed by an existing `import` entry for the same module.
408
408
  */
409
409
  export function edgeVerb(kind) {
410
- switch (kind) {
411
- case 'import':
412
- return 'imports';
413
- case 'reexport':
414
- return 're-exports';
415
- case 'dynamic':
416
- return 'dynamically imports';
417
- case 'type-expression':
418
- return 'references the type from';
419
- case 'require':
420
- return 'requires';
421
- }
410
+ return EDGE_WORDS[kind].verb;
422
411
  }
412
+ /**
413
+ * Both words for every edge kind, in one table.
414
+ *
415
+ * They were two exhaustive switches over the same union — `no-copy-paste`
416
+ * reported them at 100% — and keeping them apart is what lets a new kind be
417
+ * added with a verb and no noun phrase, which compiles: the `Record` makes
418
+ * that a type error instead, so a kind cannot be half-described.
419
+ *
420
+ * `import`'s verb must stay byte-identical. Every existing baselined
421
+ * dependency finding hashes its message, so changing that one string silently
422
+ * invalidates them all; the other kinds get distinct verbs precisely so their
423
+ * findings are NOT absorbed by an existing `import` entry for the same module.
424
+ */
425
+ const EDGE_WORDS = {
426
+ import: { verb: 'imports', valuePhrase: 'a value import from' },
427
+ reexport: { verb: 're-exports', valuePhrase: 'a runtime re-export of' },
428
+ dynamic: { verb: 'dynamically imports', valuePhrase: 'a dynamic import of' },
429
+ 'type-expression': {
430
+ verb: 'references the type from',
431
+ valuePhrase: 'a type reference to',
432
+ },
433
+ require: { verb: 'requires', valuePhrase: 'a require call for' },
434
+ };
423
435
  /**
424
436
  * How a finding describes a **runtime** edge of this kind, for
425
437
  * `onlyHaveTypeImportsFrom`.
@@ -430,18 +442,7 @@ export function edgeVerb(kind) {
430
442
  * {@link edgeTypeOnlyRemedy}.
431
443
  */
432
444
  export function edgeValuePhrase(kind) {
433
- switch (kind) {
434
- case 'import':
435
- return 'a value import from';
436
- case 'reexport':
437
- return 'a runtime re-export of';
438
- case 'dynamic':
439
- return 'a dynamic import of';
440
- case 'type-expression':
441
- return 'a type reference to';
442
- case 'require':
443
- return 'a require call for';
444
- }
445
+ return EDGE_WORDS[kind].valuePhrase;
445
446
  }
446
447
  /**
447
448
  * The remedy for a runtime edge that should be type-only — **per kind, because
@@ -1 +1 @@
1
- {"version":3,"file":"module-edges.js","sourceRoot":"","sources":["../../src/core/module-edges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-edges.js","sourceRoot":"","sources":["../../src/core/module-edges.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orphan-exclusions.d.ts","sourceRoot":"","sources":["../../src/core/orphan-exclusions.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD;;;;;;;GAOG;AACH,UAAU,sBAAsB;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD;AAgBD,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAoCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,eAAe,EAAE,CAwHnB"}
1
+ {"version":3,"file":"orphan-exclusions.d.ts","sourceRoot":"","sources":["../../src/core/orphan-exclusions.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD;;;;;;;GAOG;AACH,UAAU,sBAAsB;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD;AAgBD,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAoCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,eAAe,EAAE,CAwHnB"}
@@ -32,12 +32,22 @@
32
32
  * Same shape as `checkAll` versus a per-rule `.check()`, which this project
33
33
  * already documents: some facts are only true at the run boundary.
34
34
  *
35
- * ## What it does not catch
35
+ * ## What it does not catch — narrowed 2026-09-05
36
36
  *
37
- * A directive whose rule id is **correct** but whose placement is wrong — the
38
- * other half of bug 0044. Catching that needs the enforcement path to know which
39
- * violations a comment failed to cover, which is option 1 in that bug and costs a
40
- * parse per file per rule. Stated here rather than left to be discovered.
37
+ * This used to say it did not catch *"a directive whose rule id is correct but
38
+ * whose placement is wrong — the other half of bug 0044"*, and that option 1
39
+ * would cost a parse per file per rule. **Bug 0255 built it**, cheaper than that
40
+ * estimate: `applyFilters` already parses the violating files, so tracking which
41
+ * comments actually suppressed something is free, and one that suppressed
42
+ * nothing is reported on stderr from the enforcement path. That covers the
43
+ * misplaced-but-correct-id case, and the id-less case besides.
44
+ *
45
+ * What is left to this module is the case the enforcement path structurally
46
+ * cannot see: a directive in a file that produced **no** violation. Comments are
47
+ * only read where something already failed — the gate that keeps the cost
48
+ * bounded — so a directive naming a renamed or deleted rule id sits in a clean
49
+ * file forever, unread. That is what `doctor` is for, and it is why this reads
50
+ * the whole project rather than one rule's violating files.
41
51
  */
42
52
  import { parseExclusionComments } from './exclusion-comments.js';
43
53
  /** The caveat, or `''` when the caller vouched for full coverage. */
@@ -1 +1 @@
1
- {"version":3,"file":"orphan-exclusions.js","sourceRoot":"","sources":["../../src/core/orphan-exclusions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orphan-exclusions.js","sourceRoot":"","sources":["../../src/core/orphan-exclusions.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,17 @@
1
1
  import type { ArchProject } from './project.js';
2
+ import type { PathUniverse } from '@nielspeter/eess';
2
3
  /**
3
- * Every path a glob could legitimately match in a project, materialized once.
4
+ * The MATERIALIZER — walking a real project's source files into `PathUniverse`.
4
5
  *
5
- * A free function over `ArchProject` rather than a method on it: bare-object
6
- * `ArchProject` literals are real test doubles across the suite, and adding a
7
- * required method would break every one of them. Lives in `src/core/`, takes
8
- * `ArchProject` in and hands plain strings out, and imports no ts-morph —
9
- * ADR-007's batch-first shape by construction, one materialization instead of
10
- * a traversal per glob.
6
+ * `PathUniverse` and `viewsFor` are the KERNEL's, and always were by intent: the
7
+ * kernel's own docstring says only the materializer needs the dialect's project
8
+ * type. Both were nonetheless declared here too, byte-identically, until the
9
+ * duplication was measured — `viewsFor` at 100%. Re-exported so this module
10
+ * kept here as a type re-export because this dialect's public `pathUniverse()`
11
+ * returns it. `viewsFor` is NOT re-exported — ADR-011 clause 2 forbids a dialect
12
+ * forwarding anything from `/internal`, and its one caller imports it directly.
11
13
  */
12
- export interface PathUniverse {
13
- /** Absolute paths of every file in the project. */
14
- readonly filePaths: readonly string[];
15
- /**
16
- * Immediate parent directories only.
17
- *
18
- * Not all ancestors. `resideInFolder` tests
19
- * `filePath.substring(0, filePath.lastIndexOf('/'))` — the immediate parent
20
- * and nothing else — so an all-ancestors set is not a harmless
21
- * over-approximation, it is a **false green**: measured on this repo, 41 of
22
- * the 122 ancestors are no file's parent, so `resideInFolder('**\/tests/fixtures')`
23
- * can never select anything while an all-ancestors universe calls it
24
- * satisfiable. Using the parent set removes the over-approximation rather
25
- * than excusing it.
26
- */
27
- readonly parentDirs: readonly string[];
28
- /** `filePaths` relative to the tsconfig directory, for message wording. */
29
- readonly tsconfigRelativeFilePaths: readonly string[];
30
- /** `parentDirs` relative to the tsconfig directory, for message wording. */
31
- readonly tsconfigRelativeParentDirs: readonly string[];
32
- }
14
+ export type { PathUniverse };
33
15
  /**
34
16
  * The project's path universe, computed once per project.
35
17
  *
@@ -37,18 +19,4 @@ export interface PathUniverse {
37
19
  * one traversal rather than fifty.
38
20
  */
39
21
  export declare function pathUniverse(project: ArchProject): PathUniverse;
40
- /**
41
- * The views a glob of this kind is matched against.
42
- *
43
- * Satisfiability is taken against the **union** — a glob is unsatisfiable only
44
- * when nothing in any view matches it. That is deliberately generous, so that
45
- * a wrong `base` cannot make a glob look unmatched. It does NOT make `base`
46
- * message-only: the anchor check in `syntacticFault` consults it, and an
47
- * unanchored `base: 'absolute'` glob is dead regardless of what any view
48
- * holds. See `GlobBase`.
49
- *
50
- * `import-target`, `specifier` and `literal` are not path kinds and have no
51
- * views, so they can never be found unsatisfiable here.
52
- */
53
- export declare function viewsFor(universe: PathUniverse, kind: 'file-path' | 'parent-dir' | 'import-target' | 'specifier' | 'literal'): readonly (readonly string[])[];
54
22
  //# sourceMappingURL=path-universe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-universe.d.ts","sourceRoot":"","sources":["../../src/core/path-universe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,yBAAyB,EAAE,SAAS,MAAM,EAAE,CAAA;IACrD,4EAA4E;IAC5E,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAA;CACvD;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAiB/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,SAAS,GAC3E,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAIhC"}
1
+ {"version":3,"file":"path-universe.d.ts","sourceRoot":"","sources":["../../src/core/path-universe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,YAAY,EAAE,YAAY,EAAE,CAAA;AAI5B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAiB/D"}
@@ -23,26 +23,6 @@ export function pathUniverse(project) {
23
23
  cache.set(project, universe);
24
24
  return universe;
25
25
  }
26
- /**
27
- * The views a glob of this kind is matched against.
28
- *
29
- * Satisfiability is taken against the **union** — a glob is unsatisfiable only
30
- * when nothing in any view matches it. That is deliberately generous, so that
31
- * a wrong `base` cannot make a glob look unmatched. It does NOT make `base`
32
- * message-only: the anchor check in `syntacticFault` consults it, and an
33
- * unanchored `base: 'absolute'` glob is dead regardless of what any view
34
- * holds. See `GlobBase`.
35
- *
36
- * `import-target`, `specifier` and `literal` are not path kinds and have no
37
- * views, so they can never be found unsatisfiable here.
38
- */
39
- export function viewsFor(universe, kind) {
40
- if (kind === 'file-path')
41
- return [universe.filePaths, universe.tsconfigRelativeFilePaths];
42
- if (kind === 'parent-dir')
43
- return [universe.parentDirs, universe.tsconfigRelativeParentDirs];
44
- return [];
45
- }
46
26
  /** The directory containing the tsconfig, with forward slashes and no trailing separator. */
47
27
  function tsconfigDir(tsConfigPath) {
48
28
  const normalized = tsConfigPath.replaceAll('\\', '/');
@@ -1 +1 @@
1
- {"version":3,"file":"path-universe.js","sourceRoot":"","sources":["../../src/core/path-universe.ts"],"names":[],"mappings":"AAkCA,MAAM,KAAK,GAAG,IAAI,OAAO,EAA6B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;IACxF,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1F,CAAA;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAiB;QAC7B,SAAS;QACT,UAAU;QACV,yBAAyB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClF,0BAA0B,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC3E,CAAA;IACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CACtB,QAAsB,EACtB,IAA4E;IAE5E,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAA;IACzF,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAA;IAC5F,OAAO,EAAE,CAAA;AACX,CAAC;AAED,6FAA6F;AAC7F,SAAS,WAAW,CAAC,YAAoB;IACvC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACrD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,QAAgB;IAChD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAA;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAA;IACrD,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC/E,CAAC"}
1
+ {"version":3,"file":"path-universe.js","sourceRoot":"","sources":["../../src/core/path-universe.ts"],"names":[],"mappings":"AAgBA,MAAM,KAAK,GAAG,IAAI,OAAO,EAA6B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;IACxF,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1F,CAAA;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAiB;QAC7B,SAAS;QACT,UAAU;QACV,yBAAyB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClF,0BAA0B,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC3E,CAAA;IACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,6FAA6F;AAC7F,SAAS,WAAW,CAAC,YAAoB;IACvC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACrD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,QAAgB;IAChD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAA;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAA;IACrD,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC/E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAA;AAOzE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B,yDAAyD;IACzD,cAAc,IAAI,UAAU,EAAE,CAAA;IAE9B;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,eAAe,CAAA;IAEtC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAID;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAkCzD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,WAAW,CAqE9D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAQxC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAA;AAOzE;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B,yDAAyD;IACzD,cAAc,IAAI,UAAU,EAAE,CAAA;IAE9B;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,eAAe,CAAA;IAEtC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAID;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAmCzD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,WAAW,CAuE9D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAQxC"}
@@ -1,6 +1,7 @@
1
+ import { ArchConfigError } from '@nielspeter/eess';
1
2
  import { Project } from 'ts-morph';
2
3
  import path from 'node:path';
3
- import { clearRegisteredCaches } from '@nielspeter/eess';
4
+ import { clearRegisteredCaches } from '@nielspeter/eess/internal';
4
5
  import fs from 'node:fs';
5
6
  import { registerProjectRoots } from './project-relative.js';
6
7
  import { registerRootCompilerOptions } from './per-root-compiler-options.js';
@@ -22,7 +23,7 @@ export function project(tsConfigPath) {
22
23
  return cached;
23
24
  }
24
25
  if (!fs.existsSync(resolved)) {
25
- throw new Error(`tsconfig not found: ${resolved}\n` +
26
+ throw new ArchConfigError('project', `tsconfig not found: ${resolved}\n` +
26
27
  `Provide a valid path to tsconfig.json, e.g. project('tsconfig.json') or project('./packages/app/tsconfig.json')`);
27
28
  }
28
29
  const tsMorphProject = new Project({
@@ -74,7 +75,7 @@ const workspaceCache = new Map();
74
75
  */
75
76
  export function workspace(tsConfigPaths) {
76
77
  if (tsConfigPaths.length === 0) {
77
- throw new Error('workspace() requires at least one tsconfig path.\n' +
78
+ throw new ArchConfigError('workspace', 'workspace() requires at least one tsconfig path.\n' +
78
79
  'Example: workspace(["apps/web/tsconfig.json", "packages/shared/tsconfig.json"])');
79
80
  }
80
81
  // Sort resolved paths so the primary config (first) is deterministic
@@ -92,14 +93,14 @@ export function workspace(tsConfigPaths) {
92
93
  // Validate all paths exist before creating the project
93
94
  for (const resolved of resolvedPaths) {
94
95
  if (!fs.existsSync(resolved)) {
95
- throw new Error(`tsconfig not found: ${resolved}\n` +
96
+ throw new ArchConfigError('workspace', `tsconfig not found: ${resolved}\n` +
96
97
  `Provide valid paths to tsconfig.json files in the workspace() call.`);
97
98
  }
98
99
  }
99
100
  // Create project with the alphabetically first tsconfig's compiler options
100
101
  const primaryConfig = resolvedPaths[0];
101
102
  if (!primaryConfig)
102
- throw new Error('No resolved paths available');
103
+ throw new ArchConfigError('workspace', 'No resolved paths available');
103
104
  const tsMorphProject = new Project({
104
105
  tsConfigFilePath: primaryConfig,
105
106
  });
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"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"}
@@ -210,6 +210,27 @@ export declare abstract class RuleBuilder<T> extends TerminalBuilder {
210
210
  * `.haveNameMatching()`, `.extend()`, etc.
211
211
  */
212
212
  protected addPredicate(predicate: Predicate<T>): this;
213
+ /**
214
+ * Register a DUAL-USE method's condition or predicate, according to phase.
215
+ *
216
+ * Sixteen builder methods across four builders wrote this dispatch out —
217
+ * `no-copy-paste` reported them as two clusters at 100%. The dispatch is the
218
+ * only thing they share; the pair handed to it is what each method IS.
219
+ *
220
+ * Both sides are constructed eagerly rather than passed as thunks. Every one
221
+ * of the sixteen pairs is pure object construction — checked, none of the
222
+ * modules they come from (`conditions/structural`, `conditions/class`,
223
+ * `conditions/dependency`, `predicates/identity`, `predicates/module`)
224
+ * throws — so building the unused half costs an object and changes nothing.
225
+ * Thunks would buy laziness nobody needs at the price of two closures per
226
+ * call, and would hide the pair behind a lambda in every reader's way.
227
+ *
228
+ * A dual-use method is NOT the same as a predicate-only one. `areExported()`
229
+ * written after `.should()` still filters and is reported by the assertion
230
+ * gate as a misplaced predicate; a dual-use method written there asserts.
231
+ * That difference is a property of the method, so it stays at the method.
232
+ */
233
+ protected dualUse(condition: Condition<T>, predicate: Predicate<T>): this;
213
234
  /**
214
235
  * Register a condition. Called by concrete builder methods like
215
236
  * `.notContain()`, `.notExist()`, etc.
@@ -236,7 +257,7 @@ export declare abstract class RuleBuilder<T> extends TerminalBuilder {
236
257
  *
237
258
  * **The name is historical.** It used to clear the conditions, which is what
238
259
  * distinguished it from `copy()`, and that clearing was
239
- * [bug 0156](../../../../work/bugs/0156-should-twice-silently-drops-the-first-assertion.md):
260
+ * [bug 0156](../../../../work/bugs/fixed/0156-should-twice-silently-drops-the-first-assertion.md):
240
261
  * a second `.should()` on a builder that already carried a condition discarded
241
262
  * it, so `.should().notExist().should().beExported()` enforced only the second
242
263
  * and lost four findings with no output. Measured. Removed in 0.23.0 —
@@ -1 +1 @@
1
- {"version":3,"file":"rule-builder.d.ts","sourceRoot":"","sources":["../../src/core/rule-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-builder.d.ts","sourceRoot":"","sources":["../../src/core/rule-builder.ts"],"names":[],"mappings":"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"}