@opensip-cli/graph 0.1.0
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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +31 -0
- package/dist/__tests__/baseline-plane.test.d.ts +11 -0
- package/dist/__tests__/baseline-plane.test.d.ts.map +1 -0
- package/dist/__tests__/baseline-plane.test.js +60 -0
- package/dist/__tests__/baseline-plane.test.js.map +1 -0
- package/dist/__tests__/cache/engine-version.test.d.ts +12 -0
- package/dist/__tests__/cache/engine-version.test.d.ts.map +1 -0
- package/dist/__tests__/cache/engine-version.test.js +79 -0
- package/dist/__tests__/cache/engine-version.test.js.map +1 -0
- package/dist/__tests__/cache/invalidate.test.d.ts +9 -0
- package/dist/__tests__/cache/invalidate.test.d.ts.map +1 -0
- package/dist/__tests__/cache/invalidate.test.js +228 -0
- package/dist/__tests__/cache/invalidate.test.js.map +1 -0
- package/dist/__tests__/cli/contribution-from-signals.test.d.ts +17 -0
- package/dist/__tests__/cli/contribution-from-signals.test.d.ts.map +1 -0
- package/dist/__tests__/cli/contribution-from-signals.test.js +89 -0
- package/dist/__tests__/cli/contribution-from-signals.test.js.map +1 -0
- package/dist/__tests__/cli/detect.test.d.ts +2 -0
- package/dist/__tests__/cli/detect.test.d.ts.map +1 -0
- package/dist/__tests__/cli/detect.test.js +96 -0
- package/dist/__tests__/cli/detect.test.js.map +1 -0
- package/dist/__tests__/cli/graph-config.test.d.ts +9 -0
- package/dist/__tests__/cli/graph-config.test.d.ts.map +1 -0
- package/dist/__tests__/cli/graph-config.test.js +113 -0
- package/dist/__tests__/cli/graph-config.test.js.map +1 -0
- package/dist/__tests__/cli/graph-execute.test.d.ts +9 -0
- package/dist/__tests__/cli/graph-execute.test.d.ts.map +1 -0
- package/dist/__tests__/cli/graph-execute.test.js +434 -0
- package/dist/__tests__/cli/graph-execute.test.js.map +1 -0
- package/dist/__tests__/cli/graph.test.d.ts +12 -0
- package/dist/__tests__/cli/graph.test.d.ts.map +1 -0
- package/dist/__tests__/cli/graph.test.js +589 -0
- package/dist/__tests__/cli/graph.test.js.map +1 -0
- package/dist/__tests__/cli/heap-preflight.test.d.ts +11 -0
- package/dist/__tests__/cli/heap-preflight.test.d.ts.map +1 -0
- package/dist/__tests__/cli/heap-preflight.test.js +150 -0
- package/dist/__tests__/cli/heap-preflight.test.js.map +1 -0
- package/dist/__tests__/cli/language-mismatch.test.d.ts +10 -0
- package/dist/__tests__/cli/language-mismatch.test.d.ts.map +1 -0
- package/dist/__tests__/cli/language-mismatch.test.js +155 -0
- package/dist/__tests__/cli/language-mismatch.test.js.map +1 -0
- package/dist/__tests__/cli/lookup.test.d.ts +7 -0
- package/dist/__tests__/cli/lookup.test.d.ts.map +1 -0
- package/dist/__tests__/cli/lookup.test.js +104 -0
- package/dist/__tests__/cli/lookup.test.js.map +1 -0
- package/dist/__tests__/cli/orchestrate.test.d.ts +12 -0
- package/dist/__tests__/cli/orchestrate.test.d.ts.map +1 -0
- package/dist/__tests__/cli/orchestrate.test.js +315 -0
- package/dist/__tests__/cli/orchestrate.test.js.map +1 -0
- package/dist/__tests__/cli/positional-paths.test.d.ts +5 -0
- package/dist/__tests__/cli/positional-paths.test.d.ts.map +1 -0
- package/dist/__tests__/cli/positional-paths.test.js +87 -0
- package/dist/__tests__/cli/positional-paths.test.js.map +1 -0
- package/dist/__tests__/cli/pressure-monitor.test.d.ts +11 -0
- package/dist/__tests__/cli/pressure-monitor.test.d.ts.map +1 -0
- package/dist/__tests__/cli/pressure-monitor.test.js +94 -0
- package/dist/__tests__/cli/pressure-monitor.test.js.map +1 -0
- package/dist/__tests__/cli/sarif-export.test.d.ts +8 -0
- package/dist/__tests__/cli/sarif-export.test.d.ts.map +1 -0
- package/dist/__tests__/cli/sarif-export.test.js +94 -0
- package/dist/__tests__/cli/sarif-export.test.js.map +1 -0
- package/dist/__tests__/cli/session-contract.test.d.ts +17 -0
- package/dist/__tests__/cli/session-contract.test.d.ts.map +1 -0
- package/dist/__tests__/cli/session-contract.test.js +225 -0
- package/dist/__tests__/cli/session-contract.test.js.map +1 -0
- package/dist/__tests__/cli/symbol-index.test.d.ts +7 -0
- package/dist/__tests__/cli/symbol-index.test.d.ts.map +1 -0
- package/dist/__tests__/cli/symbol-index.test.js +117 -0
- package/dist/__tests__/cli/symbol-index.test.js.map +1 -0
- package/dist/__tests__/cli/tool-show-mode.test.d.ts +10 -0
- package/dist/__tests__/cli/tool-show-mode.test.d.ts.map +1 -0
- package/dist/__tests__/cli/tool-show-mode.test.js +128 -0
- package/dist/__tests__/cli/tool-show-mode.test.js.map +1 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.d.ts +10 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.d.ts.map +1 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.js +120 -0
- package/dist/__tests__/cli/workspace-runner-polyglot.test.js.map +1 -0
- package/dist/__tests__/graph-catalog-drift.test.d.ts +24 -0
- package/dist/__tests__/graph-catalog-drift.test.d.ts.map +1 -0
- package/dist/__tests__/graph-catalog-drift.test.js +34 -0
- package/dist/__tests__/graph-catalog-drift.test.js.map +1 -0
- package/dist/__tests__/internal-surface.test.d.ts +17 -0
- package/dist/__tests__/internal-surface.test.d.ts.map +1 -0
- package/dist/__tests__/internal-surface.test.js +45 -0
- package/dist/__tests__/internal-surface.test.js.map +1 -0
- package/dist/__tests__/lang-adapter/body-digest.test.d.ts +13 -0
- package/dist/__tests__/lang-adapter/body-digest.test.d.ts.map +1 -0
- package/dist/__tests__/lang-adapter/body-digest.test.js +51 -0
- package/dist/__tests__/lang-adapter/body-digest.test.js.map +1 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.d.ts +12 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.js +147 -0
- package/dist/__tests__/lang-adapter/edge-helpers.test.js.map +1 -0
- package/dist/__tests__/lang-adapter/registry.test.d.ts +9 -0
- package/dist/__tests__/lang-adapter/registry.test.d.ts.map +1 -0
- package/dist/__tests__/lang-adapter/registry.test.js +228 -0
- package/dist/__tests__/lang-adapter/registry.test.js.map +1 -0
- package/dist/__tests__/persistence/catalog-repo.test.d.ts +2 -0
- package/dist/__tests__/persistence/catalog-repo.test.d.ts.map +1 -0
- package/dist/__tests__/persistence/catalog-repo.test.js +188 -0
- package/dist/__tests__/persistence/catalog-repo.test.js.map +1 -0
- package/dist/__tests__/persistence/session-payload.test.d.ts +2 -0
- package/dist/__tests__/persistence/session-payload.test.d.ts.map +1 -0
- package/dist/__tests__/persistence/session-payload.test.js +81 -0
- package/dist/__tests__/persistence/session-payload.test.js.map +1 -0
- package/dist/__tests__/persistence/session-replay.test.d.ts +10 -0
- package/dist/__tests__/persistence/session-replay.test.d.ts.map +1 -0
- package/dist/__tests__/persistence/session-replay.test.js +196 -0
- package/dist/__tests__/persistence/session-replay.test.js.map +1 -0
- package/dist/__tests__/public-api.test.d.ts +19 -0
- package/dist/__tests__/public-api.test.d.ts.map +1 -0
- package/dist/__tests__/public-api.test.js +96 -0
- package/dist/__tests__/public-api.test.js.map +1 -0
- package/dist/__tests__/render/catalog-json-types.test.d.ts +10 -0
- package/dist/__tests__/render/catalog-json-types.test.d.ts.map +1 -0
- package/dist/__tests__/render/catalog-json-types.test.js +121 -0
- package/dist/__tests__/render/catalog-json-types.test.js.map +1 -0
- package/dist/__tests__/render/catalog-json.test.d.ts +19 -0
- package/dist/__tests__/render/catalog-json.test.d.ts.map +1 -0
- package/dist/__tests__/render/catalog-json.test.js +435 -0
- package/dist/__tests__/render/catalog-json.test.js.map +1 -0
- package/dist/__tests__/render/opensip-id-derivation.test.d.ts +21 -0
- package/dist/__tests__/render/opensip-id-derivation.test.d.ts.map +1 -0
- package/dist/__tests__/render/opensip-id-derivation.test.js +159 -0
- package/dist/__tests__/render/opensip-id-derivation.test.js.map +1 -0
- package/dist/__tests__/render/rule-id-mapping.test.d.ts +13 -0
- package/dist/__tests__/render/rule-id-mapping.test.d.ts.map +1 -0
- package/dist/__tests__/render/rule-id-mapping.test.js +50 -0
- package/dist/__tests__/render/rule-id-mapping.test.js.map +1 -0
- package/dist/__tests__/render/sarif-opensip.test.d.ts +20 -0
- package/dist/__tests__/render/sarif-opensip.test.d.ts.map +1 -0
- package/dist/__tests__/render/sarif-opensip.test.js +235 -0
- package/dist/__tests__/render/sarif-opensip.test.js.map +1 -0
- package/dist/__tests__/resolution-mode.test.d.ts +10 -0
- package/dist/__tests__/resolution-mode.test.d.ts.map +1 -0
- package/dist/__tests__/resolution-mode.test.js +96 -0
- package/dist/__tests__/resolution-mode.test.js.map +1 -0
- package/dist/__tests__/resolve-callee.test.d.ts +2 -0
- package/dist/__tests__/resolve-callee.test.d.ts.map +1 -0
- package/dist/__tests__/resolve-callee.test.js +119 -0
- package/dist/__tests__/resolve-callee.test.js.map +1 -0
- package/dist/__tests__/rules/_entry-points.test.d.ts +8 -0
- package/dist/__tests__/rules/_entry-points.test.d.ts.map +1 -0
- package/dist/__tests__/rules/_entry-points.test.js +74 -0
- package/dist/__tests__/rules/_entry-points.test.js.map +1 -0
- package/dist/__tests__/rules/_helpers.d.ts +18 -0
- package/dist/__tests__/rules/_helpers.d.ts.map +1 -0
- package/dist/__tests__/rules/_helpers.js +72 -0
- package/dist/__tests__/rules/_helpers.js.map +1 -0
- package/dist/__tests__/rules/always-throws-branch.test.d.ts +9 -0
- package/dist/__tests__/rules/always-throws-branch.test.d.ts.map +1 -0
- package/dist/__tests__/rules/always-throws-branch.test.js +113 -0
- package/dist/__tests__/rules/always-throws-branch.test.js.map +1 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.d.ts +13 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.d.ts.map +1 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.js +224 -0
- package/dist/__tests__/rules/cycle-and-coupling.test.js.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.d.ts +8 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.d.ts.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.js +132 -0
- package/dist/__tests__/rules/duplicated-function-body-config.test.js.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.d.ts +10 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.d.ts.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js +274 -0
- package/dist/__tests__/rules/duplicated-function-body-cross-package.test.js.map +1 -0
- package/dist/__tests__/rules/feature-column-parity.test.d.ts +11 -0
- package/dist/__tests__/rules/feature-column-parity.test.d.ts.map +1 -0
- package/dist/__tests__/rules/feature-column-parity.test.js +169 -0
- package/dist/__tests__/rules/feature-column-parity.test.js.map +1 -0
- package/dist/__tests__/rules/high-blast-untested.test.d.ts +13 -0
- package/dist/__tests__/rules/high-blast-untested.test.d.ts.map +1 -0
- package/dist/__tests__/rules/high-blast-untested.test.js +108 -0
- package/dist/__tests__/rules/high-blast-untested.test.js.map +1 -0
- package/dist/__tests__/rules/large-function.test.d.ts +11 -0
- package/dist/__tests__/rules/large-function.test.d.ts.map +1 -0
- package/dist/__tests__/rules/large-function.test.js +105 -0
- package/dist/__tests__/rules/large-function.test.js.map +1 -0
- package/dist/__tests__/rules/no-side-effect-path.test.d.ts +10 -0
- package/dist/__tests__/rules/no-side-effect-path.test.d.ts.map +1 -0
- package/dist/__tests__/rules/no-side-effect-path.test.js +301 -0
- package/dist/__tests__/rules/no-side-effect-path.test.js.map +1 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.d.ts +8 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.d.ts.map +1 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.js +176 -0
- package/dist/__tests__/rules/orphan-subtree-config.test.js.map +1 -0
- package/dist/__tests__/rules/registry.test.d.ts +11 -0
- package/dist/__tests__/rules/registry.test.d.ts.map +1 -0
- package/dist/__tests__/rules/registry.test.js +50 -0
- package/dist/__tests__/rules/registry.test.js.map +1 -0
- package/dist/__tests__/rules/severity-override.test.d.ts +11 -0
- package/dist/__tests__/rules/severity-override.test.d.ts.map +1 -0
- package/dist/__tests__/rules/severity-override.test.js +67 -0
- package/dist/__tests__/rules/severity-override.test.js.map +1 -0
- package/dist/__tests__/rules/test-only-reachable.test.d.ts +9 -0
- package/dist/__tests__/rules/test-only-reachable.test.d.ts.map +1 -0
- package/dist/__tests__/rules/test-only-reachable.test.js +142 -0
- package/dist/__tests__/rules/test-only-reachable.test.js.map +1 -0
- package/dist/__tests__/rules/wide-function.test.d.ts +9 -0
- package/dist/__tests__/rules/wide-function.test.d.ts.map +1 -0
- package/dist/__tests__/rules/wide-function.test.js +64 -0
- package/dist/__tests__/rules/wide-function.test.js.map +1 -0
- package/dist/__tests__/test-utils/with-graph-scope.d.ts +14 -0
- package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -0
- package/dist/__tests__/test-utils/with-graph-scope.js +26 -0
- package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -0
- package/dist/__tests__/tool-branches.test.d.ts +18 -0
- package/dist/__tests__/tool-branches.test.d.ts.map +1 -0
- package/dist/__tests__/tool-branches.test.js +262 -0
- package/dist/__tests__/tool-branches.test.js.map +1 -0
- package/dist/__tests__/tool-register.test.d.ts +16 -0
- package/dist/__tests__/tool-register.test.d.ts.map +1 -0
- package/dist/__tests__/tool-register.test.js +419 -0
- package/dist/__tests__/tool-register.test.js.map +1 -0
- package/dist/__tests__/tool.test.d.ts +18 -0
- package/dist/__tests__/tool.test.d.ts.map +1 -0
- package/dist/__tests__/tool.test.js +65 -0
- package/dist/__tests__/tool.test.js.map +1 -0
- package/dist/baseline-strategy.d.ts +28 -0
- package/dist/baseline-strategy.d.ts.map +1 -0
- package/dist/baseline-strategy.js +27 -0
- package/dist/baseline-strategy.js.map +1 -0
- package/dist/cache/engine-version.d.ts +69 -0
- package/dist/cache/engine-version.d.ts.map +1 -0
- package/dist/cache/engine-version.js +60 -0
- package/dist/cache/engine-version.js.map +1 -0
- package/dist/cache/invalidate.d.ts +60 -0
- package/dist/cache/invalidate.d.ts.map +1 -0
- package/dist/cache/invalidate.js +120 -0
- package/dist/cache/invalidate.js.map +1 -0
- package/dist/cli/__tests__/build-envelope.test.d.ts +8 -0
- package/dist/cli/__tests__/build-envelope.test.d.ts.map +1 -0
- package/dist/cli/__tests__/build-envelope.test.js +70 -0
- package/dist/cli/__tests__/build-envelope.test.js.map +1 -0
- package/dist/cli/__tests__/dispatch-envelope.test.d.ts +15 -0
- package/dist/cli/__tests__/dispatch-envelope.test.d.ts.map +1 -0
- package/dist/cli/__tests__/dispatch-envelope.test.js +73 -0
- package/dist/cli/__tests__/dispatch-envelope.test.js.map +1 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.d.ts +18 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.d.ts.map +1 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.js +91 -0
- package/dist/cli/__tests__/dispatch-suppression-root.test.js.map +1 -0
- package/dist/cli/__tests__/graph-config-schema.test.d.ts +7 -0
- package/dist/cli/__tests__/graph-config-schema.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-config-schema.test.js +60 -0
- package/dist/cli/__tests__/graph-config-schema.test.js.map +1 -0
- package/dist/cli/__tests__/graph-gate-mode.test.d.ts +15 -0
- package/dist/cli/__tests__/graph-gate-mode.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-gate-mode.test.js +99 -0
- package/dist/cli/__tests__/graph-gate-mode.test.js.map +1 -0
- package/dist/cli/__tests__/graph-recipes.test.d.ts +7 -0
- package/dist/cli/__tests__/graph-recipes.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-recipes.test.js +24 -0
- package/dist/cli/__tests__/graph-recipes.test.js.map +1 -0
- package/dist/cli/__tests__/graph-report.test.d.ts +7 -0
- package/dist/cli/__tests__/graph-report.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-report.test.js +138 -0
- package/dist/cli/__tests__/graph-report.test.js.map +1 -0
- package/dist/cli/__tests__/graph-tracer.test.d.ts +11 -0
- package/dist/cli/__tests__/graph-tracer.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-tracer.test.js +41 -0
- package/dist/cli/__tests__/graph-tracer.test.js.map +1 -0
- package/dist/cli/__tests__/graph-worker.test.d.ts +13 -0
- package/dist/cli/__tests__/graph-worker.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-worker.test.js +127 -0
- package/dist/cli/__tests__/graph-worker.test.js.map +1 -0
- package/dist/cli/__tests__/list-files.test.d.ts +12 -0
- package/dist/cli/__tests__/list-files.test.d.ts.map +1 -0
- package/dist/cli/__tests__/list-files.test.js +146 -0
- package/dist/cli/__tests__/list-files.test.js.map +1 -0
- package/dist/cli/__tests__/live-suppression-parity.test.d.ts +23 -0
- package/dist/cli/__tests__/live-suppression-parity.test.d.ts.map +1 -0
- package/dist/cli/__tests__/live-suppression-parity.test.js +136 -0
- package/dist/cli/__tests__/live-suppression-parity.test.js.map +1 -0
- package/dist/cli/__tests__/orchestrate-spans.test.d.ts +18 -0
- package/dist/cli/__tests__/orchestrate-spans.test.d.ts.map +1 -0
- package/dist/cli/__tests__/orchestrate-spans.test.js +108 -0
- package/dist/cli/__tests__/orchestrate-spans.test.js.map +1 -0
- package/dist/cli/__tests__/shard-worker.test.d.ts +10 -0
- package/dist/cli/__tests__/shard-worker.test.d.ts.map +1 -0
- package/dist/cli/__tests__/shard-worker.test.js +153 -0
- package/dist/cli/__tests__/shard-worker.test.js.map +1 -0
- package/dist/cli/__tests__/workspace-report.test.d.ts +6 -0
- package/dist/cli/__tests__/workspace-report.test.d.ts.map +1 -0
- package/dist/cli/__tests__/workspace-report.test.js +89 -0
- package/dist/cli/__tests__/workspace-report.test.js.map +1 -0
- package/dist/cli/apply-suppressions.d.ts +86 -0
- package/dist/cli/apply-suppressions.d.ts.map +1 -0
- package/dist/cli/apply-suppressions.js +101 -0
- package/dist/cli/apply-suppressions.js.map +1 -0
- package/dist/cli/apply-suppressions.test.d.ts +12 -0
- package/dist/cli/apply-suppressions.test.d.ts.map +1 -0
- package/dist/cli/apply-suppressions.test.js +85 -0
- package/dist/cli/apply-suppressions.test.js.map +1 -0
- package/dist/cli/build-envelope.d.ts +53 -0
- package/dist/cli/build-envelope.d.ts.map +1 -0
- package/dist/cli/build-envelope.js +88 -0
- package/dist/cli/build-envelope.js.map +1 -0
- package/dist/cli/detect.d.ts +37 -0
- package/dist/cli/detect.d.ts.map +1 -0
- package/dist/cli/detect.js +60 -0
- package/dist/cli/detect.js.map +1 -0
- package/dist/cli/equivalence-check-command.d.ts +45 -0
- package/dist/cli/equivalence-check-command.d.ts.map +1 -0
- package/dist/cli/equivalence-check-command.js +196 -0
- package/dist/cli/equivalence-check-command.js.map +1 -0
- package/dist/cli/graph/graph-aux-command-specs.d.ts +60 -0
- package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -0
- package/dist/cli/graph/graph-aux-command-specs.js +390 -0
- package/dist/cli/graph/graph-aux-command-specs.js.map +1 -0
- package/dist/cli/graph/graph-command-spec.d.ts +43 -0
- package/dist/cli/graph/graph-command-spec.d.ts.map +1 -0
- package/dist/cli/graph/graph-command-spec.js +456 -0
- package/dist/cli/graph/graph-command-spec.js.map +1 -0
- package/dist/cli/graph-config-schema.d.ts +70 -0
- package/dist/cli/graph-config-schema.d.ts.map +1 -0
- package/dist/cli/graph-config-schema.js +68 -0
- package/dist/cli/graph-config-schema.js.map +1 -0
- package/dist/cli/graph-config.d.ts +53 -0
- package/dist/cli/graph-config.d.ts.map +1 -0
- package/dist/cli/graph-config.js +111 -0
- package/dist/cli/graph-config.js.map +1 -0
- package/dist/cli/graph-modes.d.ts +36 -0
- package/dist/cli/graph-modes.d.ts.map +1 -0
- package/dist/cli/graph-modes.js +161 -0
- package/dist/cli/graph-modes.js.map +1 -0
- package/dist/cli/graph-options.d.ts +143 -0
- package/dist/cli/graph-options.d.ts.map +1 -0
- package/dist/cli/graph-options.js +15 -0
- package/dist/cli/graph-options.js.map +1 -0
- package/dist/cli/graph-progress.d.ts +31 -0
- package/dist/cli/graph-progress.d.ts.map +1 -0
- package/dist/cli/graph-progress.js +56 -0
- package/dist/cli/graph-progress.js.map +1 -0
- package/dist/cli/graph-recipes.d.ts +23 -0
- package/dist/cli/graph-recipes.d.ts.map +1 -0
- package/dist/cli/graph-recipes.js +44 -0
- package/dist/cli/graph-recipes.js.map +1 -0
- package/dist/cli/graph-report.d.ts +79 -0
- package/dist/cli/graph-report.d.ts.map +1 -0
- package/dist/cli/graph-report.js +186 -0
- package/dist/cli/graph-report.js.map +1 -0
- package/dist/cli/graph-runner.d.ts +106 -0
- package/dist/cli/graph-runner.d.ts.map +1 -0
- package/dist/cli/graph-runner.js +274 -0
- package/dist/cli/graph-runner.js.map +1 -0
- package/dist/cli/graph-tracer.d.ts +27 -0
- package/dist/cli/graph-tracer.d.ts.map +1 -0
- package/dist/cli/graph-tracer.js +33 -0
- package/dist/cli/graph-tracer.js.map +1 -0
- package/dist/cli/graph-worker.d.ts +29 -0
- package/dist/cli/graph-worker.d.ts.map +1 -0
- package/dist/cli/graph-worker.js +86 -0
- package/dist/cli/graph-worker.js.map +1 -0
- package/dist/cli/graph.d.ts +171 -0
- package/dist/cli/graph.d.ts.map +1 -0
- package/dist/cli/graph.js +1041 -0
- package/dist/cli/graph.js.map +1 -0
- package/dist/cli/heap-preflight.d.ts +62 -0
- package/dist/cli/heap-preflight.d.ts.map +1 -0
- package/dist/cli/heap-preflight.js +176 -0
- package/dist/cli/heap-preflight.js.map +1 -0
- package/dist/cli/list-files.d.ts +37 -0
- package/dist/cli/list-files.d.ts.map +1 -0
- package/dist/cli/list-files.js +166 -0
- package/dist/cli/list-files.js.map +1 -0
- package/dist/cli/lookup.d.ts +19 -0
- package/dist/cli/lookup.d.ts.map +1 -0
- package/dist/cli/lookup.js +87 -0
- package/dist/cli/lookup.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts +47 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.js +331 -0
- package/dist/cli/orchestrate/__tests__/_equivalence-harness.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts +69 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js +181 -0
- package/dist/cli/orchestrate/__tests__/_flat-large-fixture.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.d.ts +8 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.js +51 -0
- package/dist/cli/orchestrate/__tests__/canonical-file-set.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.d.ts +9 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js +147 -0
- package/dist/cli/orchestrate/__tests__/catalog-builder-incremental.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.d.ts +12 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js +509 -0
- package/dist/cli/orchestrate/__tests__/cross-shard-resolve.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.d.ts +19 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.js +163 -0
- package/dist/cli/orchestrate/__tests__/determinism.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.d.ts +9 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.js +103 -0
- package/dist/cli/orchestrate/__tests__/edge-identity.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.d.ts +10 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.js +277 -0
- package/dist/cli/orchestrate/__tests__/equivalence-check.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.d.ts +51 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js +183 -0
- package/dist/cli/orchestrate/__tests__/equivalence-repo-scale.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.d.ts +47 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.js +259 -0
- package/dist/cli/orchestrate/__tests__/equivalence.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.d.ts +9 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.js +105 -0
- package/dist/cli/orchestrate/__tests__/exact-boundary-recovery.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.d.ts +12 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.js +346 -0
- package/dist/cli/orchestrate/__tests__/export-index.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.d.ts +16 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js +99 -0
- package/dist/cli/orchestrate/__tests__/flat-large-fixture.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.d.ts +11 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.js +271 -0
- package/dist/cli/orchestrate/__tests__/flat-monorepo-strategy.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.d.ts +38 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.js +163 -0
- package/dist/cli/orchestrate/__tests__/function-set-parity.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.d.ts +8 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.js +153 -0
- package/dist/cli/orchestrate/__tests__/incremental-merge.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.d.ts +10 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.js +104 -0
- package/dist/cli/orchestrate/__tests__/partition-files.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.d.ts +21 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js +59 -0
- package/dist/cli/orchestrate/__tests__/resolution-completeness-floor.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.d.ts +8 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.js +77 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.d.ts +13 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.js +103 -0
- package/dist/cli/orchestrate/__tests__/shard-runner-spawn.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.d.ts +13 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.js +257 -0
- package/dist/cli/orchestrate/__tests__/sharded-graph.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.d.ts +6 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.js +38 -0
- package/dist/cli/orchestrate/__tests__/worker-pool.test.js.map +1 -0
- package/dist/cli/orchestrate/cache-orchestrator.d.ts +42 -0
- package/dist/cli/orchestrate/cache-orchestrator.d.ts.map +1 -0
- package/dist/cli/orchestrate/cache-orchestrator.js +92 -0
- package/dist/cli/orchestrate/cache-orchestrator.js.map +1 -0
- package/dist/cli/orchestrate/canonical-file-set.d.ts +51 -0
- package/dist/cli/orchestrate/canonical-file-set.d.ts.map +1 -0
- package/dist/cli/orchestrate/canonical-file-set.js +58 -0
- package/dist/cli/orchestrate/canonical-file-set.js.map +1 -0
- package/dist/cli/orchestrate/catalog-builder.d.ts +121 -0
- package/dist/cli/orchestrate/catalog-builder.d.ts.map +1 -0
- package/dist/cli/orchestrate/catalog-builder.js +279 -0
- package/dist/cli/orchestrate/catalog-builder.js.map +1 -0
- package/dist/cli/orchestrate/catalog-stats.d.ts +31 -0
- package/dist/cli/orchestrate/catalog-stats.d.ts.map +1 -0
- package/dist/cli/orchestrate/catalog-stats.js +52 -0
- package/dist/cli/orchestrate/catalog-stats.js.map +1 -0
- package/dist/cli/orchestrate/cross-shard-resolve.d.ts +190 -0
- package/dist/cli/orchestrate/cross-shard-resolve.d.ts.map +1 -0
- package/dist/cli/orchestrate/cross-shard-resolve.js +523 -0
- package/dist/cli/orchestrate/cross-shard-resolve.js.map +1 -0
- package/dist/cli/orchestrate/edge-identity.d.ts +48 -0
- package/dist/cli/orchestrate/edge-identity.d.ts.map +1 -0
- package/dist/cli/orchestrate/edge-identity.js +68 -0
- package/dist/cli/orchestrate/edge-identity.js.map +1 -0
- package/dist/cli/orchestrate/equivalence-check.d.ts +227 -0
- package/dist/cli/orchestrate/equivalence-check.d.ts.map +1 -0
- package/dist/cli/orchestrate/equivalence-check.js +264 -0
- package/dist/cli/orchestrate/equivalence-check.js.map +1 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.d.ts +33 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.d.ts.map +1 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.js +62 -0
- package/dist/cli/orchestrate/exact-boundary-recovery.js.map +1 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.d.ts +171 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.d.ts.map +1 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.js +328 -0
- package/dist/cli/orchestrate/flat-monorepo-strategy.js.map +1 -0
- package/dist/cli/orchestrate/incremental-merge.d.ts +46 -0
- package/dist/cli/orchestrate/incremental-merge.d.ts.map +1 -0
- package/dist/cli/orchestrate/incremental-merge.js +236 -0
- package/dist/cli/orchestrate/incremental-merge.js.map +1 -0
- package/dist/cli/orchestrate/partition-chunk.d.ts +36 -0
- package/dist/cli/orchestrate/partition-chunk.d.ts.map +1 -0
- package/dist/cli/orchestrate/partition-chunk.js +37 -0
- package/dist/cli/orchestrate/partition-chunk.js.map +1 -0
- package/dist/cli/orchestrate/partition-files.d.ts +52 -0
- package/dist/cli/orchestrate/partition-files.d.ts.map +1 -0
- package/dist/cli/orchestrate/partition-files.js +94 -0
- package/dist/cli/orchestrate/partition-files.js.map +1 -0
- package/dist/cli/orchestrate/resolution-trace.d.ts +11 -0
- package/dist/cli/orchestrate/resolution-trace.d.ts.map +1 -0
- package/dist/cli/orchestrate/resolution-trace.js +27 -0
- package/dist/cli/orchestrate/resolution-trace.js.map +1 -0
- package/dist/cli/orchestrate/shard-model.d.ts +99 -0
- package/dist/cli/orchestrate/shard-model.d.ts.map +1 -0
- package/dist/cli/orchestrate/shard-model.js +23 -0
- package/dist/cli/orchestrate/shard-model.js.map +1 -0
- package/dist/cli/orchestrate/shard-runner.d.ts +65 -0
- package/dist/cli/orchestrate/shard-runner.d.ts.map +1 -0
- package/dist/cli/orchestrate/shard-runner.js +169 -0
- package/dist/cli/orchestrate/shard-runner.js.map +1 -0
- package/dist/cli/orchestrate/sharded-graph.d.ts +86 -0
- package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -0
- package/dist/cli/orchestrate/sharded-graph.js +227 -0
- package/dist/cli/orchestrate/sharded-graph.js.map +1 -0
- package/dist/cli/orchestrate/types.d.ts +31 -0
- package/dist/cli/orchestrate/types.d.ts.map +1 -0
- package/dist/cli/orchestrate/types.js +24 -0
- package/dist/cli/orchestrate/types.js.map +1 -0
- package/dist/cli/orchestrate/worker-pool.d.ts +16 -0
- package/dist/cli/orchestrate/worker-pool.d.ts.map +1 -0
- package/dist/cli/orchestrate/worker-pool.js +39 -0
- package/dist/cli/orchestrate/worker-pool.js.map +1 -0
- package/dist/cli/orchestrate.d.ts +106 -0
- package/dist/cli/orchestrate.d.ts.map +1 -0
- package/dist/cli/orchestrate.js +228 -0
- package/dist/cli/orchestrate.js.map +1 -0
- package/dist/cli/positional-paths.d.ts +23 -0
- package/dist/cli/positional-paths.d.ts.map +1 -0
- package/dist/cli/positional-paths.js +64 -0
- package/dist/cli/positional-paths.js.map +1 -0
- package/dist/cli/pressure-monitor.d.ts +62 -0
- package/dist/cli/pressure-monitor.d.ts.map +1 -0
- package/dist/cli/pressure-monitor.js +110 -0
- package/dist/cli/pressure-monitor.js.map +1 -0
- package/dist/cli/profile.d.ts +82 -0
- package/dist/cli/profile.d.ts.map +1 -0
- package/dist/cli/profile.js +120 -0
- package/dist/cli/profile.js.map +1 -0
- package/dist/cli/report-data.d.ts +46 -0
- package/dist/cli/report-data.d.ts.map +1 -0
- package/dist/cli/report-data.js +48 -0
- package/dist/cli/report-data.js.map +1 -0
- package/dist/cli/resolve-adapters.d.ts +19 -0
- package/dist/cli/resolve-adapters.d.ts.map +1 -0
- package/dist/cli/resolve-adapters.js +38 -0
- package/dist/cli/resolve-adapters.js.map +1 -0
- package/dist/cli/sarif-export.d.ts +40 -0
- package/dist/cli/sarif-export.d.ts.map +1 -0
- package/dist/cli/sarif-export.js +69 -0
- package/dist/cli/sarif-export.js.map +1 -0
- package/dist/cli/shard-worker.d.ts +25 -0
- package/dist/cli/shard-worker.d.ts.map +1 -0
- package/dist/cli/shard-worker.js +98 -0
- package/dist/cli/shard-worker.js.map +1 -0
- package/dist/cli/symbol-index.d.ts +51 -0
- package/dist/cli/symbol-index.d.ts.map +1 -0
- package/dist/cli/symbol-index.js +120 -0
- package/dist/cli/symbol-index.js.map +1 -0
- package/dist/cli/workspace-report.d.ts +32 -0
- package/dist/cli/workspace-report.d.ts.map +1 -0
- package/dist/cli/workspace-report.js +107 -0
- package/dist/cli/workspace-report.js.map +1 -0
- package/dist/cli/workspace-runner.d.ts +104 -0
- package/dist/cli/workspace-runner.d.ts.map +1 -0
- package/dist/cli/workspace-runner.js +166 -0
- package/dist/cli/workspace-runner.js.map +1 -0
- package/dist/cross-package/export-index.d.ts +118 -0
- package/dist/cross-package/export-index.d.ts.map +1 -0
- package/dist/cross-package/export-index.js +296 -0
- package/dist/cross-package/export-index.js.map +1 -0
- package/dist/cross-package/posix-path.d.ts +16 -0
- package/dist/cross-package/posix-path.d.ts.map +1 -0
- package/dist/cross-package/posix-path.js +18 -0
- package/dist/cross-package/posix-path.js.map +1 -0
- package/dist/cross-package/resolve.d.ts +68 -0
- package/dist/cross-package/resolve.d.ts.map +1 -0
- package/dist/cross-package/resolve.js +83 -0
- package/dist/cross-package/resolve.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +25 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +38 -0
- package/dist/internal.js.map +1 -0
- package/dist/lang-adapter/body-digest.d.ts +46 -0
- package/dist/lang-adapter/body-digest.d.ts.map +1 -0
- package/dist/lang-adapter/body-digest.js +49 -0
- package/dist/lang-adapter/body-digest.js.map +1 -0
- package/dist/lang-adapter/edge-helpers.d.ts +104 -0
- package/dist/lang-adapter/edge-helpers.d.ts.map +1 -0
- package/dist/lang-adapter/edge-helpers.js +120 -0
- package/dist/lang-adapter/edge-helpers.js.map +1 -0
- package/dist/lang-adapter/registry.d.ts +59 -0
- package/dist/lang-adapter/registry.d.ts.map +1 -0
- package/dist/lang-adapter/registry.js +100 -0
- package/dist/lang-adapter/registry.js.map +1 -0
- package/dist/lang-adapter/selector.d.ts +39 -0
- package/dist/lang-adapter/selector.d.ts.map +1 -0
- package/dist/lang-adapter/selector.js +140 -0
- package/dist/lang-adapter/selector.js.map +1 -0
- package/dist/lang-adapter/types.d.ts +217 -0
- package/dist/lang-adapter/types.d.ts.map +1 -0
- package/dist/lang-adapter/types.js +18 -0
- package/dist/lang-adapter/types.js.map +1 -0
- package/dist/owner-key.d.ts +22 -0
- package/dist/owner-key.d.ts.map +1 -0
- package/dist/owner-key.js +25 -0
- package/dist/owner-key.js.map +1 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.d.ts +8 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.d.ts.map +1 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.js +126 -0
- package/dist/persistence/__tests__/shard-fragment-cache.test.js.map +1 -0
- package/dist/persistence/catalog-repo.d.ts +77 -0
- package/dist/persistence/catalog-repo.d.ts.map +1 -0
- package/dist/persistence/catalog-repo.js +229 -0
- package/dist/persistence/catalog-repo.js.map +1 -0
- package/dist/persistence/schema.d.ts +249 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +53 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/persistence/session-payload.d.ts +96 -0
- package/dist/persistence/session-payload.d.ts.map +1 -0
- package/dist/persistence/session-payload.js +116 -0
- package/dist/persistence/session-payload.js.map +1 -0
- package/dist/persistence/session-replay.d.ts +15 -0
- package/dist/persistence/session-replay.d.ts.map +1 -0
- package/dist/persistence/session-replay.js +80 -0
- package/dist/persistence/session-replay.js.map +1 -0
- package/dist/pipeline/__tests__/assign-packages.test.d.ts +2 -0
- package/dist/pipeline/__tests__/assign-packages.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/assign-packages.test.js +88 -0
- package/dist/pipeline/__tests__/assign-packages.test.js.map +1 -0
- package/dist/pipeline/__tests__/constrain-edges.test.d.ts +2 -0
- package/dist/pipeline/__tests__/constrain-edges.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/constrain-edges.test.js +228 -0
- package/dist/pipeline/__tests__/constrain-edges.test.js.map +1 -0
- package/dist/pipeline/__tests__/features.test.d.ts +9 -0
- package/dist/pipeline/__tests__/features.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/features.test.js +458 -0
- package/dist/pipeline/__tests__/features.test.js.map +1 -0
- package/dist/pipeline/__tests__/indexes-imports.test.d.ts +2 -0
- package/dist/pipeline/__tests__/indexes-imports.test.d.ts.map +1 -0
- package/dist/pipeline/__tests__/indexes-imports.test.js +114 -0
- package/dist/pipeline/__tests__/indexes-imports.test.js.map +1 -0
- package/dist/pipeline/assign-packages.d.ts +18 -0
- package/dist/pipeline/assign-packages.d.ts.map +1 -0
- package/dist/pipeline/assign-packages.js +86 -0
- package/dist/pipeline/assign-packages.js.map +1 -0
- package/dist/pipeline/constrain-edges.d.ts +34 -0
- package/dist/pipeline/constrain-edges.d.ts.map +1 -0
- package/dist/pipeline/constrain-edges.js +139 -0
- package/dist/pipeline/constrain-edges.js.map +1 -0
- package/dist/pipeline/feature-deps.d.ts +19 -0
- package/dist/pipeline/feature-deps.d.ts.map +1 -0
- package/dist/pipeline/feature-deps.js +28 -0
- package/dist/pipeline/feature-deps.js.map +1 -0
- package/dist/pipeline/features.d.ts +50 -0
- package/dist/pipeline/features.d.ts.map +1 -0
- package/dist/pipeline/features.js +462 -0
- package/dist/pipeline/features.js.map +1 -0
- package/dist/pipeline/indexes.d.ts +27 -0
- package/dist/pipeline/indexes.d.ts.map +1 -0
- package/dist/pipeline/indexes.js +159 -0
- package/dist/pipeline/indexes.js.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts +5 -0
- package/dist/recipes/__tests__/built-in-recipes.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js +24 -0
- package/dist/recipes/__tests__/built-in-recipes.test.js.map +1 -0
- package/dist/recipes/__tests__/registry.test.d.ts +7 -0
- package/dist/recipes/__tests__/registry.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/registry.test.js +34 -0
- package/dist/recipes/__tests__/registry.test.js.map +1 -0
- package/dist/recipes/__tests__/resolve.test.d.ts +10 -0
- package/dist/recipes/__tests__/resolve.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/resolve.test.js +38 -0
- package/dist/recipes/__tests__/resolve.test.js.map +1 -0
- package/dist/recipes/built-in-recipes.d.ts +26 -0
- package/dist/recipes/built-in-recipes.d.ts.map +1 -0
- package/dist/recipes/built-in-recipes.js +43 -0
- package/dist/recipes/built-in-recipes.js.map +1 -0
- package/dist/recipes/registry.d.ts +31 -0
- package/dist/recipes/registry.d.ts.map +1 -0
- package/dist/recipes/registry.js +48 -0
- package/dist/recipes/registry.js.map +1 -0
- package/dist/recipes/resolve.d.ts +31 -0
- package/dist/recipes/resolve.d.ts.map +1 -0
- package/dist/recipes/resolve.js +70 -0
- package/dist/recipes/resolve.js.map +1 -0
- package/dist/recipes/types.d.ts +58 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +39 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/render/__tests__/catalog-json.test.d.ts +9 -0
- package/dist/render/__tests__/catalog-json.test.d.ts.map +1 -0
- package/dist/render/__tests__/catalog-json.test.js +132 -0
- package/dist/render/__tests__/catalog-json.test.js.map +1 -0
- package/dist/render/catalog-json-types.d.ts +114 -0
- package/dist/render/catalog-json-types.d.ts.map +1 -0
- package/dist/render/catalog-json-types.js +23 -0
- package/dist/render/catalog-json-types.js.map +1 -0
- package/dist/render/catalog-json.d.ts +43 -0
- package/dist/render/catalog-json.d.ts.map +1 -0
- package/dist/render/catalog-json.js +303 -0
- package/dist/render/catalog-json.js.map +1 -0
- package/dist/render/opensip-id-derivation.d.ts +73 -0
- package/dist/render/opensip-id-derivation.d.ts.map +1 -0
- package/dist/render/opensip-id-derivation.js +65 -0
- package/dist/render/opensip-id-derivation.js.map +1 -0
- package/dist/render/rule-id-mapping.d.ts +61 -0
- package/dist/render/rule-id-mapping.d.ts.map +1 -0
- package/dist/render/rule-id-mapping.js +82 -0
- package/dist/render/rule-id-mapping.js.map +1 -0
- package/dist/resolve-callee.d.ts +50 -0
- package/dist/resolve-callee.d.ts.map +1 -0
- package/dist/resolve-callee.js +80 -0
- package/dist/resolve-callee.js.map +1 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.d.ts +22 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.d.ts.map +1 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.js +143 -0
- package/dist/rules/__tests__/__fixtures__/catalog.fixture.js.map +1 -0
- package/dist/rules/__tests__/create-graph-signal.test.d.ts +8 -0
- package/dist/rules/__tests__/create-graph-signal.test.d.ts.map +1 -0
- package/dist/rules/__tests__/create-graph-signal.test.js +55 -0
- package/dist/rules/__tests__/create-graph-signal.test.js.map +1 -0
- package/dist/rules/__tests__/define-rule.test.d.ts +13 -0
- package/dist/rules/__tests__/define-rule.test.d.ts.map +1 -0
- package/dist/rules/__tests__/define-rule.test.js +102 -0
- package/dist/rules/__tests__/define-rule.test.js.map +1 -0
- package/dist/rules/__tests__/fingerprint-golden.test.d.ts +21 -0
- package/dist/rules/__tests__/fingerprint-golden.test.d.ts.map +1 -0
- package/dist/rules/__tests__/fingerprint-golden.test.js +69 -0
- package/dist/rules/__tests__/fingerprint-golden.test.js.map +1 -0
- package/dist/rules/__tests__/registry.test.d.ts +6 -0
- package/dist/rules/__tests__/registry.test.d.ts.map +1 -0
- package/dist/rules/__tests__/registry.test.js +37 -0
- package/dist/rules/__tests__/registry.test.js.map +1 -0
- package/dist/rules/__tests__/rule-behaviors.test.d.ts +9 -0
- package/dist/rules/__tests__/rule-behaviors.test.d.ts.map +1 -0
- package/dist/rules/__tests__/rule-behaviors.test.js +204 -0
- package/dist/rules/__tests__/rule-behaviors.test.js.map +1 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.d.ts +11 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.d.ts.map +1 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.js +55 -0
- package/dist/rules/__tests__/signal-output.snapshot.test.js.map +1 -0
- package/dist/rules/_approximation.d.ts +23 -0
- package/dist/rules/_approximation.d.ts.map +1 -0
- package/dist/rules/_approximation.js +28 -0
- package/dist/rules/_approximation.js.map +1 -0
- package/dist/rules/_entry-points.d.ts +27 -0
- package/dist/rules/_entry-points.d.ts.map +1 -0
- package/dist/rules/_entry-points.js +81 -0
- package/dist/rules/_entry-points.js.map +1 -0
- package/dist/rules/_severity-override.d.ts +32 -0
- package/dist/rules/_severity-override.d.ts.map +1 -0
- package/dist/rules/_severity-override.js +33 -0
- package/dist/rules/_severity-override.js.map +1 -0
- package/dist/rules/always-throws-branch.d.ts +26 -0
- package/dist/rules/always-throws-branch.d.ts.map +1 -0
- package/dist/rules/always-throws-branch.js +66 -0
- package/dist/rules/always-throws-branch.js.map +1 -0
- package/dist/rules/create-graph-signal.d.ts +38 -0
- package/dist/rules/create-graph-signal.d.ts.map +1 -0
- package/dist/rules/create-graph-signal.js +35 -0
- package/dist/rules/create-graph-signal.js.map +1 -0
- package/dist/rules/cycle.d.ts +29 -0
- package/dist/rules/cycle.d.ts.map +1 -0
- package/dist/rules/cycle.js +166 -0
- package/dist/rules/cycle.js.map +1 -0
- package/dist/rules/cycle.memberlocations.test.d.ts +11 -0
- package/dist/rules/cycle.memberlocations.test.d.ts.map +1 -0
- package/dist/rules/cycle.memberlocations.test.js +84 -0
- package/dist/rules/cycle.memberlocations.test.js.map +1 -0
- package/dist/rules/define-rule.d.ts +67 -0
- package/dist/rules/define-rule.d.ts.map +1 -0
- package/dist/rules/define-rule.js +66 -0
- package/dist/rules/define-rule.js.map +1 -0
- package/dist/rules/duplicated-function-body.d.ts +40 -0
- package/dist/rules/duplicated-function-body.d.ts.map +1 -0
- package/dist/rules/duplicated-function-body.js +232 -0
- package/dist/rules/duplicated-function-body.js.map +1 -0
- package/dist/rules/high-blast-untested.d.ts +26 -0
- package/dist/rules/high-blast-untested.d.ts.map +1 -0
- package/dist/rules/high-blast-untested.js +82 -0
- package/dist/rules/high-blast-untested.js.map +1 -0
- package/dist/rules/large-function.d.ts +22 -0
- package/dist/rules/large-function.d.ts.map +1 -0
- package/dist/rules/large-function.js +72 -0
- package/dist/rules/large-function.js.map +1 -0
- package/dist/rules/no-side-effect-path.d.ts +31 -0
- package/dist/rules/no-side-effect-path.d.ts.map +1 -0
- package/dist/rules/no-side-effect-path.js +217 -0
- package/dist/rules/no-side-effect-path.js.map +1 -0
- package/dist/rules/orphan-subtree.d.ts +11 -0
- package/dist/rules/orphan-subtree.d.ts.map +1 -0
- package/dist/rules/orphan-subtree.js +104 -0
- package/dist/rules/orphan-subtree.js.map +1 -0
- package/dist/rules/registry.d.ts +35 -0
- package/dist/rules/registry.d.ts.map +1 -0
- package/dist/rules/registry.js +96 -0
- package/dist/rules/registry.js.map +1 -0
- package/dist/rules/test-only-reachable.d.ts +9 -0
- package/dist/rules/test-only-reachable.d.ts.map +1 -0
- package/dist/rules/test-only-reachable.js +101 -0
- package/dist/rules/test-only-reachable.js.map +1 -0
- package/dist/rules/unexpected-coupling.d.ts +29 -0
- package/dist/rules/unexpected-coupling.d.ts.map +1 -0
- package/dist/rules/unexpected-coupling.js +0 -0
- package/dist/rules/unexpected-coupling.js.map +1 -0
- package/dist/rules/wide-function.d.ts +18 -0
- package/dist/rules/wide-function.d.ts.map +1 -0
- package/dist/rules/wide-function.js +58 -0
- package/dist/rules/wide-function.js.map +1 -0
- package/dist/scope-augmentation.d.ts +58 -0
- package/dist/scope-augmentation.d.ts.map +1 -0
- package/dist/scope-augmentation.js +29 -0
- package/dist/scope-augmentation.js.map +1 -0
- package/dist/tool.d.ts +29 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +241 -0
- package/dist/tool.js.map +1 -0
- package/dist/types.d.ts +642 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +136 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Engine-side mirror of opensip's content-derived
|
|
3
|
+
* symbol-ID / edge-ID hashing. Byte-for-byte equivalent to
|
|
4
|
+
* `computeSymbolId` / `computeEdgeId` in
|
|
5
|
+
* `packages/code-graph/src/symbol-id.ts` so engine-emitted catalog
|
|
6
|
+
* rows collide with existing substrate rows under `ON CONFLICT DO
|
|
7
|
+
* UPDATE` (idempotent re-ingestion).
|
|
8
|
+
*
|
|
9
|
+
* Algorithm is intentionally trivial: canonicalize input fields into a
|
|
10
|
+
* `::`-separated string and sha256. Determinism (rename-invariant
|
|
11
|
+
* stability) is the load-bearing property — the ID changes when the
|
|
12
|
+
* symbol identity changes (rename, module move, arity change) but not
|
|
13
|
+
* when the file is renamed or lines shift.
|
|
14
|
+
*
|
|
15
|
+
* Cross-repo source-of-truth risk: if opensip's algorithm changes,
|
|
16
|
+
* this mirror desynchronizes silently. The local golden tests pin this
|
|
17
|
+
* package's implementation; a cross-repo parity test should compare it
|
|
18
|
+
* against opensip's `computeSymbolId` / `computeEdgeId` whenever that
|
|
19
|
+
* source is available. The engine-package version (carried in
|
|
20
|
+
* `CatalogExportProvenance.engineVersion`) documents the cutover boundary
|
|
21
|
+
* if the algorithm ever evolves.
|
|
22
|
+
*
|
|
23
|
+
* Phase 3 Task 3.2 per DEC-498.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Input to opensip's symbol-ID hash. Mirrors `SymbolIdInput` in
|
|
27
|
+
* `packages/code-graph/src/symbol-id.ts`.
|
|
28
|
+
*/
|
|
29
|
+
export interface OpenSipSymbolIdInput {
|
|
30
|
+
readonly repoId: string;
|
|
31
|
+
readonly modulePath: string;
|
|
32
|
+
readonly kind: string;
|
|
33
|
+
readonly qualifiedName: string;
|
|
34
|
+
readonly arity: number | null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Input to opensip's edge-ID hash. Mirrors `EdgeIdInput` in
|
|
38
|
+
* `packages/code-graph/src/symbol-id.ts`.
|
|
39
|
+
*/
|
|
40
|
+
export interface OpenSipEdgeIdInput {
|
|
41
|
+
readonly fromSymbolId: string;
|
|
42
|
+
readonly edgeKind: string;
|
|
43
|
+
readonly toSymbolId: string | null;
|
|
44
|
+
readonly toQualifiedNameUnresolved: string | null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Derive opensip's symbol ID for a function / class / method / module.
|
|
48
|
+
*
|
|
49
|
+
* Mirrors `computeSymbolId(...)` byte-for-byte.
|
|
50
|
+
*/
|
|
51
|
+
export declare function deriveOpenSipSymbolId(input: OpenSipSymbolIdInput): string;
|
|
52
|
+
/**
|
|
53
|
+
* Derive opensip's edge ID. Unresolved targets are canonicalized as
|
|
54
|
+
* `unresolved:<qname>` so two distinct unresolved calls don't collide
|
|
55
|
+
* on the same fromSymbolId + edgeKind.
|
|
56
|
+
*
|
|
57
|
+
* Mirrors `computeEdgeId(...)` byte-for-byte — including the subtle
|
|
58
|
+
* empty-string fallback when both `toSymbolId` and
|
|
59
|
+
* `toQualifiedNameUnresolved` are `null` (the key becomes
|
|
60
|
+
* `<fromSymbolId>::<edgeKind>::unresolved:`).
|
|
61
|
+
*/
|
|
62
|
+
export declare function deriveOpenSipEdgeId(input: OpenSipEdgeIdInput): string;
|
|
63
|
+
/**
|
|
64
|
+
* Project a repo-relative file path to the canonical module path the
|
|
65
|
+
* opensip indexer stores in `code_symbols.module_path`. Mirrors
|
|
66
|
+
* `filePathToModulePath(...)` in
|
|
67
|
+
* `packages/code-graph/src/module-path.ts`.
|
|
68
|
+
*
|
|
69
|
+
* Rule: strip the extension if the last `.` lives in the basename;
|
|
70
|
+
* normalize Windows backslashes to POSIX `/`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function deriveOpenSipModulePath(filePath: string): string;
|
|
73
|
+
//# sourceMappingURL=opensip-id-derivation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opensip-id-derivation.d.ts","sourceRoot":"","sources":["../../src/render/opensip-id-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAGzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAIrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKhE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Engine-side mirror of opensip's content-derived
|
|
3
|
+
* symbol-ID / edge-ID hashing. Byte-for-byte equivalent to
|
|
4
|
+
* `computeSymbolId` / `computeEdgeId` in
|
|
5
|
+
* `packages/code-graph/src/symbol-id.ts` so engine-emitted catalog
|
|
6
|
+
* rows collide with existing substrate rows under `ON CONFLICT DO
|
|
7
|
+
* UPDATE` (idempotent re-ingestion).
|
|
8
|
+
*
|
|
9
|
+
* Algorithm is intentionally trivial: canonicalize input fields into a
|
|
10
|
+
* `::`-separated string and sha256. Determinism (rename-invariant
|
|
11
|
+
* stability) is the load-bearing property — the ID changes when the
|
|
12
|
+
* symbol identity changes (rename, module move, arity change) but not
|
|
13
|
+
* when the file is renamed or lines shift.
|
|
14
|
+
*
|
|
15
|
+
* Cross-repo source-of-truth risk: if opensip's algorithm changes,
|
|
16
|
+
* this mirror desynchronizes silently. The local golden tests pin this
|
|
17
|
+
* package's implementation; a cross-repo parity test should compare it
|
|
18
|
+
* against opensip's `computeSymbolId` / `computeEdgeId` whenever that
|
|
19
|
+
* source is available. The engine-package version (carried in
|
|
20
|
+
* `CatalogExportProvenance.engineVersion`) documents the cutover boundary
|
|
21
|
+
* if the algorithm ever evolves.
|
|
22
|
+
*
|
|
23
|
+
* Phase 3 Task 3.2 per DEC-498.
|
|
24
|
+
*/
|
|
25
|
+
import { createHash } from 'node:crypto';
|
|
26
|
+
/**
|
|
27
|
+
* Derive opensip's symbol ID for a function / class / method / module.
|
|
28
|
+
*
|
|
29
|
+
* Mirrors `computeSymbolId(...)` byte-for-byte.
|
|
30
|
+
*/
|
|
31
|
+
export function deriveOpenSipSymbolId(input) {
|
|
32
|
+
const key = `${input.repoId}::${input.modulePath}::${input.kind}::${input.qualifiedName}::${input.arity ?? ''}`;
|
|
33
|
+
return createHash('sha256').update(key).digest('hex');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Derive opensip's edge ID. Unresolved targets are canonicalized as
|
|
37
|
+
* `unresolved:<qname>` so two distinct unresolved calls don't collide
|
|
38
|
+
* on the same fromSymbolId + edgeKind.
|
|
39
|
+
*
|
|
40
|
+
* Mirrors `computeEdgeId(...)` byte-for-byte — including the subtle
|
|
41
|
+
* empty-string fallback when both `toSymbolId` and
|
|
42
|
+
* `toQualifiedNameUnresolved` are `null` (the key becomes
|
|
43
|
+
* `<fromSymbolId>::<edgeKind>::unresolved:`).
|
|
44
|
+
*/
|
|
45
|
+
export function deriveOpenSipEdgeId(input) {
|
|
46
|
+
const target = input.toSymbolId ?? `unresolved:${input.toQualifiedNameUnresolved ?? ''}`;
|
|
47
|
+
const key = `${input.fromSymbolId}::${input.edgeKind}::${target}`;
|
|
48
|
+
return createHash('sha256').update(key).digest('hex');
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Project a repo-relative file path to the canonical module path the
|
|
52
|
+
* opensip indexer stores in `code_symbols.module_path`. Mirrors
|
|
53
|
+
* `filePathToModulePath(...)` in
|
|
54
|
+
* `packages/code-graph/src/module-path.ts`.
|
|
55
|
+
*
|
|
56
|
+
* Rule: strip the extension if the last `.` lives in the basename;
|
|
57
|
+
* normalize Windows backslashes to POSIX `/`.
|
|
58
|
+
*/
|
|
59
|
+
export function deriveOpenSipModulePath(filePath) {
|
|
60
|
+
const lastDot = filePath.lastIndexOf('.');
|
|
61
|
+
const lastSep = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'));
|
|
62
|
+
const noExt = lastDot > lastSep ? filePath.slice(0, lastDot) : filePath;
|
|
63
|
+
return noExt.replaceAll('\\', '/');
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=opensip-id-derivation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opensip-id-derivation.js","sourceRoot":"","sources":["../../src/render/opensip-id-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyBzC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;IAChH,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,cAAc,KAAK,CAAC,yBAAyB,IAAI,EAAE,EAAE,CAAC;IACzF,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IAClE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Rule-ID mapping — engine slug → OpenSIP-convention rule ID.
|
|
3
|
+
*
|
|
4
|
+
* The engine's `Rule.slug` follows the pattern `graph:<rule-slug>` (e.g.
|
|
5
|
+
* `graph:orphan-subtree`) per `engine/src/types.ts`. OpenSIP's rule-ID
|
|
6
|
+
* convention is `<package>.<rule-family>.<rule-id>` — a three-segment
|
|
7
|
+
* dot-separated form that lets the reconciler classify findings by family
|
|
8
|
+
* (dead-code vs duplication vs safety, etc.) without parsing message text.
|
|
9
|
+
*
|
|
10
|
+
* For graph-emitted findings, the first segment is always `graph` (the
|
|
11
|
+
* source package). The second segment is the rule family the engine rule
|
|
12
|
+
* belongs to (`dead-code`, `duplication`, `safety`). The third segment
|
|
13
|
+
* is the specific rule.
|
|
14
|
+
*
|
|
15
|
+
* The mapping is a frozen constant — adding a new rule to the engine
|
|
16
|
+
* requires updating this table explicitly. An unknown slug throws a typed
|
|
17
|
+
* error so a missing mapping fails loudly at SARIF emission rather than
|
|
18
|
+
* silently producing a wrong rule ID downstream.
|
|
19
|
+
*
|
|
20
|
+
* Co-located with the SARIF emitter (Task 2.2) so the conversion is
|
|
21
|
+
* testable in isolation. Phase 2 Task 2.1 per DEC-498.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Mapping from engine `Rule.slug` to OpenSIP-convention rule ID.
|
|
25
|
+
*
|
|
26
|
+
* Every entry in `engine/src/rules/registry.ts`'s `BUILT_IN_RULES` MUST
|
|
27
|
+
* have an entry here. Tests in `__tests__/render/rule-id-mapping.test.ts`
|
|
28
|
+
* enforce coverage by iterating `currentRules()`.
|
|
29
|
+
*/
|
|
30
|
+
export declare const RULE_ID_MAPPING: Readonly<Record<string, string>>;
|
|
31
|
+
/**
|
|
32
|
+
* OpenSIP-convention rule ID regex. Three dot-separated segments, lowercase
|
|
33
|
+
* kebab-case allowed in each segment. The SARIF emitter asserts every
|
|
34
|
+
* `result.ruleId` matches this; tests verify the regex against every
|
|
35
|
+
* mapping entry.
|
|
36
|
+
*/
|
|
37
|
+
export declare const OPENSIP_RULE_ID_REGEX: RegExp;
|
|
38
|
+
/**
|
|
39
|
+
* Translate an engine slug to its OpenSIP-convention rule ID.
|
|
40
|
+
*
|
|
41
|
+
* @throws {ValidationError} when `slug` is not in `RULE_ID_MAPPING`. This
|
|
42
|
+
* is a programmer error (a rule was added to the engine registry
|
|
43
|
+
* without updating this table), not a runtime input issue — fail loudly
|
|
44
|
+
* at SARIF emission rather than emit an invalid wire format.
|
|
45
|
+
*/
|
|
46
|
+
export declare function mapEngineSlugToOpenSipRuleId(slug: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Inverse of {@link RULE_ID_MAPPING}: OpenSIP rule ID → engine slug. The
|
|
49
|
+
* mapping is 1:1, so the inverse is unambiguous. Used by the `--workspace`
|
|
50
|
+
* parent to recover engine slugs from child envelopes (whose signals carry
|
|
51
|
+
* the Option-A-mapped OpenSIP rule ID) before building the dashboard session
|
|
52
|
+
* payload, whose per-rule metric columns are keyed on engine slugs.
|
|
53
|
+
*/
|
|
54
|
+
export declare const OPENSIP_RULE_ID_TO_ENGINE_SLUG: Readonly<Record<string, string>>;
|
|
55
|
+
/**
|
|
56
|
+
* Translate an OpenSIP-convention rule ID back to its engine slug. Returns
|
|
57
|
+
* the input unchanged when it is already an engine slug (or otherwise
|
|
58
|
+
* unmapped) so callers can pass through signals that were never remapped.
|
|
59
|
+
*/
|
|
60
|
+
export declare function mapOpenSipRuleIdToEngineSlug(ruleId: string): string;
|
|
61
|
+
//# sourceMappingURL=rule-id-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-id-mapping.d.ts","sourceRoot":"","sources":["../../src/render/rule-id-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY3D,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Rule-ID mapping — engine slug → OpenSIP-convention rule ID.
|
|
3
|
+
*
|
|
4
|
+
* The engine's `Rule.slug` follows the pattern `graph:<rule-slug>` (e.g.
|
|
5
|
+
* `graph:orphan-subtree`) per `engine/src/types.ts`. OpenSIP's rule-ID
|
|
6
|
+
* convention is `<package>.<rule-family>.<rule-id>` — a three-segment
|
|
7
|
+
* dot-separated form that lets the reconciler classify findings by family
|
|
8
|
+
* (dead-code vs duplication vs safety, etc.) without parsing message text.
|
|
9
|
+
*
|
|
10
|
+
* For graph-emitted findings, the first segment is always `graph` (the
|
|
11
|
+
* source package). The second segment is the rule family the engine rule
|
|
12
|
+
* belongs to (`dead-code`, `duplication`, `safety`). The third segment
|
|
13
|
+
* is the specific rule.
|
|
14
|
+
*
|
|
15
|
+
* The mapping is a frozen constant — adding a new rule to the engine
|
|
16
|
+
* requires updating this table explicitly. An unknown slug throws a typed
|
|
17
|
+
* error so a missing mapping fails loudly at SARIF emission rather than
|
|
18
|
+
* silently producing a wrong rule ID downstream.
|
|
19
|
+
*
|
|
20
|
+
* Co-located with the SARIF emitter (Task 2.2) so the conversion is
|
|
21
|
+
* testable in isolation. Phase 2 Task 2.1 per DEC-498.
|
|
22
|
+
*/
|
|
23
|
+
import { ValidationError } from '@opensip-cli/core';
|
|
24
|
+
/**
|
|
25
|
+
* Mapping from engine `Rule.slug` to OpenSIP-convention rule ID.
|
|
26
|
+
*
|
|
27
|
+
* Every entry in `engine/src/rules/registry.ts`'s `BUILT_IN_RULES` MUST
|
|
28
|
+
* have an entry here. Tests in `__tests__/render/rule-id-mapping.test.ts`
|
|
29
|
+
* enforce coverage by iterating `currentRules()`.
|
|
30
|
+
*/
|
|
31
|
+
export const RULE_ID_MAPPING = Object.freeze({
|
|
32
|
+
'graph:orphan-subtree': 'graph.dead-code.orphan-subtree',
|
|
33
|
+
'graph:duplicated-function-body': 'graph.duplication.duplicated-function-body',
|
|
34
|
+
'graph:no-side-effect-path': 'graph.dead-code.no-side-effect-path',
|
|
35
|
+
'graph:always-throws-branch': 'graph.safety.always-throws-branch',
|
|
36
|
+
'graph:test-only-reachable': 'graph.dead-code.test-only-reachable',
|
|
37
|
+
// Plan D structural rules (new slugs → reversible naming pre-baseline).
|
|
38
|
+
'graph:large-function': 'graph.complexity.large-function',
|
|
39
|
+
'graph:wide-function': 'graph.complexity.wide-function',
|
|
40
|
+
'graph:high-blast-untested': 'graph.coverage.high-blast-untested',
|
|
41
|
+
'graph:cycle': 'graph.architecture.cycle',
|
|
42
|
+
'graph:unexpected-coupling': 'graph.architecture.unexpected-coupling',
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* OpenSIP-convention rule ID regex. Three dot-separated segments, lowercase
|
|
46
|
+
* kebab-case allowed in each segment. The SARIF emitter asserts every
|
|
47
|
+
* `result.ruleId` matches this; tests verify the regex against every
|
|
48
|
+
* mapping entry.
|
|
49
|
+
*/
|
|
50
|
+
export const OPENSIP_RULE_ID_REGEX = /^graph\.[a-z-]+\.[a-z-]+$/;
|
|
51
|
+
/**
|
|
52
|
+
* Translate an engine slug to its OpenSIP-convention rule ID.
|
|
53
|
+
*
|
|
54
|
+
* @throws {ValidationError} when `slug` is not in `RULE_ID_MAPPING`. This
|
|
55
|
+
* is a programmer error (a rule was added to the engine registry
|
|
56
|
+
* without updating this table), not a runtime input issue — fail loudly
|
|
57
|
+
* at SARIF emission rather than emit an invalid wire format.
|
|
58
|
+
*/
|
|
59
|
+
export function mapEngineSlugToOpenSipRuleId(slug) {
|
|
60
|
+
const mapped = RULE_ID_MAPPING[slug];
|
|
61
|
+
if (mapped === undefined) {
|
|
62
|
+
throw new ValidationError(`No OpenSIP rule-ID mapping for engine slug "${slug}". Add an entry to RULE_ID_MAPPING in engine/src/render/rule-id-mapping.ts.`);
|
|
63
|
+
}
|
|
64
|
+
return mapped;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Inverse of {@link RULE_ID_MAPPING}: OpenSIP rule ID → engine slug. The
|
|
68
|
+
* mapping is 1:1, so the inverse is unambiguous. Used by the `--workspace`
|
|
69
|
+
* parent to recover engine slugs from child envelopes (whose signals carry
|
|
70
|
+
* the Option-A-mapped OpenSIP rule ID) before building the dashboard session
|
|
71
|
+
* payload, whose per-rule metric columns are keyed on engine slugs.
|
|
72
|
+
*/
|
|
73
|
+
export const OPENSIP_RULE_ID_TO_ENGINE_SLUG = Object.freeze(Object.fromEntries(Object.entries(RULE_ID_MAPPING).map(([slug, ruleId]) => [ruleId, slug])));
|
|
74
|
+
/**
|
|
75
|
+
* Translate an OpenSIP-convention rule ID back to its engine slug. Returns
|
|
76
|
+
* the input unchanged when it is already an engine slug (or otherwise
|
|
77
|
+
* unmapped) so callers can pass through signals that were never remapped.
|
|
78
|
+
*/
|
|
79
|
+
export function mapOpenSipRuleIdToEngineSlug(ruleId) {
|
|
80
|
+
return OPENSIP_RULE_ID_TO_ENGINE_SLUG[ruleId] ?? ruleId;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=rule-id-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-id-mapping.js","sourceRoot":"","sources":["../../src/render/rule-id-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC7E,sBAAsB,EAAE,gCAAgC;IACxD,gCAAgC,EAAE,4CAA4C;IAC9E,2BAA2B,EAAE,qCAAqC;IAClE,4BAA4B,EAAE,mCAAmC;IACjE,2BAA2B,EAAE,qCAAqC;IAClE,wEAAwE;IACxE,sBAAsB,EAAE,iCAAiC;IACzD,qBAAqB,EAAE,gCAAgC;IACvD,2BAA2B,EAAE,oCAAoC;IACjE,aAAa,EAAE,0BAA0B;IACzC,2BAA2B,EAAE,wCAAwC;CACtE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACvD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CACvB,+CAA+C,IAAI,6EAA6E,CACjI,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAqC,MAAM,CAAC,MAAM,CAC3F,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5F,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,OAAO,8BAA8B,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-aware callee resolution.
|
|
3
|
+
*
|
|
4
|
+
* A call edge stores its target as a `bodyHash`, which is a CONTENT hash:
|
|
5
|
+
* two functions with identical bodies in different packages share one hash.
|
|
6
|
+
* Looking a callee up by hash alone therefore mis-attributes its package
|
|
7
|
+
* whenever bodies collide (the cause of impossible coupling edges like
|
|
8
|
+
* `core→fitness`). `resolveCallee` disambiguates such a hash to the
|
|
9
|
+
* occurrence the caller can actually reach, deterministically.
|
|
10
|
+
*
|
|
11
|
+
* Pure, dependency-free (no node imports) so the same logic can be mirrored
|
|
12
|
+
* verbatim in the dashboard's browser-side coupling view.
|
|
13
|
+
*/
|
|
14
|
+
import type { FunctionOccurrence, Indexes } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* The first path segment under `packages/` — the unit the coupling grid
|
|
17
|
+
* groups by (so `packages/languages/lang-typescript/...` → `languages`,
|
|
18
|
+
* `packages/graph/graph-typescript/...` → `graph`). Returns `'<unknown>'`
|
|
19
|
+
* for paths outside `packages/`. Must match the dashboard's `packageOfPath`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function packageOf(filePath: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* The package an occurrence belongs to. Prefers the build-time-stamped
|
|
24
|
+
* `occurrence.package` (nearest `package.json` name — accurate for any repo
|
|
25
|
+
* layout); falls back to the `packages/<segment>` path heuristic for
|
|
26
|
+
* legacy catalogs that predate the stamp.
|
|
27
|
+
*/
|
|
28
|
+
export declare function pkgOf(occ: Pick<FunctionOccurrence, 'package' | 'filePath'>): string;
|
|
29
|
+
/**
|
|
30
|
+
* A package-unique, collision-free id for a single occurrence — its source
|
|
31
|
+
* location `${filePath}:${line}:${column}`. Unlike `bodyHash` (a CONTENT hash
|
|
32
|
+
* that two functions with identical bodies in different packages share), every
|
|
33
|
+
* occurrence has a unique declaration site, so occId never collapses distinct
|
|
34
|
+
* functions. Used as the SCC/cycle graph's node identity (the body-hash
|
|
35
|
+
* cross-package phantom fix) and keyed into `Indexes.byOccId`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function occId(occ: Pick<FunctionOccurrence, 'filePath' | 'line' | 'column'>): string;
|
|
38
|
+
/** The package groups the caller's module imports (empty in fast mode). */
|
|
39
|
+
export declare function callerImportedPackages(callerOcc: FunctionOccurrence, indexes: Indexes): ReadonlySet<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a call edge's target `bodyHash` to the callee occurrence the
|
|
42
|
+
* caller can actually reach, disambiguating body-hash collisions across
|
|
43
|
+
* packages. Order:
|
|
44
|
+
* 1. an occurrence in the caller's own package;
|
|
45
|
+
* 2. an occurrence in a package the caller's module imports;
|
|
46
|
+
* 3. deterministic fallback — lowest `qualifiedName`.
|
|
47
|
+
* Returns `undefined` when the hash has no occurrences.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resolveCallee(targetHash: string, callerOcc: FunctionOccurrence, indexes: Indexes): FunctionOccurrence | undefined;
|
|
50
|
+
//# sourceMappingURL=resolve-callee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-callee.d.ts","sourceRoot":"","sources":["../src/resolve-callee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI9D;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,MAAM,CAEnF;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CAE3F;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,MAAM,CAAC,CAErB;AAID;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,OAAO,GACf,kBAAkB,GAAG,SAAS,CAgBhC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-aware callee resolution.
|
|
3
|
+
*
|
|
4
|
+
* A call edge stores its target as a `bodyHash`, which is a CONTENT hash:
|
|
5
|
+
* two functions with identical bodies in different packages share one hash.
|
|
6
|
+
* Looking a callee up by hash alone therefore mis-attributes its package
|
|
7
|
+
* whenever bodies collide (the cause of impossible coupling edges like
|
|
8
|
+
* `core→fitness`). `resolveCallee` disambiguates such a hash to the
|
|
9
|
+
* occurrence the caller can actually reach, deterministically.
|
|
10
|
+
*
|
|
11
|
+
* Pure, dependency-free (no node imports) so the same logic can be mirrored
|
|
12
|
+
* verbatim in the dashboard's browser-side coupling view.
|
|
13
|
+
*/
|
|
14
|
+
const PACKAGE_RE = /^packages\/([^/]+)\//;
|
|
15
|
+
/**
|
|
16
|
+
* The first path segment under `packages/` — the unit the coupling grid
|
|
17
|
+
* groups by (so `packages/languages/lang-typescript/...` → `languages`,
|
|
18
|
+
* `packages/graph/graph-typescript/...` → `graph`). Returns `'<unknown>'`
|
|
19
|
+
* for paths outside `packages/`. Must match the dashboard's `packageOfPath`.
|
|
20
|
+
*/
|
|
21
|
+
export function packageOf(filePath) {
|
|
22
|
+
const m = PACKAGE_RE.exec(filePath);
|
|
23
|
+
return m ? m[1] : '<unknown>';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The package an occurrence belongs to. Prefers the build-time-stamped
|
|
27
|
+
* `occurrence.package` (nearest `package.json` name — accurate for any repo
|
|
28
|
+
* layout); falls back to the `packages/<segment>` path heuristic for
|
|
29
|
+
* legacy catalogs that predate the stamp.
|
|
30
|
+
*/
|
|
31
|
+
export function pkgOf(occ) {
|
|
32
|
+
return occ.package ?? packageOf(occ.filePath);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A package-unique, collision-free id for a single occurrence — its source
|
|
36
|
+
* location `${filePath}:${line}:${column}`. Unlike `bodyHash` (a CONTENT hash
|
|
37
|
+
* that two functions with identical bodies in different packages share), every
|
|
38
|
+
* occurrence has a unique declaration site, so occId never collapses distinct
|
|
39
|
+
* functions. Used as the SCC/cycle graph's node identity (the body-hash
|
|
40
|
+
* cross-package phantom fix) and keyed into `Indexes.byOccId`.
|
|
41
|
+
*/
|
|
42
|
+
export function occId(occ) {
|
|
43
|
+
return `${occ.filePath}:${String(occ.line)}:${String(occ.column)}`;
|
|
44
|
+
}
|
|
45
|
+
/** The package groups the caller's module imports (empty in fast mode). */
|
|
46
|
+
export function callerImportedPackages(callerOcc, indexes) {
|
|
47
|
+
return indexes.importedPackagesByFile.get(callerOcc.filePath) ?? EMPTY_SET;
|
|
48
|
+
}
|
|
49
|
+
const EMPTY_SET = new Set();
|
|
50
|
+
/**
|
|
51
|
+
* Resolve a call edge's target `bodyHash` to the callee occurrence the
|
|
52
|
+
* caller can actually reach, disambiguating body-hash collisions across
|
|
53
|
+
* packages. Order:
|
|
54
|
+
* 1. an occurrence in the caller's own package;
|
|
55
|
+
* 2. an occurrence in a package the caller's module imports;
|
|
56
|
+
* 3. deterministic fallback — lowest `qualifiedName`.
|
|
57
|
+
* Returns `undefined` when the hash has no occurrences.
|
|
58
|
+
*/
|
|
59
|
+
export function resolveCallee(targetHash, callerOcc, indexes) {
|
|
60
|
+
const candidates = indexes.occurrencesByHash.get(targetHash);
|
|
61
|
+
if (!candidates || candidates.length === 0)
|
|
62
|
+
return undefined;
|
|
63
|
+
if (candidates.length === 1)
|
|
64
|
+
return candidates[0];
|
|
65
|
+
const callerPkg = pkgOf(callerOcc);
|
|
66
|
+
const samePackage = candidates.filter((c) => pkgOf(c) === callerPkg);
|
|
67
|
+
if (samePackage.length > 0)
|
|
68
|
+
return lowestByQualifiedName(samePackage);
|
|
69
|
+
const imported = callerImportedPackages(callerOcc, indexes);
|
|
70
|
+
if (imported.size > 0) {
|
|
71
|
+
const inImported = candidates.filter((c) => imported.has(pkgOf(c)));
|
|
72
|
+
if (inImported.length > 0)
|
|
73
|
+
return lowestByQualifiedName(inImported);
|
|
74
|
+
}
|
|
75
|
+
return lowestByQualifiedName(candidates);
|
|
76
|
+
}
|
|
77
|
+
function lowestByQualifiedName(occs) {
|
|
78
|
+
return occs.reduce((lo, c) => (c.qualifiedName < lo.qualifiedName ? c : lo));
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=resolve-callee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-callee.js","sourceRoot":"","sources":["../src/resolve-callee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,GAAqD;IACzE,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,GAA6D;IACjF,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CACpC,SAA6B,EAC7B,OAAgB;IAEhB,OAAO,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;AAC7E,CAAC;AAED,MAAM,SAAS,GAAwB,IAAI,GAAG,EAAU,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,SAA6B,EAC7B,OAAgB;IAEhB,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAmC;IAChE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared rule-trigger fixture for the golden-fingerprint and
|
|
3
|
+
* signal-output snapshot tests.
|
|
4
|
+
*
|
|
5
|
+
* Builds one `Catalog` whose occurrences collectively trigger the original
|
|
6
|
+
* five-rule golden set:
|
|
7
|
+
* - `graph:orphan-subtree` — `orphanFn` (unreachable, no callers)
|
|
8
|
+
* - `graph:test-only-reachable` — `testHelperFn` (reached only from a test file)
|
|
9
|
+
* - `graph:no-side-effect-path` — `pureFn` (pure, ≥2 calls, span ≥10, discarded caller)
|
|
10
|
+
* - `graph:always-throws-branch` — `throwerFn` (every call is a `throw new …`)
|
|
11
|
+
* - `graph:duplicated-function-body` — `dupA`/`dupB`/`dupC` (same bodyHash across 3 packages)
|
|
12
|
+
*
|
|
13
|
+
* The shape mirrors `rule-behaviors.test.ts`'s builders. Locations are fixed
|
|
14
|
+
* so the fingerprint multiset (`ruleId|file|line|col`) is deterministic.
|
|
15
|
+
*/
|
|
16
|
+
import type { Catalog } from '../../../types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Build the all-rules trigger catalog. Each occurrence's location is fixed so
|
|
19
|
+
* the emitted fingerprints are stable.
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildAllRulesFixture(): Catalog;
|
|
22
|
+
//# sourceMappingURL=catalog.fixture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.fixture.d.ts","sourceRoot":"","sources":["../../../../src/rules/__tests__/__fixtures__/catalog.fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,mBAAmB,CAAC;AA6C/E;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAuF9C"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared rule-trigger fixture for the golden-fingerprint and
|
|
3
|
+
* signal-output snapshot tests.
|
|
4
|
+
*
|
|
5
|
+
* Builds one `Catalog` whose occurrences collectively trigger the original
|
|
6
|
+
* five-rule golden set:
|
|
7
|
+
* - `graph:orphan-subtree` — `orphanFn` (unreachable, no callers)
|
|
8
|
+
* - `graph:test-only-reachable` — `testHelperFn` (reached only from a test file)
|
|
9
|
+
* - `graph:no-side-effect-path` — `pureFn` (pure, ≥2 calls, span ≥10, discarded caller)
|
|
10
|
+
* - `graph:always-throws-branch` — `throwerFn` (every call is a `throw new …`)
|
|
11
|
+
* - `graph:duplicated-function-body` — `dupA`/`dupB`/`dupC` (same bodyHash across 3 packages)
|
|
12
|
+
*
|
|
13
|
+
* The shape mirrors `rule-behaviors.test.ts`'s builders. Locations are fixed
|
|
14
|
+
* so the fingerprint multiset (`ruleId|file|line|col`) is deterministic.
|
|
15
|
+
*/
|
|
16
|
+
function occ(over) {
|
|
17
|
+
return {
|
|
18
|
+
qualifiedName: `${over.filePath}.${over.simpleName}`,
|
|
19
|
+
line: 1,
|
|
20
|
+
column: 0,
|
|
21
|
+
endLine: 2,
|
|
22
|
+
kind: 'function-declaration',
|
|
23
|
+
params: [],
|
|
24
|
+
returnType: null,
|
|
25
|
+
enclosingClass: null,
|
|
26
|
+
decorators: [],
|
|
27
|
+
visibility: 'exported',
|
|
28
|
+
inTestFile: false,
|
|
29
|
+
definedInGenerated: false,
|
|
30
|
+
calls: [],
|
|
31
|
+
...over,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function edge(to, over = {}) {
|
|
35
|
+
return { to: [to], line: 2, column: 1, resolution: 'static', confidence: 'high', text: `${to}()`, ...over };
|
|
36
|
+
}
|
|
37
|
+
function catalogOf(occs) {
|
|
38
|
+
const functions = {};
|
|
39
|
+
for (const o of occs) {
|
|
40
|
+
const bucket = functions[o.simpleName];
|
|
41
|
+
if (bucket)
|
|
42
|
+
bucket.push(o);
|
|
43
|
+
else
|
|
44
|
+
functions[o.simpleName] = [o];
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
version: '3.0',
|
|
48
|
+
tool: 'graph',
|
|
49
|
+
language: 'typescript',
|
|
50
|
+
builtAt: 'x',
|
|
51
|
+
cacheKey: 'k',
|
|
52
|
+
resolutionMode: 'exact',
|
|
53
|
+
functions,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build the all-rules trigger catalog. Each occurrence's location is fixed so
|
|
58
|
+
* the emitted fingerprints are stable.
|
|
59
|
+
*/
|
|
60
|
+
export function buildAllRulesFixture() {
|
|
61
|
+
// ── orphan-subtree: a module-local function with no callers and no
|
|
62
|
+
// incoming reachability. Not exported (exported orphans are skipped),
|
|
63
|
+
// no decorators, not in a test file.
|
|
64
|
+
const orphanFn = occ({
|
|
65
|
+
bodyHash: 'ORPHAN',
|
|
66
|
+
simpleName: 'orphanFn',
|
|
67
|
+
filePath: 'packages/a/src/orphan.ts',
|
|
68
|
+
line: 10,
|
|
69
|
+
column: 2,
|
|
70
|
+
visibility: 'module-local',
|
|
71
|
+
});
|
|
72
|
+
// ── test-only-reachable: a module-local production function whose only
|
|
73
|
+
// caller lives in a test file.
|
|
74
|
+
const testHelperFn = occ({
|
|
75
|
+
bodyHash: 'TESTHELP',
|
|
76
|
+
simpleName: 'testHelperFn',
|
|
77
|
+
filePath: 'packages/a/src/helper.ts',
|
|
78
|
+
line: 20,
|
|
79
|
+
column: 4,
|
|
80
|
+
visibility: 'module-local',
|
|
81
|
+
});
|
|
82
|
+
const testCaller = occ({
|
|
83
|
+
bodyHash: 'TESTCALLER',
|
|
84
|
+
simpleName: 'testCaller',
|
|
85
|
+
filePath: 'packages/a/src/helper.test.ts',
|
|
86
|
+
line: 5,
|
|
87
|
+
column: 0,
|
|
88
|
+
inTestFile: true,
|
|
89
|
+
visibility: 'module-local',
|
|
90
|
+
calls: [edge('TESTHELP')],
|
|
91
|
+
});
|
|
92
|
+
// ── no-side-effect-path: a pure exported function (≥2 calls, span ≥10, no
|
|
93
|
+
// unresolved edges, pure callees) whose caller discards the return value.
|
|
94
|
+
const pureFn = occ({
|
|
95
|
+
bodyHash: 'PURE',
|
|
96
|
+
simpleName: 'pureCompute',
|
|
97
|
+
filePath: 'packages/a/src/pure.ts',
|
|
98
|
+
line: 30,
|
|
99
|
+
column: 0,
|
|
100
|
+
endLine: 45,
|
|
101
|
+
calls: [edge('LEAF1'), edge('LEAF2')],
|
|
102
|
+
});
|
|
103
|
+
const leaf1 = occ({ bodyHash: 'LEAF1', simpleName: 'leaf1', filePath: 'packages/a/src/pure.ts', line: 50, column: 0, visibility: 'module-local' });
|
|
104
|
+
const leaf2 = occ({ bodyHash: 'LEAF2', simpleName: 'leaf2', filePath: 'packages/a/src/pure.ts', line: 55, column: 0, visibility: 'module-local' });
|
|
105
|
+
const pureCaller = occ({
|
|
106
|
+
bodyHash: 'PURECALLER',
|
|
107
|
+
simpleName: 'pureDriver',
|
|
108
|
+
filePath: 'packages/a/src/pure.ts',
|
|
109
|
+
line: 60,
|
|
110
|
+
column: 0,
|
|
111
|
+
visibility: 'module-local',
|
|
112
|
+
calls: [edge('PURE', { discarded: true })],
|
|
113
|
+
});
|
|
114
|
+
// ── always-throws-branch: every documented call site is a `throw new …`.
|
|
115
|
+
const throwerFn = occ({
|
|
116
|
+
bodyHash: 'THROWER',
|
|
117
|
+
simpleName: 'alwaysThrows',
|
|
118
|
+
filePath: 'packages/a/src/throws.ts',
|
|
119
|
+
line: 70,
|
|
120
|
+
column: 0,
|
|
121
|
+
visibility: 'module-local',
|
|
122
|
+
calls: [edge('Error', { resolution: 'unknown', confidence: 'low', text: 'throw new Error("boom")' })],
|
|
123
|
+
});
|
|
124
|
+
// ── duplicated-function-body: same bodyHash across THREE distinct packages
|
|
125
|
+
// (≥ default minCrossPackageDuplicatePackages = 3) → one aggregate signal.
|
|
126
|
+
const dupA = occ({ bodyHash: 'DUP', simpleName: 'shared', filePath: 'packages/a/src/dup.ts', line: 80, column: 0, endLine: 90 });
|
|
127
|
+
const dupB = occ({ bodyHash: 'DUP', simpleName: 'shared', filePath: 'packages/b/src/dup.ts', line: 80, column: 0, endLine: 90 });
|
|
128
|
+
const dupC = occ({ bodyHash: 'DUP', simpleName: 'shared', filePath: 'packages/c/src/dup.ts', line: 80, column: 0, endLine: 90 });
|
|
129
|
+
return catalogOf([
|
|
130
|
+
orphanFn,
|
|
131
|
+
testHelperFn,
|
|
132
|
+
testCaller,
|
|
133
|
+
pureFn,
|
|
134
|
+
leaf1,
|
|
135
|
+
leaf2,
|
|
136
|
+
pureCaller,
|
|
137
|
+
throwerFn,
|
|
138
|
+
dupA,
|
|
139
|
+
dupB,
|
|
140
|
+
dupC,
|
|
141
|
+
]);
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=catalog.fixture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.fixture.js","sourceRoot":"","sources":["../../../../src/rules/__tests__/__fixtures__/catalog.fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,SAAS,GAAG,CACV,IAA8F;IAE9F,OAAO;QACL,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;QACpD,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,IAAI,CAAC,EAAU,EAAE,OAA0B,EAAE;IACpD,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAC9G,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;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,oEAAoE;IACpE,yEAAyE;IACzE,wCAAwC;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC;QACnB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IAEH,wEAAwE;IACxE,kCAAkC;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC;QACvB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,GAAG,CAAC;QACrB,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1B,CAAC,CAAC;IAEH,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,MAAM,GAAG,GAAG,CAAC;QACjB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,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,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;IACnJ,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;IACnJ,MAAM,UAAU,GAAG,GAAG,CAAC;QACrB,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3C,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,SAAS,GAAG,GAAG,CAAC;QACpB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;KACtG,CAAC,CAAC;IAEH,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjI,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACjI,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAEjI,OAAO,SAAS,CAAC;QACf,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createGraphSignal — stamps source/ruleId + applies the override, reproducing the
|
|
3
|
+
* signal a rule used to hand-assemble (release 2.13.0, §5.9). Byte-equality with
|
|
4
|
+
* the former `createSignal({ source:'graph', ruleId, severity:
|
|
5
|
+
* applySeverityOverride(...) })` shape (modulo the generated id/timestamp).
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=create-graph-signal.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-graph-signal.test.d.ts","sourceRoot":"","sources":["../../../src/rules/__tests__/create-graph-signal.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|