@opensip-cli/graph 0.1.3 → 0.1.5
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__/cli/graph-config.test.js +5 -3
- package/dist/__tests__/cli/graph-config.test.js.map +1 -1
- package/dist/__tests__/tool-branches.test.js +4 -1
- package/dist/__tests__/tool-branches.test.js.map +1 -1
- package/dist/cli/graph-config.d.ts.map +1 -1
- package/dist/cli/graph-config.js +20 -1
- package/dist/cli/graph-config.js.map +1 -1
- package/dist/cli/graph-feature-columns.d.ts +7 -0
- package/dist/cli/graph-feature-columns.d.ts.map +1 -0
- package/dist/cli/graph-feature-columns.js +10 -0
- package/dist/cli/graph-feature-columns.js.map +1 -0
- package/dist/cli/graph-multi-path-mode.d.ts +24 -0
- package/dist/cli/graph-multi-path-mode.d.ts.map +1 -0
- package/dist/cli/graph-multi-path-mode.js +64 -0
- package/dist/cli/graph-multi-path-mode.js.map +1 -0
- package/dist/cli/graph-run-outcome.d.ts +12 -0
- package/dist/cli/graph-run-outcome.d.ts.map +1 -0
- package/dist/cli/graph-run-outcome.js +2 -0
- package/dist/cli/graph-run-outcome.js.map +1 -0
- package/dist/cli/graph-session-contribution.d.ts +29 -0
- package/dist/cli/graph-session-contribution.d.ts.map +1 -0
- package/dist/cli/graph-session-contribution.js +58 -0
- package/dist/cli/graph-session-contribution.js.map +1 -0
- package/dist/cli/graph-sharded-engine.d.ts +77 -0
- package/dist/cli/graph-sharded-engine.d.ts.map +1 -0
- package/dist/cli/graph-sharded-engine.js +229 -0
- package/dist/cli/graph-sharded-engine.js.map +1 -0
- package/dist/cli/graph-workspace-mode.d.ts +11 -0
- package/dist/cli/graph-workspace-mode.d.ts.map +1 -0
- package/dist/cli/graph-workspace-mode.js +87 -0
- package/dist/cli/graph-workspace-mode.js.map +1 -0
- package/dist/cli/graph.d.ts +5 -129
- package/dist/cli/graph.d.ts.map +1 -1
- package/dist/cli/graph.js +13 -552
- package/dist/cli/graph.js.map +1 -1
- package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -1
- package/dist/cli/orchestrate/sharded-graph.js +10 -8
- package/dist/cli/orchestrate/sharded-graph.js.map +1 -1
- package/dist/cli/orchestrate.d.ts.map +1 -1
- package/dist/cli/orchestrate.js +14 -14
- package/dist/cli/orchestrate.js.map +1 -1
- package/dist/pipeline/features.js +4 -4
- package/dist/pipeline/features.js.map +1 -1
- package/dist/rules/__tests__/evaluate-rules.test.d.ts +15 -0
- package/dist/rules/__tests__/evaluate-rules.test.d.ts.map +1 -0
- package/dist/rules/__tests__/evaluate-rules.test.js +118 -0
- package/dist/rules/__tests__/evaluate-rules.test.js.map +1 -0
- package/dist/rules/always-throws-branch.d.ts.map +1 -1
- package/dist/rules/always-throws-branch.js +40 -12
- package/dist/rules/always-throws-branch.js.map +1 -1
- package/dist/rules/evaluate-rules.d.ts +42 -0
- package/dist/rules/evaluate-rules.d.ts.map +1 -0
- package/dist/rules/evaluate-rules.js +83 -0
- package/dist/rules/evaluate-rules.js.map +1 -0
- package/dist/rules/no-side-effect-path.d.ts.map +1 -1
- package/dist/rules/no-side-effect-path.js +13 -4
- package/dist/rules/no-side-effect-path.js.map +1 -1
- package/dist/rules/orphan-subtree.js +4 -4
- package/dist/rules/orphan-subtree.js.map +1 -1
- package/dist/rules/test-only-reachable.js +4 -4
- package/dist/rules/test-only-reachable.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"always-throws-branch.js","sourceRoot":"","sources":["../../src/rules/always-throws-branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAE1E;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,kCAAkC,CAAC,OAAgB;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;oBAAE,SAAS;gBACvD,KAAK,MAAM,UAAU,IAAI,CAAC,CAAC,EAAE;oBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"always-throws-branch.js","sourceRoot":"","sources":["../../src/rules/always-throws-branch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared rule-evaluation loop + per-rule observability.
|
|
3
|
+
*
|
|
4
|
+
* Both build engines (the single-program `runGraph` and the sharded
|
|
5
|
+
* `runShardedGraph`) evaluate the rule set over the unified catalog. They
|
|
6
|
+
* historically carried two byte-identical inline loops — a divergence trap:
|
|
7
|
+
* instrumentation or a fix applied to one silently missed the other (and the
|
|
8
|
+
* sharded loop is the one large monorepos actually take). This module is the
|
|
9
|
+
* single evaluation seam both engines call.
|
|
10
|
+
*
|
|
11
|
+
* **Observability (the regression class this closes).** A single O(N²) rule
|
|
12
|
+
* once dominated the entire "rules" stage while the only signal was the
|
|
13
|
+
* aggregate stage duration — the pathological rule was invisible. This loop
|
|
14
|
+
* times every rule and emits a structured `graph.rule.evaluated` event per
|
|
15
|
+
* rule, plus a louder `graph.rule.slow` WARN when one rule both takes real
|
|
16
|
+
* wall-time AND owns the overwhelming majority of the stage. A future
|
|
17
|
+
* algorithmic regression in any rule surfaces immediately instead of hiding
|
|
18
|
+
* inside the stage total.
|
|
19
|
+
*
|
|
20
|
+
* **Order-preserving.** Rules run sequentially in registration order and
|
|
21
|
+
* signals are appended in that order — byte-for-byte identical to the prior
|
|
22
|
+
* inline loops. Signal array order is observable downstream (fingerprint
|
|
23
|
+
* de-dup, SARIF ordering), so this loop must stay sequential and in-order;
|
|
24
|
+
* it is NOT a parallelism seam.
|
|
25
|
+
*/
|
|
26
|
+
import { type Signal } from '@opensip-cli/core';
|
|
27
|
+
import type { Catalog, FeatureTable, GraphConfig, Indexes, Rule, RuleHints } from '../types.js';
|
|
28
|
+
/** The frozen pipeline data a rule's `evaluate` consumes. */
|
|
29
|
+
export interface RuleEvaluationInput {
|
|
30
|
+
readonly catalog: Catalog;
|
|
31
|
+
readonly indexes: Indexes;
|
|
32
|
+
readonly config: GraphConfig;
|
|
33
|
+
readonly hints?: RuleHints;
|
|
34
|
+
readonly features?: FeatureTable;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Evaluate `ruleSet` over the unified catalog, accumulating signals in
|
|
38
|
+
* registration order. Emits per-rule timing telemetry; returns the collected
|
|
39
|
+
* signals. The sole rule-evaluation path for both build engines.
|
|
40
|
+
*/
|
|
41
|
+
export declare function evaluateRules(ruleSet: readonly Rule[], data: RuleEvaluationInput): Signal[];
|
|
42
|
+
//# sourceMappingURL=evaluate-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate-rules.d.ts","sourceRoot":"","sources":["../../src/rules/evaluate-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAYhG,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,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,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAwC3F"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared rule-evaluation loop + per-rule observability.
|
|
3
|
+
*
|
|
4
|
+
* Both build engines (the single-program `runGraph` and the sharded
|
|
5
|
+
* `runShardedGraph`) evaluate the rule set over the unified catalog. They
|
|
6
|
+
* historically carried two byte-identical inline loops — a divergence trap:
|
|
7
|
+
* instrumentation or a fix applied to one silently missed the other (and the
|
|
8
|
+
* sharded loop is the one large monorepos actually take). This module is the
|
|
9
|
+
* single evaluation seam both engines call.
|
|
10
|
+
*
|
|
11
|
+
* **Observability (the regression class this closes).** A single O(N²) rule
|
|
12
|
+
* once dominated the entire "rules" stage while the only signal was the
|
|
13
|
+
* aggregate stage duration — the pathological rule was invisible. This loop
|
|
14
|
+
* times every rule and emits a structured `graph.rule.evaluated` event per
|
|
15
|
+
* rule, plus a louder `graph.rule.slow` WARN when one rule both takes real
|
|
16
|
+
* wall-time AND owns the overwhelming majority of the stage. A future
|
|
17
|
+
* algorithmic regression in any rule surfaces immediately instead of hiding
|
|
18
|
+
* inside the stage total.
|
|
19
|
+
*
|
|
20
|
+
* **Order-preserving.** Rules run sequentially in registration order and
|
|
21
|
+
* signals are appended in that order — byte-for-byte identical to the prior
|
|
22
|
+
* inline loops. Signal array order is observable downstream (fingerprint
|
|
23
|
+
* de-dup, SARIF ordering), so this loop must stay sequential and in-order;
|
|
24
|
+
* it is NOT a parallelism seam.
|
|
25
|
+
*/
|
|
26
|
+
import { logger } from '@opensip-cli/core';
|
|
27
|
+
const MODULE_GRAPH_RULES = 'graph:rules';
|
|
28
|
+
/**
|
|
29
|
+
* A single rule must exceed BOTH gates to earn a WARN: a wall-time floor (so
|
|
30
|
+
* we never cry wolf on a sub-second stage) AND a share of the stage total (a
|
|
31
|
+
* rule that owns most of the stage is the regression shape we want surfaced).
|
|
32
|
+
*/
|
|
33
|
+
const SLOW_RULE_MS_FLOOR = 750;
|
|
34
|
+
const SLOW_RULE_STAGE_SHARE = 0.5;
|
|
35
|
+
/**
|
|
36
|
+
* Evaluate `ruleSet` over the unified catalog, accumulating signals in
|
|
37
|
+
* registration order. Emits per-rule timing telemetry; returns the collected
|
|
38
|
+
* signals. The sole rule-evaluation path for both build engines.
|
|
39
|
+
*/
|
|
40
|
+
export function evaluateRules(ruleSet, data) {
|
|
41
|
+
const { catalog, indexes, config, hints, features } = data;
|
|
42
|
+
const signals = [];
|
|
43
|
+
const durations = [];
|
|
44
|
+
let stageMs = 0;
|
|
45
|
+
for (const rule of ruleSet) {
|
|
46
|
+
const startedAt = performance.now();
|
|
47
|
+
const ruleSignals = rule.evaluate(catalog, indexes, config, hints, features);
|
|
48
|
+
// Indexed append rather than spread-in-loop — avoids re-allocating the
|
|
49
|
+
// accumulator on every rule (O(n²)) over a potentially large rule set.
|
|
50
|
+
for (const signal of ruleSignals)
|
|
51
|
+
signals.push(signal);
|
|
52
|
+
const durationMs = performance.now() - startedAt;
|
|
53
|
+
stageMs += durationMs;
|
|
54
|
+
durations.push({ rule: rule.slug, durationMs });
|
|
55
|
+
logger.debug({
|
|
56
|
+
evt: 'graph.rule.evaluated',
|
|
57
|
+
module: MODULE_GRAPH_RULES,
|
|
58
|
+
rule: rule.slug,
|
|
59
|
+
durationMs: round1(durationMs),
|
|
60
|
+
signalCount: ruleSignals.length,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Automatic regression alarm: a single rule that takes real time AND owns
|
|
64
|
+
// most of the stage is exactly the shape an algorithmic blowup takes.
|
|
65
|
+
for (const { rule, durationMs } of durations) {
|
|
66
|
+
if (durationMs >= SLOW_RULE_MS_FLOOR && durationMs >= SLOW_RULE_STAGE_SHARE * stageMs) {
|
|
67
|
+
logger.warn({
|
|
68
|
+
evt: 'graph.rule.slow',
|
|
69
|
+
module: MODULE_GRAPH_RULES,
|
|
70
|
+
rule,
|
|
71
|
+
durationMs: round1(durationMs),
|
|
72
|
+
stageMs: round1(stageMs),
|
|
73
|
+
sharePct: Math.round((durationMs / stageMs) * 100),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return signals;
|
|
78
|
+
}
|
|
79
|
+
/** Round to one decimal — enough to spot a pathological rule, not noise. */
|
|
80
|
+
function round1(ms) {
|
|
81
|
+
return Math.round(ms * 10) / 10;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=evaluate-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate-rules.js","sourceRoot":"","sources":["../../src/rules/evaluate-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAIxD,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAWlC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB,EAAE,IAAyB;IAC/E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAA6D,EAAE,CAAC;IAC/E,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,KAAK,MAAM,MAAM,IAAI,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACjD,OAAO,IAAI,UAAU,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,WAAW,EAAE,WAAW,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC;QAC7C,IAAI,UAAU,IAAI,kBAAkB,IAAI,UAAU,IAAI,qBAAqB,GAAG,OAAO,EAAE,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,iBAAiB;gBACtB,MAAM,EAAE,kBAAkB;gBAC1B,IAAI;gBACJ,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAC5E,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-side-effect-path.d.ts","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkGH,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"no-side-effect-path.d.ts","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkGH,eAAO,MAAM,oBAAoB,4BAoC/B,CAAC"}
|
|
@@ -110,7 +110,13 @@ export const noSideEffectPathRule = defineRule({
|
|
|
110
110
|
if (!isPureCandidate(occ, sideEffecting, features))
|
|
111
111
|
continue;
|
|
112
112
|
const reachable = transitiveCallees(occ, indexes);
|
|
113
|
-
|
|
113
|
+
let anyEffecting = false;
|
|
114
|
+
for (const h of reachable) {
|
|
115
|
+
if (sideEffecting.has(h)) {
|
|
116
|
+
anyEffecting = true;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
114
120
|
if (anyEffecting)
|
|
115
121
|
continue;
|
|
116
122
|
if (!hasDiscardedCaller(occ, indexes))
|
|
@@ -263,10 +269,13 @@ function textualSideEffect(occ, detector) {
|
|
|
263
269
|
}
|
|
264
270
|
function transitiveCallees(start, indexes) {
|
|
265
271
|
const visited = new Set();
|
|
272
|
+
// Iterate the growing queue directly: the Array iterator reads `length`
|
|
273
|
+
// live, so nodes pushed mid-iteration are still visited in FIFO order —
|
|
274
|
+
// the same traversal as Array.shift() but O(V+E) instead of O(V²) (shift()
|
|
275
|
+
// is an O(n) dequeue).
|
|
266
276
|
const queue = [start.bodyHash];
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
if (cur === undefined || visited.has(cur))
|
|
277
|
+
for (const cur of queue) {
|
|
278
|
+
if (visited.has(cur))
|
|
270
279
|
continue;
|
|
271
280
|
visited.add(cur);
|
|
272
281
|
const next = indexes.callees.get(cur) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-side-effect-path.js","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,yBAAyB,GAC7B,wEAAwE,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,+EAA+E;AAC/E,6DAA6D;AAC7D,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,gBAAgB,GACpB,8GAA8G,CAAC;AACjH,MAAM,kBAAkB,GAAG,uEAAuE,CAAC;AACnG,MAAM,aAAa,GAAG,gCAAgC,CAAC;AACvD,MAAM,iBAAiB,GAAG,qDAAqD,CAAC;AAEhF,6EAA6E;AAC7E,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,CACL,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;AACJ,CAAC;AAgBD,SAAS,uBAAuB,CAAC,KAA4B;IAC3D,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA4B;IAC1D,MAAM,UAAU,GAAG,KAAK,EAAE,oBAAoB,CAAC;IAC/C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,qEAAqE;IACrE,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,eAAe;IACf,MAAM,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IAC7C,IAAI,EAAE,2BAA2B;IACjC,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC3C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;gBAAE,SAAS;YAC7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAClD,
|
|
1
|
+
{"version":3,"file":"no-side-effect-path.js","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,11 +86,11 @@ function computeReachable(catalog, indexes, config) {
|
|
|
86
86
|
for (const h of config.entryPointHashes ?? [])
|
|
87
87
|
seeds.add(h);
|
|
88
88
|
const visited = new Set();
|
|
89
|
+
// Iterate the growing queue directly (Array iterator reads `length` live):
|
|
90
|
+
// same FIFO traversal as Array.shift() but O(V+E), not O(V²).
|
|
89
91
|
const queue = [...seeds];
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
/* v8 ignore next */
|
|
93
|
-
if (cur === undefined || visited.has(cur))
|
|
92
|
+
for (const cur of queue) {
|
|
93
|
+
if (visited.has(cur))
|
|
94
94
|
continue;
|
|
95
95
|
visited.add(cur);
|
|
96
96
|
const next = indexes.callees.get(cur) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-subtree.js","sourceRoot":"","sources":["../../src/rules/orphan-subtree.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"orphan-subtree.js","sourceRoot":"","sources":["../../src/rules/orphan-subtree.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,11 +84,11 @@ function computeProductionEntries(catalog, indexes) {
|
|
|
84
84
|
}
|
|
85
85
|
function bfsReachable(seeds, indexes) {
|
|
86
86
|
const visited = new Set();
|
|
87
|
+
// Iterate the growing queue directly (Array iterator reads `length` live):
|
|
88
|
+
// same FIFO traversal as Array.shift() but O(V+E), not O(V²).
|
|
87
89
|
const queue = [...seeds];
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
/* v8 ignore next */
|
|
91
|
-
if (cur === undefined || visited.has(cur))
|
|
90
|
+
for (const cur of queue) {
|
|
91
|
+
if (visited.has(cur))
|
|
92
92
|
continue;
|
|
93
93
|
visited.add(cur);
|
|
94
94
|
const next = indexes.callees.get(cur) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-only-reachable.js","sourceRoot":"","sources":["../../src/rules/test-only-reachable.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test-only-reachable.js","sourceRoot":"","sources":["../../src/rules/test-only-reachable.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensip-cli/graph",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Static call-graph + dead-end analysis (seven-stage pipeline)",
|
|
6
6
|
"keywords": [
|
|
@@ -113,19 +113,19 @@
|
|
|
113
113
|
"ink": "^7.0.5",
|
|
114
114
|
"react": "^19.2.7",
|
|
115
115
|
"zod": "^4.4.3",
|
|
116
|
-
"@opensip-cli/
|
|
117
|
-
"@opensip-cli/
|
|
118
|
-
"@opensip-cli/
|
|
119
|
-
"@opensip-cli/datastore": "0.1.
|
|
120
|
-
"@opensip-cli/core": "0.1.
|
|
121
|
-
"@opensip-cli/session-store": "0.1.
|
|
116
|
+
"@opensip-cli/config": "0.1.5",
|
|
117
|
+
"@opensip-cli/contracts": "0.1.5",
|
|
118
|
+
"@opensip-cli/cli-ui": "0.1.5",
|
|
119
|
+
"@opensip-cli/datastore": "0.1.5",
|
|
120
|
+
"@opensip-cli/core": "0.1.5",
|
|
121
|
+
"@opensip-cli/session-store": "0.1.5"
|
|
122
122
|
},
|
|
123
123
|
"devDependencies": {
|
|
124
124
|
"@types/node": "^24.13.2",
|
|
125
125
|
"@types/react": "^19.2.17",
|
|
126
126
|
"typescript": "~6.0.3",
|
|
127
127
|
"vitest": "^4.1.8",
|
|
128
|
-
"@opensip-cli/output": "0.1.
|
|
128
|
+
"@opensip-cli/output": "0.1.5"
|
|
129
129
|
},
|
|
130
130
|
"scripts": {
|
|
131
131
|
"build": "tsc",
|