@ontrails/warden 1.0.0-beta.11 → 1.0.0-beta.13

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 (183) hide show
  1. package/.turbo/turbo-lint.log +1 -1
  2. package/CHANGELOG.md +59 -31
  3. package/README.md +17 -17
  4. package/dist/cli.d.ts +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +14 -10
  7. package/dist/cli.js.map +1 -1
  8. package/dist/drift.d.ts +6 -6
  9. package/dist/drift.d.ts.map +1 -1
  10. package/dist/drift.js +8 -8
  11. package/dist/drift.js.map +1 -1
  12. package/dist/formatters.js +2 -2
  13. package/dist/formatters.js.map +1 -1
  14. package/dist/index.d.ts +4 -4
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +5 -5
  17. package/dist/index.js.map +1 -1
  18. package/dist/rules/ast.d.ts +15 -11
  19. package/dist/rules/ast.d.ts.map +1 -1
  20. package/dist/rules/ast.js +34 -30
  21. package/dist/rules/ast.js.map +1 -1
  22. package/dist/rules/context-no-trailhead-types.d.ts +12 -0
  23. package/dist/rules/context-no-trailhead-types.d.ts.map +1 -0
  24. package/dist/rules/context-no-trailhead-types.js +96 -0
  25. package/dist/rules/context-no-trailhead-types.js.map +1 -0
  26. package/dist/rules/cross-declarations.d.ts +13 -0
  27. package/dist/rules/cross-declarations.d.ts.map +1 -0
  28. package/dist/rules/cross-declarations.js +264 -0
  29. package/dist/rules/cross-declarations.js.map +1 -0
  30. package/dist/rules/follow-declarations.d.ts +1 -1
  31. package/dist/rules/follow-declarations.js +5 -5
  32. package/dist/rules/follow-declarations.js.map +1 -1
  33. package/dist/rules/implementation-returns-result.d.ts +2 -2
  34. package/dist/rules/implementation-returns-result.js +6 -6
  35. package/dist/rules/implementation-returns-result.js.map +1 -1
  36. package/dist/rules/index.d.ts +4 -4
  37. package/dist/rules/index.d.ts.map +1 -1
  38. package/dist/rules/index.js +12 -12
  39. package/dist/rules/index.js.map +1 -1
  40. package/dist/rules/no-direct-impl-in-route.d.ts +4 -4
  41. package/dist/rules/no-direct-impl-in-route.js +14 -14
  42. package/dist/rules/no-direct-impl-in-route.js.map +1 -1
  43. package/dist/rules/no-direct-implementation-call.d.ts +3 -3
  44. package/dist/rules/no-direct-implementation-call.js +7 -7
  45. package/dist/rules/no-direct-implementation-call.js.map +1 -1
  46. package/dist/rules/no-sync-result-assumption.d.ts +1 -1
  47. package/dist/rules/no-sync-result-assumption.js +5 -5
  48. package/dist/rules/no-sync-result-assumption.js.map +1 -1
  49. package/dist/rules/no-throw-in-detour-target.js +2 -2
  50. package/dist/rules/no-throw-in-detour-target.js.map +1 -1
  51. package/dist/rules/no-throw-in-implementation.d.ts +1 -1
  52. package/dist/rules/no-throw-in-implementation.js +3 -3
  53. package/dist/rules/no-throw-in-implementation.js.map +1 -1
  54. package/dist/rules/provision-declarations.d.ts +14 -0
  55. package/dist/rules/provision-declarations.d.ts.map +1 -0
  56. package/dist/rules/provision-declarations.js +344 -0
  57. package/dist/rules/provision-declarations.js.map +1 -0
  58. package/dist/rules/provision-exists.d.ts +6 -0
  59. package/dist/rules/provision-exists.d.ts.map +1 -0
  60. package/dist/rules/provision-exists.js +89 -0
  61. package/dist/rules/provision-exists.js.map +1 -0
  62. package/dist/rules/service-declarations.d.ts +7 -5
  63. package/dist/rules/service-declarations.d.ts.map +1 -1
  64. package/dist/rules/service-declarations.js +106 -103
  65. package/dist/rules/service-declarations.js.map +1 -1
  66. package/dist/rules/service-exists.d.ts +3 -1
  67. package/dist/rules/service-exists.d.ts.map +1 -1
  68. package/dist/rules/service-exists.js +35 -33
  69. package/dist/rules/service-exists.js.map +1 -1
  70. package/dist/rules/specs.d.ts +1 -1
  71. package/dist/rules/specs.d.ts.map +1 -1
  72. package/dist/rules/specs.js +1 -1
  73. package/dist/rules/specs.js.map +1 -1
  74. package/dist/rules/types.d.ts +2 -2
  75. package/dist/rules/types.d.ts.map +1 -1
  76. package/dist/trails/context-no-surface-types.trail.js +1 -1
  77. package/dist/trails/context-no-trailhead-types.trail.d.ts +13 -0
  78. package/dist/trails/context-no-trailhead-types.trail.d.ts.map +1 -0
  79. package/dist/trails/context-no-trailhead-types.trail.js +21 -0
  80. package/dist/trails/context-no-trailhead-types.trail.js.map +1 -0
  81. package/dist/trails/cross-declarations.trail.d.ts +13 -0
  82. package/dist/trails/cross-declarations.trail.d.ts.map +1 -0
  83. package/dist/trails/cross-declarations.trail.js +22 -0
  84. package/dist/trails/cross-declarations.trail.js.map +1 -0
  85. package/dist/trails/follow-declarations.trail.js +1 -1
  86. package/dist/trails/implementation-returns-result.trail.js +1 -1
  87. package/dist/trails/index.d.ts +4 -4
  88. package/dist/trails/index.d.ts.map +1 -1
  89. package/dist/trails/index.js +4 -4
  90. package/dist/trails/index.js.map +1 -1
  91. package/dist/trails/no-direct-impl-in-route.trail.js +4 -4
  92. package/dist/trails/no-direct-impl-in-route.trail.js.map +1 -1
  93. package/dist/trails/no-direct-implementation-call.trail.js +2 -2
  94. package/dist/trails/no-direct-implementation-call.trail.js.map +1 -1
  95. package/dist/trails/no-sync-result-assumption.trail.js +2 -2
  96. package/dist/trails/no-sync-result-assumption.trail.js.map +1 -1
  97. package/dist/trails/no-throw-in-detour-target.trail.d.ts +1 -1
  98. package/dist/trails/no-throw-in-detour-target.trail.js +1 -1
  99. package/dist/trails/no-throw-in-implementation.trail.js +1 -1
  100. package/dist/trails/prefer-schema-inference.trail.js +1 -1
  101. package/dist/trails/provision-declarations.trail.d.ts +13 -0
  102. package/dist/trails/provision-declarations.trail.d.ts.map +1 -0
  103. package/dist/trails/provision-declarations.trail.js +25 -0
  104. package/dist/trails/provision-declarations.trail.js.map +1 -0
  105. package/dist/trails/provision-exists.trail.d.ts +15 -0
  106. package/dist/trails/provision-exists.trail.d.ts.map +1 -0
  107. package/dist/trails/provision-exists.trail.js +27 -0
  108. package/dist/trails/provision-exists.trail.js.map +1 -0
  109. package/dist/trails/run.d.ts +2 -2
  110. package/dist/trails/run.d.ts.map +1 -1
  111. package/dist/trails/run.js +6 -6
  112. package/dist/trails/run.js.map +1 -1
  113. package/dist/trails/schema.d.ts +1 -1
  114. package/dist/trails/schema.js +2 -2
  115. package/dist/trails/schema.js.map +1 -1
  116. package/dist/trails/service-declarations.trail.d.ts +13 -0
  117. package/dist/trails/service-declarations.trail.d.ts.map +1 -1
  118. package/dist/trails/service-declarations.trail.js +9 -7
  119. package/dist/trails/service-declarations.trail.js.map +1 -1
  120. package/dist/trails/service-exists.trail.d.ts +17 -0
  121. package/dist/trails/service-exists.trail.d.ts.map +1 -1
  122. package/dist/trails/service-exists.trail.js +10 -8
  123. package/dist/trails/service-exists.trail.js.map +1 -1
  124. package/dist/trails/valid-describe-refs.trail.d.ts +1 -1
  125. package/dist/trails/valid-detour-refs.trail.d.ts +1 -1
  126. package/dist/trails/valid-detour-refs.trail.js +2 -2
  127. package/dist/trails/wrap-rule.js +14 -14
  128. package/dist/trails/wrap-rule.js.map +1 -1
  129. package/package.json +4 -4
  130. package/src/__tests__/cli.test.ts +8 -8
  131. package/src/__tests__/{follow-declarations.test.ts → cross-declarations.test.ts} +78 -78
  132. package/src/__tests__/drift.test.ts +5 -5
  133. package/src/__tests__/formatters.test.ts +2 -2
  134. package/src/__tests__/implementation-returns-result.test.ts +11 -11
  135. package/src/__tests__/no-direct-implementation-call.test.ts +10 -10
  136. package/src/__tests__/no-sync-result-assumption.test.ts +6 -6
  137. package/src/__tests__/no-throw-in-detour-target.test.ts +6 -6
  138. package/src/__tests__/prefer-schema-inference.test.ts +4 -4
  139. package/src/__tests__/provision-declarations.test.ts +318 -0
  140. package/src/__tests__/provision-exists.test.ts +122 -0
  141. package/src/__tests__/rules.test.ts +38 -38
  142. package/src/__tests__/valid-describe-refs.test.ts +4 -4
  143. package/src/__tests__/wrap-rule.test.ts +4 -4
  144. package/src/cli.ts +17 -13
  145. package/src/drift.ts +12 -12
  146. package/src/formatters.ts +2 -2
  147. package/src/index.ts +8 -8
  148. package/src/rules/ast.ts +36 -31
  149. package/src/rules/{context-no-surface-types.ts → context-no-trailhead-types.ts} +8 -8
  150. package/src/rules/{follow-declarations.ts → cross-declarations.ts} +63 -56
  151. package/src/rules/implementation-returns-result.ts +6 -6
  152. package/src/rules/index.ts +12 -12
  153. package/src/rules/no-direct-impl-in-route.ts +17 -17
  154. package/src/rules/no-direct-implementation-call.ts +7 -7
  155. package/src/rules/no-sync-result-assumption.ts +5 -5
  156. package/src/rules/no-throw-in-detour-target.ts +2 -2
  157. package/src/rules/no-throw-in-implementation.ts +3 -3
  158. package/src/rules/{service-declarations.ts → provision-declarations.ts} +145 -129
  159. package/src/rules/{service-exists.ts → provision-exists.ts} +51 -46
  160. package/src/rules/specs.ts +4 -4
  161. package/src/rules/types.ts +2 -2
  162. package/src/trails/{context-no-surface-types.trail.ts → context-no-trailhead-types.trail.ts} +5 -5
  163. package/src/trails/cross-declarations.trail.ts +22 -0
  164. package/src/trails/implementation-returns-result.trail.ts +1 -1
  165. package/src/trails/index.ts +4 -4
  166. package/src/trails/no-direct-impl-in-route.trail.ts +4 -4
  167. package/src/trails/no-direct-implementation-call.trail.ts +2 -2
  168. package/src/trails/no-sync-result-assumption.trail.ts +2 -2
  169. package/src/trails/no-throw-in-detour-target.trail.ts +1 -1
  170. package/src/trails/no-throw-in-implementation.trail.ts +1 -1
  171. package/src/trails/prefer-schema-inference.trail.ts +1 -1
  172. package/src/trails/provision-declarations.trail.ts +25 -0
  173. package/src/trails/provision-exists.trail.ts +27 -0
  174. package/src/trails/run.ts +7 -7
  175. package/src/trails/schema.ts +2 -2
  176. package/src/trails/valid-detour-refs.trail.ts +2 -2
  177. package/src/trails/wrap-rule.ts +17 -17
  178. package/tsconfig.tsbuildinfo +1 -1
  179. package/src/__tests__/service-declarations.test.ts +0 -318
  180. package/src/__tests__/service-exists.test.ts +0 -122
  181. package/src/trails/follow-declarations.trail.ts +0 -22
  182. package/src/trails/service-declarations.trail.ts +0 -25
  183. package/src/trails/service-exists.trail.ts +0 -27
@@ -0,0 +1,89 @@
1
+ import { collectNamedProvisionIds, collectProvisionDefinitionIds, extractFirstStringArg, findConfigProperty, findTrailDefinitions, getStringValue, identifierName, isStringLiteral, offsetToLine, parse, } from './ast.js';
2
+ import { isTestFile } from './scan.js';
3
+ const isProvisionCall = (node) => node.type === 'CallExpression' &&
4
+ identifierName(node.callee) ===
5
+ 'provision';
6
+ const getProvisionElements = (config) => {
7
+ const provisionsProp = findConfigProperty(config, 'provisions');
8
+ if (!provisionsProp) {
9
+ return [];
10
+ }
11
+ const arrayNode = provisionsProp.value;
12
+ if (!arrayNode || arrayNode.type !== 'ArrayExpression') {
13
+ return [];
14
+ }
15
+ const elements = arrayNode['elements'];
16
+ return elements ?? [];
17
+ };
18
+ const extractDeclaredProvisionId = (element, provisionIdsByName) => {
19
+ if (element.type === 'Identifier') {
20
+ const name = identifierName(element);
21
+ return name ? (provisionIdsByName.get(name) ?? null) : null;
22
+ }
23
+ if (isStringLiteral(element)) {
24
+ return getStringValue(element);
25
+ }
26
+ return isProvisionCall(element) ? extractFirstStringArg(element) : null;
27
+ };
28
+ const extractDeclaredProvisionIds = (config, provisionIdsByName) => [
29
+ ...new Set(getProvisionElements(config).flatMap((element) => {
30
+ const id = extractDeclaredProvisionId(element, provisionIdsByName);
31
+ return id ? [id] : [];
32
+ })),
33
+ ];
34
+ const buildMissingProvisionDiagnostic = (trailId, provisionId, filePath, line) => ({
35
+ filePath,
36
+ line,
37
+ message: `Trail "${trailId}" declares provision "${provisionId}" which is not defined in the project.`,
38
+ rule: 'provision-exists',
39
+ severity: 'error',
40
+ });
41
+ const reportMissingProvisions = (def, sourceCode, provisionIdsByName, filePath, knownProvisionIds, diagnostics) => {
42
+ const line = offsetToLine(sourceCode, def.start);
43
+ for (const provisionId of extractDeclaredProvisionIds(def.config, provisionIdsByName)) {
44
+ if (!knownProvisionIds.has(provisionId)) {
45
+ diagnostics.push(buildMissingProvisionDiagnostic(def.id, provisionId, filePath, line));
46
+ }
47
+ }
48
+ };
49
+ const buildProvisionDiagnostics = (ast, sourceCode, filePath, knownProvisionIds) => {
50
+ const diagnostics = [];
51
+ const provisionIdsByName = collectNamedProvisionIds(ast);
52
+ for (const def of findTrailDefinitions(ast)) {
53
+ reportMissingProvisions(def, sourceCode, provisionIdsByName, filePath, knownProvisionIds, diagnostics);
54
+ }
55
+ return diagnostics;
56
+ };
57
+ const checkProvisionsExist = (sourceCode, filePath, knownProvisionIds) => {
58
+ if (isTestFile(filePath)) {
59
+ return [];
60
+ }
61
+ const ast = parse(filePath, sourceCode);
62
+ if (!ast) {
63
+ return [];
64
+ }
65
+ return buildProvisionDiagnostics(ast, sourceCode, filePath, knownProvisionIds);
66
+ };
67
+ /**
68
+ * Checks that all declared provisions resolve to known provision definitions.
69
+ */
70
+ export const provisionExists = {
71
+ check(sourceCode, filePath) {
72
+ const ast = parse(filePath, sourceCode);
73
+ if (!ast) {
74
+ return [];
75
+ }
76
+ return checkProvisionsExist(sourceCode, filePath, collectProvisionDefinitionIds(ast));
77
+ },
78
+ checkWithContext(sourceCode, filePath, context) {
79
+ const ast = parse(filePath, sourceCode);
80
+ const localProvisionIds = ast
81
+ ? collectProvisionDefinitionIds(ast)
82
+ : new Set();
83
+ return checkProvisionsExist(sourceCode, filePath, context.knownProvisionIds ?? localProvisionIds);
84
+ },
85
+ description: 'Ensure every provision declared on a trail resolves to a known provision definition.',
86
+ name: 'provision-exists',
87
+ severity: 'error',
88
+ };
89
+ //# sourceMappingURL=provision-exists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision-exists.js","sourceRoot":"","sources":["../../src/rules/provision-exists.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,KAAK,GACN,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC,MAAM,eAAe,GAAG,CAAC,IAAa,EAAW,EAAE,CACjD,IAAI,CAAC,IAAI,KAAK,gBAAgB;IAC9B,cAAc,CAAE,IAAwC,CAAC,MAAM,CAAC;QAC9D,WAAW,CAAC;AAEhB,MAAM,oBAAoB,GAAG,CAAC,MAAe,EAAsB,EAAE;IACnE,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;IACvC,IAAI,CAAC,SAAS,IAAK,SAAqB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAI,SAAqB,CAAC,UAAU,CAErC,CAAC;IACd,OAAO,QAAQ,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,OAAgB,EAChB,kBAA+C,EAChC,EAAE;IACjB,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAClC,MAAe,EACf,kBAA+C,EAC5B,EAAE,CAAC;IACtB,GAAG,IAAI,GAAG,CACR,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,CAAC,CAAC,CACH;CACF,CAAC;AAEF,MAAM,+BAA+B,GAAG,CACtC,OAAe,EACf,WAAmB,EACnB,QAAgB,EAChB,IAAY,EACM,EAAE,CAAC,CAAC;IACtB,QAAQ;IACR,IAAI;IACJ,OAAO,EAAE,UAAU,OAAO,yBAAyB,WAAW,wCAAwC;IACtG,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,OAAO;CAClB,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAC9B,GAAmD,EACnD,UAAkB,EAClB,kBAA+C,EAC/C,QAAgB,EAChB,iBAAsC,EACtC,WAA+B,EACzB,EAAE;IACR,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,MAAM,WAAW,IAAI,2BAA2B,CACnD,GAAG,CAAC,MAAM,EACV,kBAAkB,CACnB,EAAE,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CACd,+BAA+B,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,GAAY,EACZ,UAAkB,EAClB,QAAgB,EAChB,iBAAsC,EACT,EAAE;IAC/B,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,uBAAuB,CACrB,GAAG,EACH,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,WAAW,CACZ,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,UAAkB,EAClB,QAAgB,EAChB,iBAAsC,EACT,EAAE;IAC/B,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,yBAAyB,CAC9B,GAAG,EACH,UAAU,EACV,QAAQ,EACR,iBAAiB,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,KAAK,CAAC,UAAkB,EAAE,QAAgB;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,oBAAoB,CACzB,UAAU,EACV,QAAQ,EACR,6BAA6B,CAAC,GAAG,CAAC,CACnC,CAAC;IACJ,CAAC;IACD,gBAAgB,CACd,UAAkB,EAClB,QAAgB,EAChB,OAAuB;QAEvB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACxC,MAAM,iBAAiB,GAAG,GAAG;YAC3B,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QACtB,OAAO,oBAAoB,CACzB,UAAU,EACV,QAAQ,EACR,OAAO,CAAC,iBAAiB,IAAI,iBAAiB,CAC/C,CAAC;IACJ,CAAC;IACD,WAAW,EACT,sFAAsF;IACxF,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,OAAO;CAClB,CAAC"}
@@ -1,14 +1,16 @@
1
1
  /**
2
- * Validates that service access matches the declared `services` array.
2
+ * Validates that provision access matches the declared `provisions` array.
3
3
  *
4
- * Statically analyzes trail run functions to find `db.from(ctx)` and
5
- * `ctx.service('db.main')` calls and compares them against the declared
6
- * `services: [...]` array in the trail config. Reports errors for undeclared
4
+ * Statically analyzes trail `blaze` functions to find `db.from(ctx)` and
5
+ * `ctx.provision('db.main')` calls and compares them against the declared
6
+ * `provisions: [...]` array in the trail config. Reports errors for undeclared
7
7
  * access and warnings for unused declarations.
8
8
  */
9
9
  import type { WardenRule } from './types.js';
10
10
  /**
11
- * Validates that service access aligns with declared `services` arrays.
11
+ * Validates that provision access aligns with declared `provisions` arrays.
12
12
  */
13
+ export declare const provisionDeclarations: WardenRule;
14
+ /** Backward-compatible alias while the migration is in flight. */
13
15
  export declare const serviceDeclarations: WardenRule;
14
16
  //# sourceMappingURL=service-declarations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-declarations.d.ts","sourceRoot":"","sources":["../../src/rules/service-declarations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,OAAO,KAAK,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAC;AAgjB/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UA8BjC,CAAC"}
1
+ {"version":3,"file":"service-declarations.d.ts","sourceRoot":"","sources":["../../src/rules/service-declarations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,OAAO,KAAK,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAC;AAgkB/D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,UA8BnC,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,YAAwB,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Validates that service access matches the declared `services` array.
2
+ * Validates that provision access matches the declared `provisions` array.
3
3
  *
4
- * Statically analyzes trail run functions to find `db.from(ctx)` and
5
- * `ctx.service('db.main')` calls and compares them against the declared
6
- * `services: [...]` array in the trail config. Reports errors for undeclared
4
+ * Statically analyzes trail `blaze` functions to find `db.from(ctx)` and
5
+ * `ctx.provision('db.main')` calls and compares them against the declared
6
+ * `provisions: [...]` array in the trail config. Reports errors for undeclared
7
7
  * access and warnings for unused declarations.
8
8
  */
9
- import { collectNamedServiceIds, extractFirstStringArg, findConfigProperty, findRunBodies, findTrailDefinitions, getStringValue, identifierName, isStringLiteral, offsetToLine, parse, walkScope, } from './ast.js';
9
+ import { collectNamedProvisionIds, extractFirstStringArg, findConfigProperty, findBlazeBodies, findTrailDefinitions, getStringValue, identifierName, isStringLiteral, offsetToLine, parse, walkScope, } from './ast.js';
10
10
  import { isTestFile } from './scan.js';
11
11
  const MEMBER_TYPES = new Set(['StaticMemberExpression', 'MemberExpression']);
12
12
  /** Extract object and property Identifier names from a MemberExpression. */
@@ -18,55 +18,55 @@ const extractMemberPair = (callee) => {
18
18
  const propName = identifierName(callee.property);
19
19
  return objName && propName ? { objName, propName } : null;
20
20
  };
21
- /** Check if a node is an inline `service('id', ...)` call. */
22
- const isInlineServiceCall = (node) => {
21
+ /** Check if a node is an inline `provision('id', ...)` call. */
22
+ const isInlineProvisionCall = (node) => {
23
23
  if (node.type !== 'CallExpression') {
24
24
  return false;
25
25
  }
26
26
  return (identifierName(node.callee) ===
27
- 'service');
27
+ 'provision');
28
28
  };
29
- /** Get `services` array elements from a trail config. */
30
- const getServiceElements = (config) => {
31
- const servicesProp = findConfigProperty(config, 'services');
32
- if (!servicesProp) {
29
+ /** Get `provisions` array elements from a trail config. */
30
+ const getProvisionElements = (config) => {
31
+ const provisionsProp = findConfigProperty(config, 'provisions');
32
+ if (!provisionsProp) {
33
33
  return [];
34
34
  }
35
- const arrayNode = servicesProp.value;
35
+ const arrayNode = provisionsProp.value;
36
36
  if (!arrayNode || arrayNode.type !== 'ArrayExpression') {
37
37
  return [];
38
38
  }
39
39
  const elements = arrayNode['elements'];
40
40
  return elements ?? [];
41
41
  };
42
- /** Extract one declared service from a `services` array element. */
43
- const extractDeclaredService = (element, serviceIdsByName) => {
42
+ /** Extract one declared provision from a `provisions` array element. */
43
+ const extractDeclaredProvision = (element, provisionIdsByName) => {
44
44
  if (element.type === 'Identifier') {
45
45
  const name = identifierName(element);
46
46
  return {
47
- id: name ? (serviceIdsByName.get(name) ?? null) : null,
47
+ id: name ? (provisionIdsByName.get(name) ?? null) : null,
48
48
  name,
49
49
  };
50
50
  }
51
51
  if (isStringLiteral(element)) {
52
52
  return { id: getStringValue(element), name: null };
53
53
  }
54
- if (isInlineServiceCall(element)) {
54
+ if (isInlineProvisionCall(element)) {
55
55
  return { id: extractFirstStringArg(element), name: null };
56
56
  }
57
57
  return null;
58
58
  };
59
- /** Extract declared services from a trail config's `services` array. */
60
- const extractDeclaredServices = (config, serviceIdsByName) => getServiceElements(config).flatMap((element) => {
61
- const service = extractDeclaredService(element, serviceIdsByName);
62
- return service ? [service] : [];
59
+ /** Extract declared provisions from a trail config's `provisions` array. */
60
+ const extractDeclaredProvisions = (config, provisionIdsByName) => getProvisionElements(config).flatMap((element) => {
61
+ const provision = extractDeclaredProvision(element, provisionIdsByName);
62
+ return provision ? [provision] : [];
63
63
  });
64
64
  // ---------------------------------------------------------------------------
65
65
  // Called service extraction
66
66
  // ---------------------------------------------------------------------------
67
- /** Extract the second parameter name from a run function node. */
68
- const extractContextParamName = (runBody) => {
69
- const params = runBody['params'];
67
+ /** Extract the second parameter name from a blaze function node. */
68
+ const extractContextParamName = (blazeBody) => {
69
+ const params = blazeBody['params'];
70
70
  if (!params || params.length < 2) {
71
71
  return null;
72
72
  }
@@ -115,43 +115,43 @@ const extractFromCallName = (node, ctxNames) => {
115
115
  ? pair.objName
116
116
  : null;
117
117
  };
118
- /** Check if a callee is a member-style `ctx.service(...)` call. */
119
- const isMemberServiceCall = (callee, ctxNames) => {
118
+ /** Check if a callee is a member-style `ctx.provision(...)` call. */
119
+ const isMemberProvisionCall = (callee, ctxNames) => {
120
120
  const pair = extractMemberPair(callee);
121
- return !!pair && ctxNames.has(pair.objName) && pair.propName === 'service';
121
+ return !!pair && ctxNames.has(pair.objName) && pair.propName === 'provision';
122
122
  };
123
- /** Extract `ctx.service(db)` and destructured `service(db)` lookup names. */
124
- const extractLookupServiceName = (node, ctxNames, serviceAliases) => {
123
+ /** Extract `ctx.provision(db)` and destructured `provision(db)` lookup names. */
124
+ const extractLookupProvisionName = (node, ctxNames, provisionAliases) => {
125
125
  const callee = extractCallCallee(node);
126
126
  if (!callee) {
127
127
  return null;
128
128
  }
129
- if (isMemberServiceCall(callee, ctxNames)) {
129
+ if (isMemberProvisionCall(callee, ctxNames)) {
130
130
  return extractFirstIdentifierArg(node);
131
131
  }
132
- if (serviceAliases.has(identifierName(callee) ?? '')) {
132
+ if (provisionAliases.has(identifierName(callee) ?? '')) {
133
133
  return extractFirstIdentifierArg(node);
134
134
  }
135
135
  return null;
136
136
  };
137
- /** Extract `ctx.service('id')` and destructured `service('id')` lookup IDs. */
138
- const extractLookupServiceId = (node, ctxNames, serviceAliases) => {
137
+ /** Extract `ctx.provision('id')` and destructured `provision('id')` lookup IDs. */
138
+ const extractLookupProvisionId = (node, ctxNames, provisionAliases) => {
139
139
  const callee = extractCallCallee(node);
140
140
  if (!callee) {
141
141
  return null;
142
142
  }
143
- if (isMemberServiceCall(callee, ctxNames)) {
143
+ if (isMemberProvisionCall(callee, ctxNames)) {
144
144
  return extractFirstStringArg(node);
145
145
  }
146
146
  const calleeName = identifierName(callee);
147
147
  const args = node['arguments'];
148
- if (calleeName && serviceAliases.has(calleeName) && args?.length === 1) {
148
+ if (calleeName && provisionAliases.has(calleeName) && args?.length === 1) {
149
149
  return extractFirstStringArg(node);
150
150
  }
151
151
  return null;
152
152
  };
153
- /** Collect local aliases for the service accessor (e.g. `const { service } = ctx`). */
154
- const collectServiceAliases = (body, ctxNames) => {
153
+ /** Collect local aliases for the provision accessor (e.g. `const { provision } = ctx`). */
154
+ const collectProvisionAliases = (body, ctxNames) => {
155
155
  const aliases = new Set();
156
156
  const extractAliasNames = (pattern) => {
157
157
  if (pattern?.type !== 'ObjectPattern') {
@@ -163,7 +163,7 @@ const collectServiceAliases = (body, ctxNames) => {
163
163
  return [];
164
164
  }
165
165
  const keyName = identifierName(property.key);
166
- if (keyName !== 'service') {
166
+ if (keyName !== 'provision') {
167
167
  return [];
168
168
  }
169
169
  const alias = identifierName(property.value) ??
@@ -186,24 +186,24 @@ const collectServiceAliases = (body, ctxNames) => {
186
186
  });
187
187
  return aliases;
188
188
  };
189
- /** Walk run bodies and collect service access that can be resolved statically. */
190
- const extractCalledServices = (config) => {
189
+ /** Walk blaze bodies and collect provision access that can be resolved statically. */
190
+ const extractCalledProvisions = (config) => {
191
191
  const fromNames = new Set();
192
192
  const lookupIds = new Set();
193
193
  const lookupNames = new Set();
194
- for (const body of findRunBodies(config)) {
194
+ for (const body of findBlazeBodies(config)) {
195
195
  const ctxNames = buildCtxNames(body);
196
- const serviceAliases = collectServiceAliases(body, ctxNames);
196
+ const provisionAliases = collectProvisionAliases(body, ctxNames);
197
197
  walkScope(body, (node) => {
198
198
  const fromName = extractFromCallName(node, ctxNames);
199
199
  if (fromName) {
200
200
  fromNames.add(fromName);
201
201
  }
202
- const lookupId = extractLookupServiceId(node, ctxNames, serviceAliases);
202
+ const lookupId = extractLookupProvisionId(node, ctxNames, provisionAliases);
203
203
  if (lookupId) {
204
204
  lookupIds.add(lookupId);
205
205
  }
206
- const lookupName = extractLookupServiceName(node, ctxNames, serviceAliases);
206
+ const lookupName = extractLookupProvisionName(node, ctxNames, provisionAliases);
207
207
  if (lookupName) {
208
208
  lookupNames.add(lookupName);
209
209
  }
@@ -214,113 +214,114 @@ const extractCalledServices = (config) => {
214
214
  // ---------------------------------------------------------------------------
215
215
  // Diagnostics
216
216
  // ---------------------------------------------------------------------------
217
- const renderDeclaredService = (service) => service.name ?? service.id ?? '<unknown>';
218
- const buildUndeclaredFromDiagnostic = (trailId, serviceName, filePath, line) => ({
217
+ const renderDeclaredProvision = (provision) => provision.name ?? provision.id ?? '<unknown>';
218
+ const buildUndeclaredFromDiagnostic = (trailId, provisionName, filePath, line) => ({
219
219
  filePath,
220
220
  line,
221
- message: `Trail "${trailId}": ${serviceName}.from(ctx) called but '${serviceName}' is not declared in services`,
222
- rule: 'service-declarations',
221
+ message: `Trail "${trailId}": ${provisionName}.from(ctx) called but '${provisionName}' is not declared in provisions`,
222
+ rule: 'provision-declarations',
223
223
  severity: 'error',
224
224
  });
225
- const buildUndeclaredLookupDiagnostic = (trailId, serviceId, filePath, line) => ({
225
+ const buildUndeclaredLookupDiagnostic = (trailId, provisionId, filePath, line) => ({
226
226
  filePath,
227
227
  line,
228
- message: `Trail "${trailId}": ctx.service('${serviceId}') called but '${serviceId}' is not declared in services`,
229
- rule: 'service-declarations',
228
+ message: `Trail "${trailId}": ctx.provision('${provisionId}') called but '${provisionId}' is not declared in provisions`,
229
+ rule: 'provision-declarations',
230
230
  severity: 'error',
231
231
  });
232
- const buildUndeclaredLookupNameDiagnostic = (trailId, serviceName, filePath, line) => ({
232
+ const buildUndeclaredLookupNameDiagnostic = (trailId, provisionName, filePath, line) => ({
233
233
  filePath,
234
234
  line,
235
- message: `Trail "${trailId}": ctx.service(${serviceName}) called but '${serviceName}' is not declared in services`,
236
- rule: 'service-declarations',
235
+ message: `Trail "${trailId}": ctx.provision(${provisionName}) called but '${provisionName}' is not declared in provisions`,
236
+ rule: 'provision-declarations',
237
237
  severity: 'error',
238
238
  });
239
- const buildUnusedDiagnostic = (trailId, declaredService, filePath, line) => ({
239
+ const buildUnusedDiagnostic = (trailId, declaredProvision, filePath, line) => ({
240
240
  filePath,
241
241
  line,
242
- message: `Trail "${trailId}": '${renderDeclaredService(declaredService)}' declared in services but never used`,
243
- rule: 'service-declarations',
242
+ message: `Trail "${trailId}": '${renderDeclaredProvision(declaredProvision)}' declared in provisions but never used`,
243
+ rule: 'provision-declarations',
244
244
  severity: 'warn',
245
245
  });
246
246
  // ---------------------------------------------------------------------------
247
247
  // Comparison
248
248
  // ---------------------------------------------------------------------------
249
- const serviceWasUsed = (declaredService, calledServices) => {
250
- if (declaredService.name &&
251
- (calledServices.fromNames.has(declaredService.name) ||
252
- calledServices.lookupNames.has(declaredService.name))) {
249
+ const provisionWasUsed = (declaredProvision, calledProvisions) => {
250
+ if (declaredProvision.name &&
251
+ (calledProvisions.fromNames.has(declaredProvision.name) ||
252
+ calledProvisions.lookupNames.has(declaredProvision.name))) {
253
253
  return true;
254
254
  }
255
- if (declaredService.id && calledServices.lookupIds.has(declaredService.id)) {
255
+ if (declaredProvision.id &&
256
+ calledProvisions.lookupIds.has(declaredProvision.id)) {
256
257
  return true;
257
258
  }
258
259
  return false;
259
260
  };
260
- const buildDeclaredNames = (declaredServices) => new Set(declaredServices.flatMap((service) => (service.name ? [service.name] : [])));
261
- const buildDeclaredIds = (declaredServices) => new Set(declaredServices.flatMap((service) => (service.id ? [service.id] : [])));
262
- const reportUndeclaredFromCalls = (trailId, filePath, line, calledServices, declaredNames, diagnostics) => {
263
- for (const serviceName of calledServices.fromNames) {
264
- if (!declaredNames.has(serviceName)) {
265
- diagnostics.push(buildUndeclaredFromDiagnostic(trailId, serviceName, filePath, line));
261
+ const buildDeclaredNames = (declaredProvisions) => new Set(declaredProvisions.flatMap((provision) => provision.name ? [provision.name] : []));
262
+ const buildDeclaredIds = (declaredProvisions) => new Set(declaredProvisions.flatMap((provision) => provision.id ? [provision.id] : []));
263
+ const reportUndeclaredFromCalls = (trailId, filePath, line, calledProvisions, declaredNames, diagnostics) => {
264
+ for (const provisionName of calledProvisions.fromNames) {
265
+ if (!declaredNames.has(provisionName)) {
266
+ diagnostics.push(buildUndeclaredFromDiagnostic(trailId, provisionName, filePath, line));
266
267
  }
267
268
  }
268
269
  };
269
- const reportUndeclaredLookupCalls = (trailId, filePath, line, calledServices, declaredIds, declaredNames, diagnostics) => {
270
- for (const serviceName of calledServices.lookupNames) {
271
- // Name-based lookup checks remain reliable even when an imported service ID
270
+ const reportUndeclaredLookupCalls = (trailId, filePath, line, calledProvisions, declaredIds, declaredNames, diagnostics) => {
271
+ for (const provisionName of calledProvisions.lookupNames) {
272
+ // Name-based lookup checks remain reliable even when an imported provision ID
272
273
  // cannot be resolved locally.
273
- if (!declaredNames.has(serviceName)) {
274
- diagnostics.push(buildUndeclaredLookupNameDiagnostic(trailId, serviceName, filePath, line));
274
+ if (!declaredNames.has(provisionName)) {
275
+ diagnostics.push(buildUndeclaredLookupNameDiagnostic(trailId, provisionName, filePath, line));
275
276
  }
276
277
  }
277
- for (const serviceId of calledServices.lookupIds) {
278
- if (!declaredIds.has(serviceId)) {
279
- diagnostics.push(buildUndeclaredLookupDiagnostic(trailId, serviceId, filePath, line));
278
+ for (const provisionId of calledProvisions.lookupIds) {
279
+ if (!declaredIds.has(provisionId)) {
280
+ diagnostics.push(buildUndeclaredLookupDiagnostic(trailId, provisionId, filePath, line));
280
281
  }
281
282
  }
282
283
  };
283
- const reportUnusedDeclarations = (trailId, filePath, line, declaredServices, calledServices, diagnostics) => {
284
- for (const declaredService of declaredServices) {
285
- if (serviceWasUsed(declaredService, calledServices)) {
284
+ const reportUnusedDeclarations = (trailId, filePath, line, declaredProvisions, calledProvisions, diagnostics) => {
285
+ for (const declaredProvision of declaredProvisions) {
286
+ if (provisionWasUsed(declaredProvision, calledProvisions)) {
286
287
  continue;
287
288
  }
288
- if (declaredService.name && declaredService.id === null) {
289
+ if (declaredProvision.name && declaredProvision.id === null) {
289
290
  continue;
290
291
  }
291
- diagnostics.push(buildUnusedDiagnostic(trailId, declaredService, filePath, line));
292
+ diagnostics.push(buildUnusedDiagnostic(trailId, declaredProvision, filePath, line));
292
293
  }
293
294
  };
294
- const hasNoServiceActivity = (declaredServices, calledServices) => declaredServices.length === 0 &&
295
- calledServices.fromNames.size === 0 &&
296
- calledServices.lookupIds.size === 0 &&
297
- calledServices.lookupNames.size === 0;
298
- const analyzeTrailServices = (def, sourceCode, serviceIdsByName) => {
299
- const declaredServices = extractDeclaredServices(def.config, serviceIdsByName);
295
+ const hasNoProvisionActivity = (declaredProvisions, calledProvisions) => declaredProvisions.length === 0 &&
296
+ calledProvisions.fromNames.size === 0 &&
297
+ calledProvisions.lookupIds.size === 0 &&
298
+ calledProvisions.lookupNames.size === 0;
299
+ const analyzeTrailServices = (def, sourceCode, provisionIdsByName) => {
300
+ const declaredProvisions = extractDeclaredProvisions(def.config, provisionIdsByName);
300
301
  return {
301
- calledServices: extractCalledServices(def.config),
302
- declaredIds: buildDeclaredIds(declaredServices),
303
- declaredNames: buildDeclaredNames(declaredServices),
304
- declaredServices,
302
+ calledProvisions: extractCalledProvisions(def.config),
303
+ declaredIds: buildDeclaredIds(declaredProvisions),
304
+ declaredNames: buildDeclaredNames(declaredProvisions),
305
+ declaredProvisions,
305
306
  line: offsetToLine(sourceCode, def.start),
306
307
  };
307
308
  };
308
- const checkTrailDefinition = (def, filePath, sourceCode, serviceIdsByName, diagnostics) => {
309
- const { calledServices, declaredIds, declaredNames, declaredServices, line } = analyzeTrailServices(def, sourceCode, serviceIdsByName);
310
- if (hasNoServiceActivity(declaredServices, calledServices)) {
309
+ const checkTrailDefinition = (def, filePath, sourceCode, provisionIdsByName, diagnostics) => {
310
+ const { calledProvisions, declaredIds, declaredNames, declaredProvisions, line, } = analyzeTrailServices(def, sourceCode, provisionIdsByName);
311
+ if (hasNoProvisionActivity(declaredProvisions, calledProvisions)) {
311
312
  return;
312
313
  }
313
- reportUndeclaredFromCalls(def.id, filePath, line, calledServices, declaredNames, diagnostics);
314
- reportUndeclaredLookupCalls(def.id, filePath, line, calledServices, declaredIds, declaredNames, diagnostics);
315
- reportUnusedDeclarations(def.id, filePath, line, declaredServices, calledServices, diagnostics);
314
+ reportUndeclaredFromCalls(def.id, filePath, line, calledProvisions, declaredNames, diagnostics);
315
+ reportUndeclaredLookupCalls(def.id, filePath, line, calledProvisions, declaredIds, declaredNames, diagnostics);
316
+ reportUnusedDeclarations(def.id, filePath, line, declaredProvisions, calledProvisions, diagnostics);
316
317
  };
317
318
  // ---------------------------------------------------------------------------
318
319
  // Rule
319
320
  // ---------------------------------------------------------------------------
320
321
  /**
321
- * Validates that service access aligns with declared `services` arrays.
322
+ * Validates that provision access aligns with declared `provisions` arrays.
322
323
  */
323
- export const serviceDeclarations = {
324
+ export const provisionDeclarations = {
324
325
  check(sourceCode, filePath) {
325
326
  if (isTestFile(filePath)) {
326
327
  return [];
@@ -330,14 +331,16 @@ export const serviceDeclarations = {
330
331
  return [];
331
332
  }
332
333
  const diagnostics = [];
333
- const serviceIdsByName = collectNamedServiceIds(ast);
334
+ const provisionIdsByName = collectNamedProvisionIds(ast);
334
335
  for (const def of findTrailDefinitions(ast)) {
335
- checkTrailDefinition(def, filePath, sourceCode, serviceIdsByName, diagnostics);
336
+ checkTrailDefinition(def, filePath, sourceCode, provisionIdsByName, diagnostics);
336
337
  }
337
338
  return diagnostics;
338
339
  },
339
- description: 'Ensure service.from(ctx) and ctx.service() calls match the declared services array in trail definitions.',
340
- name: 'service-declarations',
340
+ description: 'Ensure provision.from(ctx) and ctx.provision() calls match the declared provisions array in trail definitions.',
341
+ name: 'provision-declarations',
341
342
  severity: 'error',
342
343
  };
344
+ /** Backward-compatible alias while the migration is in flight. */
345
+ export const serviceDeclarations = provisionDeclarations;
343
346
  //# sourceMappingURL=service-declarations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-declarations.js","sourceRoot":"","sources":["../../src/rules/service-declarations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-declarations.js","sourceRoot":"","sources":["../../src/rules/service-declarations.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { ProjectAwareWardenRule } from './types.js';
2
2
  /**
3
- * Checks that all declared services resolve to known service definitions.
3
+ * Checks that all declared provisions resolve to known provision definitions.
4
4
  */
5
+ export declare const provisionExists: ProjectAwareWardenRule;
6
+ /** Backward-compatible alias while the migration is in flight. */
5
7
  export declare const serviceExists: ProjectAwareWardenRule;
6
8
  //# sourceMappingURL=service-exists.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-exists.d.ts","sourceRoot":"","sources":["../../src/rules/service-exists.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AA4HpB;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,sBA+B3B,CAAC"}
1
+ {"version":3,"file":"service-exists.d.ts","sourceRoot":"","sources":["../../src/rules/service-exists.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AA4HpB;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,sBA+B7B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,aAAa,wBAAkB,CAAC"}