@opensip-cli/graph 0.1.3 → 0.1.4

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 CHANGED
@@ -23,8 +23,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
23
23
  ## Documentation
24
24
 
25
25
  - šŸ“š Project docs: https://opensip.ai/docs/opensip-cli/
26
- - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.3/docs/public/70-reference/02-package-catalog.md
27
- - šŸ“¦ Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.3/packages/graph/engine
26
+ - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.4/docs/public/70-reference/02-package-catalog.md
27
+ - šŸ“¦ Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.4/packages/graph/engine
28
28
 
29
29
  ## License
30
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"sharded-graph.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/sharded-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA0C,KAAK,MAAM,EAAa,MAAM,mBAAmB,CAAC;AAqBnG,OAAO,KAAK,EAAE,KAAK,EAAoB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAc,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,IAAI,EACL,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;wCACoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC;AAED,mFAAmF;AACnF,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWvF"}
1
+ {"version":3,"file":"sharded-graph.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/sharded-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA0C,KAAK,MAAM,EAAa,MAAM,mBAAmB,CAAC;AAsBnG,OAAO,KAAK,EAAE,KAAK,EAAoB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAc,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,IAAI,EACL,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;wCACoC;IACpC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC;AAED,mFAAmF;AACnF,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWvF"}
@@ -16,6 +16,7 @@ import { buildPackageManifestIndex } from '../../cross-package/export-index.js';
16
16
  import { unionFeatureDeps } from '../../pipeline/feature-deps.js';
17
17
  import { buildFeatures, isPersistedFeaturesEmpty, toPersistedFeatures, } from '../../pipeline/features.js';
18
18
  import { buildIndexes } from '../../pipeline/indexes.js';
19
+ import { evaluateRules } from '../../rules/evaluate-rules.js';
19
20
  import { currentRules } from '../../rules/registry.js';
20
21
  import { GRAPH_TRACER } from '../graph-tracer.js';
21
22
  import { countCatalogCallSites, countCatalogFunctions } from './catalog-stats.js';
@@ -128,16 +129,17 @@ async function buildShardedGraph(input, span) {
128
129
  persistShardedCatalog(catalogRepo, built.fragments, shards, catalogToPersist);
129
130
  }
130
131
  // 6. Run rules over the unified catalog, threading the feature table (5th arg).
132
+ // The shared evaluateRules seam (also used by runGraph) appends signals in
133
+ // registration order and emits per-rule timing telemetry (graph.rule.*).
131
134
  const rulesStart = Date.now();
132
135
  emitStageStart(onProgress, 'rules');
133
- const signals = [];
134
- for (const rule of ruleSet) {
135
- // Indexed append rather than spread-in-loop — avoids re-allocating the
136
- // accumulator on every rule (O(n²)) over a potentially large rule set.
137
- const ruleSignals = rule.evaluate(catalog, indexes, config, adapter.ruleHints, features);
138
- for (const signal of ruleSignals)
139
- signals.push(signal);
140
- }
136
+ const signals = evaluateRules(ruleSet, {
137
+ catalog,
138
+ indexes,
139
+ config,
140
+ hints: adapter.ruleHints,
141
+ features,
142
+ });
141
143
  emitStage(onProgress, 'rules', Date.now() - rulesStart, `${String(ruleSet.length)} rule(s), ${String(signals.length)} signal(s)`);
142
144
  span.setAttributes({
143
145
  'opensip_cli.graph.shards_built': plan.toBuild.length,
@@ -1 +1 @@
1
- {"version":3,"file":"sharded-graph.js","sourceRoot":"","sources":["../../../src/cli/orchestrate/sharded-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharded-graph.js","sourceRoot":"","sources":["../../../src/cli/orchestrate/sharded-graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../src/cli/orchestrate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAmB/D,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,IAAI,EACL,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpG,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAExF,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAClD;AAED,gGAAgG;AAChG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;kFAC8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAiDD;;;;GAIG;AAEH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA2H5E"}
1
+ {"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../src/cli/orchestrate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoB/D,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,IAAI,EACL,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpG,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAExF,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAClD;AAED,gGAAgG;AAChG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;kFAC8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAiDD;;;;GAIG;AAEH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA2H5E"}
@@ -30,6 +30,7 @@ import { CatalogRepo } from '../persistence/catalog-repo.js';
30
30
  import { unionFeatureDeps } from '../pipeline/feature-deps.js';
31
31
  import { buildFeatures, isPersistedFeaturesEmpty, toPersistedFeatures, } from '../pipeline/features.js';
32
32
  import { buildIndexes } from '../pipeline/indexes.js';
33
+ import { evaluateRules } from '../rules/evaluate-rules.js';
33
34
  import { currentRules } from '../rules/registry.js';
34
35
  import { GRAPH_TRACER } from './graph-tracer.js';
35
36
  import { obtainCatalog } from './orchestrate/cache-orchestrator.js';
@@ -163,20 +164,19 @@ export async function runGraph(input) {
163
164
  stage: 'rules',
164
165
  onProgress: input.onProgress,
165
166
  monitor,
166
- fn: () => {
167
- const collected = [];
168
- for (const rule of ruleSet) {
169
- // Thread the active adapter's RuleHints so non-TypeScript
170
- // languages get their own side-effect primitives, throw
171
- // syntax, generated-file globs, and isTestFile predicate.
172
- // Without this, rules that consult `hints` silently fall
173
- // back to TypeScript-shaped regex on every other language.
174
- // The 5th arg is the engine-computed feature table (Plan C).
175
- const out = rule.evaluate(catalog, indexes, config, adapter.ruleHints, features);
176
- collected.push(...out);
177
- }
178
- return collected;
179
- },
167
+ // Thread the active adapter's RuleHints so non-TypeScript languages get
168
+ // their own side-effect primitives, throw syntax, generated-file globs,
169
+ // and isTestFile predicate. Without this, rules that consult `hints`
170
+ // silently fall back to TypeScript-shaped regex on every other language.
171
+ // `features` is the engine-computed feature table (Plan C). The shared
172
+ // evaluateRules seam adds per-rule timing telemetry (graph.rule.*).
173
+ fn: () => evaluateRules(ruleSet, {
174
+ catalog,
175
+ indexes,
176
+ config,
177
+ hints: adapter.ruleHints,
178
+ features,
179
+ }),
180
180
  detailFn: (sigs) => `${String(ruleSet.length)} rule(s), ${String(sigs.length)} signal(s)`,
181
181
  attrsFn: (sigs) => ({
182
182
  'opensip_cli.graph.rule_count': ruleSet.length,
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/cli/orchestrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/cli/orchestrate.ts"],"names":[],"mappings":"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"}
@@ -210,11 +210,11 @@ function computeTestReachable(indexes) {
210
210
  /** Forward BFS over the `callees` adjacency from a seed set. */
211
211
  function bfsForward(seeds, indexes) {
212
212
  const visited = new Set();
213
+ // Iterate the growing queue directly (Array iterator reads `length` live):
214
+ // same FIFO traversal as Array.shift() but O(V+E), not O(V²).
213
215
  const queue = [...seeds];
214
- while (queue.length > 0) {
215
- const cur = queue.shift();
216
- /* v8 ignore next */
217
- if (cur === undefined || visited.has(cur))
216
+ for (const cur of queue) {
217
+ if (visited.has(cur))
218
218
  continue;
219
219
  visited.add(cur);
220
220
  for (const n of indexes.callees.get(cur) ?? []) {
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/pipeline/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/pipeline/features.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * evaluate-rules — the single rule-evaluation seam shared by both build
3
+ * engines. These tests pin the two contracts that matter:
4
+ *
5
+ * 1. **Order preservation** — signals are appended in rule registration
6
+ * order, byte-for-byte as the prior inline loops produced them. Signal
7
+ * array order is observable downstream (fingerprint de-dup, SARIF), so
8
+ * this must never regress (e.g. via accidental parallelism).
9
+ * 2. **Per-rule telemetry** — one `graph.rule.evaluated` debug event per
10
+ * rule, plus a `graph.rule.slow` WARN when a single rule both takes real
11
+ * wall-time AND owns the majority of the stage (the regression alarm that
12
+ * would have made an O(N²) rule visible immediately).
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=evaluate-rules.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-rules.test.d.ts","sourceRoot":"","sources":["../../../src/rules/__tests__/evaluate-rules.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * evaluate-rules — the single rule-evaluation seam shared by both build
3
+ * engines. These tests pin the two contracts that matter:
4
+ *
5
+ * 1. **Order preservation** — signals are appended in rule registration
6
+ * order, byte-for-byte as the prior inline loops produced them. Signal
7
+ * array order is observable downstream (fingerprint de-dup, SARIF), so
8
+ * this must never regress (e.g. via accidental parallelism).
9
+ * 2. **Per-rule telemetry** — one `graph.rule.evaluated` debug event per
10
+ * rule, plus a `graph.rule.slow` WARN when a single rule both takes real
11
+ * wall-time AND owns the majority of the stage (the regression alarm that
12
+ * would have made an O(N²) rule visible immediately).
13
+ */
14
+ import { logger } from '@opensip-cli/core';
15
+ import { afterEach, describe, expect, it, vi } from 'vitest';
16
+ import { createGraphSignal } from '../create-graph-signal.js';
17
+ import { evaluateRules } from '../evaluate-rules.js';
18
+ const CONFIG = {};
19
+ const CATALOG = {
20
+ version: '3.0',
21
+ tool: 'graph',
22
+ language: 'typescript',
23
+ builtAt: '',
24
+ cacheKey: '',
25
+ functions: {},
26
+ };
27
+ const INDEXES = {
28
+ byBodyHash: new Map(),
29
+ byOccId: new Map(),
30
+ occurrencesByHash: new Map(),
31
+ importedPackagesByFile: new Map(),
32
+ bySimpleName: new Map(),
33
+ callees: new Map(),
34
+ callers: new Map(),
35
+ };
36
+ function sig(slug, message) {
37
+ return createGraphSignal(slug, CONFIG, { severity: 'low', category: 'quality', message });
38
+ }
39
+ /** A rule whose `evaluate` returns a fixed signal list (ignores its inputs). */
40
+ function fakeRule(slug, signals) {
41
+ return { slug, defaultSeverity: 'warning', evaluate: () => signals };
42
+ }
43
+ function slowEvents(spy) {
44
+ return spy.mock.calls
45
+ .map((c) => c[0])
46
+ .filter((o) => typeof o === 'object' && o !== null && o.evt === 'graph.rule.slow');
47
+ }
48
+ describe('evaluateRules', () => {
49
+ afterEach(() => {
50
+ vi.restoreAllMocks();
51
+ });
52
+ it('appends signals in rule registration order', () => {
53
+ const a = sig('graph:a', 'a');
54
+ const b1 = sig('graph:b', 'b1');
55
+ const b2 = sig('graph:b', 'b2');
56
+ const c = sig('graph:c', 'c');
57
+ const rules = [
58
+ fakeRule('graph:a', [a]),
59
+ fakeRule('graph:b', [b1, b2]),
60
+ fakeRule('graph:c', [c]),
61
+ ];
62
+ const out = evaluateRules(rules, { catalog: CATALOG, indexes: INDEXES, config: CONFIG });
63
+ expect(out).toEqual([a, b1, b2, c]);
64
+ });
65
+ it('emits one graph.rule.evaluated debug event per rule, in order', () => {
66
+ const debugSpy = vi.spyOn(logger, 'debug').mockImplementation(() => undefined);
67
+ evaluateRules([fakeRule('graph:a', []), fakeRule('graph:b', [])], {
68
+ catalog: CATALOG,
69
+ indexes: INDEXES,
70
+ config: CONFIG,
71
+ });
72
+ const evaluated = debugSpy.mock.calls
73
+ .map((c) => c[0])
74
+ .filter((o) => typeof o === 'object' &&
75
+ o !== null &&
76
+ o.evt === 'graph.rule.evaluated');
77
+ expect(evaluated.map((e) => e.rule)).toEqual(['graph:a', 'graph:b']);
78
+ expect(evaluated.every((e) => typeof e.durationMs === 'number')).toBe(true);
79
+ });
80
+ it('WARNs graph.rule.slow when one rule dominates a non-trivial stage', () => {
81
+ // performance.now() is called start/end per rule: rule1 = 1000ms,
82
+ // rule2 = 50ms, stage = 1050ms → rule1 is 95% of the stage and over the
83
+ // 750ms floor, so it alarms; rule2 does not.
84
+ vi.spyOn(performance, 'now')
85
+ .mockReturnValueOnce(0)
86
+ .mockReturnValueOnce(1000)
87
+ .mockReturnValueOnce(1000)
88
+ .mockReturnValueOnce(1050);
89
+ vi.spyOn(logger, 'debug').mockImplementation(() => undefined);
90
+ const warnSpy = vi.spyOn(logger, 'warn').mockImplementation(() => undefined);
91
+ evaluateRules([fakeRule('graph:slow', []), fakeRule('graph:fast', [])], {
92
+ catalog: CATALOG,
93
+ indexes: INDEXES,
94
+ config: CONFIG,
95
+ });
96
+ const slow = slowEvents(warnSpy);
97
+ expect(slow).toHaveLength(1);
98
+ expect(slow[0]?.rule).toBe('graph:slow');
99
+ expect(slow[0]?.sharePct).toBeGreaterThanOrEqual(90);
100
+ });
101
+ it('does not WARN when the rules stage is fast', () => {
102
+ // rule1 = 100ms, rule2 = 50ms, stage = 150ms — under the 750ms floor.
103
+ vi.spyOn(performance, 'now')
104
+ .mockReturnValueOnce(0)
105
+ .mockReturnValueOnce(100)
106
+ .mockReturnValueOnce(100)
107
+ .mockReturnValueOnce(150);
108
+ vi.spyOn(logger, 'debug').mockImplementation(() => undefined);
109
+ const warnSpy = vi.spyOn(logger, 'warn').mockImplementation(() => undefined);
110
+ evaluateRules([fakeRule('graph:a', []), fakeRule('graph:b', [])], {
111
+ catalog: CATALOG,
112
+ indexes: INDEXES,
113
+ config: CONFIG,
114
+ });
115
+ expect(slowEvents(warnSpy)).toHaveLength(0);
116
+ });
117
+ });
118
+ //# sourceMappingURL=evaluate-rules.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-rules.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/evaluate-rules.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"always-throws-branch.d.ts","sourceRoot":"","sources":["../../src/rules/always-throws-branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA6FH,eAAO,MAAM,sBAAsB,4BAqDjC,CAAC"}
1
+ {"version":3,"file":"always-throws-branch.d.ts","sourceRoot":"","sources":["../../src/rules/always-throws-branch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAwHH,eAAO,MAAM,sBAAsB,4BAwDjC,CAAC"}
@@ -75,24 +75,49 @@ function collectCreatedInlineCallableHashes(catalog) {
75
75
  }
76
76
  return created;
77
77
  }
78
+ /**
79
+ * Group every catalog occurrence by its file path, in one O(N) pass, so the
80
+ * nested-span lookup scans only the handful of occurrences in the SAME file
81
+ * instead of re-walking the whole catalog per candidate.
82
+ *
83
+ * Before this index the rule was O(N²): the candidate loop iterated up to N
84
+ * occurrences and, for each, `nestedSpansWithin` re-scanned all N catalog
85
+ * occurrences to keep only the same-file ones — quadratic on large monorepos
86
+ * (the rule dominated the entire rules stage at repo scale). Grouping once
87
+ * makes the lookup O(occurrences-in-file), which is small and bounded.
88
+ */
89
+ function groupOccurrencesByFile(catalog) {
90
+ const byFile = new Map();
91
+ for (const occurrences of Object.values(catalog.functions)) {
92
+ for (const occ of occurrences) {
93
+ const list = byFile.get(occ.filePath);
94
+ if (list)
95
+ list.push(occ);
96
+ else
97
+ byFile.set(occ.filePath, [occ]);
98
+ }
99
+ }
100
+ return byFile;
101
+ }
78
102
  /**
79
103
  * Nested occurrences declared *inside* `outer`'s source span (same file,
80
104
  * strictly contained `[line, endLine]`, not `outer` itself). A throw edge whose
81
105
  * source line falls within one of these spans belongs to the nested function's
82
106
  * control flow, not `outer`'s.
107
+ *
108
+ * `sameFileOccurrences` is the pre-grouped occurrence list for `outer`'s file
109
+ * (see {@link groupOccurrencesByFile}); the same-file filter is therefore
110
+ * implicit in the caller's lookup, preserving the prior semantics exactly while
111
+ * eliminating the whole-catalog re-scan.
83
112
  */
84
- function nestedSpansWithin(outer, catalog) {
113
+ function nestedSpansWithin(outer, sameFileOccurrences) {
85
114
  const spans = [];
86
- for (const occurrences of Object.values(catalog.functions)) {
87
- for (const occ of occurrences) {
88
- if (occ.filePath !== outer.filePath)
89
- continue;
90
- if (occ.bodyHash === outer.bodyHash && occ.line === outer.line && occ.column === outer.column)
91
- continue;
92
- // Strictly contained within the outer's declaration span.
93
- if (occ.line >= outer.line && occ.endLine <= outer.endLine && occ.line > outer.line) {
94
- spans.push({ line: occ.line, endLine: occ.endLine });
95
- }
115
+ for (const occ of sameFileOccurrences) {
116
+ if (occ.bodyHash === outer.bodyHash && occ.line === outer.line && occ.column === outer.column)
117
+ continue;
118
+ // Strictly contained within the outer's declaration span.
119
+ if (occ.line >= outer.line && occ.endLine <= outer.endLine && occ.line > outer.line) {
120
+ spans.push({ line: occ.line, endLine: occ.endLine });
96
121
  }
97
122
  }
98
123
  return spans;
@@ -107,6 +132,9 @@ export const alwaysThrowsBranchRule = defineRule({
107
132
  evaluate({ catalog, indexes, hints, config }) {
108
133
  const throwRegex = hints?.throwSyntaxRegex ?? TYPESCRIPT_FALLBACK_THROW_REGEX;
109
134
  const createdInlineCallables = collectCreatedInlineCallableHashes(catalog);
135
+ // Group occurrences by file ONCE (was an O(N²) whole-catalog re-scan per
136
+ // candidate inside `nestedSpansWithin`).
137
+ const occurrencesByFile = groupOccurrencesByFile(catalog);
110
138
  const signals = [];
111
139
  for (const occ of indexes.byBodyHash.values()) {
112
140
  if (occ.kind === 'module-init')
@@ -129,7 +157,7 @@ export const alwaysThrowsBranchRule = defineRule({
129
157
  // Nested-body boundary: drop edges that textually live inside a nested
130
158
  // function declared within this occurrence's span — they are the nested
131
159
  // function's control flow, not this one's.
132
- const nestedSpans = nestedSpansWithin(occ, catalog);
160
+ const nestedSpans = nestedSpansWithin(occ, occurrencesByFile.get(occ.filePath) ?? []);
133
161
  const ownControlFlowEdges = nestedSpans.length === 0
134
162
  ? occ.calls
135
163
  : occ.calls.filter((e) => !edgeIsInsideNestedFunction(e, nestedSpans));
@@ -1 +1 @@
1
- {"version":3,"file":"always-throws-branch.js","sourceRoot":"","sources":["../../src/rules/always-throws-branch.ts"],"names":[],"mappings":"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"}
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,4BA8B/B,CAAC"}
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
- const anyEffecting = [...reachable].some((h) => sideEffecting.has(h));
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
- while (queue.length > 0) {
268
- const cur = queue.shift();
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":"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"}
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
- while (queue.length > 0) {
91
- const cur = queue.shift();
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
- while (queue.length > 0) {
89
- const cur = queue.shift();
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",
3
+ "version": "0.1.4",
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/cli-ui": "0.1.3",
117
- "@opensip-cli/config": "0.1.3",
118
- "@opensip-cli/contracts": "0.1.3",
119
- "@opensip-cli/datastore": "0.1.3",
120
- "@opensip-cli/core": "0.1.3",
121
- "@opensip-cli/session-store": "0.1.3"
116
+ "@opensip-cli/config": "0.1.4",
117
+ "@opensip-cli/contracts": "0.1.4",
118
+ "@opensip-cli/core": "0.1.4",
119
+ "@opensip-cli/datastore": "0.1.4",
120
+ "@opensip-cli/cli-ui": "0.1.4",
121
+ "@opensip-cli/session-store": "0.1.4"
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.3"
128
+ "@opensip-cli/output": "0.1.4"
129
129
  },
130
130
  "scripts": {
131
131
  "build": "tsc",