@ontrails/warden 1.0.0-beta.12 → 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.
- package/CHANGELOG.md +51 -31
- package/README.md +17 -17
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -10
- package/dist/cli.js.map +1 -1
- package/dist/drift.d.ts +6 -6
- package/dist/drift.d.ts.map +1 -1
- package/dist/drift.js +8 -8
- package/dist/drift.js.map +1 -1
- package/dist/formatters.js +2 -2
- package/dist/formatters.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/rules/ast.d.ts +15 -11
- package/dist/rules/ast.d.ts.map +1 -1
- package/dist/rules/ast.js +34 -30
- package/dist/rules/ast.js.map +1 -1
- package/dist/rules/context-no-trailhead-types.d.ts +12 -0
- package/dist/rules/context-no-trailhead-types.d.ts.map +1 -0
- package/dist/rules/context-no-trailhead-types.js +96 -0
- package/dist/rules/context-no-trailhead-types.js.map +1 -0
- package/dist/rules/cross-declarations.d.ts +13 -0
- package/dist/rules/cross-declarations.d.ts.map +1 -0
- package/dist/rules/cross-declarations.js +264 -0
- package/dist/rules/cross-declarations.js.map +1 -0
- package/dist/rules/follow-declarations.d.ts +1 -1
- package/dist/rules/follow-declarations.js +5 -5
- package/dist/rules/follow-declarations.js.map +1 -1
- package/dist/rules/implementation-returns-result.d.ts +2 -2
- package/dist/rules/implementation-returns-result.js +6 -6
- package/dist/rules/implementation-returns-result.js.map +1 -1
- package/dist/rules/index.d.ts +4 -4
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +12 -12
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/no-direct-impl-in-route.d.ts +4 -4
- package/dist/rules/no-direct-impl-in-route.js +14 -14
- package/dist/rules/no-direct-impl-in-route.js.map +1 -1
- package/dist/rules/no-direct-implementation-call.d.ts +3 -3
- package/dist/rules/no-direct-implementation-call.js +7 -7
- package/dist/rules/no-direct-implementation-call.js.map +1 -1
- package/dist/rules/no-sync-result-assumption.d.ts +1 -1
- package/dist/rules/no-sync-result-assumption.js +5 -5
- package/dist/rules/no-sync-result-assumption.js.map +1 -1
- package/dist/rules/no-throw-in-detour-target.js +2 -2
- package/dist/rules/no-throw-in-detour-target.js.map +1 -1
- package/dist/rules/no-throw-in-implementation.d.ts +1 -1
- package/dist/rules/no-throw-in-implementation.js +3 -3
- package/dist/rules/no-throw-in-implementation.js.map +1 -1
- package/dist/rules/provision-declarations.d.ts +14 -0
- package/dist/rules/provision-declarations.d.ts.map +1 -0
- package/dist/rules/provision-declarations.js +344 -0
- package/dist/rules/provision-declarations.js.map +1 -0
- package/dist/rules/provision-exists.d.ts +6 -0
- package/dist/rules/provision-exists.d.ts.map +1 -0
- package/dist/rules/provision-exists.js +89 -0
- package/dist/rules/provision-exists.js.map +1 -0
- package/dist/rules/service-declarations.d.ts +7 -5
- package/dist/rules/service-declarations.d.ts.map +1 -1
- package/dist/rules/service-declarations.js +106 -103
- package/dist/rules/service-declarations.js.map +1 -1
- package/dist/rules/service-exists.d.ts +3 -1
- package/dist/rules/service-exists.d.ts.map +1 -1
- package/dist/rules/service-exists.js +35 -33
- package/dist/rules/service-exists.js.map +1 -1
- package/dist/rules/specs.d.ts +1 -1
- package/dist/rules/specs.d.ts.map +1 -1
- package/dist/rules/specs.js +1 -1
- package/dist/rules/specs.js.map +1 -1
- package/dist/rules/types.d.ts +2 -2
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/trails/context-no-surface-types.trail.js +1 -1
- package/dist/trails/context-no-trailhead-types.trail.d.ts +13 -0
- package/dist/trails/context-no-trailhead-types.trail.d.ts.map +1 -0
- package/dist/trails/context-no-trailhead-types.trail.js +21 -0
- package/dist/trails/context-no-trailhead-types.trail.js.map +1 -0
- package/dist/trails/cross-declarations.trail.d.ts +13 -0
- package/dist/trails/cross-declarations.trail.d.ts.map +1 -0
- package/dist/trails/cross-declarations.trail.js +22 -0
- package/dist/trails/cross-declarations.trail.js.map +1 -0
- package/dist/trails/follow-declarations.trail.js +1 -1
- package/dist/trails/implementation-returns-result.trail.js +1 -1
- package/dist/trails/index.d.ts +4 -4
- package/dist/trails/index.d.ts.map +1 -1
- package/dist/trails/index.js +4 -4
- package/dist/trails/index.js.map +1 -1
- package/dist/trails/no-direct-impl-in-route.trail.js +4 -4
- package/dist/trails/no-direct-impl-in-route.trail.js.map +1 -1
- package/dist/trails/no-direct-implementation-call.trail.js +2 -2
- package/dist/trails/no-direct-implementation-call.trail.js.map +1 -1
- package/dist/trails/no-sync-result-assumption.trail.js +2 -2
- package/dist/trails/no-sync-result-assumption.trail.js.map +1 -1
- package/dist/trails/no-throw-in-detour-target.trail.d.ts +1 -1
- package/dist/trails/no-throw-in-detour-target.trail.js +1 -1
- package/dist/trails/no-throw-in-implementation.trail.js +1 -1
- package/dist/trails/prefer-schema-inference.trail.js +1 -1
- package/dist/trails/provision-declarations.trail.d.ts +13 -0
- package/dist/trails/provision-declarations.trail.d.ts.map +1 -0
- package/dist/trails/provision-declarations.trail.js +25 -0
- package/dist/trails/provision-declarations.trail.js.map +1 -0
- package/dist/trails/provision-exists.trail.d.ts +15 -0
- package/dist/trails/provision-exists.trail.d.ts.map +1 -0
- package/dist/trails/provision-exists.trail.js +27 -0
- package/dist/trails/provision-exists.trail.js.map +1 -0
- package/dist/trails/run.d.ts +2 -2
- package/dist/trails/run.d.ts.map +1 -1
- package/dist/trails/run.js +6 -6
- package/dist/trails/run.js.map +1 -1
- package/dist/trails/schema.d.ts +1 -1
- package/dist/trails/schema.js +2 -2
- package/dist/trails/schema.js.map +1 -1
- package/dist/trails/service-declarations.trail.d.ts +13 -0
- package/dist/trails/service-declarations.trail.d.ts.map +1 -1
- package/dist/trails/service-declarations.trail.js +9 -7
- package/dist/trails/service-declarations.trail.js.map +1 -1
- package/dist/trails/service-exists.trail.d.ts +17 -0
- package/dist/trails/service-exists.trail.d.ts.map +1 -1
- package/dist/trails/service-exists.trail.js +10 -8
- package/dist/trails/service-exists.trail.js.map +1 -1
- package/dist/trails/valid-describe-refs.trail.d.ts +1 -1
- package/dist/trails/valid-detour-refs.trail.d.ts +1 -1
- package/dist/trails/valid-detour-refs.trail.js +2 -2
- package/dist/trails/wrap-rule.js +14 -14
- package/dist/trails/wrap-rule.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/cli.test.ts +8 -8
- package/src/__tests__/{follow-declarations.test.ts → cross-declarations.test.ts} +78 -78
- package/src/__tests__/drift.test.ts +5 -5
- package/src/__tests__/formatters.test.ts +2 -2
- package/src/__tests__/implementation-returns-result.test.ts +11 -11
- package/src/__tests__/no-direct-implementation-call.test.ts +10 -10
- package/src/__tests__/no-sync-result-assumption.test.ts +6 -6
- package/src/__tests__/no-throw-in-detour-target.test.ts +6 -6
- package/src/__tests__/prefer-schema-inference.test.ts +4 -4
- package/src/__tests__/provision-declarations.test.ts +318 -0
- package/src/__tests__/provision-exists.test.ts +122 -0
- package/src/__tests__/rules.test.ts +38 -38
- package/src/__tests__/valid-describe-refs.test.ts +4 -4
- package/src/__tests__/wrap-rule.test.ts +4 -4
- package/src/cli.ts +17 -13
- package/src/drift.ts +12 -12
- package/src/formatters.ts +2 -2
- package/src/index.ts +8 -8
- package/src/rules/ast.ts +36 -31
- package/src/rules/{context-no-surface-types.ts → context-no-trailhead-types.ts} +8 -8
- package/src/rules/{follow-declarations.ts → cross-declarations.ts} +63 -56
- package/src/rules/implementation-returns-result.ts +6 -6
- package/src/rules/index.ts +12 -12
- package/src/rules/no-direct-impl-in-route.ts +17 -17
- package/src/rules/no-direct-implementation-call.ts +7 -7
- package/src/rules/no-sync-result-assumption.ts +5 -5
- package/src/rules/no-throw-in-detour-target.ts +2 -2
- package/src/rules/no-throw-in-implementation.ts +3 -3
- package/src/rules/{service-declarations.ts → provision-declarations.ts} +145 -129
- package/src/rules/{service-exists.ts → provision-exists.ts} +51 -46
- package/src/rules/specs.ts +4 -4
- package/src/rules/types.ts +2 -2
- package/src/trails/{context-no-surface-types.trail.ts → context-no-trailhead-types.trail.ts} +5 -5
- package/src/trails/cross-declarations.trail.ts +22 -0
- package/src/trails/implementation-returns-result.trail.ts +1 -1
- package/src/trails/index.ts +4 -4
- package/src/trails/no-direct-impl-in-route.trail.ts +4 -4
- package/src/trails/no-direct-implementation-call.trail.ts +2 -2
- package/src/trails/no-sync-result-assumption.trail.ts +2 -2
- package/src/trails/no-throw-in-detour-target.trail.ts +1 -1
- package/src/trails/no-throw-in-implementation.trail.ts +1 -1
- package/src/trails/prefer-schema-inference.trail.ts +1 -1
- package/src/trails/provision-declarations.trail.ts +25 -0
- package/src/trails/provision-exists.trail.ts +27 -0
- package/src/trails/run.ts +7 -7
- package/src/trails/schema.ts +2 -2
- package/src/trails/valid-detour-refs.trail.ts +2 -2
- package/src/trails/wrap-rule.ts +17 -17
- package/tsconfig.tsbuildinfo +1 -1
- package/src/__tests__/service-declarations.test.ts +0 -318
- package/src/__tests__/service-exists.test.ts +0 -122
- package/src/trails/follow-declarations.trail.ts +0 -22
- package/src/trails/service-declarations.trail.ts +0 -25
- 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":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Validates that
|
|
2
|
+
* Validates that provision access matches the declared `provisions` array.
|
|
3
3
|
*
|
|
4
|
-
* Statically analyzes trail
|
|
5
|
-
* `ctx.
|
|
6
|
-
* `
|
|
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
|
|
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;
|
|
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
|
|
2
|
+
* Validates that provision access matches the declared `provisions` array.
|
|
3
3
|
*
|
|
4
|
-
* Statically analyzes trail
|
|
5
|
-
* `ctx.
|
|
6
|
-
* `
|
|
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 {
|
|
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 `
|
|
22
|
-
const
|
|
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
|
-
'
|
|
27
|
+
'provision');
|
|
28
28
|
};
|
|
29
|
-
/** Get `
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
if (!
|
|
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 =
|
|
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
|
|
43
|
-
const
|
|
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 ? (
|
|
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 (
|
|
54
|
+
if (isInlineProvisionCall(element)) {
|
|
55
55
|
return { id: extractFirstStringArg(element), name: null };
|
|
56
56
|
}
|
|
57
57
|
return null;
|
|
58
58
|
};
|
|
59
|
-
/** Extract declared
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
return
|
|
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
|
|
68
|
-
const extractContextParamName = (
|
|
69
|
-
const 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.
|
|
119
|
-
const
|
|
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 === '
|
|
121
|
+
return !!pair && ctxNames.has(pair.objName) && pair.propName === 'provision';
|
|
122
122
|
};
|
|
123
|
-
/** Extract `ctx.
|
|
124
|
-
const
|
|
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 (
|
|
129
|
+
if (isMemberProvisionCall(callee, ctxNames)) {
|
|
130
130
|
return extractFirstIdentifierArg(node);
|
|
131
131
|
}
|
|
132
|
-
if (
|
|
132
|
+
if (provisionAliases.has(identifierName(callee) ?? '')) {
|
|
133
133
|
return extractFirstIdentifierArg(node);
|
|
134
134
|
}
|
|
135
135
|
return null;
|
|
136
136
|
};
|
|
137
|
-
/** Extract `ctx.
|
|
138
|
-
const
|
|
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 (
|
|
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 &&
|
|
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
|
|
154
|
-
const
|
|
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 !== '
|
|
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
|
|
190
|
-
const
|
|
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
|
|
194
|
+
for (const body of findBlazeBodies(config)) {
|
|
195
195
|
const ctxNames = buildCtxNames(body);
|
|
196
|
-
const
|
|
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 =
|
|
202
|
+
const lookupId = extractLookupProvisionId(node, ctxNames, provisionAliases);
|
|
203
203
|
if (lookupId) {
|
|
204
204
|
lookupIds.add(lookupId);
|
|
205
205
|
}
|
|
206
|
-
const lookupName =
|
|
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
|
|
218
|
-
const buildUndeclaredFromDiagnostic = (trailId,
|
|
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}": ${
|
|
222
|
-
rule: '
|
|
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,
|
|
225
|
+
const buildUndeclaredLookupDiagnostic = (trailId, provisionId, filePath, line) => ({
|
|
226
226
|
filePath,
|
|
227
227
|
line,
|
|
228
|
-
message: `Trail "${trailId}": ctx.
|
|
229
|
-
rule: '
|
|
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,
|
|
232
|
+
const buildUndeclaredLookupNameDiagnostic = (trailId, provisionName, filePath, line) => ({
|
|
233
233
|
filePath,
|
|
234
234
|
line,
|
|
235
|
-
message: `Trail "${trailId}": ctx.
|
|
236
|
-
rule: '
|
|
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,
|
|
239
|
+
const buildUnusedDiagnostic = (trailId, declaredProvision, filePath, line) => ({
|
|
240
240
|
filePath,
|
|
241
241
|
line,
|
|
242
|
-
message: `Trail "${trailId}": '${
|
|
243
|
-
rule: '
|
|
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
|
|
250
|
-
if (
|
|
251
|
-
(
|
|
252
|
-
|
|
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 (
|
|
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 = (
|
|
261
|
-
const buildDeclaredIds = (
|
|
262
|
-
const reportUndeclaredFromCalls = (trailId, filePath, line,
|
|
263
|
-
for (const
|
|
264
|
-
if (!declaredNames.has(
|
|
265
|
-
diagnostics.push(buildUndeclaredFromDiagnostic(trailId,
|
|
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,
|
|
270
|
-
for (const
|
|
271
|
-
// Name-based lookup checks remain reliable even when an imported
|
|
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(
|
|
274
|
-
diagnostics.push(buildUndeclaredLookupNameDiagnostic(trailId,
|
|
274
|
+
if (!declaredNames.has(provisionName)) {
|
|
275
|
+
diagnostics.push(buildUndeclaredLookupNameDiagnostic(trailId, provisionName, filePath, line));
|
|
275
276
|
}
|
|
276
277
|
}
|
|
277
|
-
for (const
|
|
278
|
-
if (!declaredIds.has(
|
|
279
|
-
diagnostics.push(buildUndeclaredLookupDiagnostic(trailId,
|
|
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,
|
|
284
|
-
for (const
|
|
285
|
-
if (
|
|
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 (
|
|
289
|
+
if (declaredProvision.name && declaredProvision.id === null) {
|
|
289
290
|
continue;
|
|
290
291
|
}
|
|
291
|
-
diagnostics.push(buildUnusedDiagnostic(trailId,
|
|
292
|
+
diagnostics.push(buildUnusedDiagnostic(trailId, declaredProvision, filePath, line));
|
|
292
293
|
}
|
|
293
294
|
};
|
|
294
|
-
const
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
const analyzeTrailServices = (def, sourceCode,
|
|
299
|
-
const
|
|
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
|
-
|
|
302
|
-
declaredIds: buildDeclaredIds(
|
|
303
|
-
declaredNames: buildDeclaredNames(
|
|
304
|
-
|
|
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,
|
|
309
|
-
const {
|
|
310
|
-
if (
|
|
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,
|
|
314
|
-
reportUndeclaredLookupCalls(def.id, filePath, line,
|
|
315
|
-
reportUnusedDeclarations(def.id, filePath, line,
|
|
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
|
|
322
|
+
* Validates that provision access aligns with declared `provisions` arrays.
|
|
322
323
|
*/
|
|
323
|
-
export const
|
|
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
|
|
334
|
+
const provisionIdsByName = collectNamedProvisionIds(ast);
|
|
334
335
|
for (const def of findTrailDefinitions(ast)) {
|
|
335
|
-
checkTrailDefinition(def, filePath, sourceCode,
|
|
336
|
+
checkTrailDefinition(def, filePath, sourceCode, provisionIdsByName, diagnostics);
|
|
336
337
|
}
|
|
337
338
|
return diagnostics;
|
|
338
339
|
},
|
|
339
|
-
description: 'Ensure
|
|
340
|
-
name: '
|
|
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
|
|
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,
|
|
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"}
|