@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,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave-4 incremental algorithm helpers.
|
|
3
|
+
*
|
|
4
|
+
* Self-contained: the closure-expansion fixpoint, occurrence merging,
|
|
5
|
+
* and edge stitching for the incremental rebuild path. All functions
|
|
6
|
+
* here are called by `catalog-builder.ts`; nothing else in the
|
|
7
|
+
* orchestrator subtree depends on them.
|
|
8
|
+
*/
|
|
9
|
+
import { join, relative, sep } from 'node:path';
|
|
10
|
+
import { logger } from '@opensip-cli/core';
|
|
11
|
+
import { ownerEdgeKey } from './edge-identity.js';
|
|
12
|
+
/**
|
|
13
|
+
* Expand the re-walk closure to a fixpoint. Starts with the directly
|
|
14
|
+
* changed files; on each iteration walks the closure, finds hashes
|
|
15
|
+
* that vanished, scans cached edges for any that still point at
|
|
16
|
+
* vanished hashes, and adds those callers to the closure. Stops when
|
|
17
|
+
* no new dependents are discovered.
|
|
18
|
+
*
|
|
19
|
+
* @throws {Error} When the incremental walk produces no result for a
|
|
20
|
+
* non-empty closure (a logic invariant violation in the walker).
|
|
21
|
+
*/
|
|
22
|
+
export function expandClosureToFixpoint(input) {
|
|
23
|
+
const { adapter, discovery, cachedCatalog, parsedProject, changedFilesAbs } = input;
|
|
24
|
+
const closureRel = new Set(changedFilesAbs.map((p) => relative(discovery.projectDirAbs, p).split(sep).join('/')));
|
|
25
|
+
const closureAbs = new Set(changedFilesAbs);
|
|
26
|
+
const cachedHashesByFile = groupCachedHashesByFile(cachedCatalog);
|
|
27
|
+
// Loop-invariant context for the per-iteration closure expansion; only
|
|
28
|
+
// `walked` changes between iterations.
|
|
29
|
+
const ctx = {
|
|
30
|
+
cachedCatalog,
|
|
31
|
+
closureRel,
|
|
32
|
+
closureAbs,
|
|
33
|
+
cachedHashesByFile,
|
|
34
|
+
projectDirAbs: discovery.projectDirAbs,
|
|
35
|
+
};
|
|
36
|
+
let walked = null;
|
|
37
|
+
// Iterate to fixpoint. On a typical 1-file change, this loop runs
|
|
38
|
+
// exactly once — a file's hashes generally don't reach into
|
|
39
|
+
// unchanged callers' edges. Worst case is bounded by file count
|
|
40
|
+
// (each iteration adds at least one file).
|
|
41
|
+
for (;;) {
|
|
42
|
+
walked = adapter.walkProject({
|
|
43
|
+
project: parsedProject,
|
|
44
|
+
files: discovery.files.filter((p) => closureAbs.has(p)),
|
|
45
|
+
projectDirAbs: discovery.projectDirAbs,
|
|
46
|
+
});
|
|
47
|
+
const grew = expandClosureOnce(walked, ctx);
|
|
48
|
+
if (!grew)
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
/* v8 ignore next 3 */
|
|
52
|
+
if (!walked) {
|
|
53
|
+
throw new Error('incremental walk produced no result; closure was empty');
|
|
54
|
+
}
|
|
55
|
+
return { walked, closureRel };
|
|
56
|
+
}
|
|
57
|
+
function expandClosureOnce(walked, ctx) {
|
|
58
|
+
const { cachedCatalog, closureRel, closureAbs, cachedHashesByFile, projectDirAbs } = ctx;
|
|
59
|
+
const newHashes = collectHashesFromOccurrences(walked.occurrences);
|
|
60
|
+
const staleHashes = collectStaleHashes(closureRel, cachedHashesByFile, newHashes);
|
|
61
|
+
// @fitness-ignore-next-line silent-early-returns -- `expandClosureOnce` returns boolean as its documented "did the closure grow this iteration?" contract; `false` is the fixed-point signal driving the outer expansion loop, not a hidden failure.
|
|
62
|
+
if (staleHashes.size === 0)
|
|
63
|
+
return false;
|
|
64
|
+
const newDependents = findEdgeDependents(cachedCatalog, staleHashes, closureRel);
|
|
65
|
+
// @fitness-ignore-next-line silent-early-returns -- same boolean "did closure grow?" contract as above; no new dependents means "fixed point reached".
|
|
66
|
+
if (newDependents.length === 0)
|
|
67
|
+
return false;
|
|
68
|
+
/* v8 ignore start */
|
|
69
|
+
let grew = false;
|
|
70
|
+
for (const dep of newDependents) {
|
|
71
|
+
if (closureRel.has(dep))
|
|
72
|
+
continue;
|
|
73
|
+
closureRel.add(dep);
|
|
74
|
+
// Use path.join so the result uses platform-native separators —
|
|
75
|
+
// string concat + replace would leave backslashes from projectDirAbs
|
|
76
|
+
// intact on Windows and produce a mixed-separator path that never
|
|
77
|
+
// matches discovery.files entries.
|
|
78
|
+
closureAbs.add(join(projectDirAbs, dep));
|
|
79
|
+
grew = true;
|
|
80
|
+
}
|
|
81
|
+
if (grew) {
|
|
82
|
+
logger.info({
|
|
83
|
+
evt: 'graph.cache.incremental.expand',
|
|
84
|
+
module: 'graph:cache',
|
|
85
|
+
addedDependents: newDependents.length,
|
|
86
|
+
closureSize: closureRel.size,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return grew;
|
|
90
|
+
/* v8 ignore stop */
|
|
91
|
+
}
|
|
92
|
+
function collectHashesFromOccurrences(functions) {
|
|
93
|
+
const out = new Set();
|
|
94
|
+
for (const occs of Object.values(functions)) {
|
|
95
|
+
if (!occs)
|
|
96
|
+
continue;
|
|
97
|
+
for (const o of occs)
|
|
98
|
+
out.add(o.bodyHash);
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
function collectStaleHashes(closureRel, cachedHashesByFile, newHashes) {
|
|
103
|
+
const stale = new Set();
|
|
104
|
+
for (const fileRel of closureRel) {
|
|
105
|
+
const cachedHashes = cachedHashesByFile.get(fileRel);
|
|
106
|
+
if (!cachedHashes)
|
|
107
|
+
continue;
|
|
108
|
+
for (const h of cachedHashes) {
|
|
109
|
+
if (!newHashes.has(h))
|
|
110
|
+
stale.add(h);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return stale;
|
|
114
|
+
}
|
|
115
|
+
function groupCachedHashesByFile(catalog) {
|
|
116
|
+
const out = new Map();
|
|
117
|
+
for (const occs of Object.values(catalog.functions)) {
|
|
118
|
+
if (!occs)
|
|
119
|
+
continue;
|
|
120
|
+
for (const o of occs) {
|
|
121
|
+
let set = out.get(o.filePath);
|
|
122
|
+
if (!set) {
|
|
123
|
+
set = new Set();
|
|
124
|
+
out.set(o.filePath, set);
|
|
125
|
+
}
|
|
126
|
+
set.add(o.bodyHash);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return out;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Find unchanged files whose cached edges have any `to` containing
|
|
133
|
+
* a hash from `staleHashes`. Used by the incremental closure
|
|
134
|
+
* expansion: if file A's cached edges point at a hash that no longer
|
|
135
|
+
* exists, A must be re-walked too.
|
|
136
|
+
*/
|
|
137
|
+
function findEdgeDependents(catalog, staleHashes, alreadyClosed) {
|
|
138
|
+
const dependents = new Set();
|
|
139
|
+
for (const occs of Object.values(catalog.functions)) {
|
|
140
|
+
if (!occs)
|
|
141
|
+
continue;
|
|
142
|
+
for (const o of occs) {
|
|
143
|
+
if (alreadyClosed.has(o.filePath))
|
|
144
|
+
continue;
|
|
145
|
+
if (dependents.has(o.filePath))
|
|
146
|
+
continue;
|
|
147
|
+
if (occHasEdgeIntoStale(o, staleHashes))
|
|
148
|
+
dependents.add(o.filePath);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return [...dependents].sort();
|
|
152
|
+
}
|
|
153
|
+
function occHasEdgeIntoStale(occ, staleHashes) {
|
|
154
|
+
for (const edge of occ.calls) {
|
|
155
|
+
for (const target of edge.to) {
|
|
156
|
+
if (staleHashes.has(target))
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Merge occurrences: for files in `closureRel`, take the freshly-
|
|
164
|
+
* walked entries; for everything else, take the cached entries.
|
|
165
|
+
* Re-keys by simpleName so the catalog shape matches the full-rebuild
|
|
166
|
+
* output.
|
|
167
|
+
*/
|
|
168
|
+
export function mergeOccurrences(cachedCatalog, walkedFunctions, closureRel) {
|
|
169
|
+
const out = Object.create(null);
|
|
170
|
+
// Lift cached entries for files NOT in the closure.
|
|
171
|
+
for (const [name, occs] of Object.entries(cachedCatalog.functions)) {
|
|
172
|
+
if (!occs)
|
|
173
|
+
continue;
|
|
174
|
+
for (const o of occs) {
|
|
175
|
+
if (closureRel.has(o.filePath))
|
|
176
|
+
continue;
|
|
177
|
+
pushOccurrence(out, name, o);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Add freshly-walked entries for closure files.
|
|
181
|
+
for (const [name, occs] of Object.entries(walkedFunctions)) {
|
|
182
|
+
if (!occs)
|
|
183
|
+
continue;
|
|
184
|
+
for (const o of occs)
|
|
185
|
+
pushOccurrence(out, name, o);
|
|
186
|
+
}
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
function pushOccurrence(out, name, occ) {
|
|
190
|
+
let arr = out[name];
|
|
191
|
+
if (!arr) {
|
|
192
|
+
arr = [];
|
|
193
|
+
out[name] = arr;
|
|
194
|
+
}
|
|
195
|
+
arr.push(occ);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Stitch resolved edges into closure files; restore cached edges for
|
|
199
|
+
* unchanged files. The merged catalog already has cached occurrences
|
|
200
|
+
* for unchanged files; we just preserve their `calls` array.
|
|
201
|
+
*/
|
|
202
|
+
export function mergeResolvedAndCachedEdges(merged, cached, edgesByOwner, closureRel) {
|
|
203
|
+
// Build a quick index of cached occurrences by bodyHash so we can
|
|
204
|
+
// look up the right cached calls without scanning the catalog
|
|
205
|
+
// per-occurrence.
|
|
206
|
+
const cachedByOwner = new Map();
|
|
207
|
+
for (const occs of Object.values(cached.functions)) {
|
|
208
|
+
if (!occs)
|
|
209
|
+
continue;
|
|
210
|
+
for (const o of occs)
|
|
211
|
+
cachedByOwner.set(ownerEdgeKey(o.bodyHash, o.filePath), o);
|
|
212
|
+
}
|
|
213
|
+
const out = Object.create(null);
|
|
214
|
+
for (const [name, occs] of Object.entries(merged.functions)) {
|
|
215
|
+
if (!occs)
|
|
216
|
+
continue;
|
|
217
|
+
const arr = [];
|
|
218
|
+
for (const o of occs) {
|
|
219
|
+
const ownerKey = ownerEdgeKey(o.bodyHash, o.filePath);
|
|
220
|
+
if (closureRel.has(o.filePath)) {
|
|
221
|
+
// Closure files keep their freshly-resolved edges.
|
|
222
|
+
arr.push({ ...o, calls: edgesByOwner.get(ownerKey) ?? [] });
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
// Unchanged files: restore cached calls. The key matched
|
|
226
|
+
// because we lifted the cached occurrence into the merged
|
|
227
|
+
// catalog before resolver dispatch.
|
|
228
|
+
const cachedOcc = cachedByOwner.get(ownerKey);
|
|
229
|
+
arr.push({ ...o, calls: cachedOcc?.calls ?? [] });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
out[name] = arr;
|
|
233
|
+
}
|
|
234
|
+
return out;
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=incremental-merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incremental-merge.js","sourceRoot":"","sources":["../../../src/cli/orchestrate/incremental-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Leaf partition-chunk primitives for the flat-monorepo strategies
|
|
3
|
+
* (`flat-monorepo-strategy.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Hoisted out of `flat-monorepo-strategy.ts` (originally so the ADR-0045
|
|
6
|
+
* community-partition prototype could reuse `chunkByCount` cycle-free; the
|
|
7
|
+
* prototype was discarded by measurement, but the extraction is a harmless
|
|
8
|
+
* leaf and any future partition strategy reuses it the same way).
|
|
9
|
+
* Behavior-preserving move — `flat-monorepo-strategy.test.ts` is the
|
|
10
|
+
* refactor canary.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Synthetic partition — the unit that gets handed to a child process in
|
|
14
|
+
* the flat-large fan-out. `id` is suitable as a display label and a
|
|
15
|
+
* cache-key segment; `files` are absolute paths.
|
|
16
|
+
*/
|
|
17
|
+
export interface SyntheticPartition {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly files: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Default chunk size for `file-count-chunks` and `hybrid` sub-partitioning.
|
|
23
|
+
* Chosen at 2000 to stay well below the 2500-file heap-elevation threshold —
|
|
24
|
+
* each partition runs in a child process with a default V8 heap (no
|
|
25
|
+
* elevation needed at this size).
|
|
26
|
+
*/
|
|
27
|
+
export declare const DEFAULT_CHUNK_SIZE = 2000;
|
|
28
|
+
/**
|
|
29
|
+
* Sort `files` lexicographically (stable) and split into chunks of
|
|
30
|
+
* `chunkSize`. Partition ids follow the `chunk-N` contract (`chunk-0`,
|
|
31
|
+
* `chunk-1`, …) that `hybrid` sub-partition ids (`<parent>.chunk-N`)
|
|
32
|
+
* concatenate onto — the id scheme is load-bearing for fragment-cache
|
|
33
|
+
* keys, so it must not drift.
|
|
34
|
+
*/
|
|
35
|
+
export declare function chunkByCount(files: readonly string[], chunkSize: number): readonly SyntheticPartition[];
|
|
36
|
+
//# sourceMappingURL=partition-chunk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partition-chunk.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/partition-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,SAAS,EAAE,MAAM,GAChB,SAAS,kBAAkB,EAAE,CAU/B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Leaf partition-chunk primitives for the flat-monorepo strategies
|
|
3
|
+
* (`flat-monorepo-strategy.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Hoisted out of `flat-monorepo-strategy.ts` (originally so the ADR-0045
|
|
6
|
+
* community-partition prototype could reuse `chunkByCount` cycle-free; the
|
|
7
|
+
* prototype was discarded by measurement, but the extraction is a harmless
|
|
8
|
+
* leaf and any future partition strategy reuses it the same way).
|
|
9
|
+
* Behavior-preserving move — `flat-monorepo-strategy.test.ts` is the
|
|
10
|
+
* refactor canary.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Default chunk size for `file-count-chunks` and `hybrid` sub-partitioning.
|
|
14
|
+
* Chosen at 2000 to stay well below the 2500-file heap-elevation threshold —
|
|
15
|
+
* each partition runs in a child process with a default V8 heap (no
|
|
16
|
+
* elevation needed at this size).
|
|
17
|
+
*/
|
|
18
|
+
export const DEFAULT_CHUNK_SIZE = 2000;
|
|
19
|
+
/**
|
|
20
|
+
* Sort `files` lexicographically (stable) and split into chunks of
|
|
21
|
+
* `chunkSize`. Partition ids follow the `chunk-N` contract (`chunk-0`,
|
|
22
|
+
* `chunk-1`, …) that `hybrid` sub-partition ids (`<parent>.chunk-N`)
|
|
23
|
+
* concatenate onto — the id scheme is load-bearing for fragment-cache
|
|
24
|
+
* keys, so it must not drift.
|
|
25
|
+
*/
|
|
26
|
+
export function chunkByCount(files, chunkSize) {
|
|
27
|
+
const sorted = [...files].sort();
|
|
28
|
+
const out = [];
|
|
29
|
+
for (let i = 0; i < sorted.length; i += chunkSize) {
|
|
30
|
+
out.push({
|
|
31
|
+
id: `chunk-${String(out.length)}`,
|
|
32
|
+
files: sorted.slice(i, i + chunkSize),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=partition-chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partition-chunk.js","sourceRoot":"","sources":["../../../src/cli/orchestrate/partition-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAwB,EACxB,SAAiB;IAEjB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,SAAS,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition the canonical file set across shards by longest-matching root dir.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1 of graph-sharded-exact-parity. The sharded engine used to RE-DERIVE
|
|
5
|
+
* each shard's files from that package's own tsconfig — which excludes the
|
|
6
|
+
* package's `__fixtures__` tree AND (for some packages) its test files — so it
|
|
7
|
+
* silently dropped files the exact engine kept. The fix: enumerate the project
|
|
8
|
+
* once (root discovery → {@link resolveCanonicalFileSet}), then ASSIGN each
|
|
9
|
+
* canonical file to a shard here. Discovery now only supplies shard BOUNDARIES
|
|
10
|
+
* (rootDir + configPath), never the file set.
|
|
11
|
+
*
|
|
12
|
+
* Assignment rule: each file goes to the unit whose `rootDir` is its LONGEST
|
|
13
|
+
* matching path prefix (so a file under `packages/foo/src/...` lands in the
|
|
14
|
+
* `foo` unit, not a shorter-prefix ancestor unit). Files under NO unit's
|
|
15
|
+
* rootDir — root scripts, `.config`, files in packages without a tsconfig —
|
|
16
|
+
* fall into a synthetic ROOT shard anchored at the project root + root tsconfig.
|
|
17
|
+
*
|
|
18
|
+
* Invariant (asserted by callers' tests): `union(shard.files) === canonicalFiles`
|
|
19
|
+
* and every file lands in EXACTLY one shard — the partition is total and
|
|
20
|
+
* disjoint, which is what makes the merged sharded catalog equal the exact one.
|
|
21
|
+
*/
|
|
22
|
+
import type { Shard } from './shard-model.js';
|
|
23
|
+
/** Stable id of the synthetic catch-all shard that owns files under no unit. */
|
|
24
|
+
export declare const ROOT_SHARD_ID = ":root";
|
|
25
|
+
/** A shard boundary derived from discovery: where a unit lives + its config anchor. */
|
|
26
|
+
export interface ShardBoundary {
|
|
27
|
+
/** Stable unit id (e.g. `pkg:core`). MUST NOT be {@link ROOT_SHARD_ID}. */
|
|
28
|
+
readonly id: string;
|
|
29
|
+
/** Absolute root dir the unit's files live under. */
|
|
30
|
+
readonly rootDir: string;
|
|
31
|
+
/** Absolute config anchor (tsconfig.json) for the unit, if any. */
|
|
32
|
+
readonly configPathAbs?: string;
|
|
33
|
+
}
|
|
34
|
+
/** Inputs to {@link partitionFilesIntoShards}. */
|
|
35
|
+
export interface PartitionInput {
|
|
36
|
+
/** The canonical (fixture-excluded) project-wide file set — absolute paths. */
|
|
37
|
+
readonly canonicalFiles: readonly string[];
|
|
38
|
+
/** Unit boundaries from discovery (rootDir + config anchor). */
|
|
39
|
+
readonly units: readonly ShardBoundary[];
|
|
40
|
+
/** Absolute project root — the synthetic root shard's rootDir. */
|
|
41
|
+
readonly projectRoot: string;
|
|
42
|
+
/** Absolute root config anchor (root tsconfig.json), threaded onto the root shard. */
|
|
43
|
+
readonly rootConfigPathAbs?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Assign each canonical file to the unit whose rootDir is its longest matching
|
|
47
|
+
* prefix; files under no unit go to a synthetic ROOT shard. Returns only
|
|
48
|
+
* non-empty shards. Deterministic: shard order follows the input unit order
|
|
49
|
+
* (root shard last); each shard's files preserve canonical input order.
|
|
50
|
+
*/
|
|
51
|
+
export declare function partitionFilesIntoShards(input: PartitionInput): Shard[];
|
|
52
|
+
//# sourceMappingURL=partition-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partition-files.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/partition-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gFAAgF;AAChF,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAsCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,EAAE,CAoCvE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition the canonical file set across shards by longest-matching root dir.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1 of graph-sharded-exact-parity. The sharded engine used to RE-DERIVE
|
|
5
|
+
* each shard's files from that package's own tsconfig — which excludes the
|
|
6
|
+
* package's `__fixtures__` tree AND (for some packages) its test files — so it
|
|
7
|
+
* silently dropped files the exact engine kept. The fix: enumerate the project
|
|
8
|
+
* once (root discovery → {@link resolveCanonicalFileSet}), then ASSIGN each
|
|
9
|
+
* canonical file to a shard here. Discovery now only supplies shard BOUNDARIES
|
|
10
|
+
* (rootDir + configPath), never the file set.
|
|
11
|
+
*
|
|
12
|
+
* Assignment rule: each file goes to the unit whose `rootDir` is its LONGEST
|
|
13
|
+
* matching path prefix (so a file under `packages/foo/src/...` lands in the
|
|
14
|
+
* `foo` unit, not a shorter-prefix ancestor unit). Files under NO unit's
|
|
15
|
+
* rootDir — root scripts, `.config`, files in packages without a tsconfig —
|
|
16
|
+
* fall into a synthetic ROOT shard anchored at the project root + root tsconfig.
|
|
17
|
+
*
|
|
18
|
+
* Invariant (asserted by callers' tests): `union(shard.files) === canonicalFiles`
|
|
19
|
+
* and every file lands in EXACTLY one shard — the partition is total and
|
|
20
|
+
* disjoint, which is what makes the merged sharded catalog equal the exact one.
|
|
21
|
+
*/
|
|
22
|
+
import { toPosixPath } from '../../cross-package/posix-path.js';
|
|
23
|
+
/** Stable id of the synthetic catch-all shard that owns files under no unit. */
|
|
24
|
+
export const ROOT_SHARD_ID = ':root';
|
|
25
|
+
/**
|
|
26
|
+
* True when `dir` is a path-prefix of `file` at a SEGMENT boundary — i.e. `file`
|
|
27
|
+
* is `dir` itself or lives under it. Avoids the `/foo` ⊂ `/foobar` false match
|
|
28
|
+
* by requiring the prefix to end at a `/` boundary.
|
|
29
|
+
*/
|
|
30
|
+
function isUnderDir(file, dir) {
|
|
31
|
+
if (file === dir)
|
|
32
|
+
return true;
|
|
33
|
+
const withSlash = dir.endsWith('/') ? dir : `${dir}/`;
|
|
34
|
+
return file.startsWith(withSlash);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Find the unit whose rootDir is the LONGEST matching prefix of `filePosix`, or
|
|
38
|
+
* `undefined` when the file is under no unit (→ the synthetic root shard).
|
|
39
|
+
*/
|
|
40
|
+
function longestMatchingUnitId(filePosix, normUnits) {
|
|
41
|
+
let bestId;
|
|
42
|
+
let bestLen = -1;
|
|
43
|
+
for (const { unit, rootPosix } of normUnits) {
|
|
44
|
+
if (isUnderDir(filePosix, rootPosix) && rootPosix.length > bestLen) {
|
|
45
|
+
bestLen = rootPosix.length;
|
|
46
|
+
bestId = unit.id;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return bestId;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Assign each canonical file to the unit whose rootDir is its longest matching
|
|
53
|
+
* prefix; files under no unit go to a synthetic ROOT shard. Returns only
|
|
54
|
+
* non-empty shards. Deterministic: shard order follows the input unit order
|
|
55
|
+
* (root shard last); each shard's files preserve canonical input order.
|
|
56
|
+
*/
|
|
57
|
+
export function partitionFilesIntoShards(input) {
|
|
58
|
+
const { canonicalFiles, units, projectRoot, rootConfigPathAbs } = input;
|
|
59
|
+
// Pre-normalize unit rootDirs once; index by id to accumulate file buckets.
|
|
60
|
+
const normUnits = units.map((u) => ({ unit: u, rootPosix: toPosixPath(u.rootDir) }));
|
|
61
|
+
const buckets = new Map();
|
|
62
|
+
for (const u of units)
|
|
63
|
+
buckets.set(u.id, []);
|
|
64
|
+
const rootBucket = [];
|
|
65
|
+
for (const file of canonicalFiles) {
|
|
66
|
+
const bestId = longestMatchingUnitId(toPosixPath(file), normUnits);
|
|
67
|
+
if (bestId === undefined)
|
|
68
|
+
rootBucket.push(file);
|
|
69
|
+
else
|
|
70
|
+
buckets.get(bestId).push(file);
|
|
71
|
+
}
|
|
72
|
+
const shards = [];
|
|
73
|
+
for (const u of units) {
|
|
74
|
+
const files = buckets.get(u.id);
|
|
75
|
+
if (files.length > 0) {
|
|
76
|
+
shards.push({
|
|
77
|
+
id: u.id,
|
|
78
|
+
rootDir: u.rootDir,
|
|
79
|
+
files,
|
|
80
|
+
...(u.configPathAbs === undefined ? {} : { configPathAbs: u.configPathAbs }),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (rootBucket.length > 0) {
|
|
85
|
+
shards.push({
|
|
86
|
+
id: ROOT_SHARD_ID,
|
|
87
|
+
rootDir: projectRoot,
|
|
88
|
+
files: rootBucket,
|
|
89
|
+
...(rootConfigPathAbs === undefined ? {} : { configPathAbs: rootConfigPathAbs }),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return shards;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=partition-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partition-files.js","sourceRoot":"","sources":["../../../src/cli/orchestrate/partition-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-boundary-call resolution trace (debug-only). The cross-shard counterpart
|
|
3
|
+
* of graph-typescript's `traceResolveDecl`: when `GRAPH_SITE_LOG` points at a
|
|
4
|
+
* file, every `resolveOne` decision appends one TSV row keyed by the full
|
|
5
|
+
* project-relative `ownerFile:line:column` so the exact and sharded logs join
|
|
6
|
+
* exactly. OFF with zero cost when the env var is unset.
|
|
7
|
+
*/
|
|
8
|
+
import type { CrossBoundaryCall } from '../../types.js';
|
|
9
|
+
/** Append one resolveOne decision row when GRAPH_SITE_LOG is set; else a no-op. */
|
|
10
|
+
export declare function traceResolveOne(bc: CrossBoundaryCall, branch: string, to: readonly string[]): void;
|
|
11
|
+
//# sourceMappingURL=resolution-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution-trace.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/resolution-trace.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,mFAAmF;AACnF,wBAAgB,eAAe,CAC7B,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,SAAS,MAAM,EAAE,GACpB,IAAI,CAaN"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// @fitness-ignore-file env-via-registry -- debug-only diagnostic harness, opt-in via the GRAPH_SITE_LOG / GRAPH_ENGINE env vars; NOT production configuration. Reading process.env directly is intentional and isolated to this one module so the cross-shard resolver stays registry-clean. See docs/internal/graph-resolution-trace.md.
|
|
2
|
+
/**
|
|
3
|
+
* Per-boundary-call resolution trace (debug-only). The cross-shard counterpart
|
|
4
|
+
* of graph-typescript's `traceResolveDecl`: when `GRAPH_SITE_LOG` points at a
|
|
5
|
+
* file, every `resolveOne` decision appends one TSV row keyed by the full
|
|
6
|
+
* project-relative `ownerFile:line:column` so the exact and sharded logs join
|
|
7
|
+
* exactly. OFF with zero cost when the env var is unset.
|
|
8
|
+
*/
|
|
9
|
+
/* v8 ignore start -- debug-only; exercised manually via GRAPH_SITE_LOG, never in the test suite */
|
|
10
|
+
import { appendFileSync } from 'node:fs';
|
|
11
|
+
/** Append one resolveOne decision row when GRAPH_SITE_LOG is set; else a no-op. */
|
|
12
|
+
export function traceResolveOne(bc, branch, to) {
|
|
13
|
+
const logPath = process.env.GRAPH_SITE_LOG;
|
|
14
|
+
if (logPath === undefined)
|
|
15
|
+
return;
|
|
16
|
+
const line = [
|
|
17
|
+
`${process.env.GRAPH_ENGINE ?? '?'}:resolveOne`,
|
|
18
|
+
`${bc.ownerFile}:${String(bc.line)}:${String(bc.column)}`,
|
|
19
|
+
bc.calleeName,
|
|
20
|
+
`branch=${branch}`,
|
|
21
|
+
`spec=${bc.importSpecifier ?? '-'}`,
|
|
22
|
+
`out=${to.length > 0 ? to[0]?.slice(0, 10) : 'DECLINE'}`,
|
|
23
|
+
].join('\t') + '\n';
|
|
24
|
+
appendFileSync(logPath, line);
|
|
25
|
+
}
|
|
26
|
+
/* v8 ignore stop */
|
|
27
|
+
//# sourceMappingURL=resolution-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution-trace.js","sourceRoot":"","sources":["../../../src/cli/orchestrate/resolution-trace.ts"],"names":[],"mappings":"AAAA,0UAA0U;AAC1U;;;;;;GAMG;AAEH,mGAAmG;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAC7B,EAAqB,EACrB,MAAc,EACd,EAAqB;IAErB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAClC,MAAM,IAAI,GACR;QACE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,aAAa;QAC/C,GAAG,EAAE,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QACzD,EAAE,CAAC,UAAU;QACb,UAAU,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,eAAe,IAAI,GAAG,EAAE;QACnC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;KACzD,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AACD,oBAAoB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shard model and the serializable worker-boundary contract.
|
|
3
|
+
*
|
|
4
|
+
* A sharded build splits a multi-package project into independent shards
|
|
5
|
+
* (one workspace package, one `--packages` unit, or one flat-monorepo
|
|
6
|
+
* partition), builds each in its own worker process, and merges the
|
|
7
|
+
* per-shard catalog fragments — recovering the cross-package edges the
|
|
8
|
+
* old fan-out modes silently dropped.
|
|
9
|
+
*
|
|
10
|
+
* The load-bearing constraint: a worker process cannot hand back a
|
|
11
|
+
* `ts.Node` / `ts.Program` (not structured-cloneable). So every type that
|
|
12
|
+
* crosses the worker boundary here is JSON-safe by construction — a
|
|
13
|
+
* primitive, an array, or a `Catalog` (already the plain shape persisted
|
|
14
|
+
* to the datastore today). The boundary carries DATA, never ASTs.
|
|
15
|
+
*
|
|
16
|
+
* Lifecycle:
|
|
17
|
+
* discovery → Shard[] (workspace/packages/partition)
|
|
18
|
+
* worker(Shard) → ShardBuildResult (Phase 1, per process)
|
|
19
|
+
* merge(fragments) + resolve(boundaryCalls) (Phase 2, main thread)
|
|
20
|
+
* cache(fragment by shardId+fingerprint) (Phase 3)
|
|
21
|
+
*/
|
|
22
|
+
import type { Catalog, CrossBoundaryCall, ParseError, ResolutionMode } from '../../types.js';
|
|
23
|
+
/**
|
|
24
|
+
* One parallelizable unit of a sharded build. The discovery strategies
|
|
25
|
+
* (workspace units, flat-monorepo partitions) map their output onto this
|
|
26
|
+
* single shape.
|
|
27
|
+
*/
|
|
28
|
+
export interface Shard {
|
|
29
|
+
/**
|
|
30
|
+
* Stable shard id, e.g. `'pkg:core'`, `'partition:3'`, or the synthetic
|
|
31
|
+
* catch-all `':root'` ({@link partition-files.ROOT_SHARD_ID}). Used as the
|
|
32
|
+
* per-shard fragment-cache primary key — MUST be unique across the shard set
|
|
33
|
+
* (asserted by `assertUniqueShardIds`).
|
|
34
|
+
*/
|
|
35
|
+
readonly id: string;
|
|
36
|
+
/** Absolute root dir the shard's files live under. The `':root'` shard's rootDir is the project root. */
|
|
37
|
+
readonly rootDir: string;
|
|
38
|
+
/** Absolute file paths belonging to this shard (already enumerated — no re-discovery). */
|
|
39
|
+
readonly files: readonly string[];
|
|
40
|
+
/**
|
|
41
|
+
* Absolute path to the shard's config anchor (tsconfig.json, etc.), if any.
|
|
42
|
+
* For the synthetic `':root'` shard this is the ROOT tsconfig — the worker
|
|
43
|
+
* builds that shard's files (root scripts, unowned/`.config` files) against
|
|
44
|
+
* the root compiler options so they parse/resolve correctly (Phase 1).
|
|
45
|
+
*/
|
|
46
|
+
readonly configPathAbs?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The JSON spec a shard worker reads (written by the runner to a temp
|
|
50
|
+
* file, path passed via argv — file, not argv, so thousands of file
|
|
51
|
+
* paths don't overflow the command line).
|
|
52
|
+
*/
|
|
53
|
+
export interface ShardWorkerSpec {
|
|
54
|
+
readonly shard: Shard;
|
|
55
|
+
/**
|
|
56
|
+
* The COMMON project root all shards share. The worker computes every
|
|
57
|
+
* occurrence's project-relative `filePath` against this root (not the
|
|
58
|
+
* shard's own rootDir) so fragments from different shards align in the
|
|
59
|
+
* merged catalog.
|
|
60
|
+
*/
|
|
61
|
+
readonly projectRoot: string;
|
|
62
|
+
/** Optional adapter id requested by the parent `graph --language <id>` run. */
|
|
63
|
+
readonly language?: string;
|
|
64
|
+
readonly resolutionMode: ResolutionMode;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The serializable result one shard worker returns. JSON-safe by
|
|
68
|
+
* construction — round-trips losslessly through
|
|
69
|
+
* `JSON.parse(JSON.stringify(result))` (the worker-boundary contract,
|
|
70
|
+
* asserted in Phase 5 tests).
|
|
71
|
+
*/
|
|
72
|
+
export interface ShardBuildResult {
|
|
73
|
+
readonly shardId: string;
|
|
74
|
+
/**
|
|
75
|
+
* This shard's catalog: its occurrences plus every edge the worker
|
|
76
|
+
* could resolve LOCALLY (semantic in exact mode, syntactic in fast).
|
|
77
|
+
*/
|
|
78
|
+
readonly fragment: Catalog;
|
|
79
|
+
/** Per-shard files fingerprint (mtime+size) — the per-shard cache validity key. */
|
|
80
|
+
readonly fingerprint: string;
|
|
81
|
+
/**
|
|
82
|
+
* Call sites the worker could not resolve within its own files — the
|
|
83
|
+
* candidates the cross-shard pass re-resolves against the global catalog.
|
|
84
|
+
*/
|
|
85
|
+
readonly boundaryCalls: readonly CrossBoundaryCall[];
|
|
86
|
+
readonly parseErrors: readonly ParseError[];
|
|
87
|
+
}
|
|
88
|
+
/** Per-run sharded-build statistics, mirrored into the --profile summary
|
|
89
|
+
* (ADR-0045 measurement plane). All counts are plain numbers. */
|
|
90
|
+
export interface ShardRunStats {
|
|
91
|
+
readonly shardCount: number;
|
|
92
|
+
readonly shardsBuilt: number;
|
|
93
|
+
readonly shardsCached: number;
|
|
94
|
+
/** Files per shard, sorted descending (balance metric input). */
|
|
95
|
+
readonly shardSizes: readonly number[];
|
|
96
|
+
/** Total cross-shard boundary call sites handed to the linker. */
|
|
97
|
+
readonly boundaryCallSites: number;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=shard-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-model.d.ts","sourceRoot":"","sources":["../../../src/cli/orchestrate/shard-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED;kEACkE;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC"}
|