@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,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalog-JSON renderer — maps the engine catalog to a CatalogExport wire
|
|
3
|
+
* document. Covers the FunctionKind → opensip-kind mapping for every
|
|
4
|
+
* branch (function/method/getter/setter/constructor/module-init) and the
|
|
5
|
+
* dangling-edge invariant skip (a call/dependency `to` hash absent from
|
|
6
|
+
* the catalog is dropped rather than emitted half-formed).
|
|
7
|
+
*/
|
|
8
|
+
import { describe, expect, it } from 'vitest';
|
|
9
|
+
import { buildIndexes } from '../../pipeline/indexes.js';
|
|
10
|
+
import { renderCatalogJson } from '../catalog-json.js';
|
|
11
|
+
function occ(simpleName, bodyHash, kind, calls = [], dependencies) {
|
|
12
|
+
return {
|
|
13
|
+
bodyHash,
|
|
14
|
+
simpleName,
|
|
15
|
+
qualifiedName: `src/a.${simpleName}`,
|
|
16
|
+
filePath: 'src/a.ts',
|
|
17
|
+
line: 1,
|
|
18
|
+
column: 0,
|
|
19
|
+
endLine: 2,
|
|
20
|
+
kind,
|
|
21
|
+
params: [],
|
|
22
|
+
returnType: null,
|
|
23
|
+
enclosingClass: kind === 'method' || kind === 'getter' || kind === 'setter' ? 'C' : null,
|
|
24
|
+
decorators: [],
|
|
25
|
+
visibility: 'exported',
|
|
26
|
+
inTestFile: false,
|
|
27
|
+
definedInGenerated: false,
|
|
28
|
+
calls,
|
|
29
|
+
...(dependencies ? { dependencies } : {}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function catalogOf(occs) {
|
|
33
|
+
const functions = {};
|
|
34
|
+
for (const o of occs) {
|
|
35
|
+
const bucket = functions[o.simpleName];
|
|
36
|
+
if (bucket)
|
|
37
|
+
bucket.push(o);
|
|
38
|
+
else
|
|
39
|
+
functions[o.simpleName] = [o];
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
version: '3.0',
|
|
43
|
+
tool: 'graph',
|
|
44
|
+
language: 'typescript',
|
|
45
|
+
builtAt: 'x',
|
|
46
|
+
cacheKey: 'k',
|
|
47
|
+
resolutionMode: 'exact',
|
|
48
|
+
functions,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const provenance = {
|
|
52
|
+
runId: 'run-1',
|
|
53
|
+
completeness: 'complete',
|
|
54
|
+
engineVersion: '1.0.0',
|
|
55
|
+
startedAt: '2026-06-01T00:00:00.000Z',
|
|
56
|
+
completedAt: '2026-06-01T00:00:01.000Z',
|
|
57
|
+
tenantId: 't1',
|
|
58
|
+
};
|
|
59
|
+
function render(catalog) {
|
|
60
|
+
const json = renderCatalogJson({
|
|
61
|
+
catalog,
|
|
62
|
+
indexes: buildIndexes(catalog),
|
|
63
|
+
provenance,
|
|
64
|
+
repoId: 'r1',
|
|
65
|
+
gitSha: 'sha1',
|
|
66
|
+
});
|
|
67
|
+
return JSON.parse(json);
|
|
68
|
+
}
|
|
69
|
+
describe('renderCatalogJson kind mapping', () => {
|
|
70
|
+
it('maps every FunctionKind to its opensip kind convention', () => {
|
|
71
|
+
const catalog = catalogOf([
|
|
72
|
+
occ('fnDecl', 'h1', 'function-declaration'),
|
|
73
|
+
occ('fnExpr', 'h2', 'function-expression'),
|
|
74
|
+
occ('arrowFn', 'h3', 'arrow'),
|
|
75
|
+
occ('meth', 'h4', 'method'),
|
|
76
|
+
occ('get', 'h5', 'getter'),
|
|
77
|
+
occ('set', 'h6', 'setter'),
|
|
78
|
+
occ('ctor', 'h7', 'constructor'),
|
|
79
|
+
occ('moduleInit', 'h8', 'module-init'),
|
|
80
|
+
]);
|
|
81
|
+
const doc = render(catalog);
|
|
82
|
+
// CatalogExportSymbol carries qualifiedName (`src/a.<simpleName>`), not simpleName.
|
|
83
|
+
const kindByName = new Map(doc.symbols.map((s) => [s.qualifiedName.replace('src/a.', ''), s.kind]));
|
|
84
|
+
expect(kindByName.get('fnDecl')).toBe('function');
|
|
85
|
+
expect(kindByName.get('fnExpr')).toBe('function');
|
|
86
|
+
expect(kindByName.get('arrowFn')).toBe('function');
|
|
87
|
+
expect(kindByName.get('meth')).toBe('method');
|
|
88
|
+
expect(kindByName.get('get')).toBe('method');
|
|
89
|
+
expect(kindByName.get('set')).toBe('method');
|
|
90
|
+
expect(kindByName.get('ctor')).toBe('constructor');
|
|
91
|
+
expect(kindByName.get('moduleInit')).toBe('module-init');
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
describe('renderCatalogJson edge invariants', () => {
|
|
95
|
+
it('emits a resolved call edge and drops one whose target hash is unknown', () => {
|
|
96
|
+
const resolved = {
|
|
97
|
+
to: ['h2'],
|
|
98
|
+
line: 3,
|
|
99
|
+
column: 1,
|
|
100
|
+
resolution: 'static',
|
|
101
|
+
confidence: 'high',
|
|
102
|
+
text: 'b()',
|
|
103
|
+
};
|
|
104
|
+
const dangling = {
|
|
105
|
+
to: ['NOPE'],
|
|
106
|
+
line: 4,
|
|
107
|
+
column: 1,
|
|
108
|
+
resolution: 'static',
|
|
109
|
+
confidence: 'high',
|
|
110
|
+
text: 'gone()',
|
|
111
|
+
};
|
|
112
|
+
const catalog = catalogOf([
|
|
113
|
+
occ('a', 'h1', 'function-declaration', [resolved, dangling]),
|
|
114
|
+
occ('b', 'h2', 'function-declaration'),
|
|
115
|
+
]);
|
|
116
|
+
const doc = render(catalog);
|
|
117
|
+
// Exactly one edge survived — the resolved one; the dangling NOPE was skipped.
|
|
118
|
+
expect(doc.edges).toHaveLength(1);
|
|
119
|
+
});
|
|
120
|
+
it('drops a dependency edge whose target hash is unknown', () => {
|
|
121
|
+
const dep = {
|
|
122
|
+
to: ['MISSING'],
|
|
123
|
+
specifier: 'x',
|
|
124
|
+
line: 1,
|
|
125
|
+
column: 0,
|
|
126
|
+
};
|
|
127
|
+
const catalog = catalogOf([occ('mod', 'h1', 'module-init', [], [dep])]);
|
|
128
|
+
const doc = render(catalog);
|
|
129
|
+
expect(doc.edges).toHaveLength(0);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=catalog-json.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-json.test.js","sourceRoot":"","sources":["../../../src/render/__tests__/catalog-json.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Wire-shape types for the catalog JSON export consumed
|
|
3
|
+
* by opensip's substrate ingestor (Phase 5).
|
|
4
|
+
*
|
|
5
|
+
* The wire format bridges the engine's per-run `Catalog` + edge output
|
|
6
|
+
* to opensip's `tenant.code_symbols` + `tenant.code_edges` row shapes.
|
|
7
|
+
* Field set on this wire matches opensip's Drizzle column declarations
|
|
8
|
+
* verbatim, minus two derived fields:
|
|
9
|
+
*
|
|
10
|
+
* - `tenantId` — provenance-level (same for every row in a run);
|
|
11
|
+
* carried in `CatalogExportProvenance.tenantId`.
|
|
12
|
+
* - `indexedAt` — Postgres `DEFAULT NOW()` on the substrate side;
|
|
13
|
+
* engine doesn't emit it.
|
|
14
|
+
*
|
|
15
|
+
* `id` is pre-computed by the engine using `deriveOpenSipSymbolId` /
|
|
16
|
+
* `deriveOpenSipEdgeId` (Task 3.2) so re-ingestion via
|
|
17
|
+
* `INSERT … ON CONFLICT DO UPDATE` collides byte-for-byte with rows
|
|
18
|
+
* already in the substrate.
|
|
19
|
+
*
|
|
20
|
+
* Phase 3 Task 3.1 per DEC-498.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Single symbol row on the wire — maps 1:1 to a `tenant.code_symbols`
|
|
24
|
+
* row in opensip's Drizzle schema
|
|
25
|
+
* (`packages/db-schemas/src/code-graph/code-symbols.ts`).
|
|
26
|
+
*/
|
|
27
|
+
export interface CatalogExportSymbol {
|
|
28
|
+
/** sha256 over `(repoId, modulePath, kind, qualifiedName, arity)`. */
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly repoId: string;
|
|
31
|
+
readonly kind: string;
|
|
32
|
+
readonly language: string;
|
|
33
|
+
readonly qualifiedName: string;
|
|
34
|
+
readonly modulePath: string;
|
|
35
|
+
/** `null` for symbols without an arity concept (e.g., modules, classes). */
|
|
36
|
+
readonly arity: number | null;
|
|
37
|
+
readonly filePath: string;
|
|
38
|
+
readonly startLine: number;
|
|
39
|
+
readonly endLine: number;
|
|
40
|
+
readonly isExported: boolean;
|
|
41
|
+
/** Optional — adapters that produce signatures populate; others omit. */
|
|
42
|
+
readonly signature?: string | null;
|
|
43
|
+
/** Optional — JSDoc / docstring extraction (if adapter supports). */
|
|
44
|
+
readonly docSummary?: string | null;
|
|
45
|
+
/** Commit SHA the symbol was extracted from. Same value across all
|
|
46
|
+
* rows from one run (matches `provenance.runId` 1:1). */
|
|
47
|
+
readonly gitSha: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Single edge row on the wire — maps 1:1 to a `tenant.code_edges` row
|
|
51
|
+
* in opensip's Drizzle schema
|
|
52
|
+
* (`packages/db-schemas/src/code-graph/code-edges.ts`).
|
|
53
|
+
*/
|
|
54
|
+
export interface CatalogExportEdge {
|
|
55
|
+
/** sha256 over `(fromSymbolId, edgeKind, toSymbolId | unresolved-qname)`. */
|
|
56
|
+
readonly id: string;
|
|
57
|
+
readonly repoId: string;
|
|
58
|
+
/** One of: `calls`, `depends_on`, `creation`. Other kinds the
|
|
59
|
+
* pre-consolidation indexer emitted (`contains`, `inherits_from`,
|
|
60
|
+
* `implements`, `has_argument`) are implicitly narrowed away by
|
|
61
|
+
* this consolidation per DEC-498. */
|
|
62
|
+
readonly edgeKind: string;
|
|
63
|
+
readonly fromSymbolId: string;
|
|
64
|
+
/** `null` when the call/dependency target couldn't be resolved to a
|
|
65
|
+
* same-repo symbol; `toQualifiedNameUnresolved` carries the
|
|
66
|
+
* best-effort qname in that case. */
|
|
67
|
+
readonly toSymbolId: string | null;
|
|
68
|
+
/** `null` when `toSymbolId` is populated; non-null otherwise. */
|
|
69
|
+
readonly toQualifiedNameUnresolved: string | null;
|
|
70
|
+
readonly sourceFile: string;
|
|
71
|
+
readonly sourceLine: number | null;
|
|
72
|
+
readonly gitSha: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Per-run metadata. Carries the partial/complete completeness signal
|
|
76
|
+
* required by Phase 5's ingestor to differentiate full re-index from
|
|
77
|
+
* incremental delta passes that may have aborted mid-walk.
|
|
78
|
+
*/
|
|
79
|
+
export interface CatalogExportProvenance {
|
|
80
|
+
/** UUID generated by the engine entry point; flows through every
|
|
81
|
+
* log / span as `opensip.run_id`. */
|
|
82
|
+
readonly runId: string;
|
|
83
|
+
/** `'complete'` when the engine pass walked the full input set;
|
|
84
|
+
* `'partial'` when memory pressure or an abort signal cut the pass
|
|
85
|
+
* short and the catalog reflects only a prefix of the discovery
|
|
86
|
+
* output. Phase 5 may filter on this. */
|
|
87
|
+
readonly completeness: 'partial' | 'complete';
|
|
88
|
+
/** Engine package version (e.g., `'1.0.0'`) — provenance for the
|
|
89
|
+
* derivation algorithm. If a future engine release changes the
|
|
90
|
+
* symbol-ID hashing, the version bump documents the substrate
|
|
91
|
+
* cutover boundary. */
|
|
92
|
+
readonly engineVersion: string;
|
|
93
|
+
/** ISO 8601 timestamp the engine pass started. */
|
|
94
|
+
readonly startedAt: string;
|
|
95
|
+
/** ISO 8601 timestamp the engine pass completed. `null` when
|
|
96
|
+
* `completeness === 'partial'`. */
|
|
97
|
+
readonly completedAt: string | null;
|
|
98
|
+
/** Tenant scope for every row in this export. */
|
|
99
|
+
readonly tenantId: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Top-level wire document. JSON-encoded; written to a file by the
|
|
103
|
+
* engine CLI (`--render catalog-json --output <path>`) because the
|
|
104
|
+
* shape exceeds practical stdout buffer sizes on 100k-file repos.
|
|
105
|
+
*/
|
|
106
|
+
export interface CatalogExport {
|
|
107
|
+
/** Wire-format version — bump on breaking changes; opensip ingestor
|
|
108
|
+
* asserts. */
|
|
109
|
+
readonly version: '1.0';
|
|
110
|
+
readonly provenance: CatalogExportProvenance;
|
|
111
|
+
readonly symbols: readonly CatalogExportSymbol[];
|
|
112
|
+
readonly edges: readonly CatalogExportEdge[];
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=catalog-json-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-json-types.d.ts","sourceRoot":"","sources":["../../src/render/catalog-json-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;8DAC0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;0CAGsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;0CAEsC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;0CACsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;8CAG0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,UAAU,CAAC;IAC9C;;;4BAGwB;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;wCACoC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;mBACe;IACf,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC9C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Wire-shape types for the catalog JSON export consumed
|
|
3
|
+
* by opensip's substrate ingestor (Phase 5).
|
|
4
|
+
*
|
|
5
|
+
* The wire format bridges the engine's per-run `Catalog` + edge output
|
|
6
|
+
* to opensip's `tenant.code_symbols` + `tenant.code_edges` row shapes.
|
|
7
|
+
* Field set on this wire matches opensip's Drizzle column declarations
|
|
8
|
+
* verbatim, minus two derived fields:
|
|
9
|
+
*
|
|
10
|
+
* - `tenantId` — provenance-level (same for every row in a run);
|
|
11
|
+
* carried in `CatalogExportProvenance.tenantId`.
|
|
12
|
+
* - `indexedAt` — Postgres `DEFAULT NOW()` on the substrate side;
|
|
13
|
+
* engine doesn't emit it.
|
|
14
|
+
*
|
|
15
|
+
* `id` is pre-computed by the engine using `deriveOpenSipSymbolId` /
|
|
16
|
+
* `deriveOpenSipEdgeId` (Task 3.2) so re-ingestion via
|
|
17
|
+
* `INSERT … ON CONFLICT DO UPDATE` collides byte-for-byte with rows
|
|
18
|
+
* already in the substrate.
|
|
19
|
+
*
|
|
20
|
+
* Phase 3 Task 3.1 per DEC-498.
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=catalog-json-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-json-types.js","sourceRoot":"","sources":["../../src/render/catalog-json-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Catalog JSON renderer — emits the engine's per-run
|
|
3
|
+
* `Catalog` + edge output as a `CatalogExport` document conformant to
|
|
4
|
+
* the wire shape opensip's substrate ingestor (Phase 5) consumes.
|
|
5
|
+
*
|
|
6
|
+
* Renderer is a pure function: takes the catalog + indexes + a tenant /
|
|
7
|
+
* repo / git-sha scope + run provenance, returns a JSON string. Streams
|
|
8
|
+
* to a file at the orchestrate-CLI level (not stdout) because catalog
|
|
9
|
+
* JSON for 100k-file repos exceeds practical stdout buffer sizes —
|
|
10
|
+
* see Phase 3 Task 3.4 for the file-output wiring.
|
|
11
|
+
*
|
|
12
|
+
* Phase 3 Task 3.3 per DEC-498.
|
|
13
|
+
*
|
|
14
|
+
* Symbol-ID / edge-ID derivation: byte-for-byte mirror of opensip's
|
|
15
|
+
* `computeSymbolId` / `computeEdgeId` so `INSERT ... ON CONFLICT DO
|
|
16
|
+
* UPDATE` collides correctly on existing substrate rows.
|
|
17
|
+
*
|
|
18
|
+
* Edge taxonomy at v1: `calls` plus `depends_on` module-import edges.
|
|
19
|
+
* `creation` may be added later.
|
|
20
|
+
*/
|
|
21
|
+
import type { CatalogExportProvenance } from './catalog-json-types.js';
|
|
22
|
+
import type { Catalog, Indexes } from '../types.js';
|
|
23
|
+
export interface RenderCatalogJsonInput {
|
|
24
|
+
readonly catalog: Catalog;
|
|
25
|
+
readonly indexes: Indexes;
|
|
26
|
+
readonly provenance: CatalogExportProvenance;
|
|
27
|
+
readonly repoId: string;
|
|
28
|
+
readonly gitSha: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Render the engine's catalog as a `CatalogExport` JSON document.
|
|
32
|
+
*
|
|
33
|
+
* Ordering of `symbols` and `edges` is stable across runs (sorted by
|
|
34
|
+
* id) so byte-equivalence holds for golden-fixture tests and
|
|
35
|
+
* idempotent re-ingestion via `ON CONFLICT DO UPDATE`.
|
|
36
|
+
*
|
|
37
|
+
* Cognitive complexity >15 from the double-nested occurrence walk that
|
|
38
|
+
* also fans out call+dependency edges, plus the chunked string assembly
|
|
39
|
+
* for memory safety on large repos. The logic must be kept together for
|
|
40
|
+
* the determinism contract. Disable scoped to the renderer.
|
|
41
|
+
*/
|
|
42
|
+
export declare function renderCatalogJson(input: RenderCatalogJsonInput): string;
|
|
43
|
+
//# sourceMappingURL=catalog-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-json.d.ts","sourceRoot":"","sources":["../../src/render/catalog-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,OAAO,KAAK,EAEV,uBAAuB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,OAAO,EAIP,OAAO,EACR,MAAM,aAAa,CAAC;AA4PrB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AAEH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CA+DvE"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Catalog JSON renderer — emits the engine's per-run
|
|
3
|
+
* `Catalog` + edge output as a `CatalogExport` document conformant to
|
|
4
|
+
* the wire shape opensip's substrate ingestor (Phase 5) consumes.
|
|
5
|
+
*
|
|
6
|
+
* Renderer is a pure function: takes the catalog + indexes + a tenant /
|
|
7
|
+
* repo / git-sha scope + run provenance, returns a JSON string. Streams
|
|
8
|
+
* to a file at the orchestrate-CLI level (not stdout) because catalog
|
|
9
|
+
* JSON for 100k-file repos exceeds practical stdout buffer sizes —
|
|
10
|
+
* see Phase 3 Task 3.4 for the file-output wiring.
|
|
11
|
+
*
|
|
12
|
+
* Phase 3 Task 3.3 per DEC-498.
|
|
13
|
+
*
|
|
14
|
+
* Symbol-ID / edge-ID derivation: byte-for-byte mirror of opensip's
|
|
15
|
+
* `computeSymbolId` / `computeEdgeId` so `INSERT ... ON CONFLICT DO
|
|
16
|
+
* UPDATE` collides correctly on existing substrate rows.
|
|
17
|
+
*
|
|
18
|
+
* Edge taxonomy at v1: `calls` plus `depends_on` module-import edges.
|
|
19
|
+
* `creation` may be added later.
|
|
20
|
+
*/
|
|
21
|
+
import { resolveCallee } from '../resolve-callee.js';
|
|
22
|
+
import { deriveOpenSipEdgeId, deriveOpenSipModulePath, deriveOpenSipSymbolId, } from './opensip-id-derivation.js';
|
|
23
|
+
/**
|
|
24
|
+
* Map the engine's richer `FunctionKind` to opensip's
|
|
25
|
+
* `code_symbols.kind` column convention. Surjective:
|
|
26
|
+
*
|
|
27
|
+
* function-declaration → function
|
|
28
|
+
* function-expression → function
|
|
29
|
+
* arrow → function
|
|
30
|
+
* method → method
|
|
31
|
+
* getter → method
|
|
32
|
+
* setter → method
|
|
33
|
+
* constructor → constructor
|
|
34
|
+
* module-init → module-init
|
|
35
|
+
*/
|
|
36
|
+
function mapKindToOpenSip(kind) {
|
|
37
|
+
switch (kind) {
|
|
38
|
+
case 'function-declaration':
|
|
39
|
+
case 'function-expression':
|
|
40
|
+
case 'arrow': {
|
|
41
|
+
return 'function';
|
|
42
|
+
}
|
|
43
|
+
case 'method':
|
|
44
|
+
case 'getter':
|
|
45
|
+
case 'setter': {
|
|
46
|
+
return 'method';
|
|
47
|
+
}
|
|
48
|
+
case 'constructor': {
|
|
49
|
+
return 'constructor';
|
|
50
|
+
}
|
|
51
|
+
case 'module-init': {
|
|
52
|
+
return 'module-init';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Derive an opensip-compatible symbol-row payload for one engine
|
|
58
|
+
* `FunctionOccurrence`.
|
|
59
|
+
*/
|
|
60
|
+
function occurrenceToSymbol(occurrence, repoId, language, gitSha) {
|
|
61
|
+
const modulePath = deriveOpenSipModulePath(occurrence.filePath);
|
|
62
|
+
const kind = mapKindToOpenSip(occurrence.kind);
|
|
63
|
+
const arity = occurrence.params.length;
|
|
64
|
+
const id = deriveOpenSipSymbolId({
|
|
65
|
+
repoId,
|
|
66
|
+
modulePath,
|
|
67
|
+
kind,
|
|
68
|
+
qualifiedName: occurrence.qualifiedName,
|
|
69
|
+
arity,
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
id,
|
|
73
|
+
repoId,
|
|
74
|
+
kind,
|
|
75
|
+
language,
|
|
76
|
+
qualifiedName: occurrence.qualifiedName,
|
|
77
|
+
modulePath,
|
|
78
|
+
arity,
|
|
79
|
+
filePath: occurrence.filePath,
|
|
80
|
+
startLine: occurrence.line,
|
|
81
|
+
endLine: occurrence.endLine,
|
|
82
|
+
isExported: occurrence.visibility === 'exported',
|
|
83
|
+
signature: occurrence.returnType === null
|
|
84
|
+
? null
|
|
85
|
+
: `(${occurrence.params.map((p) => p.name).join(', ')}): ${occurrence.returnType}`,
|
|
86
|
+
docSummary: null,
|
|
87
|
+
gitSha,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Map engine's `CallEdge` to one or more `CatalogExportEdge` rows.
|
|
92
|
+
*
|
|
93
|
+
* - Polymorphic edges (`to.length > 1`) split into one row per target.
|
|
94
|
+
* - Unresolved edges (`to.length === 0`) emit a single row with
|
|
95
|
+
* `toSymbolId: null` and `toQualifiedNameUnresolved` set to the
|
|
96
|
+
* call-expression text (truncated to ≤ 80 chars per `CallEdge.text`).
|
|
97
|
+
* The text is informational for human inspection; the edge ID is
|
|
98
|
+
* hashed over (from, kind, "unresolved:" + text) so stability is
|
|
99
|
+
* preserved per (source, target-text).
|
|
100
|
+
*/
|
|
101
|
+
function callEdgeToRows(fromSymbolId, callerOcc, callEdge, indexes, identity) {
|
|
102
|
+
const { repoId, gitSha } = identity;
|
|
103
|
+
const fromFilePath = callerOcc.filePath;
|
|
104
|
+
const edgeKind = 'calls';
|
|
105
|
+
if (callEdge.to.length === 0) {
|
|
106
|
+
const id = deriveOpenSipEdgeId({
|
|
107
|
+
fromSymbolId,
|
|
108
|
+
edgeKind,
|
|
109
|
+
toSymbolId: null,
|
|
110
|
+
toQualifiedNameUnresolved: callEdge.text,
|
|
111
|
+
});
|
|
112
|
+
return [
|
|
113
|
+
{
|
|
114
|
+
id,
|
|
115
|
+
repoId,
|
|
116
|
+
edgeKind,
|
|
117
|
+
fromSymbolId,
|
|
118
|
+
toSymbolId: null,
|
|
119
|
+
toQualifiedNameUnresolved: callEdge.text,
|
|
120
|
+
sourceFile: fromFilePath,
|
|
121
|
+
sourceLine: callEdge.line,
|
|
122
|
+
gitSha,
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
const rows = [];
|
|
127
|
+
for (const toBodyHash of callEdge.to) {
|
|
128
|
+
const target = resolveCallee(toBodyHash, callerOcc, indexes);
|
|
129
|
+
if (target === undefined) {
|
|
130
|
+
// Engine catalog invariant: every CallEdge.to bodyHash exists in
|
|
131
|
+
// the catalog. A missing target is an engine bug; skip rather
|
|
132
|
+
// than emit a half-formed row.
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const toSymbolId = deriveOpenSipSymbolId({
|
|
136
|
+
repoId,
|
|
137
|
+
modulePath: deriveOpenSipModulePath(target.filePath),
|
|
138
|
+
kind: mapKindToOpenSip(target.kind),
|
|
139
|
+
qualifiedName: target.qualifiedName,
|
|
140
|
+
arity: target.params.length,
|
|
141
|
+
});
|
|
142
|
+
const id = deriveOpenSipEdgeId({
|
|
143
|
+
fromSymbolId,
|
|
144
|
+
edgeKind,
|
|
145
|
+
toSymbolId,
|
|
146
|
+
toQualifiedNameUnresolved: null,
|
|
147
|
+
});
|
|
148
|
+
rows.push({
|
|
149
|
+
id,
|
|
150
|
+
repoId,
|
|
151
|
+
edgeKind,
|
|
152
|
+
fromSymbolId,
|
|
153
|
+
toSymbolId,
|
|
154
|
+
toQualifiedNameUnresolved: null,
|
|
155
|
+
sourceFile: fromFilePath,
|
|
156
|
+
sourceLine: callEdge.line,
|
|
157
|
+
gitSha,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
return rows;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Map an engine `DependencyEdge` to one or more `CatalogExportEdge`
|
|
164
|
+
* rows with `edgeKind: 'depends_on'`.
|
|
165
|
+
*
|
|
166
|
+
* - Polymorphic-target case (`to.length > 1`) is rare for imports but
|
|
167
|
+
* handled the same way as calls: one row per target.
|
|
168
|
+
* - Unresolved target (`to.length === 0`) emits a single row with
|
|
169
|
+
* `toSymbolId: null` and the raw import specifier in
|
|
170
|
+
* `toQualifiedNameUnresolved` — preserves attribution for external
|
|
171
|
+
* packages that aren't in the catalog.
|
|
172
|
+
*
|
|
173
|
+
* Phase 4 of opensip's substrate consolidation (DEC-498).
|
|
174
|
+
*/
|
|
175
|
+
function dependencyEdgeToRows(fromSymbolId, fromFilePath, depEdge, byBodyHash, identity) {
|
|
176
|
+
const { repoId, gitSha } = identity;
|
|
177
|
+
const edgeKind = 'depends_on';
|
|
178
|
+
if (depEdge.to.length === 0) {
|
|
179
|
+
const id = deriveOpenSipEdgeId({
|
|
180
|
+
fromSymbolId,
|
|
181
|
+
edgeKind,
|
|
182
|
+
toSymbolId: null,
|
|
183
|
+
toQualifiedNameUnresolved: depEdge.specifier,
|
|
184
|
+
});
|
|
185
|
+
return [
|
|
186
|
+
{
|
|
187
|
+
id,
|
|
188
|
+
repoId,
|
|
189
|
+
edgeKind,
|
|
190
|
+
fromSymbolId,
|
|
191
|
+
toSymbolId: null,
|
|
192
|
+
toQualifiedNameUnresolved: depEdge.specifier,
|
|
193
|
+
sourceFile: fromFilePath,
|
|
194
|
+
sourceLine: depEdge.line,
|
|
195
|
+
gitSha,
|
|
196
|
+
},
|
|
197
|
+
];
|
|
198
|
+
}
|
|
199
|
+
const rows = [];
|
|
200
|
+
for (const toBodyHash of depEdge.to) {
|
|
201
|
+
const target = byBodyHash.get(toBodyHash);
|
|
202
|
+
if (target === undefined) {
|
|
203
|
+
// Engine catalog invariant: every DependencyEdge.to bodyHash
|
|
204
|
+
// exists in the catalog. A missing target is an engine/adapter
|
|
205
|
+
// bug; skip rather than emit a half-formed row.
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const toSymbolId = deriveOpenSipSymbolId({
|
|
209
|
+
repoId,
|
|
210
|
+
modulePath: deriveOpenSipModulePath(target.filePath),
|
|
211
|
+
kind: mapKindToOpenSip(target.kind),
|
|
212
|
+
qualifiedName: target.qualifiedName,
|
|
213
|
+
arity: target.params.length,
|
|
214
|
+
});
|
|
215
|
+
const id = deriveOpenSipEdgeId({
|
|
216
|
+
fromSymbolId,
|
|
217
|
+
edgeKind,
|
|
218
|
+
toSymbolId,
|
|
219
|
+
toQualifiedNameUnresolved: null,
|
|
220
|
+
});
|
|
221
|
+
rows.push({
|
|
222
|
+
id,
|
|
223
|
+
repoId,
|
|
224
|
+
edgeKind,
|
|
225
|
+
fromSymbolId,
|
|
226
|
+
toSymbolId,
|
|
227
|
+
toQualifiedNameUnresolved: null,
|
|
228
|
+
sourceFile: fromFilePath,
|
|
229
|
+
sourceLine: depEdge.line,
|
|
230
|
+
gitSha,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
return rows;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Render the engine's catalog as a `CatalogExport` JSON document.
|
|
237
|
+
*
|
|
238
|
+
* Ordering of `symbols` and `edges` is stable across runs (sorted by
|
|
239
|
+
* id) so byte-equivalence holds for golden-fixture tests and
|
|
240
|
+
* idempotent re-ingestion via `ON CONFLICT DO UPDATE`.
|
|
241
|
+
*
|
|
242
|
+
* Cognitive complexity >15 from the double-nested occurrence walk that
|
|
243
|
+
* also fans out call+dependency edges, plus the chunked string assembly
|
|
244
|
+
* for memory safety on large repos. The logic must be kept together for
|
|
245
|
+
* the determinism contract. Disable scoped to the renderer.
|
|
246
|
+
*/
|
|
247
|
+
/* eslint-disable sonarjs/cognitive-complexity */
|
|
248
|
+
export function renderCatalogJson(input) {
|
|
249
|
+
const { catalog, indexes, provenance, repoId, gitSha } = input;
|
|
250
|
+
const language = catalog.language;
|
|
251
|
+
const identity = { repoId, gitSha };
|
|
252
|
+
const symbols = [];
|
|
253
|
+
const edges = [];
|
|
254
|
+
for (const occurrenceList of Object.values(catalog.functions)) {
|
|
255
|
+
for (const occurrence of occurrenceList) {
|
|
256
|
+
const symbol = occurrenceToSymbol(occurrence, repoId, language, gitSha);
|
|
257
|
+
symbols.push(symbol);
|
|
258
|
+
for (const callEdge of occurrence.calls) {
|
|
259
|
+
const rows = callEdgeToRows(symbol.id, occurrence, callEdge, indexes, identity);
|
|
260
|
+
edges.push(...rows);
|
|
261
|
+
}
|
|
262
|
+
// Phase 4 (DEC-498): module-level depends_on edges. Only
|
|
263
|
+
// module-init occurrences carry these; for all other occurrences
|
|
264
|
+
// the field is absent.
|
|
265
|
+
if (occurrence.dependencies !== undefined) {
|
|
266
|
+
for (const depEdge of occurrence.dependencies) {
|
|
267
|
+
const rows = dependencyEdgeToRows(symbol.id, occurrence.filePath, depEdge, indexes.byBodyHash, identity);
|
|
268
|
+
edges.push(...rows);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
// Stable ordering — deterministic output is the golden-fixture
|
|
274
|
+
// contract. Sort by id (sha256 hex string, lexicographic). Use spread to
|
|
275
|
+
// produce the sorted copy so the sort call does not immediately mutate a
|
|
276
|
+
// named array in statement position (unicorn/no-immediate-mutation).
|
|
277
|
+
const sortedSymbols = [...symbols].sort((a, b) => Number(a.id > b.id) - Number(a.id < b.id));
|
|
278
|
+
const sortedEdges = [...edges].sort((a, b) => Number(a.id > b.id) - Number(a.id < b.id));
|
|
279
|
+
// Build the JSON in chunks to avoid materializing the *entire* export (symbols + edges
|
|
280
|
+
// for 100k-file repos) as one giant JS string in a single JSON.stringify call.
|
|
281
|
+
// This mitigates V8 string length / OOM risk for the documented large-repo target.
|
|
282
|
+
// (Full streaming to fd without ever holding the complete string would be even better
|
|
283
|
+
// for extreme sizes; this is the contained fix that still returns the string contract.)
|
|
284
|
+
/* eslint-disable unicorn/no-immediate-mutation -- the chunked parts.push builder below deliberately mutates a small string-segment array in a tight loop; this avoids N quadratic concat allocations and the single giant string materialization that the surrounding comment explains is the OOM risk for 100k-file repos. The mutation is confined to this builder; final .join produces the returned value. */
|
|
285
|
+
const parts = ['{\n', ' "version": "1.0",\n'];
|
|
286
|
+
parts.push(' "provenance": ' + JSON.stringify(provenance, null, 2) + ',\n', ' "symbols": [\n');
|
|
287
|
+
for (const [i, symbol_] of sortedSymbols.entries()) {
|
|
288
|
+
if (i > 0)
|
|
289
|
+
parts.push(',\n');
|
|
290
|
+
parts.push(JSON.stringify(symbol_, null, 2));
|
|
291
|
+
}
|
|
292
|
+
parts.push('\n ],\n', ' "edges": [\n');
|
|
293
|
+
for (const [i, edge] of sortedEdges.entries()) {
|
|
294
|
+
if (i > 0)
|
|
295
|
+
parts.push(',\n');
|
|
296
|
+
parts.push(JSON.stringify(edge, null, 2));
|
|
297
|
+
}
|
|
298
|
+
parts.push('\n ]\n', '}');
|
|
299
|
+
/* eslint-enable unicorn/no-immediate-mutation */
|
|
300
|
+
return parts.join('');
|
|
301
|
+
}
|
|
302
|
+
/* eslint-enable sonarjs/cognitive-complexity */
|
|
303
|
+
//# sourceMappingURL=catalog-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-json.js","sourceRoot":"","sources":["../../src/render/catalog-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAgBpC;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CAAC,IAAkB;IAC1C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,sBAAsB,CAAC;QAC5B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,UAA8B,EAC9B,MAAc,EACd,QAAgB,EAChB,MAAc;IAEd,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IAEvC,MAAM,EAAE,GAAG,qBAAqB,CAAC;QAC/B,MAAM;QACN,UAAU;QACV,IAAI;QACJ,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,KAAK;KACN,CAAC,CAAC;IAEH,OAAO;QACL,EAAE;QACF,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,UAAU;QACV,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,UAAU,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU;QAChD,SAAS,EACP,UAAU,CAAC,UAAU,KAAK,IAAI;YAC5B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,UAAU,EAAE;QACtF,UAAU,EAAE,IAAI;QAChB,MAAM;KACP,CAAC;AACJ,CAAC;AAYD;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CACrB,YAAoB,EACpB,SAA6B,EAC7B,QAAkB,EAClB,OAAgB,EAChB,QAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACpC,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC;IAEzB,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,mBAAmB,CAAC;YAC7B,YAAY;YACZ,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,yBAAyB,EAAE,QAAQ,CAAC,IAAI;SACzC,CAAC,CAAC;QACH,OAAO;YACL;gBACE,EAAE;gBACF,MAAM;gBACN,QAAQ;gBACR,YAAY;gBACZ,UAAU,EAAE,IAAI;gBAChB,yBAAyB,EAAE,QAAQ,CAAC,IAAI;gBACxC,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,QAAQ,CAAC,IAAI;gBACzB,MAAM;aACP;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,iEAAiE;YACjE,8DAA8D;YAC9D,+BAA+B;YAC/B,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,qBAAqB,CAAC;YACvC,MAAM;YACN,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;SAC5B,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,mBAAmB,CAAC;YAC7B,YAAY;YACZ,QAAQ;YACR,UAAU;YACV,yBAAyB,EAAE,IAAI;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC;YACR,EAAE;YACF,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,UAAU;YACV,yBAAyB,EAAE,IAAI;YAC/B,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,QAAQ,CAAC,IAAI;YACzB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,oBAAoB,CAC3B,YAAoB,EACpB,YAAoB,EACpB,OAAuB,EACvB,UAAmD,EACnD,QAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC;IAE9B,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,mBAAmB,CAAC;YAC7B,YAAY;YACZ,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,yBAAyB,EAAE,OAAO,CAAC,SAAS;SAC7C,CAAC,CAAC;QACH,OAAO;YACL;gBACE,EAAE;gBACF,MAAM;gBACN,QAAQ;gBACR,YAAY;gBACZ,UAAU,EAAE,IAAI;gBAChB,yBAAyB,EAAE,OAAO,CAAC,SAAS;gBAC5C,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,OAAO,CAAC,IAAI;gBACxB,MAAM;aACP;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,6DAA6D;YAC7D,+DAA+D;YAC/D,gDAAgD;YAChD,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,qBAAqB,CAAC;YACvC,MAAM;YACN,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;SAC5B,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,mBAAmB,CAAC;YAC7B,YAAY;YACZ,QAAQ;YACR,UAAU;YACV,yBAAyB,EAAE,IAAI;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC;YACR,EAAE;YACF,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,UAAU;YACV,yBAAyB,EAAE,IAAI;YAC/B,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,OAAO,CAAC,IAAI;YACxB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUD;;;;;;;;;;;GAWG;AACH,iDAAiD;AACjD,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,QAAQ,GAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEpD,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACtB,CAAC;YAED,yDAAyD;YACzD,iEAAiE;YACjE,uBAAuB;YACvB,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC1C,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;oBAC9C,MAAM,IAAI,GAAG,oBAAoB,CAC/B,MAAM,CAAC,EAAE,EACT,UAAU,CAAC,QAAQ,EACnB,OAAO,EACP,OAAO,CAAC,UAAU,EAClB,QAAQ,CACT,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,yEAAyE;IACzE,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzF,uFAAuF;IACvF,+EAA+E;IAC/E,mFAAmF;IACnF,sFAAsF;IACtF,wFAAwF;IACxF,kZAAkZ;IAClZ,MAAM,KAAK,GAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACjG,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3B,iDAAiD;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AACD,gDAAgD"}
|