@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,8 +1,8 @@
1
- import { globAnyOf, stampGlobs } from '@nielspeter/eess';
2
- import { TerminalBuilder } from '../core/terminal-builder.js';
1
+ import { stampGlobs } from '@nielspeter/eess/internal';
2
+ import { globAnyOf } from '@nielspeter/eess';
3
3
  import { collectFunctions } from '../models/arch-function.js';
4
- import { selectionMemo } from '@nielspeter/eess';
5
4
  import { functionContain, functionNotContain, functionUseInsteadOf, } from '../conditions/body-analysis-function.js';
5
+ import { GraphqlRuleBuilder } from './graphql-rule-builder.js';
6
6
  /**
7
7
  * Predicate: filter to resolver functions for fields returning types matching the pattern.
8
8
  *
@@ -42,13 +42,10 @@ export function resolveFieldReturning(pattern) {
42
42
  * .check()
43
43
  * ```
44
44
  */
45
- const selectionOf = selectionMemo();
46
- export class ResolverRuleBuilder extends TerminalBuilder {
45
+ export class ResolverRuleBuilder extends GraphqlRuleBuilder {
47
46
  sourceFiles;
48
47
  glob;
49
48
  project;
50
- _predicates = [];
51
- _conditions = [];
52
49
  /**
53
50
  * @param sourceFiles - The resolver files, already filtered by `resolvers()`.
54
51
  * @param glob - The glob they were filtered by, for diagnostics only.
@@ -99,31 +96,6 @@ export class ResolverRuleBuilder extends TerminalBuilder {
99
96
  next._predicates.push(resolveFieldReturning(pattern));
100
97
  return next;
101
98
  }
102
- // --- Chain methods ---
103
- /**
104
- * Begin the predicate phase. Purely a readability marker.
105
- */
106
- that() {
107
- return this;
108
- }
109
- /**
110
- * Add another predicate (AND).
111
- */
112
- and() {
113
- return this;
114
- }
115
- /**
116
- * Begin the condition phase.
117
- */
118
- should() {
119
- return this;
120
- }
121
- /**
122
- * Add another condition (AND).
123
- */
124
- andShould() {
125
- return this;
126
- }
127
99
  // --- Condition methods (reuse body analysis) ---
128
100
  /**
129
101
  * Assert that the resolver body contains at least one match.
@@ -150,67 +122,6 @@ export class ResolverRuleBuilder extends TerminalBuilder {
150
122
  return next;
151
123
  }
152
124
  // --- Evaluation ---
153
- /**
154
- * An independent copy, carrying both lists.
155
- *
156
- * This builder does not extend `RuleBuilder`, so it does not inherit that
157
- * class's override — and neither `that()` nor `should()` forked here at all,
158
- * which made the bug 0016 leak worse on this hierarchy than on the main one:
159
- * a held `schema()` selection accumulated every predicate and condition of
160
- * every rule derived from it. `docs/graphql.md` teaches exactly that shape.
161
- */
162
- copy() {
163
- const clone = super.copy();
164
- clone._predicates = [...this._predicates];
165
- clone._conditions = [...this._conditions];
166
- return clone;
167
- }
168
- /**
169
- * Whether this rule states an assertion at all — the assertion gate's question.
170
- *
171
- * True once a condition has been added.
172
- *
173
- * Overrides the `TerminalBuilder` default (`true`), whose JSDoc carries the
174
- * contract and the reason this is public rather than protected.
175
- */
176
- assertsSomething() {
177
- return this._conditions.length > 0;
178
- }
179
- /**
180
- * The remedy for this builder's assertion-less state, as one string.
181
- *
182
- * One channel, so `diagnose()`'s advice and the finding's own message cannot
183
- * disagree. Overrides `TerminalBuilder`'s generic text with wording specific to
184
- * what this builder is missing.
185
- */
186
- assertionAdvice() {
187
- return ('this rule has no condition, so it asserts nothing and can never fail. Add a ' +
188
- 'condition after .should(), e.g. contain(...), notContain(...) or useInsteadOf(...).');
189
- }
190
- /** Named by id or description, not 'unnamed' (plan 0070 §4). */
191
- describeRule() {
192
- return {
193
- ...super.describeRule(),
194
- rule: this._metadata?.id ?? this.buildRuleDescription(),
195
- };
196
- }
197
- /**
198
- * The set the conditions receive — plan 0096, and the ONE method both readers
199
- * call.
200
- *
201
- * The first attempt at 0096 let `collectViolations()` and the evidence
202
- * accessor derive this separately, and they disagreed inside one commit: this
203
- * builder counted PRE-predicate while its sibling `SchemaRuleBuilder` counted
204
- * post. Measured, a chain whose `.that()` selected nothing reported 14 units
205
- * examined, handed its conditions 0, and passed green with `diagnose()`
206
- * silent — the fail-open cell ADR-009 exists to close, inside the wave that
207
- * closes it. Sharing the method is what makes "the preview derives from the
208
- * same computation the gate uses" structural rather than a claim.
209
- */
210
- selected() {
211
- return selectionOf(this, () => this.getElements().filter((element) => this._predicates.every((predicate) => predicate.test(element))));
212
- }
213
- /** Units this rule examined — plan 0096. The selection, not what precedes it. */
214
125
  /**
215
126
  * This family counts resolvers — the resolver functions it selected.
216
127
  *
@@ -222,34 +133,11 @@ export class ResolverRuleBuilder extends TerminalBuilder {
222
133
  examinedUnitNoun() {
223
134
  return 'resolvers';
224
135
  }
225
- /**
226
- * How many units this rule actually examined — ADR-010's evidence that a pass
227
- * was constructed rather than defaulted.
228
- *
229
- * The resolvers this rule selected.
230
- */
231
- examinedUnits() {
232
- return this.selected().length;
136
+ descriptionSubject() {
137
+ return 'resolvers';
233
138
  }
234
- collectViolations() {
235
- const filtered = this.selected();
236
- if (filtered.length === 0) {
237
- // Plan 0098: the early exit IS the zero-evidence case, stated rather than
238
- // implied by an empty violation list.
239
- return { violations: [], examined: 0 };
240
- }
241
- const context = {
242
- rule: this.buildRuleDescription(),
243
- because: this._reason,
244
- ruleId: this._metadata?.id,
245
- suggestion: this._metadata?.suggestion,
246
- docs: this._metadata?.docs,
247
- };
248
- const violations = [];
249
- for (const condition of this._conditions) {
250
- violations.push(...condition.evaluate(filtered, context));
251
- }
252
- return { violations, examined: filtered.length };
139
+ conditionExamples() {
140
+ return 'contain(...), notContain(...) or useInsteadOf(...)';
253
141
  }
254
142
  getElements() {
255
143
  // Object-literal collection is opt-in for `functions()`, where turning it on
@@ -262,15 +150,5 @@ export class ResolverRuleBuilder extends TerminalBuilder {
262
150
  // against it then passes on the wrong subjects (ADR-008).
263
151
  return this.sourceFiles.flatMap((sf) => collectFunctions(sf, { includeObjectLiteralFunctions: true }));
264
152
  }
265
- buildRuleDescription() {
266
- const predicateDesc = this._predicates.map((p) => p.description).join(' and ');
267
- const conditionDesc = this._conditions.map((c) => c.description).join(' and ');
268
- const parts = ['resolvers'];
269
- if (predicateDesc)
270
- parts.push(`that ${predicateDesc}`);
271
- if (conditionDesc)
272
- parts.push(`should ${conditionDesc}`);
273
- return parts.join(' ');
274
- }
275
153
  }
276
154
  //# sourceMappingURL=resolver-rule-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-rule-builder.js","sourceRoot":"","sources":["../../src/graphql/resolver-rule-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver-rule-builder.js","sourceRoot":"","sources":["../../src/graphql/resolver-rule-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/graphql/schema-loader.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KACrB,CAAC,CAAA;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,IAAI,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAAA;IACxD,eAAe,IAAI,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAAA;IAC3D,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAA;CAChC;AAED;;GAEG;AACH,UAAU,cAAc;IACtB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAA;CAChD;AA8ED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAwB9E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAGhF;AAgDD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAa5C;AAED;;;;;;;GAOG;AAEH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,cAAc,GAAG,IAAI,CAE3E;AAED;;;GAGG;AAEH,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD"}
1
+ {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/graphql/schema-loader.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KACrB,CAAC,CAAA;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,IAAI,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAAA;IACxD,eAAe,IAAI,qBAAqB,GAAG,SAAS,GAAG,IAAI,CAAA;IAC3D,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAA;CAChC;AAED;;GAEG;AACH,UAAU,cAAc;IACtB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAA;CAChD;AAgFD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAyB9E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAGhF;AAgDD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAa5C;AAED;;;;;;;GAOG;AAEH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,cAAc,GAAG,IAAI,CAE3E;AAED;;;GAGG;AAEH,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD"}
@@ -1,3 +1,4 @@
1
+ import { ArchConfigError } from '@nielspeter/eess';
1
2
  import { createRequire } from 'node:module';
2
3
  import fs from 'node:fs';
3
4
  import path from 'node:path';
@@ -60,10 +61,10 @@ function requireGraphQL() {
60
61
  cause.code === 'MODULE_NOT_FOUND' &&
61
62
  /Cannot find module 'graphql'/.test(cause.message);
62
63
  if (notInstalled) {
63
- throw new Error('[eess-ts/graphql] The "graphql" package is required but not installed.\n' +
64
+ throw new ArchConfigError('requireGraphQL', '[eess-ts/graphql] The "graphql" package is required but not installed.\n' +
64
65
  'Install it with: npm install graphql', { cause });
65
66
  }
66
- throw new Error(`[eess-ts/graphql] The "graphql" package is installed but could not be loaded: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
67
+ throw new ArchConfigError('requireGraphQL', `[eess-ts/graphql] The "graphql" package is installed but could not be loaded: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
67
68
  }
68
69
  }
69
70
  /**
@@ -80,7 +81,7 @@ export function loadSchemaFromGlob(rootDir, glob) {
80
81
  // Find all .graphql files matching the glob
81
82
  const graphqlFiles = findGraphqlFiles(resolvedRoot, matcher);
82
83
  if (graphqlFiles.length === 0) {
83
- throw new Error(`[eess-ts/graphql] No .graphql files found matching "${glob}" in ${resolvedRoot}`);
84
+ throw new ArchConfigError('loadSchemaFromGlob', `[eess-ts/graphql] No .graphql files found matching "${glob}" in ${resolvedRoot}`);
84
85
  }
85
86
  // Read all files and collect SDL
86
87
  const documents = [];
@@ -1 +1 @@
1
- {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/graphql/schema-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/graphql/schema-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-predicates.d.ts","sourceRoot":"","sources":["../../src/graphql/schema-predicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAEjF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAA;IAC1C,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,CAOlD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAAC,aAAa,CAAC,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAkBhF"}
1
+ {"version":3,"file":"schema-predicates.d.ts","sourceRoot":"","sources":["../../src/graphql/schema-predicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAEjF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAA;IAC1C,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAkBD;;GAEG;AACH,wBAAgB,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAAC,aAAa,CAAC,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAkBhF"}
@@ -1,24 +1,29 @@
1
1
  /**
2
- * Filter to only Query root type fields.
2
+ * Filter to the FIELDS of one root type.
3
+ *
4
+ * `element.field !== undefined` is what makes this a field predicate rather
5
+ * than a type one: `getElements()` emits a type-level element per SDL type AND
6
+ * a field-level element per field, so without it `queries()` would also select
7
+ * the `Query` type itself — one extra subject that no field condition can say
8
+ * anything true about.
3
9
  */
4
- export function queries() {
10
+ function rootTypeFields(typeName, description) {
5
11
  return {
6
- description: 'are queries',
7
- test(element) {
8
- return element.typeName === 'Query' && element.field !== undefined;
9
- },
12
+ description,
13
+ test: (element) => element.typeName === typeName && element.field !== undefined,
10
14
  };
11
15
  }
16
+ /**
17
+ * Filter to only Query root type fields.
18
+ */
19
+ export function queries() {
20
+ return rootTypeFields('Query', 'are queries');
21
+ }
12
22
  /**
13
23
  * Filter to only Mutation root type fields.
14
24
  */
15
25
  export function mutations() {
16
- return {
17
- description: 'are mutations',
18
- test(element) {
19
- return element.typeName === 'Mutation' && element.field !== undefined;
20
- },
21
- };
26
+ return rootTypeFields('Mutation', 'are mutations');
22
27
  }
23
28
  /**
24
29
  * Filter to object types whose name matches the given pattern.
@@ -1 +1 @@
1
- {"version":3,"file":"schema-predicates.js","sourceRoot":"","sources":["../../src/graphql/schema-predicates.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO;QACL,WAAW,EAAE,aAAa;QAC1B,IAAI,CAAC,OAAsB;YACzB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAA;QACpE,CAAC;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,IAAI,CAAC,OAAsB;YACzB,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAA;QACvE,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAwB;IACjD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,WAAW,EAAE,eAAe,IAAI,EAAE;YAClC,IAAI,CAAC,OAAsB;gBACzB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;YACpE,CAAC;SACF,CAAA;IACH,CAAC;IACD,OAAO;QACL,WAAW,EAAE,eAAe,IAAI,EAAE;QAClC,IAAI,CAAC,OAAsB;YACzB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAyB;IACpD,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9E,OAAO;QACL,WAAW,EAAE,kBAAkB,IAAI,EAAE;QACrC,IAAI,CAAC,OAAsB;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAA;YAChC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC7C,2DAA2D;YAC3D,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACjD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAA;YAC5B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAC9B,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,SAAS,KAAK,QAAQ,CAAA;YAC/B,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACjC,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"schema-predicates.js","sourceRoot":"","sources":["../../src/graphql/schema-predicates.ts"],"names":[],"mappings":"AAqBA;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,WAAmB;IAC3D,OAAO;QACL,WAAW;QACX,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;KAChF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,cAAc,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAwB;IACjD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,WAAW,EAAE,eAAe,IAAI,EAAE;YAClC,IAAI,CAAC,OAAsB;gBACzB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;YACpE,CAAC;SACF,CAAA;IACH,CAAC;IACD,OAAO;QACL,WAAW,EAAE,eAAe,IAAI,EAAE;QAClC,IAAI,CAAC,OAAsB;YACzB,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAyB;IACpD,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9E,OAAO;QACL,WAAW,EAAE,kBAAkB,IAAI,EAAE;QACrC,IAAI,CAAC,OAAsB;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAA;YAChC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC7C,2DAA2D;YAC3D,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACjD,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAA;YAC5B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAC9B,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,SAAS,KAAK,QAAQ,CAAA;YAC/B,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACjC,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,11 +1,23 @@
1
- import type { RuleDescription } from '@nielspeter/eess';
2
- import type { CollectResult } from '../core/terminal-builder.js';
3
- import { TerminalBuilder } from '../core/terminal-builder.js';
4
1
  import type { LoadedSchema } from './schema-loader.js';
5
- export declare class SchemaRuleBuilder extends TerminalBuilder {
2
+ import type { SchemaElement } from './schema-predicates.js';
3
+ import { GraphqlRuleBuilder } from './graphql-rule-builder.js';
4
+ /**
5
+ * Fluent rule builder for GraphQL schema architecture rules.
6
+ *
7
+ * Operates on SchemaElements extracted from .graphql files.
8
+ * Follows the same builder pattern as SliceRuleBuilder (standalone, not extending RuleBuilder).
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * schema(p, 'src/schema/*.graphql')
13
+ * .typesNamed(/Collection$/)
14
+ * .should()
15
+ * .haveFields('total', 'skip', 'limit', 'items')
16
+ * .check()
17
+ * ```
18
+ */
19
+ export declare class SchemaRuleBuilder extends GraphqlRuleBuilder<SchemaElement> {
6
20
  private readonly loaded;
7
- private _predicates;
8
- private _conditions;
9
21
  constructor(loaded: LoadedSchema);
10
22
  /**
11
23
  * Filter to only Query root type fields.
@@ -23,22 +35,6 @@ export declare class SchemaRuleBuilder extends TerminalBuilder {
23
35
  * Filter to fields returning a list of the given type.
24
36
  */
25
37
  returnListOf(typeName: string | RegExp): this;
26
- /**
27
- * Begin the predicate phase. Purely a readability marker.
28
- */
29
- that(): this;
30
- /**
31
- * Add another predicate (AND).
32
- */
33
- and(): this;
34
- /**
35
- * Begin the condition phase.
36
- */
37
- should(): this;
38
- /**
39
- * Add another condition (AND).
40
- */
41
- andShould(): this;
42
38
  /**
43
39
  * Assert that types have all listed fields.
44
40
  */
@@ -53,41 +49,6 @@ export declare class SchemaRuleBuilder extends TerminalBuilder {
53
49
  * @param resolverFileTexts - Map of file paths to source text
54
50
  */
55
51
  haveMatchingResolver(resolverFileTexts: ReadonlyMap<string, string>): this;
56
- /**
57
- * An independent copy, carrying both lists.
58
- *
59
- * This builder does not extend `RuleBuilder`, so it does not inherit that
60
- * class's override — and neither `that()` nor `should()` forked here at all,
61
- * which made the bug 0016 leak worse on this hierarchy than on the main one:
62
- * a held `schema()` selection accumulated every predicate and condition of
63
- * every rule derived from it. `docs/graphql.md` teaches exactly that shape.
64
- */
65
- protected copy(): this;
66
- /**
67
- * Whether this rule states an assertion at all — the assertion gate's question.
68
- *
69
- * True once a condition has been added.
70
- *
71
- * Overrides the `TerminalBuilder` default (`true`), whose JSDoc carries the
72
- * contract and the reason this is public rather than protected.
73
- */
74
- assertsSomething(): boolean;
75
- /**
76
- * The remedy for this builder's assertion-less state, as one string.
77
- *
78
- * One channel, so `diagnose()`'s advice and the finding's own message cannot
79
- * disagree. Overrides `TerminalBuilder`'s generic text with wording specific to
80
- * what this builder is missing.
81
- */
82
- assertionAdvice(): string;
83
- /** Named by id or description, not 'unnamed' (plan 0070 §4). */
84
- describeRule(): RuleDescription;
85
- /**
86
- * The set the conditions receive — plan 0096, and the ONE method both readers
87
- * call. See `ResolverRuleBuilder.selected()` for why sharing it is the point.
88
- */
89
- private selected;
90
- /** Units this rule examined — plan 0096. */
91
52
  /**
92
53
  * This family counts schema types — the SDL types it selected.
93
54
  *
@@ -97,15 +58,8 @@ export declare class SchemaRuleBuilder extends TerminalBuilder {
97
58
  * was and was not looked at.
98
59
  */
99
60
  protected examinedUnitNoun(): string;
100
- /**
101
- * How many units this rule actually examined — ADR-010's evidence that a pass
102
- * was constructed rather than defaulted.
103
- *
104
- * The schema types this rule selected.
105
- */
106
- examinedUnits(): number;
107
- protected collectViolations(): CollectResult;
108
- private getElements;
109
- private buildRuleDescription;
61
+ protected descriptionSubject(): string;
62
+ protected conditionExamples(): string;
63
+ protected getElements(): SchemaElement[];
110
64
  }
111
65
  //# sourceMappingURL=schema-rule-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-rule-builder.d.ts","sourceRoot":"","sources":["../../src/graphql/schema-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,KAAK,EAAE,YAAY,EAA0C,MAAM,oBAAoB,CAAA;AA6C9F,qBAAa,iBAAkB,SAAQ,eAAe;IAIxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAiC;gBAEvB,MAAM,EAAE,YAAY;IAMjD;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,SAAS,IAAI,IAAI;IAMjB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ7C;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,GAAG,IAAI,IAAI;IAIX;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,SAAS,IAAI,IAAI;IAMjB;;OAEG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMpC;;OAEG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMpC;;;;OAIG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ1E;;;;;;;;OAQG;cACgB,IAAI,IAAI,IAAI;IAO/B;;;;;;;OAOG;IACM,gBAAgB,IAAI,OAAO;IAIpC;;;;;;OAMG;IACM,eAAe,IAAI,MAAM;IAOlC,gEAAgE;IACvD,YAAY,IAAI,eAAe;IAOxC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAQhB,4CAA4C;IAE5C;;;;;;;OAOG;cACgB,gBAAgB,IAAI,MAAM;IAI7C;;;;;OAKG;IACH,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,iBAAiB,IAAI,aAAa;IAwB5C,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,oBAAoB;CAQ7B"}
1
+ {"version":3,"file":"schema-rule-builder.d.ts","sourceRoot":"","sources":["../../src/graphql/schema-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA0C,MAAM,oBAAoB,CAAA;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAY3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAe9D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,aAAa,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAMjD;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf;;OAEG;IACH,SAAS,IAAI,IAAI;IAMjB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ7C;;OAEG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMpC;;OAEG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMpC;;;;OAIG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ1E;;;;;;;OAOG;cACgB,gBAAgB,IAAI,MAAM;cAI1B,kBAAkB,IAAI,MAAM;cAI5B,iBAAiB,IAAI,MAAM;cAI3B,WAAW,IAAI,aAAa,EAAE;CAoClD"}
@@ -1,7 +1,6 @@
1
- import { TerminalBuilder } from '../core/terminal-builder.js';
2
- import { selectionMemo } from '@nielspeter/eess';
3
1
  import { queries as queriesPredicate, mutations as mutationsPredicate, typesNamed as typesNamedPredicate, returnListOf as returnListOfPredicate, } from './schema-predicates.js';
4
2
  import { haveFields as haveFieldsCondition, acceptArgs as acceptArgsCondition, haveMatchingResolver as haveMatchingResolverCondition, } from './schema-conditions.js';
3
+ import { GraphqlRuleBuilder } from './graphql-rule-builder.js';
5
4
  /**
6
5
  * Structural type guard: check if a GraphQL type has `getFields()`.
7
6
  * Only GraphQLObjectType, GraphQLInterfaceType, and GraphQLInputObjectType have getFields.
@@ -31,11 +30,8 @@ function isObjectType(type) {
31
30
  * .check()
32
31
  * ```
33
32
  */
34
- const selectionOf = selectionMemo();
35
- export class SchemaRuleBuilder extends TerminalBuilder {
33
+ export class SchemaRuleBuilder extends GraphqlRuleBuilder {
36
34
  loaded;
37
- _predicates = [];
38
- _conditions = [];
39
35
  constructor(loaded) {
40
36
  super();
41
37
  this.loaded = loaded;
@@ -73,31 +69,6 @@ export class SchemaRuleBuilder extends TerminalBuilder {
73
69
  next._predicates.push(returnListOfPredicate(typeName));
74
70
  return next;
75
71
  }
76
- // --- Chain methods ---
77
- /**
78
- * Begin the predicate phase. Purely a readability marker.
79
- */
80
- that() {
81
- return this;
82
- }
83
- /**
84
- * Add another predicate (AND).
85
- */
86
- and() {
87
- return this;
88
- }
89
- /**
90
- * Begin the condition phase.
91
- */
92
- should() {
93
- return this;
94
- }
95
- /**
96
- * Add another condition (AND).
97
- */
98
- andShould() {
99
- return this;
100
- }
101
72
  // --- Condition methods ---
102
73
  /**
103
74
  * Assert that types have all listed fields.
@@ -126,58 +97,6 @@ export class SchemaRuleBuilder extends TerminalBuilder {
126
97
  return next;
127
98
  }
128
99
  // --- Evaluation ---
129
- /**
130
- * An independent copy, carrying both lists.
131
- *
132
- * This builder does not extend `RuleBuilder`, so it does not inherit that
133
- * class's override — and neither `that()` nor `should()` forked here at all,
134
- * which made the bug 0016 leak worse on this hierarchy than on the main one:
135
- * a held `schema()` selection accumulated every predicate and condition of
136
- * every rule derived from it. `docs/graphql.md` teaches exactly that shape.
137
- */
138
- copy() {
139
- const clone = super.copy();
140
- clone._predicates = [...this._predicates];
141
- clone._conditions = [...this._conditions];
142
- return clone;
143
- }
144
- /**
145
- * Whether this rule states an assertion at all — the assertion gate's question.
146
- *
147
- * True once a condition has been added.
148
- *
149
- * Overrides the `TerminalBuilder` default (`true`), whose JSDoc carries the
150
- * contract and the reason this is public rather than protected.
151
- */
152
- assertsSomething() {
153
- return this._conditions.length > 0;
154
- }
155
- /**
156
- * The remedy for this builder's assertion-less state, as one string.
157
- *
158
- * One channel, so `diagnose()`'s advice and the finding's own message cannot
159
- * disagree. Overrides `TerminalBuilder`'s generic text with wording specific to
160
- * what this builder is missing.
161
- */
162
- assertionAdvice() {
163
- return ('this rule has no condition, so it asserts nothing and can never fail. Add a ' +
164
- 'condition after .should(), e.g. haveFields(...) or acceptArgs(...).');
165
- }
166
- /** Named by id or description, not 'unnamed' (plan 0070 §4). */
167
- describeRule() {
168
- return {
169
- ...super.describeRule(),
170
- rule: this._metadata?.id ?? this.buildRuleDescription(),
171
- };
172
- }
173
- /**
174
- * The set the conditions receive — plan 0096, and the ONE method both readers
175
- * call. See `ResolverRuleBuilder.selected()` for why sharing it is the point.
176
- */
177
- selected() {
178
- return selectionOf(this, () => this.getElements().filter((element) => this._predicates.every((predicate) => predicate.test(element))));
179
- }
180
- /** Units this rule examined — plan 0096. */
181
100
  /**
182
101
  * This family counts schema types — the SDL types it selected.
183
102
  *
@@ -189,34 +108,11 @@ export class SchemaRuleBuilder extends TerminalBuilder {
189
108
  examinedUnitNoun() {
190
109
  return 'schema types';
191
110
  }
192
- /**
193
- * How many units this rule actually examined — ADR-010's evidence that a pass
194
- * was constructed rather than defaulted.
195
- *
196
- * The schema types this rule selected.
197
- */
198
- examinedUnits() {
199
- return this.selected().length;
111
+ descriptionSubject() {
112
+ return 'schema';
200
113
  }
201
- collectViolations() {
202
- const filtered = this.selected();
203
- if (filtered.length === 0) {
204
- // Plan 0098: the early exit IS the zero-evidence case, stated rather than
205
- // implied by an empty violation list.
206
- return { violations: [], examined: 0 };
207
- }
208
- const context = {
209
- rule: this.buildRuleDescription(),
210
- because: this._reason,
211
- ruleId: this._metadata?.id,
212
- suggestion: this._metadata?.suggestion,
213
- docs: this._metadata?.docs,
214
- };
215
- const violations = [];
216
- for (const condition of this._conditions) {
217
- violations.push(...condition.evaluate(filtered, context));
218
- }
219
- return { violations, examined: filtered.length };
114
+ conditionExamples() {
115
+ return 'haveFields(...) or acceptArgs(...)';
220
116
  }
221
117
  getElements() {
222
118
  const elements = [];
@@ -250,15 +146,5 @@ export class SchemaRuleBuilder extends TerminalBuilder {
250
146
  }
251
147
  return elements;
252
148
  }
253
- buildRuleDescription() {
254
- const predicateDesc = this._predicates.map((p) => p.description).join(' and ');
255
- const conditionDesc = this._conditions.map((c) => c.description).join(' and ');
256
- const parts = ['schema'];
257
- if (predicateDesc)
258
- parts.push(`that ${predicateDesc}`);
259
- if (conditionDesc)
260
- parts.push(`should ${conditionDesc}`);
261
- return parts.join(' ');
262
- }
263
149
  }
264
150
  //# sourceMappingURL=schema-rule-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-rule-builder.js","sourceRoot":"","sources":["../../src/graphql/schema-rule-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EACL,OAAO,IAAI,gBAAgB,EAC3B,SAAS,IAAI,kBAAkB,EAC/B,UAAU,IAAI,mBAAmB,EACjC,YAAY,IAAI,qBAAqB,GACtC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,UAAU,IAAI,mBAAmB,EACjC,UAAU,IAAI,mBAAmB,EACjC,oBAAoB,IAAI,6BAA6B,GACtD,MAAM,wBAAwB,CAAA;AAE/B;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAqB;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3D,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,8EAA8E;IAC9E,MAAM,SAAS,GAA4B,IAAI,CAAA;IAC/C,OAAO,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU,CAAA;AAClD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,GAAG,aAAa,EAAiB,CAAA;AAElD,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IAIvB;IAHrB,WAAW,GAA+B,EAAE,CAAA;IAC5C,WAAW,GAA+B,EAAE,CAAA;IAEpD,YAA6B,MAAoB;QAC/C,KAAK,EAAE,CAAA;QADoB,WAAM,GAAN,MAAM,CAAc;IAEjD,CAAC;IAED,4BAA4B;IAE5B;;OAEG;IACH,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAwB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAA;QACnD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAyB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wBAAwB;IAExB;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4BAA4B;IAE5B;;OAEG;IACH,UAAU,CAAC,GAAG,KAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACpD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,GAAG,KAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACpD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,iBAA8C;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACvE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qBAAqB;IAErB;;;;;;;;OAQG;IACgB,IAAI;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC1B,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;QACzC,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;OAOG;IACM,gBAAgB;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;OAMG;IACM,eAAe;QACtB,OAAO,CACL,8EAA8E;YAC9E,qEAAqE,CACtE,CAAA;IACH,CAAC;IAED,gEAAgE;IACvD,YAAY;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,YAAY,EAAE;YACvB,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;SACxD,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,QAAQ;QACd,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5B,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAC/D,CACF,CAAA;IACH,CAAC;IAED,4CAA4C;IAE5C;;;;;;;OAOG;IACgB,gBAAgB;QACjC,OAAO,cAAc,CAAA;IACvB,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;IAC/B,CAAC;IAES,iBAAiB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,0EAA0E;YAC1E,sCAAsC;YACtC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;QACxC,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;YAC1B,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI;SAC3B,CAAA;QAED,MAAM,UAAU,GAAoB,EAAE,CAAA;QACtC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IAClD,CAAC;IAEO,WAAW;QACjB,MAAM,QAAQ,GAAoB,EAAE,CAAA;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAA;QAEpD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,2CAA2C;YAC3C,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAEvC,0EAA0E;YAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBAAE,SAAQ;YAEpC,MAAM,UAAU,GAAG,OAAO,CAAA;YAE1B,yBAAyB;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ;gBACR,UAAU;gBACV,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAA;YAEF,2BAA2B;YAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAA;YACrC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ;oBACR,SAAS;oBACT,UAAU;oBACV,KAAK;oBACL,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,oBAAoB;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,aAAa;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,EAAE,CAAC,CAAA;QACtD,IAAI,aAAa;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,EAAE,CAAC,CAAA;QACxD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"schema-rule-builder.js","sourceRoot":"","sources":["../../src/graphql/schema-rule-builder.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,15 @@ import type { ArchViolation } from '@nielspeter/eess';
6
6
  * `.violations()` terminal (severity-stamped), and write them to a baseline
7
7
  * file.
8
8
  *
9
+ * **This bypasses the evidence gate, deliberately and knowingly.** ADR-014
10
+ * requires every emitter to refuse a verdict it has no evidence for, and
11
+ * `eess-ts check` / `--fix` / `baseline` / `checkAll()` all do. This helper does
12
+ * not: it is typed to accept a bare array and documented as not throwing, so
13
+ * `collectViolations(...) + generateBaseline(...)` still mints a baseline from
14
+ * builders that certified nothing. **Prefer `eess-ts baseline`**, which gates
15
+ * per rule file and refuses. Closing this is a public-API decision — see
16
+ * proposal 011 ask C — not a wiring one.
17
+ *
9
18
  * @example
10
19
  * const violations = collectViolations(
11
20
  * classes(p).that().extend('Base').should().notContain(call('parseInt')),