@nielspeter/eess-ts 0.4.0 → 0.5.1

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 (267) 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.d.ts.map +1 -1
  33. package/dist/cli/commands/doctor.js +97 -6
  34. package/dist/cli/commands/doctor.js.map +1 -1
  35. package/dist/cli/commands/explain.d.ts.map +1 -1
  36. package/dist/cli/commands/explain.js +21 -2
  37. package/dist/cli/commands/explain.js.map +1 -1
  38. package/dist/cli/commands/init.js +1 -1
  39. package/dist/cli/commands/init.js.map +1 -1
  40. package/dist/cli/import-rule-module.d.ts +23 -4
  41. package/dist/cli/import-rule-module.d.ts.map +1 -1
  42. package/dist/cli/import-rule-module.js +30 -18
  43. package/dist/cli/import-rule-module.js.map +1 -1
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli/index.js +4 -11
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/cli/load-rules.d.ts.map +1 -1
  48. package/dist/cli/load-rules.js +5 -4
  49. package/dist/cli/load-rules.js.map +1 -1
  50. package/dist/cli/resolve-config.d.ts +0 -8
  51. package/dist/cli/resolve-config.d.ts.map +1 -1
  52. package/dist/cli/resolve-config.js +18 -48
  53. package/dist/cli/resolve-config.js.map +1 -1
  54. package/dist/cli/rule-file-findings.d.ts.map +1 -1
  55. package/dist/cli/rule-file-findings.js +60 -2
  56. package/dist/cli/rule-file-findings.js.map +1 -1
  57. package/dist/cli/watch.d.ts +13 -43
  58. package/dist/cli/watch.d.ts.map +1 -1
  59. package/dist/cli/watch.js +8 -148
  60. package/dist/cli/watch.js.map +1 -1
  61. package/dist/conditions/call.d.ts.map +1 -1
  62. package/dist/conditions/call.js +4 -3
  63. package/dist/conditions/call.js.map +1 -1
  64. package/dist/conditions/cross-layer.js +2 -2
  65. package/dist/conditions/cross-layer.js.map +1 -1
  66. package/dist/conditions/dependency.js +2 -2
  67. package/dist/conditions/dependency.js.map +1 -1
  68. package/dist/conditions/exports.d.ts.map +1 -1
  69. package/dist/conditions/exports.js +31 -37
  70. package/dist/conditions/exports.js.map +1 -1
  71. package/dist/conditions/function.js +1 -1
  72. package/dist/conditions/function.js.map +1 -1
  73. package/dist/conditions/jsx.js +1 -1
  74. package/dist/conditions/jsx.js.map +1 -1
  75. package/dist/conditions/members.d.ts.map +1 -1
  76. package/dist/conditions/members.js +3 -2
  77. package/dist/conditions/members.js.map +1 -1
  78. package/dist/conditions/reverse-dependency.d.ts.map +1 -1
  79. package/dist/conditions/reverse-dependency.js +47 -2
  80. package/dist/conditions/reverse-dependency.js.map +1 -1
  81. package/dist/conditions/slice.js +1 -1
  82. package/dist/conditions/slice.js.map +1 -1
  83. package/dist/conditions/structural.js +1 -1
  84. package/dist/conditions/structural.js.map +1 -1
  85. package/dist/core/check-all.d.ts.map +1 -1
  86. package/dist/core/check-all.js +61 -7
  87. package/dist/core/check-all.js.map +1 -1
  88. package/dist/core/combinators.d.ts.map +1 -1
  89. package/dist/core/combinators.js +20 -27
  90. package/dist/core/combinators.js.map +1 -1
  91. package/dist/core/descendant-cache.d.ts.map +1 -1
  92. package/dist/core/descendant-cache.js +5 -7
  93. package/dist/core/descendant-cache.js.map +1 -1
  94. package/dist/core/diagnose.js +15 -7
  95. package/dist/core/diagnose.js.map +1 -1
  96. package/dist/core/disk-set.js +1 -1
  97. package/dist/core/disk-set.js.map +1 -1
  98. package/dist/core/element-cache.js +1 -1
  99. package/dist/core/element-cache.js.map +1 -1
  100. package/dist/core/exclusion-comments.d.ts +15 -50
  101. package/dist/core/exclusion-comments.d.ts.map +1 -1
  102. package/dist/core/exclusion-comments.js +4 -307
  103. package/dist/core/exclusion-comments.js.map +1 -1
  104. package/dist/core/execute-rule.d.ts +8 -0
  105. package/dist/core/execute-rule.d.ts.map +1 -1
  106. package/dist/core/execute-rule.js +99 -13
  107. package/dist/core/execute-rule.js.map +1 -1
  108. package/dist/core/glob-evaluator.js +2 -2
  109. package/dist/core/glob-evaluator.js.map +1 -1
  110. package/dist/core/invalidate-on-modify.d.ts +20 -0
  111. package/dist/core/invalidate-on-modify.d.ts.map +1 -0
  112. package/dist/core/invalidate-on-modify.js +26 -0
  113. package/dist/core/invalidate-on-modify.js.map +1 -0
  114. package/dist/core/line-index.d.ts.map +1 -1
  115. package/dist/core/line-index.js +6 -8
  116. package/dist/core/line-index.js.map +1 -1
  117. package/dist/core/metric-violation.d.ts +1 -1
  118. package/dist/core/module-edges.d.ts.map +1 -1
  119. package/dist/core/module-edges.js +26 -25
  120. package/dist/core/module-edges.js.map +1 -1
  121. package/dist/core/orphan-exclusions.d.ts.map +1 -1
  122. package/dist/core/orphan-exclusions.js +15 -5
  123. package/dist/core/orphan-exclusions.js.map +1 -1
  124. package/dist/core/path-universe.d.ts +10 -42
  125. package/dist/core/path-universe.d.ts.map +1 -1
  126. package/dist/core/path-universe.js +0 -20
  127. package/dist/core/path-universe.js.map +1 -1
  128. package/dist/core/project.d.ts.map +1 -1
  129. package/dist/core/project.js +6 -5
  130. package/dist/core/project.js.map +1 -1
  131. package/dist/core/rule-builder.d.ts +22 -1
  132. package/dist/core/rule-builder.d.ts.map +1 -1
  133. package/dist/core/rule-builder.js +38 -20
  134. package/dist/core/rule-builder.js.map +1 -1
  135. package/dist/core/rule-declaration.d.ts.map +1 -1
  136. package/dist/core/rule-declaration.js +14 -52
  137. package/dist/core/rule-declaration.js.map +1 -1
  138. package/dist/core/terminal-builder.d.ts +17 -13
  139. package/dist/core/terminal-builder.d.ts.map +1 -1
  140. package/dist/core/terminal-builder.js +41 -21
  141. package/dist/core/terminal-builder.js.map +1 -1
  142. package/dist/core/terminal-execution.d.ts +22 -6
  143. package/dist/core/terminal-execution.d.ts.map +1 -1
  144. package/dist/core/terminal-execution.js +39 -7
  145. package/dist/core/terminal-execution.js.map +1 -1
  146. package/dist/core/ts-comment-mask.d.ts +2 -0
  147. package/dist/core/ts-comment-mask.d.ts.map +1 -0
  148. package/dist/core/ts-comment-mask.js +102 -0
  149. package/dist/core/ts-comment-mask.js.map +1 -0
  150. package/dist/core/vacuity-diagnosis.js +1 -1
  151. package/dist/core/vacuity-diagnosis.js.map +1 -1
  152. package/dist/graphql/graphql-rule-builder.d.ts +95 -0
  153. package/dist/graphql/graphql-rule-builder.d.ts.map +1 -0
  154. package/dist/graphql/graphql-rule-builder.js +127 -0
  155. package/dist/graphql/graphql-rule-builder.js.map +1 -0
  156. package/dist/graphql/index.d.ts +1 -0
  157. package/dist/graphql/index.d.ts.map +1 -1
  158. package/dist/graphql/index.js +1 -0
  159. package/dist/graphql/index.js.map +1 -1
  160. package/dist/graphql/resolver-rule-builder.d.ts +22 -76
  161. package/dist/graphql/resolver-rule-builder.d.ts.map +1 -1
  162. package/dist/graphql/resolver-rule-builder.js +8 -130
  163. package/dist/graphql/resolver-rule-builder.js.map +1 -1
  164. package/dist/graphql/schema-loader.d.ts.map +1 -1
  165. package/dist/graphql/schema-loader.js +4 -3
  166. package/dist/graphql/schema-loader.js.map +1 -1
  167. package/dist/graphql/schema-predicates.d.ts.map +1 -1
  168. package/dist/graphql/schema-predicates.js +17 -12
  169. package/dist/graphql/schema-predicates.js.map +1 -1
  170. package/dist/graphql/schema-rule-builder.d.ts +21 -67
  171. package/dist/graphql/schema-rule-builder.d.ts.map +1 -1
  172. package/dist/graphql/schema-rule-builder.js +6 -120
  173. package/dist/graphql/schema-rule-builder.js.map +1 -1
  174. package/dist/helpers/baseline-generator.d.ts +9 -0
  175. package/dist/helpers/baseline-generator.d.ts.map +1 -1
  176. package/dist/helpers/baseline-generator.js +9 -0
  177. package/dist/helpers/baseline-generator.js.map +1 -1
  178. package/dist/helpers/baseline.d.ts.map +1 -1
  179. package/dist/helpers/baseline.js +4 -4
  180. package/dist/helpers/baseline.js.map +1 -1
  181. package/dist/helpers/body-traversal.d.ts.map +1 -1
  182. package/dist/helpers/body-traversal.js +13 -0
  183. package/dist/helpers/body-traversal.js.map +1 -1
  184. package/dist/helpers/callback-extractor.js +6 -38
  185. package/dist/helpers/callback-extractor.js.map +1 -1
  186. package/dist/helpers/complexity.d.ts +1 -1
  187. package/dist/helpers/complexity.js +1 -1
  188. package/dist/helpers/diff-aware.d.ts +11 -39
  189. package/dist/helpers/diff-aware.d.ts.map +1 -1
  190. package/dist/helpers/diff-aware.js +11 -79
  191. package/dist/helpers/diff-aware.js.map +1 -1
  192. package/dist/helpers/matchers.d.ts.map +1 -1
  193. package/dist/helpers/matchers.js +51 -67
  194. package/dist/helpers/matchers.js.map +1 -1
  195. package/dist/index.d.ts +15 -18
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +37 -18
  198. package/dist/index.js.map +1 -1
  199. package/dist/models/arch-function.d.ts +26 -2
  200. package/dist/models/arch-function.d.ts.map +1 -1
  201. package/dist/models/arch-function.js +51 -17
  202. package/dist/models/arch-function.js.map +1 -1
  203. package/dist/models/arch-jsx-element.d.ts.map +1 -1
  204. package/dist/models/arch-jsx-element.js +16 -17
  205. package/dist/models/arch-jsx-element.js.map +1 -1
  206. package/dist/predicates/jsx.d.ts.map +1 -1
  207. package/dist/predicates/jsx.js +2 -1
  208. package/dist/predicates/jsx.js.map +1 -1
  209. package/dist/presets/agent-guardrails.d.ts +29 -3
  210. package/dist/presets/agent-guardrails.d.ts.map +1 -1
  211. package/dist/presets/agent-guardrails.js +185 -1
  212. package/dist/presets/agent-guardrails.js.map +1 -1
  213. package/dist/presets/boundaries.d.ts +2 -2
  214. package/dist/presets/boundaries.d.ts.map +1 -1
  215. package/dist/presets/data-layer.d.ts +2 -2
  216. package/dist/presets/data-layer.d.ts.map +1 -1
  217. package/dist/presets/index.d.ts +4 -1
  218. package/dist/presets/index.d.ts.map +1 -1
  219. package/dist/presets/index.js +11 -1
  220. package/dist/presets/index.js.map +1 -1
  221. package/dist/presets/layered.d.ts +2 -2
  222. package/dist/presets/layered.d.ts.map +1 -1
  223. package/dist/presets/recommended.d.ts +3 -3
  224. package/dist/presets/recommended.d.ts.map +1 -1
  225. package/dist/presets/shared.d.ts +8 -11
  226. package/dist/presets/shared.d.ts.map +1 -1
  227. package/dist/presets/shared.js +57 -28
  228. package/dist/presets/shared.js.map +1 -1
  229. package/dist/rules/metrics-function.d.ts.map +1 -1
  230. package/dist/rules/metrics-function.js +59 -62
  231. package/dist/rules/metrics-function.js.map +1 -1
  232. package/dist/rules/metrics.d.ts.map +1 -1
  233. package/dist/rules/metrics.js +62 -59
  234. package/dist/rules/metrics.js.map +1 -1
  235. package/dist/smells/clusters.d.ts +78 -0
  236. package/dist/smells/clusters.d.ts.map +1 -0
  237. package/dist/smells/clusters.js +124 -0
  238. package/dist/smells/clusters.js.map +1 -0
  239. package/dist/smells/duplicate-bodies.d.ts +38 -4
  240. package/dist/smells/duplicate-bodies.d.ts.map +1 -1
  241. package/dist/smells/duplicate-bodies.js +93 -44
  242. package/dist/smells/duplicate-bodies.js.map +1 -1
  243. package/dist/smells/duplicate-report.d.ts +90 -0
  244. package/dist/smells/duplicate-report.d.ts.map +1 -0
  245. package/dist/smells/duplicate-report.js +344 -0
  246. package/dist/smells/duplicate-report.js.map +1 -0
  247. package/dist/smells/fingerprint.d.ts +12 -0
  248. package/dist/smells/fingerprint.d.ts.map +1 -1
  249. package/dist/smells/fingerprint.js +8 -2
  250. package/dist/smells/fingerprint.js.map +1 -1
  251. package/dist/smells/inconsistent-siblings.js +1 -1
  252. package/dist/smells/inconsistent-siblings.js.map +1 -1
  253. package/dist/smells/similar-pairs.d.ts +9 -8
  254. package/dist/smells/similar-pairs.d.ts.map +1 -1
  255. package/dist/smells/similar-pairs.js +83 -1
  256. package/dist/smells/similar-pairs.js.map +1 -1
  257. package/dist/smells/smell-builder.d.ts.map +1 -1
  258. package/dist/smells/smell-builder.js +3 -2
  259. package/dist/smells/smell-builder.js.map +1 -1
  260. package/dist/smells/variation.d.ts +47 -0
  261. package/dist/smells/variation.d.ts.map +1 -0
  262. package/dist/smells/variation.js +90 -0
  263. package/dist/smells/variation.js.map +1 -0
  264. package/dist/tsconfig/tsconfig-builder.d.ts.map +1 -1
  265. package/dist/tsconfig/tsconfig-builder.js +3 -2
  266. package/dist/tsconfig/tsconfig-builder.js.map +1 -1
  267. package/package.json +3 -2
@@ -1,12 +1,10 @@
1
- import type { RuleDescription } from '@nielspeter/eess';
2
- import type { CollectResult } from '../core/terminal-builder.js';
3
1
  import type { SourceFile } from 'ts-morph';
4
2
  import type { Predicate } from '@nielspeter/eess';
5
3
  import type { ArchProject } from '../core/project.js';
6
4
  import type { GlobNode } from '@nielspeter/eess';
7
- import { TerminalBuilder } from '../core/terminal-builder.js';
8
5
  import type { ExpressionMatcher } from '../helpers/matchers.js';
9
6
  import type { ArchFunction } from '../models/arch-function.js';
7
+ import { GraphqlRuleBuilder } from './graphql-rule-builder.js';
10
8
  /**
11
9
  * Predicate: filter to resolver functions for fields returning types matching the pattern.
12
10
  *
@@ -17,12 +15,27 @@ import type { ArchFunction } from '../models/arch-function.js';
17
15
  * @param pattern - Regex or string to match against the resolved return type text
18
16
  */
19
17
  export declare function resolveFieldReturning(pattern: RegExp | string): Predicate<ArchFunction>;
20
- export declare class ResolverRuleBuilder extends TerminalBuilder {
18
+ /**
19
+ * Fluent rule builder for GraphQL resolver architecture rules.
20
+ *
21
+ * Operates on TypeScript resolver files analyzed through the ArchFunction model.
22
+ * Reuses the body analysis engine from plan 0011 for conditions like contain/notContain.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * resolvers(p, 'src/resolvers/**')
27
+ * .that()
28
+ * .resolveFieldReturning(/^[A-Z]/)
29
+ * .should()
30
+ * .contain(call('loader.load'))
31
+ * .because('prevent N+1 queries')
32
+ * .check()
33
+ * ```
34
+ */
35
+ export declare class ResolverRuleBuilder extends GraphqlRuleBuilder<ArchFunction> {
21
36
  private readonly sourceFiles;
22
37
  private readonly glob?;
23
38
  private readonly project?;
24
- private _predicates;
25
- private _conditions;
26
39
  /**
27
40
  * @param sourceFiles - The resolver files, already filtered by `resolvers()`.
28
41
  * @param glob - The glob they were filtered by, for diagnostics only.
@@ -55,22 +68,6 @@ export declare class ResolverRuleBuilder extends TerminalBuilder {
55
68
  * Filter to resolver functions for fields returning types matching the pattern.
56
69
  */
57
70
  resolveFieldReturning(pattern: RegExp | string): this;
58
- /**
59
- * Begin the predicate phase. Purely a readability marker.
60
- */
61
- that(): this;
62
- /**
63
- * Add another predicate (AND).
64
- */
65
- and(): this;
66
- /**
67
- * Begin the condition phase.
68
- */
69
- should(): this;
70
- /**
71
- * Add another condition (AND).
72
- */
73
- andShould(): this;
74
71
  /**
75
72
  * Assert that the resolver body contains at least one match.
76
73
  */
@@ -83,50 +80,6 @@ export declare class ResolverRuleBuilder extends TerminalBuilder {
83
80
  * Assert: must NOT contain 'bad' AND must contain 'good'.
84
81
  */
85
82
  useInsteadOf(bad: ExpressionMatcher, good: ExpressionMatcher): this;
86
- /**
87
- * An independent copy, carrying both lists.
88
- *
89
- * This builder does not extend `RuleBuilder`, so it does not inherit that
90
- * class's override — and neither `that()` nor `should()` forked here at all,
91
- * which made the bug 0016 leak worse on this hierarchy than on the main one:
92
- * a held `schema()` selection accumulated every predicate and condition of
93
- * every rule derived from it. `docs/graphql.md` teaches exactly that shape.
94
- */
95
- protected copy(): this;
96
- /**
97
- * Whether this rule states an assertion at all — the assertion gate's question.
98
- *
99
- * True once a condition has been added.
100
- *
101
- * Overrides the `TerminalBuilder` default (`true`), whose JSDoc carries the
102
- * contract and the reason this is public rather than protected.
103
- */
104
- assertsSomething(): boolean;
105
- /**
106
- * The remedy for this builder's assertion-less state, as one string.
107
- *
108
- * One channel, so `diagnose()`'s advice and the finding's own message cannot
109
- * disagree. Overrides `TerminalBuilder`'s generic text with wording specific to
110
- * what this builder is missing.
111
- */
112
- assertionAdvice(): string;
113
- /** Named by id or description, not 'unnamed' (plan 0070 §4). */
114
- describeRule(): RuleDescription;
115
- /**
116
- * The set the conditions receive — plan 0096, and the ONE method both readers
117
- * call.
118
- *
119
- * The first attempt at 0096 let `collectViolations()` and the evidence
120
- * accessor derive this separately, and they disagreed inside one commit: this
121
- * builder counted PRE-predicate while its sibling `SchemaRuleBuilder` counted
122
- * post. Measured, a chain whose `.that()` selected nothing reported 14 units
123
- * examined, handed its conditions 0, and passed green with `diagnose()`
124
- * silent — the fail-open cell ADR-009 exists to close, inside the wave that
125
- * closes it. Sharing the method is what makes "the preview derives from the
126
- * same computation the gate uses" structural rather than a claim.
127
- */
128
- private selected;
129
- /** Units this rule examined — plan 0096. The selection, not what precedes it. */
130
83
  /**
131
84
  * This family counts resolvers — the resolver functions it selected.
132
85
  *
@@ -136,15 +89,8 @@ export declare class ResolverRuleBuilder extends TerminalBuilder {
136
89
  * was and was not looked at.
137
90
  */
138
91
  protected examinedUnitNoun(): string;
139
- /**
140
- * How many units this rule actually examined — ADR-010's evidence that a pass
141
- * was constructed rather than defaulted.
142
- *
143
- * The resolvers this rule selected.
144
- */
145
- examinedUnits(): number;
146
- protected collectViolations(): CollectResult;
147
- private getElements;
148
- private buildRuleDescription;
92
+ protected descriptionSubject(): string;
93
+ protected conditionExamples(): string;
94
+ protected getElements(): ArchFunction[];
149
95
  }
150
96
  //# sourceMappingURL=resolver-rule-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-rule-builder.d.ts","sourceRoot":"","sources":["../../src/graphql/resolver-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAS9D;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAYvF;AAqBD,qBAAa,mBAAoB,SAAQ,eAAe;IAoBpD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IArB3B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,WAAW,CAAgC;IAEnD;;;;;;;;;;;;;;OAcG;gBAEgB,WAAW,EAAE,UAAU,EAAE,EACzB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,WAAW,YAAA;IAKxC,6EAA6E;IAC7E,UAAU,IAAI,WAAW,GAAG,SAAS;IAIrC;;;;;;;;OAQG;IACM,KAAK,IAAI,SAAS,QAAQ,EAAE;IAarC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQrD;;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,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAMzC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAM5C;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAQnE;;;;;;;;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;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ;IAQhB,iFAAiF;IAEjF;;;;;;;OAOG;cACgB,gBAAgB,IAAI,MAAM;IAI7C;;;;;OAKG;IACH,aAAa,IAAI,MAAM;IAIvB,SAAS,CAAC,iBAAiB,IAAI,aAAa;IAwB5C,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,oBAAoB;CAQ7B"}
1
+ {"version":3,"file":"resolver-rule-builder.d.ts","sourceRoot":"","sources":["../../src/graphql/resolver-rule-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAO9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAYvF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;IAiBrE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAlB3B;;;;;;;;;;;;;;OAcG;gBAEgB,WAAW,EAAE,UAAU,EAAE,EACzB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,WAAW,YAAA;IAKxC,6EAA6E;IAC7E,UAAU,IAAI,WAAW,GAAG,SAAS;IAIrC;;;;;;;;OAQG;IACM,KAAK,IAAI,SAAS,QAAQ,EAAE;IAarC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQrD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAMzC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAM5C;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAQnE;;;;;;;OAOG;cACgB,gBAAgB,IAAI,MAAM;cAI1B,kBAAkB,IAAI,MAAM;cAI5B,iBAAiB,IAAI,MAAM;cAI3B,WAAW,IAAI,YAAY,EAAE;CAajD"}
@@ -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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,SAAS,MAAM,WAAW,CAAA;AAmEjC,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,2DAA2D;AAC3D,IAAI,aAAyC,CAAA;AAE7C;;;;GAIG;AACH,SAAS,kBAAkB;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjD,4EAA4E;IAC5E,4EAA4E;IAC5E,sEAAsE;IACtE,8EAA8E;IAC9E,8BAA8B;IAC9B,yEAAyE;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,mEAAmE;IACnE,0GAA0G;IAC1G,OAAO,UAAU,CAAC,SAAS,CAAmB,CAAA;AAChD,CAAC;AAED,IAAI,WAAW,GAAyB,kBAAkB,CAAA;AAE1D;;;GAGG;AACH,SAAS,cAAc;IACrB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IAEvC,IAAI,CAAC;QACH,aAAa,GAAG,WAAW,EAAE,CAAA;QAC7B,OAAO,aAAa,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wEAAwE;QACxE,yEAAyE;QACzE,0DAA0D;QAC1D,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,mEAAmE;QACnE,uEAAuE;QACvE,kBAAkB;QAClB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;YACtB,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,kBAAkB;YACjC,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,0EAA0E;gBACxE,sCAAsC,EACxC,EAAE,KAAK,EAAE,CACV,CAAA;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CACb,iFACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,EACF,EAAE,KAAK,EAAE,CACV,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,IAAY;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAE/B,4CAA4C;IAC5C,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,QAAQ,YAAY,EAAE,CAClF,CAAA;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAA6C,EAAE,CAAA;IAC9D,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC9C,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;QACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,UAAmB;IAChE,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,OAAO,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,GAAW,EACX,SAAmD;IAEnD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,GAAW,EACX,OAA0C,EAC1C,OAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,IAAI,GAAG,CAAA;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,OAAoB,CAAA;IACxB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,GAAG,CAAA,CAAC,wCAAwC;QACjD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QAC5D,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAClD,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,cAAc,EAAE,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2EAA2E;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,qDAAqD;QACrD,KAAK,GAAG,CAAA;QACR,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,4JAA4J;AAC5J,MAAM,UAAU,wBAAwB,CAAC,MAA4B;IACnE,WAAW,GAAG,MAAM,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,4JAA4J;AAC5J,MAAM,UAAU,0BAA0B;IACxC,WAAW,GAAG,kBAAkB,CAAA;IAChC,aAAa,GAAG,SAAS,CAAA;AAC3B,CAAC"}
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"}