@opensip-cli/graph 0.1.13 → 0.1.15
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/README.md +2 -2
- package/dist/__tests__/baseline-plane.test.js +5 -1
- package/dist/__tests__/baseline-plane.test.js.map +1 -1
- package/dist/__tests__/cli/contribution-from-signals.test.js +15 -2
- package/dist/__tests__/cli/contribution-from-signals.test.js.map +1 -1
- package/dist/__tests__/cli/graph-config.test.js +6 -2
- package/dist/__tests__/cli/graph-config.test.js.map +1 -1
- package/dist/__tests__/cli/graph-execute.test.js +25 -5
- package/dist/__tests__/cli/graph-execute.test.js.map +1 -1
- package/dist/__tests__/cli/graph.test.js +42 -7
- package/dist/__tests__/cli/graph.test.js.map +1 -1
- package/dist/__tests__/cli/language-mismatch.test.js +8 -2
- package/dist/__tests__/cli/language-mismatch.test.js.map +1 -1
- package/dist/__tests__/cli/orchestrate.test.js +51 -9
- package/dist/__tests__/cli/orchestrate.test.js.map +1 -1
- package/dist/__tests__/cli/pressure-monitor.test.js +4 -1
- package/dist/__tests__/cli/pressure-monitor.test.js.map +1 -1
- package/dist/__tests__/cli/sarif-export.test.js.map +1 -1
- package/dist/__tests__/cli/symbol-index.test.js +15 -3
- package/dist/__tests__/cli/symbol-index.test.js.map +1 -1
- package/dist/__tests__/cli/workspace-runner-polyglot.test.js +25 -5
- package/dist/__tests__/cli/workspace-runner-polyglot.test.js.map +1 -1
- package/dist/__tests__/internal-surface.test.js +10 -0
- package/dist/__tests__/internal-surface.test.js.map +1 -1
- package/dist/__tests__/lang-adapter/registry.test.js.map +1 -1
- package/dist/__tests__/persistence/catalog-repo.test.js +8 -1
- package/dist/__tests__/persistence/catalog-repo.test.js.map +1 -1
- package/dist/__tests__/persistence/session-payload.test.js +44 -6
- package/dist/__tests__/persistence/session-payload.test.js.map +1 -1
- package/dist/__tests__/persistence/session-replay.test.js +28 -5
- package/dist/__tests__/persistence/session-replay.test.js.map +1 -1
- package/dist/__tests__/render/catalog-json.test.js.map +1 -1
- package/dist/__tests__/render/sarif-opensip.test.js +10 -2
- package/dist/__tests__/render/sarif-opensip.test.js.map +1 -1
- package/dist/__tests__/resolution-mode.test.js +5 -1
- package/dist/__tests__/resolution-mode.test.js.map +1 -1
- package/dist/__tests__/resolve-callee.test.js.map +1 -1
- package/dist/__tests__/rules/_entry-points.test.js +30 -6
- package/dist/__tests__/rules/_entry-points.test.js.map +1 -1
- package/dist/__tests__/rules/cycle-and-coupling.test.js +40 -6
- package/dist/__tests__/rules/cycle-and-coupling.test.js.map +1 -1
- package/dist/__tests__/rules/duplicated-function-body-config.test.js +50 -8
- package/dist/__tests__/rules/duplicated-function-body-config.test.js.map +1 -1
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js +64 -11
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js.map +1 -1
- package/dist/__tests__/rules/duplicated-function-body-self-match.test.js +5 -1
- package/dist/__tests__/rules/duplicated-function-body-self-match.test.js.map +1 -1
- package/dist/__tests__/rules/feature-column-parity.test.js +24 -5
- package/dist/__tests__/rules/feature-column-parity.test.js.map +1 -1
- package/dist/__tests__/rules/high-blast-untested.test.js +20 -4
- package/dist/__tests__/rules/high-blast-untested.test.js.map +1 -1
- package/dist/__tests__/rules/large-function.test.js +4 -1
- package/dist/__tests__/rules/large-function.test.js.map +1 -1
- package/dist/__tests__/rules/no-side-effect-path.test.js +164 -33
- package/dist/__tests__/rules/no-side-effect-path.test.js.map +1 -1
- package/dist/__tests__/rules/orphan-subtree-config.test.js +27 -6
- package/dist/__tests__/rules/orphan-subtree-config.test.js.map +1 -1
- package/dist/__tests__/rules/severity-override.test.js +18 -4
- package/dist/__tests__/rules/severity-override.test.js.map +1 -1
- package/dist/__tests__/rules/test-only-reachable.test.js +25 -5
- package/dist/__tests__/rules/test-only-reachable.test.js.map +1 -1
- package/dist/__tests__/rules/wide-function.test.js +10 -2
- package/dist/__tests__/rules/wide-function.test.js.map +1 -1
- package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -1
- package/dist/__tests__/test-utils/with-graph-scope.js +4 -1
- package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -1
- package/dist/__tests__/tool-branches.test.js +14 -3
- package/dist/__tests__/tool-branches.test.js.map +1 -1
- package/dist/__tests__/tool-register.test.js +24 -6
- package/dist/__tests__/tool-register.test.js.map +1 -1
- package/dist/__tests__/tool.test.js +2 -0
- package/dist/__tests__/tool.test.js.map +1 -1
- package/dist/cache/invalidate.d.ts +13 -0
- package/dist/cache/invalidate.d.ts.map +1 -1
- package/dist/cache/invalidate.js +7 -0
- package/dist/cache/invalidate.js.map +1 -1
- package/dist/cli/__tests__/build-envelope.test.js +8 -2
- package/dist/cli/__tests__/build-envelope.test.js.map +1 -1
- package/dist/cli/__tests__/equivalence-diagnostic.test.js +30 -7
- package/dist/cli/__tests__/equivalence-diagnostic.test.js.map +1 -1
- package/dist/cli/__tests__/graph-command-plan.test.js +9 -0
- package/dist/cli/__tests__/graph-command-plan.test.js.map +1 -1
- package/dist/cli/__tests__/graph-config-schema.test.js +9 -3
- package/dist/cli/__tests__/graph-config-schema.test.js.map +1 -1
- package/dist/cli/__tests__/graph-report.test.js +17 -3
- package/dist/cli/__tests__/graph-report.test.js.map +1 -1
- package/dist/cli/__tests__/graph-tracer.test.js +6 -1
- package/dist/cli/__tests__/graph-tracer.test.js.map +1 -1
- package/dist/cli/__tests__/impact.test.d.ts +2 -0
- package/dist/cli/__tests__/impact.test.d.ts.map +1 -0
- package/dist/cli/__tests__/impact.test.js +210 -0
- package/dist/cli/__tests__/impact.test.js.map +1 -0
- package/dist/cli/__tests__/orchestrate-spans.test.js +9 -2
- package/dist/cli/__tests__/orchestrate-spans.test.js.map +1 -1
- package/dist/cli/__tests__/shard-worker.test.js +4 -1
- package/dist/cli/__tests__/shard-worker.test.js.map +1 -1
- package/dist/cli/detect.d.ts.map +1 -1
- package/dist/cli/detect.js +5 -1
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/equivalence-diagnostic.d.ts.map +1 -1
- package/dist/cli/equivalence-diagnostic.js +13 -3
- package/dist/cli/equivalence-diagnostic.js.map +1 -1
- package/dist/cli/graph/graph-aux-command-specs.d.ts +2 -0
- package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -1
- package/dist/cli/graph/graph-aux-command-specs.js +57 -0
- package/dist/cli/graph/graph-aux-command-specs.js.map +1 -1
- package/dist/cli/graph/graph-command-spec.d.ts.map +1 -1
- package/dist/cli/graph/graph-command-spec.js +5 -1
- package/dist/cli/graph/graph-command-spec.js.map +1 -1
- package/dist/cli/graph-modes.d.ts.map +1 -1
- package/dist/cli/graph-modes.js +5 -1
- package/dist/cli/graph-modes.js.map +1 -1
- package/dist/cli/graph-options.d.ts +6 -0
- package/dist/cli/graph-options.d.ts.map +1 -1
- package/dist/cli/graph-progress.d.ts.map +1 -1
- package/dist/cli/graph-progress.js +5 -1
- package/dist/cli/graph-progress.js.map +1 -1
- package/dist/cli/graph-report.d.ts.map +1 -1
- package/dist/cli/graph-report.js +7 -2
- package/dist/cli/graph-report.js.map +1 -1
- package/dist/cli/graph-result-delivery.d.ts.map +1 -1
- package/dist/cli/graph-result-delivery.js +21 -3
- package/dist/cli/graph-result-delivery.js.map +1 -1
- package/dist/cli/impact.d.ts +23 -0
- package/dist/cli/impact.d.ts.map +1 -0
- package/dist/cli/impact.js +134 -0
- package/dist/cli/impact.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts.map +1 -1
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.js +21 -4
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts.map +1 -1
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js +12 -2
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js +14 -3
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js +5 -1
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/determinism.test.js +8 -1
- package/dist/cli/orchestrate/__tests__/determinism.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/edge-identity.test.js +8 -1
- package/dist/cli/orchestrate/__tests__/edge-identity.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.js +22 -3
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js +5 -1
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/equivalence.test.js +9 -2
- package/dist/cli/orchestrate/__tests__/equivalence.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js +5 -1
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/layout-equivalence.test.js +5 -1
- package/dist/cli/orchestrate/__tests__/layout-equivalence.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/partition-files.test.js +10 -2
- package/dist/cli/orchestrate/__tests__/partition-files.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js +5 -1
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js +3 -1
- package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js.map +1 -1
- package/dist/cli/orchestrate/catalog-builder.d.ts.map +1 -1
- package/dist/cli/orchestrate/catalog-builder.js +4 -1
- package/dist/cli/orchestrate/catalog-builder.js.map +1 -1
- package/dist/cli/orchestrate/cross-shard-resolve.d.ts.map +1 -1
- package/dist/cli/orchestrate/cross-shard-resolve.js +5 -1
- package/dist/cli/orchestrate/cross-shard-resolve.js.map +1 -1
- package/dist/cli/orchestrate/edge-identity.d.ts.map +1 -1
- package/dist/cli/orchestrate/edge-identity.js.map +1 -1
- package/dist/cli/orchestrate/partition-files.d.ts.map +1 -1
- package/dist/cli/orchestrate/partition-files.js +4 -1
- package/dist/cli/orchestrate/partition-files.js.map +1 -1
- package/dist/cli/shard-worker.d.ts.map +1 -1
- package/dist/cli/shard-worker.js +3 -1
- package/dist/cli/shard-worker.js.map +1 -1
- package/dist/cli/symbol-index.d.ts +26 -3
- package/dist/cli/symbol-index.d.ts.map +1 -1
- package/dist/cli/symbol-index.js +31 -0
- package/dist/cli/symbol-index.js.map +1 -1
- package/dist/cli/workspace-report.d.ts.map +1 -1
- package/dist/cli/workspace-report.js +4 -1
- package/dist/cli/workspace-report.js.map +1 -1
- package/dist/cross-package/export-index.js +8 -2
- package/dist/cross-package/export-index.js.map +1 -1
- package/dist/graph-catalog-thunk.d.ts +4 -0
- package/dist/graph-catalog-thunk.d.ts.map +1 -0
- package/dist/graph-catalog-thunk.js +23 -0
- package/dist/graph-catalog-thunk.js.map +1 -0
- package/dist/internal.d.ts +5 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +18 -0
- package/dist/internal.js.map +1 -1
- package/dist/persistence/__tests__/shard-fragment-cache.test.js +6 -1
- package/dist/persistence/__tests__/shard-fragment-cache.test.js.map +1 -1
- package/dist/persistence/session-payload.d.ts +3 -3
- package/dist/persistence/session-payload.d.ts.map +1 -1
- package/dist/persistence/session-payload.js +3 -19
- package/dist/persistence/session-payload.js.map +1 -1
- package/dist/pipeline/__tests__/constrain-edges.test.js +51 -9
- package/dist/pipeline/__tests__/constrain-edges.test.js.map +1 -1
- package/dist/pipeline/__tests__/features.test.js +74 -12
- package/dist/pipeline/__tests__/features.test.js.map +1 -1
- package/dist/pipeline/__tests__/indexes-imports.test.js +18 -3
- package/dist/pipeline/__tests__/indexes-imports.test.js.map +1 -1
- package/dist/pipeline/assign-packages.d.ts.map +1 -1
- package/dist/pipeline/assign-packages.js +4 -1
- package/dist/pipeline/assign-packages.js.map +1 -1
- package/dist/pipeline/features.d.ts.map +1 -1
- package/dist/pipeline/features.js +6 -1
- package/dist/pipeline/features.js.map +1 -1
- package/dist/recipes/__tests__/registry.test.js +4 -1
- package/dist/recipes/__tests__/registry.test.js.map +1 -1
- package/dist/recipes/__tests__/resolve.test.js +3 -1
- package/dist/recipes/__tests__/resolve.test.js.map +1 -1
- package/dist/recipes/built-in-recipes.d.ts +4 -0
- package/dist/recipes/built-in-recipes.d.ts.map +1 -1
- package/dist/recipes/built-in-recipes.js +30 -1
- package/dist/recipes/built-in-recipes.js.map +1 -1
- package/dist/recipes/registry.d.ts.map +1 -1
- package/dist/recipes/registry.js +4 -1
- package/dist/recipes/registry.js.map +1 -1
- package/dist/rules/__tests__/create-graph-signal.test.js +3 -1
- package/dist/rules/__tests__/create-graph-signal.test.js.map +1 -1
- package/dist/rules/__tests__/define-rule.test.js +15 -3
- package/dist/rules/__tests__/define-rule.test.js.map +1 -1
- package/dist/rules/__tests__/evaluate-rules.test.js +10 -2
- package/dist/rules/__tests__/evaluate-rules.test.js.map +1 -1
- package/dist/rules/__tests__/near-duplicate-function-body.test.js +6 -1
- package/dist/rules/__tests__/near-duplicate-function-body.test.js.map +1 -1
- package/dist/rules/__tests__/registry.test.js +4 -1
- package/dist/rules/__tests__/registry.test.js.map +1 -1
- package/dist/rules/__tests__/rule-behaviors.test.js +40 -8
- package/dist/rules/__tests__/rule-behaviors.test.js.map +1 -1
- package/dist/rules/create-graph-signal.d.ts +2 -1
- package/dist/rules/create-graph-signal.d.ts.map +1 -1
- package/dist/rules/create-graph-signal.js +1 -0
- package/dist/rules/create-graph-signal.js.map +1 -1
- package/dist/rules/cycle.d.ts.map +1 -1
- package/dist/rules/cycle.js +6 -1
- package/dist/rules/cycle.js.map +1 -1
- package/dist/rules/cycle.memberlocations.test.js +18 -3
- package/dist/rules/cycle.memberlocations.test.js.map +1 -1
- package/dist/rules/define-rule.d.ts.map +1 -1
- package/dist/rules/define-rule.js +7 -1
- package/dist/rules/define-rule.js.map +1 -1
- package/dist/rules/duplicated-function-body.js +5 -1
- package/dist/rules/duplicated-function-body.js.map +1 -1
- package/dist/rules/high-blast-untested.d.ts.map +1 -1
- package/dist/rules/high-blast-untested.js +1 -0
- package/dist/rules/high-blast-untested.js.map +1 -1
- package/dist/rules/large-function.d.ts.map +1 -1
- package/dist/rules/large-function.js +6 -0
- package/dist/rules/large-function.js.map +1 -1
- package/dist/rules/near-duplicate-function-body.d.ts.map +1 -1
- package/dist/rules/near-duplicate-function-body.js +5 -1
- package/dist/rules/near-duplicate-function-body.js.map +1 -1
- package/dist/rules/unexpected-coupling.d.ts.map +1 -1
- package/dist/rules/unexpected-coupling.js +0 -0
- package/dist/rules/unexpected-coupling.js.map +1 -1
- package/dist/rules/wide-function.d.ts.map +1 -1
- package/dist/rules/wide-function.js +1 -0
- package/dist/rules/wide-function.js.map +1 -1
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +11 -2
- package/dist/tool.js.map +1 -1
- package/package.json +71 -10
|
@@ -17,7 +17,11 @@ const INDEXES = { byBodyHash: new Map() };
|
|
|
17
17
|
const CONFIG = {};
|
|
18
18
|
describe('defineRule', () => {
|
|
19
19
|
it('returns an object satisfying the Rule interface', () => {
|
|
20
|
-
const rule = defineRule({
|
|
20
|
+
const rule = defineRule({
|
|
21
|
+
slug: 'graph:demo',
|
|
22
|
+
defaultSeverity: 'warning',
|
|
23
|
+
evaluate: () => [],
|
|
24
|
+
});
|
|
21
25
|
expect(rule.slug).toBe('graph:demo');
|
|
22
26
|
expect(rule.defaultSeverity).toBe('warning');
|
|
23
27
|
expect(typeof rule.evaluate).toBe('function');
|
|
@@ -85,11 +89,19 @@ describe('defineRule', () => {
|
|
|
85
89
|
expect(rule.evaluate(CATALOG, INDEXES, CONFIG, undefined)).toEqual([sig]);
|
|
86
90
|
});
|
|
87
91
|
it('throws ValidationError on an invalid slug', () => {
|
|
88
|
-
expect(() => defineRule({
|
|
92
|
+
expect(() => defineRule({
|
|
93
|
+
slug: 'demo',
|
|
94
|
+
defaultSeverity: 'warning',
|
|
95
|
+
evaluate: () => [],
|
|
96
|
+
})).toThrow(ValidationError);
|
|
89
97
|
expect(() => defineRule({ slug: '', defaultSeverity: 'warning', evaluate: () => [] })).toThrow(ValidationError);
|
|
90
98
|
});
|
|
91
99
|
it('throws ValidationError on an invalid defaultSeverity', () => {
|
|
92
|
-
expect(() => defineRule({
|
|
100
|
+
expect(() => defineRule({
|
|
101
|
+
slug: 'graph:demo',
|
|
102
|
+
defaultSeverity: 'fatal',
|
|
103
|
+
evaluate: () => [],
|
|
104
|
+
})).toThrow(ValidationError);
|
|
93
105
|
});
|
|
94
106
|
it('throws ValidationError when evaluate is not a function', () => {
|
|
95
107
|
expect(() => defineRule({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-rule.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/define-rule.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM/C,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,EAAE,EAAwB,CAAC;AACxD,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAwB,CAAC;AAChE,MAAM,MAAM,GAAgB,EAAE,CAAC;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,IAAI,GAAG,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"define-rule.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/define-rule.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,11 @@ const INDEXES = {
|
|
|
34
34
|
callers: new Map(),
|
|
35
35
|
};
|
|
36
36
|
function sig(slug, message) {
|
|
37
|
-
return createGraphSignal(slug, CONFIG, {
|
|
37
|
+
return createGraphSignal(slug, CONFIG, {
|
|
38
|
+
severity: 'low',
|
|
39
|
+
category: 'quality',
|
|
40
|
+
message,
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
/** A rule whose `evaluate` returns a fixed signal list (ignores its inputs). */
|
|
40
44
|
function fakeRule(slug, signals) {
|
|
@@ -59,7 +63,11 @@ describe('evaluateRules', () => {
|
|
|
59
63
|
fakeRule('graph:b', [b1, b2]),
|
|
60
64
|
fakeRule('graph:c', [c]),
|
|
61
65
|
];
|
|
62
|
-
const out = evaluateRules(rules, {
|
|
66
|
+
const out = evaluateRules(rules, {
|
|
67
|
+
catalog: CATALOG,
|
|
68
|
+
indexes: INDEXES,
|
|
69
|
+
config: CONFIG,
|
|
70
|
+
});
|
|
63
71
|
expect(out).toEqual([a, b1, b2, c]);
|
|
64
72
|
});
|
|
65
73
|
it('emits one graph.rule.evaluated debug event per rule, in order', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate-rules.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/evaluate-rules.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,MAAM,GAAG,EAAiB,CAAC;AAEjC,MAAM,OAAO,GAAY;IACvB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,UAAU,EAAE,IAAI,GAAG,EAAE;IACrB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,iBAAiB,EAAE,IAAI,GAAG,EAAE;IAC5B,sBAAsB,EAAE,IAAI,GAAG,EAAE;IACjC,YAAY,EAAE,IAAI,GAAG,EAAE;IACvB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,OAAO,EAAE,IAAI,GAAG,EAAE;CACnB,CAAC;AAEF,SAAS,GAAG,CAAC,IAAY,EAAE,OAAe;IACxC,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"evaluate-rules.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/evaluate-rules.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,MAAM,GAAG,EAAiB,CAAC;AAEjC,MAAM,OAAO,GAAY;IACvB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,UAAU,EAAE,IAAI,GAAG,EAAE;IACrB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,iBAAiB,EAAE,IAAI,GAAG,EAAE;IAC5B,sBAAsB,EAAE,IAAI,GAAG,EAAE;IACjC,YAAY,EAAE,IAAI,GAAG,EAAE;IACvB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,OAAO,EAAE,IAAI,GAAG,EAAE;CACnB,CAAC;AAEF,SAAS,GAAG,CAAC,IAAY,EAAE,OAAe;IACxC,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE;QACrC,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,SAAS;QACnB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,SAAS,QAAQ,CAAC,IAAY,EAAE,OAA0B;IACxD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,UAAU,CAAC,GAAgC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK;SAClB,GAAG,CAAC,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC,MAAM,CACL,CAAC,CAAU,EAAgC,EAAE,CAC3C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAsB,CAAC,GAAG,KAAK,iBAAiB,CAC3F,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC;QAEF,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE;YAC/B,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE/E,aAAa,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE;YAChE,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB,MAAM,CACL,CAAC,CAAC,EAAgC,EAAE,CAClC,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACT,CAAsB,CAAC,GAAG,KAAK,sBAAsB,CACzD,CAAC;QACJ,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,kEAAkE;QAClE,wEAAwE;QACxE,6CAA6C;QAC7C,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;aACzB,mBAAmB,CAAC,CAAC,CAAC;aACtB,mBAAmB,CAAC,IAAI,CAAC;aACzB,mBAAmB,CAAC,IAAI,CAAC;aACzB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7B,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE7E,aAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE;YACtE,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,sEAAsE;QACtE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;aACzB,mBAAmB,CAAC,CAAC,CAAC;aACtB,mBAAmB,CAAC,GAAG,CAAC;aACxB,mBAAmB,CAAC,GAAG,CAAC;aACxB,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE7E,aAAa,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE;YAChE,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -133,7 +133,12 @@ describe('near-duplicate-function-body', () => {
|
|
|
133
133
|
// 128 / 7 is fractional → band slicing would be misaligned. The integer guard
|
|
134
134
|
// must reject it (the schema also refuses this value at config load).
|
|
135
135
|
const a = withSignature({ bodyHash: 'hash-a', simpleName: 'pA', filePath: 'src/a.ts' }, BASE_BODY);
|
|
136
|
-
const b = withSignature({
|
|
136
|
+
const b = withSignature({
|
|
137
|
+
bodyHash: 'hash-b',
|
|
138
|
+
simpleName: 'pB',
|
|
139
|
+
filePath: 'src/b.ts',
|
|
140
|
+
qualifiedName: 'src/b.pB',
|
|
141
|
+
}, NEAR_BODY);
|
|
137
142
|
expect(evaluateNear(makeCatalog([a, b]), { nearDuplicateLshBands: 7 })).toHaveLength(0);
|
|
138
143
|
// ...but the same pair IS flagged with a valid divisor.
|
|
139
144
|
expect(evaluateNear(makeCatalog([a, b]), { nearDuplicateLshBands: 16 })).toHaveLength(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"near-duplicate-function-body.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/near-duplicate-function-body.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"near-duplicate-function-body.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/near-duplicate-function-body.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,10 @@ import { createRulesRegistry, currentRules } from '../registry.js';
|
|
|
10
10
|
* `@opensip-cli/core/test-utils` helper (ADR-0040: that sugar moved to
|
|
11
11
|
* `@opensip-cli/test-support`, which this package's tests cannot use
|
|
12
12
|
* without coupling its test graph to the fitness engine). */
|
|
13
|
-
const makeTestScope = () => new RunScope({
|
|
13
|
+
const makeTestScope = () => new RunScope({
|
|
14
|
+
languages: new LanguageRegistry(),
|
|
15
|
+
tools: new ToolRegistry(),
|
|
16
|
+
});
|
|
14
17
|
describe('GraphRulesRegistry', () => {
|
|
15
18
|
it('seeds the built-in rules on construction', () => {
|
|
16
19
|
const registry = createRulesRegistry();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/registry.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;;8DAG8D;AAC9D,MAAM,aAAa,GAAG,GAAa,EAAE,CACnC,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/registry.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;;8DAG8D;AAC9D,MAAM,aAAa,GAAG,GAAa,EAAE,CACnC,IAAI,QAAQ,CAAC;IACX,SAAS,EAAE,IAAI,gBAAgB,EAAE;IACjC,KAAK,EAAE,IAAI,YAAY,EAAE;CAC1B,CAAC,CAAC;AAEL,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,oDAAoD;QACpD,KAAK,MAAM,IAAI,IAAI,GAAG;YAAE,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,mEAAmE;QACnE,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAC3E,yBAAyB,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -69,8 +69,16 @@ function pureCatalog() {
|
|
|
69
69
|
endLine: 20,
|
|
70
70
|
calls: [edge('LEAF1'), edge('LEAF2')],
|
|
71
71
|
});
|
|
72
|
-
const leaf1 = occ({
|
|
73
|
-
|
|
72
|
+
const leaf1 = occ({
|
|
73
|
+
bodyHash: 'LEAF1',
|
|
74
|
+
simpleName: 'leaf1',
|
|
75
|
+
visibility: 'module-local',
|
|
76
|
+
});
|
|
77
|
+
const leaf2 = occ({
|
|
78
|
+
bodyHash: 'LEAF2',
|
|
79
|
+
simpleName: 'leaf2',
|
|
80
|
+
visibility: 'module-local',
|
|
81
|
+
});
|
|
74
82
|
const caller = occ({
|
|
75
83
|
bodyHash: 'CALLER',
|
|
76
84
|
simpleName: 'driver',
|
|
@@ -102,7 +110,11 @@ describe('noSideEffectPathRule', () => {
|
|
|
102
110
|
visibility: 'module-local',
|
|
103
111
|
calls: [edge('X', { text: 'print(x)' })],
|
|
104
112
|
}),
|
|
105
|
-
occ({
|
|
113
|
+
occ({
|
|
114
|
+
bodyHash: 'LEAF2',
|
|
115
|
+
simpleName: 'leaf2',
|
|
116
|
+
visibility: 'module-local',
|
|
117
|
+
}),
|
|
106
118
|
occ({
|
|
107
119
|
bodyHash: 'CALLER',
|
|
108
120
|
simpleName: 'driver',
|
|
@@ -122,8 +134,16 @@ describe('noSideEffectPathRule', () => {
|
|
|
122
134
|
endLine: 20,
|
|
123
135
|
calls: [edge('LEAF1'), edge('LEAF2')],
|
|
124
136
|
}),
|
|
125
|
-
occ({
|
|
126
|
-
|
|
137
|
+
occ({
|
|
138
|
+
bodyHash: 'LEAF1',
|
|
139
|
+
simpleName: 'leaf1',
|
|
140
|
+
visibility: 'module-local',
|
|
141
|
+
}),
|
|
142
|
+
occ({
|
|
143
|
+
bodyHash: 'LEAF2',
|
|
144
|
+
simpleName: 'leaf2',
|
|
145
|
+
visibility: 'module-local',
|
|
146
|
+
}),
|
|
127
147
|
occ({
|
|
128
148
|
bodyHash: 'CALLER',
|
|
129
149
|
simpleName: 'driver',
|
|
@@ -139,7 +159,11 @@ describe('orphanSubtreeRule', () => {
|
|
|
139
159
|
it('flags a module-local function unreachable from any entry point', () => {
|
|
140
160
|
// entry (exported, uncalled) → reachable; orphan (module-local, uncalled) → orphan.
|
|
141
161
|
const entry = occ({ bodyHash: 'ENTRY', simpleName: 'run', calls: [] });
|
|
142
|
-
const orphan = occ({
|
|
162
|
+
const orphan = occ({
|
|
163
|
+
bodyHash: 'ORPHAN',
|
|
164
|
+
simpleName: 'dead',
|
|
165
|
+
visibility: 'module-local',
|
|
166
|
+
});
|
|
143
167
|
const catalog = catalogOf([entry, orphan]);
|
|
144
168
|
const signals = orphanSubtreeRule.evaluate(catalog, buildIndexes(catalog), EMPTY_CONFIG, undefined);
|
|
145
169
|
const names = signals.map((s) => s.metadata?.simpleName);
|
|
@@ -162,7 +186,11 @@ describe('testOnlyReachableRule', () => {
|
|
|
162
186
|
it('flags a module-local function whose only caller is a test file', () => {
|
|
163
187
|
// A production entry that reaches `prodReached` keeps it off the list;
|
|
164
188
|
// `testFixture` is module-local and reached only from a test-file caller.
|
|
165
|
-
const entry = occ({
|
|
189
|
+
const entry = occ({
|
|
190
|
+
bodyHash: 'ENTRY',
|
|
191
|
+
simpleName: 'run',
|
|
192
|
+
calls: [edge('PRODREACHED')],
|
|
193
|
+
});
|
|
166
194
|
const prodReached = occ({
|
|
167
195
|
bodyHash: 'PRODREACHED',
|
|
168
196
|
simpleName: 'prodReached',
|
|
@@ -195,7 +223,11 @@ describe('testOnlyReachableRule', () => {
|
|
|
195
223
|
visibility: 'module-local',
|
|
196
224
|
calls: [edge('API')],
|
|
197
225
|
});
|
|
198
|
-
const exportedApi = occ({
|
|
226
|
+
const exportedApi = occ({
|
|
227
|
+
bodyHash: 'API',
|
|
228
|
+
simpleName: 'publicApi',
|
|
229
|
+
visibility: 'exported',
|
|
230
|
+
});
|
|
199
231
|
const catalog = catalogOf([exportedApi, testCaller]);
|
|
200
232
|
const signals = testOnlyReachableRule.evaluate(catalog, buildIndexes(catalog), EMPTY_CONFIG, undefined);
|
|
201
233
|
expect(signals.map((s) => s.metadata?.qualifiedName)).not.toContain('src/a.publicApi');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-behaviors.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/rule-behaviors.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,SAAS,GAAG,CACV,IAA4E;IAE5E,OAAO;QACL,aAAa,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE;QACzC,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,EAAE;QACT,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAmC;IACpD,MAAM,SAAS,GAAyC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YACtB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,cAAc,EAAE,OAAO;QACvB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAU,EAAE,OAA0B,EAAE;IACpD,OAAO;QACL,EAAE,EAAE,CAAC,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,GAAG,EAAE,IAAI;QACf,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAgB,EAAE,CAAC;AAErC,wEAAwE;AACxE,yEAAyE;AACzE,SAAS,WAAW;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC;QACf,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"rule-behaviors.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/rule-behaviors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* The `body.severity` is the rule's per-signal CHOICE (its data, not identity);
|
|
14
14
|
* the override (`GraphConfig.severityOverrides[slug]`) is applied on top here.
|
|
15
15
|
*/
|
|
16
|
-
import { type Signal, type SignalCategory, type SignalSeverity } from '@opensip-cli/core';
|
|
16
|
+
import { type Signal, type SignalCategory, type SignalRepair, type SignalSeverity } from '@opensip-cli/core';
|
|
17
17
|
import type { GraphConfig } from '../types.js';
|
|
18
18
|
/** The per-signal data a graph rule supplies — everything EXCEPT the stamped identity. */
|
|
19
19
|
export interface GraphSignalBody {
|
|
@@ -28,6 +28,7 @@ export interface GraphSignalBody {
|
|
|
28
28
|
};
|
|
29
29
|
readonly suggestion?: string;
|
|
30
30
|
readonly metadata?: Record<string, unknown>;
|
|
31
|
+
readonly repair?: SignalRepair;
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
34
|
* Build a graph {@link Signal}, stamping `source: 'graph'` + `ruleId: slug` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-graph-signal.d.ts","sourceRoot":"","sources":["../../src/rules/create-graph-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-graph-signal.d.ts","sourceRoot":"","sources":["../../src/rules/create-graph-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,eAAe,GACpB,MAAM,CAYR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-graph-signal.js","sourceRoot":"","sources":["../../src/rules/create-graph-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"create-graph-signal.js","sourceRoot":"","sources":["../../src/rules/create-graph-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAiBhE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,MAAmB,EACnB,IAAqB;IAErB,OAAO,YAAY,CAAC;QAClB,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;QAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cycle.d.ts","sourceRoot":"","sources":["../../src/rules/cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"cycle.d.ts","sourceRoot":"","sources":["../../src/rules/cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH,eAAO,MAAM,SAAS,4BA2DpB,CAAC"}
|
package/dist/rules/cycle.js
CHANGED
|
@@ -63,9 +63,14 @@ export const cycleRule = defineRule({
|
|
|
63
63
|
severity: base,
|
|
64
64
|
category: 'architecture',
|
|
65
65
|
message: `${anchor.simpleName} is part of a ${String(scc.sccSize)}-function call cycle${scc.crossesPackages ? ' spanning multiple packages' : ''}.`,
|
|
66
|
-
code: {
|
|
66
|
+
code: {
|
|
67
|
+
file: anchor.filePath,
|
|
68
|
+
line: anchor.line,
|
|
69
|
+
column: anchor.column,
|
|
70
|
+
},
|
|
67
71
|
suggestion: 'Break the cycle: invert one dependency or extract the shared piece.',
|
|
68
72
|
metadata: {
|
|
73
|
+
highImpact: scc.crossesPackages || scc.sccSize >= minSize,
|
|
69
74
|
sccId: scc.id,
|
|
70
75
|
sccSize: scc.sccSize,
|
|
71
76
|
crossesPackages: scc.crossesPackages,
|
package/dist/rules/cycle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cycle.js","sourceRoot":"","sources":["../../src/rules/cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,aAAa;IACnB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,uEAAuE;QACvE,sBAAsB;QACtB,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,sBAAsB,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAEjD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9C,oBAAoB;YACpB,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,qEAAqE;YACrE,IAAI,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;gBAAE,SAAS;YAC1C,2DAA2D;YAC3D,kEAAkE;YAClE,oEAAoE;YACpE,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE;gBACvC,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,GAAG;gBACnJ,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"cycle.js","sourceRoot":"","sources":["../../src/rules/cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,aAAa;IACnB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,uEAAuE;QACvE,sBAAsB;QACtB,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,sBAAsB,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAEjD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9C,oBAAoB;YACpB,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,qEAAqE;YACrE,IAAI,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;gBAAE,SAAS;YAC1C,2DAA2D;YAC3D,kEAAkE;YAClE,oEAAoE;YACpE,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE;gBACvC,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,GAAG;gBACnJ,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM,CAAC,QAAQ;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB;gBACD,UAAU,EAAE,qEAAqE;gBACjF,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO;oBACzD,KAAK,EAAE,GAAG,CAAC,EAAE;oBACb,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,eAAe,EAAE,GAAG,CAAC,eAAe;oBACpC,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,mEAAmE;oBACnE,6DAA6D;oBAC7D,0CAA0C;oBAC1C,mBAAmB,EAAE,eAAe;oBACpC,+DAA+D;oBAC/D,kEAAkE;oBAClE,mEAAmE;oBACnE,4BAA4B;oBAC5B,eAAe,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC;iBAC/C;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAS,OAAO,CACd,GAAgB,EAChB,OAAe,EACf,KAAoB;IAEpB,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,GAAG,CAAC,eAAe;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,GAAgB,EAAE,OAAgB;IAC1D,IAAI,MAAsC,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;YAAE,MAAM,GAAG,GAAG,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAgB,EAAE,OAAgB;IACvD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CAAC,GAAgB,EAAE,OAAgB;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,GAAG;YAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,GAAgB,EAChB,OAAgB;IAEhB,MAAM,SAAS,GAAqC,EAAE,CAAC;IACvD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,GAAG,EAAE,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -58,9 +58,24 @@ const EMPTY_CONFIG = {};
|
|
|
58
58
|
describe('cycleRule memberLocations', () => {
|
|
59
59
|
it('attaches a non-empty memberLocations array covering the SCC members', () => {
|
|
60
60
|
// A 3-member intra-package cycle (size ≥ default cycleMinSize → medium band).
|
|
61
|
-
const a = occ({
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
const a = occ({
|
|
62
|
+
bodyHash: 'A',
|
|
63
|
+
simpleName: 'a',
|
|
64
|
+
filePath: 'src/a.ts',
|
|
65
|
+
line: 3,
|
|
66
|
+
});
|
|
67
|
+
const b = occ({
|
|
68
|
+
bodyHash: 'B',
|
|
69
|
+
simpleName: 'b',
|
|
70
|
+
filePath: 'src/b.ts',
|
|
71
|
+
line: 7,
|
|
72
|
+
});
|
|
73
|
+
const c = occ({
|
|
74
|
+
bodyHash: 'C',
|
|
75
|
+
simpleName: 'c',
|
|
76
|
+
filePath: 'src/c.ts',
|
|
77
|
+
line: 11,
|
|
78
|
+
});
|
|
64
79
|
const catalog = catalogOf([a, b, c]);
|
|
65
80
|
// Members are occIds (`${filePath}:${line}:${column}`), resolved via byOccId.
|
|
66
81
|
const scc = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cycle.memberlocations.test.js","sourceRoot":"","sources":["../../src/rules/cycle.memberlocations.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,SAAS,GAAG,CACV,IAKC;IAED,OAAO;QACL,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;QACpD,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QACtB,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,EAAE;QACT,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAmC;IACpD,MAAM,SAAS,GAAyC,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YACtB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,cAAc,EAAE,OAAO;QACvB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAgB;IACpC,OAAO;QACL,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,GAAG,EAAE,CAAC,GAAG,CAAC;QACV,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAgB,EAAE,CAAC;AAErC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,8EAA8E;QAC9E,MAAM,CAAC,GAAG,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"cycle.memberlocations.test.js","sourceRoot":"","sources":["../../src/rules/cycle.memberlocations.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-rule.d.ts","sourceRoot":"","sources":["../../src/rules/define-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;sEACkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CAClC;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,MAAM,EAAE,CAAC;CAC7D;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"define-rule.d.ts","sourceRoot":"","sources":["../../src/rules/define-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;sEACkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CAClC;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,MAAM,EAAE,CAAC;CAC7D;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAqDzD"}
|
|
@@ -55,7 +55,13 @@ export function defineRule(config) {
|
|
|
55
55
|
evaluate(catalog, indexes, ruleConfig, hints, features) {
|
|
56
56
|
// The orchestrator threads the engine-computed FeatureTable as the 5th
|
|
57
57
|
// positional arg (Plan C); `features` is undefined on 3/4-arg test calls.
|
|
58
|
-
return config.evaluate({
|
|
58
|
+
return config.evaluate({
|
|
59
|
+
catalog,
|
|
60
|
+
indexes,
|
|
61
|
+
config: ruleConfig,
|
|
62
|
+
hints,
|
|
63
|
+
features,
|
|
64
|
+
});
|
|
59
65
|
},
|
|
60
66
|
};
|
|
61
67
|
return Object.freeze(rule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-rule.js","sourceRoot":"","sources":["../../src/rules/define-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiDpD,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,IACE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EACjC,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,6EAA6E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAC3G;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,OAAO,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC/E,MAAM,IAAI,eAAe,CACvB,mEAAmE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAC5G;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CACvB,uDAAuD,MAAM,CAAC,IAAI,GAAG,EACrE;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,QAAQ,CACN,OAAgB,EAChB,OAAgB,EAChB,UAAuB,EACvB,KAAiB,EACjB,QAAuB;YAEvB,uEAAuE;YACvE,0EAA0E;YAC1E,OAAO,MAAM,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"define-rule.js","sourceRoot":"","sources":["../../src/rules/define-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiDpD,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,IACE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EACjC,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,6EAA6E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAC3G;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,KAAK,OAAO,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC/E,MAAM,IAAI,eAAe,CACvB,mEAAmE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAC5G;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CACvB,uDAAuD,MAAM,CAAC,IAAI,GAAG,EACrE;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAS;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,QAAQ,CACN,OAAgB,EAChB,OAAgB,EAChB,UAAuB,EACvB,KAAiB,EACjB,QAAuB;YAEvB,uEAAuE;YACvE,0EAA0E;YAC1E,OAAO,MAAM,CAAC,QAAQ,CAAC;gBACrB,OAAO;gBACP,OAAO;gBACP,MAAM,EAAE,UAAU;gBAClB,KAAK;gBACL,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -44,7 +44,11 @@ function aggregateSignal(agg, config) {
|
|
|
44
44
|
severity: 'low',
|
|
45
45
|
category: 'quality',
|
|
46
46
|
message: `This body is duplicated across ${String(agg.packages.length)} packages (${agg.packages.join(', ')}) in ${String(agg.occurrenceCount)} occurrences — hoist it into a shared package.`,
|
|
47
|
-
code: {
|
|
47
|
+
code: {
|
|
48
|
+
file: agg.anchor.filePath,
|
|
49
|
+
line: agg.anchor.line,
|
|
50
|
+
column: agg.anchor.column,
|
|
51
|
+
},
|
|
48
52
|
suggestion: 'Hoist the shared body into a single shared package and have every copy import it.',
|
|
49
53
|
metadata: {
|
|
50
54
|
packages: agg.packages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicated-function-body.js","sourceRoot":"","sources":["../../src/rules/duplicated-function-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAM9C,MAAM,IAAI,GAAG,gCAAgC,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;IACnD,IAAI,EAAE,IAAI;IACV,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,UAAU,EAAE;YAC7D,QAAQ,EAAE,MAAM,CAAC,qBAAqB;YACtC,WAAW,EAAE,MAAM,CAAC,oBAAoB;YACxC,uBAAuB,EAAE,MAAM,CAAC,gCAAgC;YAChE,uBAAuB,EAAE,MAAM,CAAC,gCAAgC;SACjE,CAAC,CAAC;QAEH,kFAAkF;QAClF,qFAAqF;QACrF,OAAO;YACL,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxD,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,eAAe,CACtB,GAAiE,EACjE,MAAmB;IAEnB,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE;QACrC,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,kCAAkC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,gDAAgD;QAC9L,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"duplicated-function-body.js","sourceRoot":"","sources":["../../src/rules/duplicated-function-body.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"high-blast-untested.d.ts","sourceRoot":"","sources":["../../src/rules/high-blast-untested.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"high-blast-untested.d.ts","sourceRoot":"","sources":["../../src/rules/high-blast-untested.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,eAAO,MAAM,qBAAqB,4BAkDhC,CAAC"}
|
|
@@ -68,6 +68,7 @@ export const highBlastUntestedRule = defineRule({
|
|
|
68
68
|
code: { file: occ.filePath, line: occ.line, column: occ.column },
|
|
69
69
|
suggestion: 'Add a test that exercises this high-reach function.',
|
|
70
70
|
metadata: {
|
|
71
|
+
highImpact: true,
|
|
71
72
|
blast: score,
|
|
72
73
|
blastDirect: blast.direct,
|
|
73
74
|
blastTransitive: blast.transitive,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"high-blast-untested.js","sourceRoot":"","sources":["../../src/rules/high-blast-untested.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,2BAA2B;IACjC,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,sBAAsB,IAAI,kBAAkB,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAuB,IAAI,mBAAmB,CAAC;QAEpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,oBAAoB;YACpB,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC5B,yEAAyE;YACzE,wEAAwE;YACxE,4EAA4E;YAC5E,IAAI,GAAG,CAAC,UAAU;gBAAE,SAAS;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC;YACzB,wDAAwD;YACxD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,uEAAuE;YACvE,wEAAwE;YACxE,mEAAmE;YACnE,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI;gBAAE,SAAS;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,IAAI,KAAK,GAAG,IAAI;gBAAE,SAAS;YAC3B,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChD,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,2BAA2B,EAAE,MAAM,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,GAAG,CAAC,UAAU,mCAAmC,MAAM,CAAC,KAAK,CAAC,mCAAmC;gBAC7G,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;gBAChE,UAAU,EAAE,qDAAqD;gBACjE,QAAQ,EAAE;oBACR,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,KAAK,CAAC,MAAM;oBACzB,eAAe,EAAE,KAAK,CAAC,UAAU;oBACjC,aAAa,EAAE,KAAK;oBACpB,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"high-blast-untested.js","sourceRoot":"","sources":["../../src/rules/high-blast-untested.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,2BAA2B;IACjC,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,sBAAsB,IAAI,kBAAkB,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAuB,IAAI,mBAAmB,CAAC;QAEpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,oBAAoB;YACpB,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC5B,yEAAyE;YACzE,wEAAwE;YACxE,4EAA4E;YAC5E,IAAI,GAAG,CAAC,UAAU;gBAAE,SAAS;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC;YACzB,wDAAwD;YACxD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,uEAAuE;YACvE,wEAAwE;YACxE,mEAAmE;YACnE,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI;gBAAE,SAAS;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,IAAI,KAAK,GAAG,IAAI;gBAAE,SAAS;YAC3B,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChD,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,2BAA2B,EAAE,MAAM,EAAE;gBACrD,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,GAAG,CAAC,UAAU,mCAAmC,MAAM,CAAC,KAAK,CAAC,mCAAmC;gBAC7G,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;gBAChE,UAAU,EAAE,qDAAqD;gBACjE,QAAQ,EAAE;oBACR,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,KAAK,CAAC,MAAM;oBACzB,eAAe,EAAE,KAAK,CAAC,UAAU;oBACjC,aAAa,EAAE,KAAK;oBACpB,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"large-function.d.ts","sourceRoot":"","sources":["../../src/rules/large-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"large-function.d.ts","sourceRoot":"","sources":["../../src/rules/large-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,eAAO,MAAM,iBAAiB,4BA4C5B,CAAC"}
|
|
@@ -52,7 +52,13 @@ export const largeFunctionRule = defineRule({
|
|
|
52
52
|
message: `${occ.simpleName} is ${String(bodyLines)} lines long.`,
|
|
53
53
|
code: { file: occ.filePath, line: occ.line, column: occ.column },
|
|
54
54
|
suggestion: 'Split this function into smaller units.',
|
|
55
|
+
repair: {
|
|
56
|
+
repairKind: 'split-function',
|
|
57
|
+
autofixable: false,
|
|
58
|
+
confidence: 0.7,
|
|
59
|
+
},
|
|
55
60
|
metadata: {
|
|
61
|
+
highImpact: base === 'high',
|
|
56
62
|
bodyLines,
|
|
57
63
|
qualifiedName: occ.qualifiedName,
|
|
58
64
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"large-function.js","sourceRoot":"","sources":["../../src/rules/large-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,sBAAsB,IAAI,kBAAkB,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAuB,IAAI,mBAAmB,CAAC;QAEpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,4EAA4E;YAC5E,oBAAoB;YACpB,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC5B,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,0EAA0E;YAC1E,uDAAuD;YACvD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,UAAU;gBAAE,SAAS;YAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,SAAS,IAAI,IAAI;gBAAE,SAAS;YAChC,MAAM,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnD,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,sBAAsB,EAAE,MAAM,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,GAAG,CAAC,UAAU,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc;gBAChE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;gBAChE,UAAU,EAAE,yCAAyC;gBACrD,QAAQ,EAAE;oBACR,SAAS;oBACT,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAuB,EAAE,QAAkC;IACnF,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AACvF,CAAC"}
|
|
1
|
+
{"version":3,"file":"large-function.js","sourceRoot":"","sources":["../../src/rules/large-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,sBAAsB,IAAI,kBAAkB,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAuB,IAAI,mBAAmB,CAAC;QAEpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,4EAA4E;YAC5E,oBAAoB;YACpB,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC5B,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,0EAA0E;YAC1E,uDAAuD;YACvD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,UAAU;gBAAE,SAAS;YAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,SAAS,IAAI,IAAI;gBAAE,SAAS;YAChC,MAAM,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnD,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,sBAAsB,EAAE,MAAM,EAAE;gBAChD,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,GAAG,CAAC,UAAU,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc;gBAChE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;gBAChE,UAAU,EAAE,yCAAyC;gBACrD,MAAM,EAAE;oBACN,UAAU,EAAE,gBAAgB;oBAC5B,WAAW,EAAE,KAAK;oBAClB,UAAU,EAAE,GAAG;iBAChB;gBACD,QAAQ,EAAE;oBACR,UAAU,EAAE,IAAI,KAAK,MAAM;oBAC3B,SAAS;oBACT,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAuB,EAAE,QAAkC;IACnF,OAAO,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"near-duplicate-function-body.d.ts","sourceRoot":"","sources":["../../src/rules/near-duplicate-function-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"near-duplicate-function-body.d.ts","sourceRoot":"","sources":["../../src/rules/near-duplicate-function-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,eAAO,MAAM,6BAA6B,4BAgCxC,CAAC"}
|
|
@@ -26,7 +26,11 @@ export const nearDuplicateFunctionBodyRule = defineRule({
|
|
|
26
26
|
severity: 'low',
|
|
27
27
|
category: 'quality',
|
|
28
28
|
message: `${String(c.nearMembers.length)} near-duplicate function bodies cluster around ${c.anchor.qualifiedName} (estimated Jaccard ≥ ${c.estimatedSimilarity.toFixed(2)}).`,
|
|
29
|
-
code: {
|
|
29
|
+
code: {
|
|
30
|
+
file: c.anchor.filePath,
|
|
31
|
+
line: c.anchor.line,
|
|
32
|
+
column: c.anchor.column,
|
|
33
|
+
},
|
|
30
34
|
suggestion: 'Extract the shared logic into one function and replace the near-clone copies with calls to it.',
|
|
31
35
|
metadata: {
|
|
32
36
|
nearMembers: c.nearMembers,
|