@intentius/chant 0.124.46 → 0.124.49
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/dist/__golden__/wave-loop/op-by-apply-after-fails.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-hold.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-ignored.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-pass.json +10 -0
- package/dist/__golden__/wave-loop/op-by-apply-skip.json +10 -0
- package/dist/__golden__/wave-loop/op-cost-member-clash.json +6 -0
- package/dist/__golden__/wave-loop/op-cost-member.json +13 -0
- package/dist/__golden__/wave-loop/op-denied-source.json +16 -0
- package/dist/__golden__/wave-loop/op-denied.json +16 -0
- package/dist/__golden__/wave-loop/op-discover-rest-short.json +6 -0
- package/dist/__golden__/wave-loop/op-discover-rest-stops.json +13 -0
- package/dist/__golden__/wave-loop/op-discover-rest.json +26 -0
- package/dist/__golden__/wave-loop/op-discover-wide.json +26 -0
- package/dist/__golden__/wave-loop/op-held-on-again.json +16 -0
- package/dist/__golden__/wave-loop/op-held-on-before-apply.json +16 -0
- package/dist/__golden__/wave-loop/op-held-on.json +16 -0
- package/dist/__golden__/wave-loop/op-hooks-apply-fails.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-fail-after-apply.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-fail-before-apply.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-fail-before-plan.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-held.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-hold-before-apply.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-pass.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-refused-at-base.json +13 -0
- package/dist/__golden__/wave-loop/op-hooks-share.json +33 -0
- package/dist/__golden__/wave-loop/op-outcome-held.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-replan-approved.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-replan-forever.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-replan.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-stood-down.json +10 -0
- package/dist/__golden__/wave-loop/op-outcome-unreadable.json +10 -0
- package/dist/__golden__/wave-loop/op-overridden.json +16 -0
- package/dist/__golden__/wave-loop/op-per-run.json +20 -0
- package/dist/__golden__/wave-loop/op-point.json +13 -0
- package/dist/__golden__/wave-loop/op-pr-review.json +10 -0
- package/dist/__golden__/wave-loop/op-sealed.json +10 -0
- package/dist/__golden__/wave-loop/op-spend-change-only.json +10 -0
- package/dist/__golden__/wave-loop/op-spend.json +10 -0
- package/dist/__golden__/wave-loop/op-wave-commands.json +55 -0
- package/dist/__golden__/wave-loop/op-wide-refused.json +26 -0
- package/dist/__golden__/wave-loop/op-wide-waiting.json +29 -0
- package/dist/__golden__/wave-loop/op-wide.json +39 -0
- package/dist/action-pins.d.ts +61 -0
- package/dist/action-pins.d.ts.map +1 -0
- package/dist/action-pins.js +77 -0
- package/dist/cli/commands/carve.d.ts +3 -0
- package/dist/cli/commands/carve.d.ts.map +1 -1
- package/dist/cli/commands/carve.js +36 -7
- package/dist/cli/commands/import-report.d.ts +26 -0
- package/dist/cli/commands/import-report.d.ts.map +1 -0
- package/dist/cli/commands/import-report.js +65 -0
- package/dist/cli/commands/import.d.ts +11 -1
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +22 -3
- package/dist/cli/commands/migrate.d.ts +13 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +134 -10
- package/dist/cli/handlers/approve.d.ts.map +1 -1
- package/dist/cli/handlers/approve.js +41 -14
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/build.js +6 -1
- package/dist/cli/handlers/graph-reader.d.ts +26 -0
- package/dist/cli/handlers/graph-reader.d.ts.map +1 -0
- package/dist/cli/handlers/graph-reader.js +41 -0
- package/dist/cli/handlers/graph.d.ts.map +1 -1
- package/dist/cli/handlers/graph.js +14 -0
- package/dist/cli/handlers/ledger.d.ts +3 -0
- package/dist/cli/handlers/ledger.d.ts.map +1 -0
- package/dist/cli/handlers/ledger.js +55 -0
- package/dist/cli/handlers/migrate.d.ts.map +1 -1
- package/dist/cli/handlers/migrate.js +18 -11
- package/dist/cli/handlers/misc.d.ts.map +1 -1
- package/dist/cli/handlers/misc.js +12 -1
- package/dist/cli/handlers/pr-env.js +2 -2
- package/dist/cli/handlers/pr.d.ts +15 -1
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +183 -40
- package/dist/cli/handlers/query.d.ts +7 -2
- package/dist/cli/handlers/query.d.ts.map +1 -1
- package/dist/cli/handlers/query.js +16 -4
- package/dist/cli/handlers/release.d.ts.map +1 -1
- package/dist/cli/handlers/release.js +6 -3
- package/dist/cli/handlers/search.d.ts +2 -4
- package/dist/cli/handlers/search.d.ts.map +1 -1
- package/dist/cli/handlers/search.js +13 -39
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +87 -14
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +47 -2
- package/dist/cli/registry.d.ts +22 -4
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/components/builders.d.ts +5 -1
- package/dist/components/builders.d.ts.map +1 -1
- package/dist/components/builders.js +5 -0
- package/dist/components/capability-plugin-loader.d.ts.map +1 -1
- package/dist/components/capability-plugin-loader.js +16 -1
- package/dist/components/capability-plugin.d.ts +14 -0
- package/dist/components/capability-plugin.d.ts.map +1 -1
- package/dist/components/pr-hooks.d.ts +21 -1
- package/dist/components/pr-hooks.d.ts.map +1 -1
- package/dist/components/pr-hooks.js +72 -4
- package/dist/components/pr-pipeline.d.ts +45 -10
- package/dist/components/pr-pipeline.d.ts.map +1 -1
- package/dist/components/pr-pipeline.js +47 -14
- package/dist/components/pr-policy.d.ts +36 -0
- package/dist/components/pr-policy.d.ts.map +1 -1
- package/dist/components/pr-policy.js +36 -0
- package/dist/components/pr-run.d.ts +3 -0
- package/dist/components/pr-run.d.ts.map +1 -1
- package/dist/components/pr-run.js +1 -0
- package/dist/components/starter-plugin.d.ts +1 -0
- package/dist/components/starter-plugin.d.ts.map +1 -1
- package/dist/components/starter-plugin.js +5 -1
- package/dist/components/verbs/index.d.ts +2 -0
- package/dist/components/verbs/index.d.ts.map +1 -1
- package/dist/components/verbs/index.js +2 -0
- package/dist/components/verbs/publish-artifact.d.ts +65 -0
- package/dist/components/verbs/publish-artifact.d.ts.map +1 -0
- package/dist/components/verbs/publish-artifact.js +74 -0
- package/dist/components/verbs/publish-image.d.ts +129 -0
- package/dist/components/verbs/publish-image.d.ts.map +1 -0
- package/dist/components/verbs/publish-image.js +145 -0
- package/dist/config-environments.d.ts +20 -0
- package/dist/config-environments.d.ts.map +1 -1
- package/dist/config-environments.js +12 -0
- package/dist/config.d.ts +25 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -2
- package/dist/gate-decision.d.ts +20 -2
- package/dist/gate-decision.d.ts.map +1 -1
- package/dist/gate-decision.js +30 -3
- package/dist/graph-ir.d.ts +25 -0
- package/dist/graph-ir.d.ts.map +1 -1
- package/dist/graph-walk.d.ts +66 -0
- package/dist/graph-walk.d.ts.map +1 -0
- package/dist/graph-walk.js +70 -0
- package/dist/import/parser.d.ts +19 -0
- package/dist/import/parser.d.ts.map +1 -1
- package/dist/lexicon.d.ts +94 -6
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.d.ts +11 -0
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/git.d.ts +2 -5
- package/dist/lifecycle/git.d.ts.map +1 -1
- package/dist/lifecycle/ledger-read.d.ts +65 -0
- package/dist/lifecycle/ledger-read.d.ts.map +1 -0
- package/dist/lifecycle/ledger-read.js +160 -0
- package/dist/lifecycle/release-workstation.d.ts +7 -0
- package/dist/lifecycle/release-workstation.d.ts.map +1 -1
- package/dist/lifecycle/release-workstation.js +25 -0
- package/dist/lifecycle/run-ledger.d.ts +4 -3
- package/dist/lifecycle/run-ledger.d.ts.map +1 -1
- package/dist/lifecycle/run-ledger.js +1 -0
- package/dist/lint/discover.js +3 -1
- package/dist/lint/post-synth.d.ts +127 -1
- package/dist/lint/post-synth.d.ts.map +1 -1
- package/dist/lint/post-synth.js +84 -2
- package/dist/lint/rules/op/index.d.ts +1 -0
- package/dist/lint/rules/op/index.d.ts.map +1 -1
- package/dist/lint/rules/op/index.js +2 -0
- package/dist/lint/rules/op/ops019-workspace-op-target.d.ts +32 -0
- package/dist/lint/rules/op/ops019-workspace-op-target.d.ts.map +1 -0
- package/dist/lint/rules/op/ops019-workspace-op-target.js +63 -0
- package/dist/op/activities/activity-contracts.d.ts +9 -6
- package/dist/op/activities/activity-contracts.d.ts.map +1 -1
- package/dist/op/activities/activity-contracts.js +5 -2
- package/dist/op/activities/index.d.ts +2 -2
- package/dist/op/activities/index.d.ts.map +1 -1
- package/dist/op/activities/index.js +1 -1
- package/dist/op/activities/review-agent.d.ts +90 -4
- package/dist/op/activities/review-agent.d.ts.map +1 -1
- package/dist/op/activities/review-agent.js +217 -19
- package/dist/op/activities/work-evidence.d.ts +8 -1
- package/dist/op/activities/work-evidence.d.ts.map +1 -1
- package/dist/op/activities/work-evidence.js +1 -0
- package/dist/op/builders.d.ts +9 -5
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/builders.js +9 -5
- package/dist/op/composites/apply-op.d.ts +29 -2
- package/dist/op/composites/apply-op.d.ts.map +1 -1
- package/dist/op/composites/apply-op.js +20 -1
- package/dist/op/gate-approval-base.d.ts +25 -0
- package/dist/op/gate-approval-base.d.ts.map +1 -0
- package/dist/op/gate-approval-base.js +71 -0
- package/dist/op/gate-approval.d.ts +18 -9
- package/dist/op/gate-approval.d.ts.map +1 -1
- package/dist/op/gate-approval.js +13 -31
- package/dist/op/gate-name.d.ts +13 -0
- package/dist/op/gate-name.d.ts.map +1 -1
- package/dist/op/gate-name.js +14 -1
- package/dist/op/gate-quorum.d.ts +100 -3
- package/dist/op/gate-quorum.d.ts.map +1 -1
- package/dist/op/gate-quorum.js +108 -6
- package/dist/op/gate-review.d.ts +9 -0
- package/dist/op/gate-review.d.ts.map +1 -1
- package/dist/op/gate-review.js +13 -0
- package/dist/op/gate.d.ts +47 -5
- package/dist/op/gate.d.ts.map +1 -1
- package/dist/op/gate.js +25 -4
- package/dist/op/index.d.ts +3 -3
- package/dist/op/index.d.ts.map +1 -1
- package/dist/op/index.js +1 -1
- package/dist/op/local-executor.d.ts +45 -3
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/local-executor.js +68 -7
- package/dist/op/op-waves-run.d.ts +26 -1
- package/dist/op/op-waves-run.d.ts.map +1 -1
- package/dist/op/op-waves-run.js +259 -13
- package/dist/op/op-waves.d.ts +72 -5
- package/dist/op/op-waves.d.ts.map +1 -1
- package/dist/op/op-waves.js +110 -15
- package/dist/op/runtime.d.ts +11 -0
- package/dist/op/runtime.d.ts.map +1 -1
- package/dist/op/schedule-overdue.d.ts +16 -0
- package/dist/op/schedule-overdue.d.ts.map +1 -1
- package/dist/op/schedule-overdue.js +36 -0
- package/dist/op/stage-hooks.d.ts +9 -2
- package/dist/op/stage-hooks.d.ts.map +1 -1
- package/dist/op/stage-hooks.js +7 -5
- package/dist/op/workspace-run-env.d.ts +22 -0
- package/dist/op/workspace-run-env.d.ts.map +1 -0
- package/dist/op/workspace-run-env.js +21 -0
- package/dist/pr-forge.d.ts +24 -0
- package/dist/pr-forge.d.ts.map +1 -1
- package/dist/pr-forge.js +47 -0
- package/dist/pr-loop.d.ts +10 -0
- package/dist/pr-loop.d.ts.map +1 -1
- package/dist/pr-loop.js +4 -0
- package/dist/pr-migrations.d.ts +62 -0
- package/dist/pr-migrations.d.ts.map +1 -0
- package/dist/pr-migrations.js +50 -0
- package/dist/pr-post.d.ts +42 -0
- package/dist/pr-post.d.ts.map +1 -1
- package/dist/pr-post.js +68 -2
- package/dist/read-filter.d.ts +65 -0
- package/dist/read-filter.d.ts.map +1 -0
- package/dist/read-filter.js +179 -0
- package/dist/run-event.d.ts +1 -1
- package/dist/run-event.d.ts.map +1 -1
- package/dist/terraform/carve.d.ts +24 -3
- package/dist/terraform/carve.d.ts.map +1 -1
- package/dist/terraform/carve.js +32 -14
- package/dist/terraform/cuts.d.ts +97 -0
- package/dist/terraform/cuts.d.ts.map +1 -0
- package/dist/terraform/cuts.js +138 -0
- package/dist/terraform/folds.d.ts +26 -0
- package/dist/terraform/folds.d.ts.map +1 -0
- package/dist/terraform/folds.js +38 -0
- package/dist/terraform/graph.d.ts.map +1 -1
- package/dist/terraform/graph.js +10 -0
- package/dist/terraform/reach.d.ts +140 -0
- package/dist/terraform/reach.d.ts.map +1 -0
- package/dist/terraform/reach.js +170 -0
- package/dist/terraform/score.d.ts +14 -0
- package/dist/terraform/score.d.ts.map +1 -1
- package/dist/terraform/score.js +14 -31
- package/dist/terraform/state.d.ts.map +1 -1
- package/dist/terraform/state.js +4 -2
- package/dist/terraform/types.d.ts +8 -0
- package/dist/terraform/types.d.ts.map +1 -1
- package/dist/wave-blocked.d.ts +10 -1
- package/dist/wave-blocked.d.ts.map +1 -1
- package/dist/wave-blocked.js +31 -3
- package/dist/wave-runtime.mjs +264 -254
- package/dist/workspace/check.schema.json +13 -2
- package/dist/workspace/checks/ci-branch.d.ts +44 -0
- package/dist/workspace/checks/ci-branch.d.ts.map +1 -0
- package/dist/workspace/checks/ci-branch.js +133 -0
- package/dist/workspace/checks/gate-approval.d.ts +58 -0
- package/dist/workspace/checks/gate-approval.d.ts.map +1 -0
- package/dist/workspace/checks/gate-approval.js +103 -0
- package/dist/workspace/checks/links.d.ts +3 -0
- package/dist/workspace/checks/links.d.ts.map +1 -1
- package/dist/workspace/checks/links.js +12 -1
- package/dist/workspace/checks/org.d.ts +48 -0
- package/dist/workspace/checks/org.d.ts.map +1 -0
- package/dist/workspace/checks/org.js +156 -0
- package/dist/workspace/checks.d.ts +12 -1
- package/dist/workspace/checks.d.ts.map +1 -1
- package/dist/workspace/checks.js +63 -7
- package/dist/workspace/ci-branches.d.ts +16 -0
- package/dist/workspace/ci-branches.d.ts.map +1 -1
- package/dist/workspace/ci-branches.js +27 -0
- package/dist/workspace/ci-green-cli.js +7 -7
- package/dist/workspace/ci-green-workflow.d.ts +1 -1
- package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-green-workflow.js +13 -8
- package/dist/workspace/ci-green.d.ts +14 -0
- package/dist/workspace/ci-green.d.ts.map +1 -1
- package/dist/workspace/ci-green.js +44 -11
- package/dist/workspace/ci-run.d.ts +9 -1
- package/dist/workspace/ci-run.d.ts.map +1 -1
- package/dist/workspace/ci-run.js +67 -6
- package/dist/workspace/ci-serve.d.ts +9 -0
- package/dist/workspace/ci-serve.d.ts.map +1 -1
- package/dist/workspace/ci-serve.js +114 -76
- package/dist/workspace/compose-graph.d.ts +14 -0
- package/dist/workspace/compose-graph.d.ts.map +1 -1
- package/dist/workspace/composites.d.ts +4 -1
- package/dist/workspace/composites.d.ts.map +1 -1
- package/dist/workspace/composites.js +5 -2
- package/dist/workspace/composites.schema.json +22 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.schema.json +105 -1
- package/dist/workspace/cross-root-lint.d.ts +56 -0
- package/dist/workspace/cross-root-lint.d.ts.map +1 -0
- package/dist/workspace/cross-root-lint.js +111 -0
- package/dist/workspace/dbt-models-reader.d.ts +44 -0
- package/dist/workspace/dbt-models-reader.d.ts.map +1 -0
- package/dist/workspace/dbt-models-reader.js +356 -0
- package/dist/workspace/dbt-project-common.d.ts +40 -0
- package/dist/workspace/dbt-project-common.d.ts.map +1 -0
- package/dist/workspace/dbt-project-common.js +106 -0
- package/dist/workspace/dbt-project-reader.d.ts +4 -3
- package/dist/workspace/dbt-project-reader.d.ts.map +1 -1
- package/dist/workspace/dbt-project-reader.js +14 -108
- package/dist/workspace/decision-rank.d.ts +26 -0
- package/dist/workspace/decision-rank.d.ts.map +1 -0
- package/dist/workspace/decision-rank.js +16 -0
- package/dist/workspace/declaration.d.ts +50 -2
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.js +57 -11
- package/dist/workspace/declaration.schema.json +166 -24
- package/dist/workspace/environments.d.ts +26 -2
- package/dist/workspace/environments.d.ts.map +1 -1
- package/dist/workspace/environments.js +26 -2
- package/dist/workspace/exit-cli.d.ts +44 -0
- package/dist/workspace/exit-cli.d.ts.map +1 -0
- package/dist/workspace/exit-cli.js +198 -0
- package/dist/workspace/exit.d.ts +159 -0
- package/dist/workspace/exit.d.ts.map +1 -0
- package/dist/workspace/exit.js +480 -0
- package/dist/workspace/exit.schema.json +257 -0
- package/dist/workspace/flyway-dir.d.ts +39 -0
- package/dist/workspace/flyway-dir.d.ts.map +1 -0
- package/dist/workspace/flyway-dir.js +104 -0
- package/dist/workspace/flyway-layout.d.ts +96 -0
- package/dist/workspace/flyway-layout.d.ts.map +1 -0
- package/dist/workspace/flyway-layout.js +308 -0
- package/dist/workspace/graph-cache.d.ts +3 -1
- package/dist/workspace/graph-cache.d.ts.map +1 -1
- package/dist/workspace/graph-cache.js +12 -1
- package/dist/workspace/graph-cli.d.ts.map +1 -1
- package/dist/workspace/graph-cli.js +26 -8
- package/dist/workspace/graph.schema.json +34 -0
- package/dist/workspace/import-fetch.d.ts +38 -0
- package/dist/workspace/import-fetch.d.ts.map +1 -0
- package/dist/workspace/import-fetch.js +99 -0
- package/dist/workspace/import-init.d.ts +26 -0
- package/dist/workspace/import-init.d.ts.map +1 -0
- package/dist/workspace/import-init.js +130 -0
- package/dist/workspace/import-source.d.ts +147 -0
- package/dist/workspace/import-source.d.ts.map +1 -0
- package/dist/workspace/import-source.js +370 -0
- package/dist/workspace/init.d.ts +4 -0
- package/dist/workspace/init.d.ts.map +1 -1
- package/dist/workspace/init.js +70 -3
- package/dist/workspace/intent.d.ts +2 -3
- package/dist/workspace/intent.d.ts.map +1 -1
- package/dist/workspace/intent.js +5 -9
- package/dist/workspace/kind-link-readers.d.ts +59 -2
- package/dist/workspace/kind-link-readers.d.ts.map +1 -1
- package/dist/workspace/kind-link-readers.js +17 -1
- package/dist/workspace/kind-readers.d.ts +6 -0
- package/dist/workspace/kind-readers.d.ts.map +1 -1
- package/dist/workspace/kind-readers.js +18 -0
- package/dist/workspace/kinds.d.ts +90 -3
- package/dist/workspace/kinds.d.ts.map +1 -1
- package/dist/workspace/kinds.js +161 -7
- package/dist/workspace/ledger.schema.json +158 -0
- package/dist/workspace/lexicon-outputs.d.ts +20 -1
- package/dist/workspace/lexicon-outputs.d.ts.map +1 -1
- package/dist/workspace/lexicon-outputs.js +102 -10
- package/dist/workspace/lineage-check.d.ts +3 -0
- package/dist/workspace/lineage-check.d.ts.map +1 -1
- package/dist/workspace/lineage-check.js +23 -4
- package/dist/workspace/lineage-upgrade.d.ts.map +1 -1
- package/dist/workspace/lineage-upgrade.js +13 -4
- package/dist/workspace/links.d.ts +8 -1
- package/dist/workspace/links.d.ts.map +1 -1
- package/dist/workspace/links.js +25 -1
- package/dist/workspace/ls.d.ts +8 -0
- package/dist/workspace/ls.d.ts.map +1 -1
- package/dist/workspace/ls.js +7 -1
- package/dist/workspace/ls.schema.json +7 -0
- package/dist/workspace/member-commands.d.ts.map +1 -1
- package/dist/workspace/member-commands.js +54 -5
- package/dist/workspace/migrate-links.d.ts +45 -0
- package/dist/workspace/migrate-links.d.ts.map +1 -0
- package/dist/workspace/migrate-links.js +100 -0
- package/dist/workspace/migration-dirs.d.ts +74 -0
- package/dist/workspace/migration-dirs.d.ts.map +1 -0
- package/dist/workspace/migration-dirs.js +254 -0
- package/dist/workspace/new-migrations.d.ts +47 -0
- package/dist/workspace/new-migrations.d.ts.map +1 -0
- package/dist/workspace/new-migrations.js +91 -0
- package/dist/workspace/pr-report.schema.json +46 -0
- package/dist/workspace/promote.d.ts +96 -0
- package/dist/workspace/promote.d.ts.map +1 -0
- package/dist/workspace/promote.js +263 -0
- package/dist/workspace/reason-codes.d.ts +21 -0
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/reason-codes.js +25 -0
- package/dist/workspace/records-cli.d.ts +11 -0
- package/dist/workspace/records-cli.d.ts.map +1 -1
- package/dist/workspace/records-cli.js +57 -5
- package/dist/workspace/records.schema.json +5 -0
- package/dist/workspace/release-candidates.d.ts +2 -0
- package/dist/workspace/release-candidates.d.ts.map +1 -1
- package/dist/workspace/release-candidates.js +5 -2
- package/dist/workspace/release-train.d.ts +53 -0
- package/dist/workspace/release-train.d.ts.map +1 -0
- package/dist/workspace/release-train.js +134 -0
- package/dist/workspace/release-workflow.d.ts.map +1 -1
- package/dist/workspace/release-workflow.js +4 -3
- package/dist/workspace/repo-ref.d.ts +45 -0
- package/dist/workspace/repo-ref.d.ts.map +1 -0
- package/dist/workspace/repo-ref.js +114 -0
- package/dist/workspace/run-event.schema.json +2 -2
- package/dist/workspace/runs-cli.d.ts +9 -0
- package/dist/workspace/runs-cli.d.ts.map +1 -1
- package/dist/workspace/runs-cli.js +48 -3
- package/dist/workspace/runs.schema.json +7 -0
- package/dist/workspace/search-contract.d.ts +1 -1
- package/dist/workspace/search-contract.d.ts.map +1 -1
- package/dist/workspace/status-decisions.d.ts +37 -0
- package/dist/workspace/status-decisions.d.ts.map +1 -0
- package/dist/workspace/status-decisions.js +147 -0
- package/dist/workspace/status-gates.d.ts +9 -0
- package/dist/workspace/status-gates.d.ts.map +1 -1
- package/dist/workspace/status.d.ts +4 -0
- package/dist/workspace/status.d.ts.map +1 -1
- package/dist/workspace/status.js +14 -2
- package/dist/workspace/status.schema.json +6 -0
- package/dist/workspace/work-cli.d.ts.map +1 -1
- package/dist/workspace/work-cli.js +5 -3
- package/dist/workspace/work-evidence-ops.d.ts +83 -0
- package/dist/workspace/work-evidence-ops.d.ts.map +1 -0
- package/dist/workspace/work-evidence-ops.js +169 -0
- package/dist/workspace/work-evidence.d.ts +12 -2
- package/dist/workspace/work-evidence.d.ts.map +1 -1
- package/dist/workspace/work-evidence.js +21 -3
- package/dist/workspace/work-evidence.schema.json +49 -2
- package/dist/workspace/workspace-gates.d.ts +110 -0
- package/dist/workspace/workspace-gates.d.ts.map +1 -0
- package/dist/workspace/workspace-gates.js +140 -0
- package/dist/workspace/workspace-kinds.schema.json +108 -10
- package/dist/workspace/workspace-ledger.d.ts +76 -0
- package/dist/workspace/workspace-ledger.d.ts.map +1 -0
- package/dist/workspace/workspace-ledger.js +91 -0
- package/dist/workspace/workspace-run.d.ts +112 -0
- package/dist/workspace/workspace-run.d.ts.map +1 -0
- package/dist/workspace/workspace-run.js +432 -0
- package/package.json +1 -1
- package/src/__golden__/wave-loop/op-by-apply-after-fails.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-hold.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-ignored.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-pass.json +10 -0
- package/src/__golden__/wave-loop/op-by-apply-skip.json +10 -0
- package/src/__golden__/wave-loop/op-cost-member-clash.json +6 -0
- package/src/__golden__/wave-loop/op-cost-member.json +13 -0
- package/src/__golden__/wave-loop/op-denied-source.json +16 -0
- package/src/__golden__/wave-loop/op-denied.json +16 -0
- package/src/__golden__/wave-loop/op-discover-rest-short.json +6 -0
- package/src/__golden__/wave-loop/op-discover-rest-stops.json +13 -0
- package/src/__golden__/wave-loop/op-discover-rest.json +26 -0
- package/src/__golden__/wave-loop/op-discover-wide.json +26 -0
- package/src/__golden__/wave-loop/op-held-on-again.json +16 -0
- package/src/__golden__/wave-loop/op-held-on-before-apply.json +16 -0
- package/src/__golden__/wave-loop/op-held-on.json +16 -0
- package/src/__golden__/wave-loop/op-hooks-apply-fails.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-fail-after-apply.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-fail-before-apply.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-fail-before-plan.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-held.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-hold-before-apply.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-pass.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-refused-at-base.json +13 -0
- package/src/__golden__/wave-loop/op-hooks-share.json +33 -0
- package/src/__golden__/wave-loop/op-outcome-held.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-replan-approved.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-replan-forever.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-replan.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-stood-down.json +10 -0
- package/src/__golden__/wave-loop/op-outcome-unreadable.json +10 -0
- package/src/__golden__/wave-loop/op-overridden.json +16 -0
- package/src/__golden__/wave-loop/op-per-run.json +20 -0
- package/src/__golden__/wave-loop/op-point.json +13 -0
- package/src/__golden__/wave-loop/op-pr-review.json +10 -0
- package/src/__golden__/wave-loop/op-sealed.json +10 -0
- package/src/__golden__/wave-loop/op-spend-change-only.json +10 -0
- package/src/__golden__/wave-loop/op-spend.json +10 -0
- package/src/__golden__/wave-loop/op-wave-commands.json +55 -0
- package/src/__golden__/wave-loop/op-wide-refused.json +26 -0
- package/src/__golden__/wave-loop/op-wide-waiting.json +29 -0
- package/src/__golden__/wave-loop/op-wide.json +39 -0
- package/src/action-pins.test.ts +78 -0
- package/src/action-pins.ts +92 -0
- package/src/cli/commands/carve-score-once.test.ts +99 -0
- package/src/cli/commands/carve.ts +37 -6
- package/src/cli/commands/check-lexicon.test.ts +2 -2
- package/src/cli/commands/import-report.ts +71 -0
- package/src/cli/commands/import.ts +33 -3
- package/src/cli/commands/migrate-dialect.test.ts +145 -0
- package/src/cli/commands/migrate.ts +132 -11
- package/src/cli/handlers/__snapshots__/build-member.test.ts.snap +4 -4
- package/src/cli/handlers/approve.ts +33 -4
- package/src/cli/handlers/build.ts +7 -1
- package/src/cli/handlers/graph-reader.test.ts +31 -0
- package/src/cli/handlers/graph-reader.ts +51 -0
- package/src/cli/handlers/graph.ts +14 -0
- package/src/cli/handlers/ledger.ts +54 -0
- package/src/cli/handlers/migrate.ts +21 -12
- package/src/cli/handlers/misc.ts +10 -1
- package/src/cli/handlers/pr-env.ts +2 -2
- package/src/cli/handlers/pr.ts +176 -37
- package/src/cli/handlers/query.ts +16 -4
- package/src/cli/handlers/release.ts +6 -3
- package/src/cli/handlers/search.ts +13 -34
- package/src/cli/main.test.ts +17 -0
- package/src/cli/main.ts +87 -14
- package/src/cli/parse-args.ts +35 -2
- package/src/cli/registry.ts +22 -4
- package/src/components/builders.ts +8 -0
- package/src/components/capability-plugin-loader.ts +13 -1
- package/src/components/capability-plugin.ts +16 -0
- package/src/components/pr-env-run-bundle.test.ts +1 -0
- package/src/components/pr-hooks.test.ts +73 -5
- package/src/components/pr-hooks.ts +95 -5
- package/src/components/pr-pipeline.ts +64 -16
- package/src/components/pr-policy.test.ts +64 -1
- package/src/components/pr-policy.ts +53 -0
- package/src/components/pr-run.ts +4 -0
- package/src/components/registry.test.ts +1 -1
- package/src/components/starter-plugin.ts +6 -0
- package/src/components/verbs/index.ts +2 -0
- package/src/components/verbs/publish-artifact.test.ts +60 -0
- package/src/components/verbs/publish-artifact.ts +122 -0
- package/src/components/verbs/publish-image.test.ts +101 -0
- package/src/components/verbs/publish-image.ts +265 -0
- package/src/config-environments.ts +28 -1
- package/src/config.ts +24 -1
- package/src/gate-decision-bundle.test.ts +5 -2
- package/src/gate-decision-identity.test.ts +20 -0
- package/src/gate-decision.ts +46 -3
- package/src/graph-ir.ts +27 -0
- package/src/graph-walk.test.ts +44 -0
- package/src/graph-walk.ts +102 -0
- package/src/import/parser.ts +20 -0
- package/src/lexicon.ts +98 -6
- package/src/lifecycle/gate-ledger.ts +8 -0
- package/src/lifecycle/git.ts +2 -2
- package/src/lifecycle/ledger-read.test.ts +107 -0
- package/src/lifecycle/ledger-read.ts +195 -0
- package/src/lifecycle/release-workstation.ts +24 -0
- package/src/lifecycle/run-ledger.ts +5 -2
- package/src/lint/cross-root.test.ts +122 -0
- package/src/lint/discover.ts +3 -1
- package/src/lint/post-synth.ts +212 -2
- package/src/lint/rules/op/index.ts +2 -0
- package/src/lint/rules/op/ops019-workspace-op-target.ts +89 -0
- package/src/op/activities/activity-contracts.ts +5 -2
- package/src/op/activities/index.ts +2 -2
- package/src/op/activities/review-agent.test.ts +221 -4
- package/src/op/activities/review-agent.ts +265 -22
- package/src/op/activities/work-evidence.ts +9 -1
- package/src/op/builders.ts +9 -5
- package/src/op/composites/apply-op.test.ts +108 -0
- package/src/op/composites/apply-op.ts +37 -2
- package/src/op/gate-approval-at-base.test.ts +97 -0
- package/src/op/gate-approval-base.ts +72 -0
- package/src/op/gate-approval.test.ts +6 -1
- package/src/op/gate-approval.ts +22 -27
- package/src/op/gate-name.ts +16 -1
- package/src/op/gate-quorum-at-base.test.ts +211 -0
- package/src/op/gate-quorum.ts +156 -8
- package/src/op/gate-review.ts +14 -0
- package/src/op/gate.ts +69 -9
- package/src/op/index.ts +3 -2
- package/src/op/local-executor.ts +91 -11
- package/src/op/op-waves-depends-on.test.ts +81 -0
- package/src/op/op-waves-hook-targets.test.ts +4 -2
- package/src/op/op-waves-quorum-product.test.ts +158 -0
- package/src/op/op-waves-run.ts +288 -14
- package/src/op/op-waves.ts +143 -14
- package/src/op/runtime.ts +8 -0
- package/src/op/schedule-overdue.ts +33 -0
- package/src/op/stage-hooks.ts +13 -5
- package/src/op/workspace-run-env.ts +29 -0
- package/src/pr-forge-bundle.test.ts +2 -2
- package/src/pr-forge.test.ts +47 -0
- package/src/pr-forge.ts +68 -0
- package/src/pr-loop-bundle.test.ts +3 -2
- package/src/pr-loop.test.ts +52 -0
- package/src/pr-loop.ts +12 -0
- package/src/pr-migrations.ts +97 -0
- package/src/pr-post-open.e2e.test.ts +36 -0
- package/src/pr-post.test.ts +102 -3
- package/src/pr-post.ts +90 -2
- package/src/read-filter.test.ts +54 -0
- package/src/read-filter.ts +193 -0
- package/src/run-event.ts +1 -1
- package/src/stage-hooks-bundle.test.ts +1 -0
- package/src/terraform/carve.ts +52 -15
- package/src/terraform/cuts.test.ts +173 -0
- package/src/terraform/cuts.ts +188 -0
- package/src/terraform/folds.ts +44 -0
- package/src/terraform/graph.ts +9 -0
- package/src/terraform/radius.test.ts +90 -0
- package/src/terraform/reach.test.ts +146 -0
- package/src/terraform/reach.ts +247 -0
- package/src/terraform/score.ts +27 -29
- package/src/terraform/state.ts +3 -1
- package/src/terraform/types.ts +8 -0
- package/src/wave-blocked.ts +28 -3
- package/src/wave-loop-golden.test.ts +4 -3
- package/src/workspace/__fixtures__/import/spacelift.json +9 -0
- package/src/workspace/__fixtures__/import/tfc.json +13 -0
- package/src/workspace/behold-kinds.test.ts +2 -1
- package/src/workspace/check-contract.test.ts +8 -6
- package/src/workspace/check.schema.json +13 -2
- package/src/workspace/checks/ci-branch.test.ts +128 -0
- package/src/workspace/checks/ci-branch.ts +141 -0
- package/src/workspace/checks/gate-approval.test.ts +77 -0
- package/src/workspace/checks/gate-approval.ts +121 -0
- package/src/workspace/checks/links.ts +12 -1
- package/src/workspace/checks/org.ts +169 -0
- package/src/workspace/checks.ts +68 -7
- package/src/workspace/ci-branches.ts +31 -0
- package/src/workspace/ci-green-branches.test.ts +153 -0
- package/src/workspace/ci-green-cli.ts +7 -7
- package/src/workspace/ci-green-workflow.test.ts +4 -3
- package/src/workspace/ci-green-workflow.ts +13 -9
- package/src/workspace/ci-green.ts +49 -12
- package/src/workspace/ci-run.test.ts +72 -1
- package/src/workspace/ci-run.ts +68 -8
- package/src/workspace/ci-serve.test.ts +95 -0
- package/src/workspace/ci-serve.ts +106 -65
- package/src/workspace/component-environments.test.ts +25 -2
- package/src/workspace/compose-graph.ts +9 -2
- package/src/workspace/composites.schema.json +22 -0
- package/src/workspace/composites.test.ts +39 -8
- package/src/workspace/composites.ts +6 -2
- package/src/workspace/conformance/__writer_fixture__/work/work.schema.json +105 -1
- package/src/workspace/cross-root-lint.test.ts +90 -0
- package/src/workspace/cross-root-lint.ts +126 -0
- package/src/workspace/dbt-kind.test.ts +3 -2
- package/src/workspace/dbt-models-reader.ts +362 -0
- package/src/workspace/dbt-models.test.ts +248 -0
- package/src/workspace/dbt-project-common.ts +113 -0
- package/src/workspace/dbt-project-reader.ts +29 -112
- package/src/workspace/decision-rank.ts +40 -0
- package/src/workspace/declaration.schema.json +166 -24
- package/src/workspace/declaration.ts +101 -15
- package/src/workspace/environments.ts +40 -4
- package/src/workspace/exit-cli.ts +219 -0
- package/src/workspace/exit.schema.json +257 -0
- package/src/workspace/exit.test.ts +185 -0
- package/src/workspace/exit.ts +560 -0
- package/src/workspace/flyway-dir.ts +113 -0
- package/src/workspace/flyway-layout.ts +337 -0
- package/src/workspace/graph-cache.ts +12 -2
- package/src/workspace/graph-cli.ts +25 -10
- package/src/workspace/graph-contract.test.ts +4 -2
- package/src/workspace/graph.schema.json +34 -0
- package/src/workspace/identity.test.ts +29 -2
- package/src/workspace/import-fetch.ts +151 -0
- package/src/workspace/import-init.ts +147 -0
- package/src/workspace/import-source.test.ts +183 -0
- package/src/workspace/import-source.ts +462 -0
- package/src/workspace/init.test.ts +55 -1
- package/src/workspace/init.ts +66 -4
- package/src/workspace/intent.ts +6 -14
- package/src/workspace/kind-link-readers.ts +68 -3
- package/src/workspace/kind-readers.test.ts +36 -0
- package/src/workspace/kind-readers.ts +18 -1
- package/src/workspace/kinds.test.ts +35 -7
- package/src/workspace/kinds.ts +212 -11
- package/src/workspace/ledger.schema.json +158 -0
- package/src/workspace/lexicon-outputs.ts +132 -13
- package/src/workspace/lineage-check.ts +30 -7
- package/src/workspace/lineage-upgrade.test.ts +20 -0
- package/src/workspace/lineage-upgrade.ts +16 -7
- package/src/workspace/links.ts +24 -1
- package/src/workspace/ls-contract.test.ts +1 -1
- package/src/workspace/ls.schema.json +7 -0
- package/src/workspace/ls.ts +10 -1
- package/src/workspace/member-commands.ts +60 -2
- package/src/workspace/member-file-schema.test.ts +124 -0
- package/src/workspace/migrate-links.test.ts +99 -0
- package/src/workspace/migrate-links.ts +108 -0
- package/src/workspace/migration-dirs.test.ts +272 -0
- package/src/workspace/migration-dirs.ts +267 -0
- package/src/workspace/new-migrations.test.ts +98 -0
- package/src/workspace/new-migrations.ts +109 -0
- package/src/workspace/org-scope.test.ts +238 -0
- package/src/workspace/pr-report.schema.json +46 -0
- package/src/workspace/promote.test.ts +114 -0
- package/src/workspace/promote.ts +302 -0
- package/src/workspace/reason-codes.test.ts +10 -1
- package/src/workspace/reason-codes.ts +25 -0
- package/src/workspace/records-cli.ts +58 -5
- package/src/workspace/records.schema.json +5 -0
- package/src/workspace/release-candidates.ts +7 -2
- package/src/workspace/release-train.ts +157 -0
- package/src/workspace/release-workflow.ts +4 -3
- package/src/workspace/repo-ref.ts +113 -0
- package/src/workspace/run-event.schema.json +2 -2
- package/src/workspace/runs-cli.ts +48 -4
- package/src/workspace/runs.schema.json +7 -0
- package/src/workspace/status-contract.test.ts +46 -1
- package/src/workspace/status-decisions.test.ts +100 -0
- package/src/workspace/status-decisions.ts +151 -0
- package/src/workspace/status-gates.ts +9 -0
- package/src/workspace/status.schema.json +6 -0
- package/src/workspace/status.ts +17 -3
- package/src/workspace/where-filters.test.ts +39 -0
- package/src/workspace/work-cli.ts +5 -3
- package/src/workspace/work-evidence-ops.test.ts +176 -0
- package/src/workspace/work-evidence-ops.ts +189 -0
- package/src/workspace/work-evidence.schema.json +49 -2
- package/src/workspace/work-evidence.ts +22 -3
- package/src/workspace/workspace-gates.ts +200 -0
- package/src/workspace/workspace-kinds.schema.json +108 -10
- package/src/workspace/workspace-ledger.ts +130 -0
- package/src/workspace/workspace-run.test.ts +322 -0
- package/src/workspace/workspace-run.ts +461 -0
package/dist/workspace/links.js
CHANGED
|
@@ -87,7 +87,8 @@ function nearNames(name, outputs) {
|
|
|
87
87
|
* in member and file order; inferred and ambiguous rows follow, sorted by
|
|
88
88
|
* consumer and parameter.
|
|
89
89
|
*/
|
|
90
|
-
export function resolveLinks(declaration,
|
|
90
|
+
export function resolveLinks(declaration, sourceHandles, telemetry, readLinks) {
|
|
91
|
+
const handles = withReaderOutputs(sourceHandles, readLinks);
|
|
91
92
|
const rows = [];
|
|
92
93
|
const declaredTargets = new Map();
|
|
93
94
|
for (const consumer of declaration.members) {
|
|
@@ -204,6 +205,29 @@ export function resolveLinks(declaration, handles, telemetry, readLinks) {
|
|
|
204
205
|
inferred.sort((a, b) => cmp(a.consumer, b.consumer) || cmp(a.input ?? "", b.input ?? ""));
|
|
205
206
|
return [...rows, ...inferred];
|
|
206
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* `handles` with the outputs each member's kind reader found in its files
|
|
210
|
+
* (#3935) added to the member's own. The member stays complete unless a gap
|
|
211
|
+
* the reader flagged `outputs` left a name out. A member with no handles
|
|
212
|
+
* (its directory is missing, or its kind unknown) gets none.
|
|
213
|
+
*/
|
|
214
|
+
export function withReaderOutputs(handles, reads) {
|
|
215
|
+
if (!reads)
|
|
216
|
+
return handles;
|
|
217
|
+
let out;
|
|
218
|
+
for (const [member, read] of reads) {
|
|
219
|
+
const base = handles.get(member);
|
|
220
|
+
const gaps = read.gaps.filter((g) => g.outputs);
|
|
221
|
+
if (!base || (!read.outputs?.length && gaps.length === 0))
|
|
222
|
+
continue;
|
|
223
|
+
const have = new Set(base.outputs.map((o) => o.name));
|
|
224
|
+
const added = (read.outputs ?? []).filter((o) => !have.has(o.name) && have.add(o.name)).map((o) => ({ name: o.name }));
|
|
225
|
+
const complete = base.complete && gaps.length === 0;
|
|
226
|
+
const why = base.why ?? (gaps.length === 0 ? null : gaps.length === 1 ? gaps[0].message : `${gaps[0].message}, and ${gaps.length - 1} more`);
|
|
227
|
+
(out ?? (out = new Map(handles))).set(member, { ...base, outputs: [...base.outputs, ...added], complete, why: complete ? base.why : why, exposesNone: false });
|
|
228
|
+
}
|
|
229
|
+
return out ?? handles;
|
|
230
|
+
}
|
|
207
231
|
/** Match a declared or reader's output row against its producer's handles, setting its status and reason. */
|
|
208
232
|
function resolveOutput(row, handles) {
|
|
209
233
|
const producer = handles.get(row.producer);
|
package/dist/workspace/ls.d.ts
CHANGED
|
@@ -87,6 +87,12 @@ export interface LsMember {
|
|
|
87
87
|
generated: LsGenerated[];
|
|
88
88
|
/** The agent sessions bound to the member, in declaration order (#3615); empty when none is. */
|
|
89
89
|
agents: string[];
|
|
90
|
+
/** For a member of kind repo, the other repository's workspace it names (#3168). Absent for every other kind. */
|
|
91
|
+
repo?: {
|
|
92
|
+
url: string;
|
|
93
|
+
rev: string;
|
|
94
|
+
workspace: string;
|
|
95
|
+
};
|
|
90
96
|
}
|
|
91
97
|
/**
|
|
92
98
|
* A diagram artifact the declaration names (#2764), flattened across the
|
|
@@ -141,6 +147,8 @@ export type LsDocument = {
|
|
|
141
147
|
at: string | null;
|
|
142
148
|
workspace: {
|
|
143
149
|
name: string;
|
|
150
|
+
/** The repository the document came from (#3168): its origin URL, redacted, or null. */
|
|
151
|
+
repo: string | null;
|
|
144
152
|
/** The workspace root relative to the git root, `"."` for the git root itself. Absolute outside git. */
|
|
145
153
|
root: string;
|
|
146
154
|
file: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/workspace/ls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/workspace/ls.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace/ls.js
CHANGED
|
@@ -24,7 +24,8 @@ import { isAbsolute, resolve } from "node:path";
|
|
|
24
24
|
import { formatError } from "../cli/format.js";
|
|
25
25
|
import { declaredDiagrams, extensionsAt, readDeclaration, readerVersion, resolveGroups, WorkspaceReadError, } from "./declaration.js";
|
|
26
26
|
import { memberGenerated } from "./ls-generated.js";
|
|
27
|
-
import {
|
|
27
|
+
import { repoIdentity } from "./repo-ref.js";
|
|
28
|
+
import { loadKindRegistry, probeKind, REPO_KIND } from "./kinds.js";
|
|
28
29
|
import { handToRootChant, locateWorkspace } from "./which-chant.js";
|
|
29
30
|
import { declaredSessions } from "./write-scope.js";
|
|
30
31
|
/** The version of the `ls` output this chant writes. */
|
|
@@ -51,6 +52,9 @@ export const GROUP_REASON_CODES = [
|
|
|
51
52
|
];
|
|
52
53
|
/** A member's reason code, or null when its kind can read it. */
|
|
53
54
|
export function memberReason(member, tree, kinds) {
|
|
55
|
+
// A repo member has no directory here (#3168); it is read from its own repository.
|
|
56
|
+
if (member.kind === REPO_KIND)
|
|
57
|
+
return null;
|
|
54
58
|
if (tree.stat(member.dir === "." ? "" : member.dir) !== "dir") {
|
|
55
59
|
return { code: "dir-missing", message: `${member.dir} is not a directory${tree.label}` };
|
|
56
60
|
}
|
|
@@ -120,6 +124,7 @@ function readListing(query) {
|
|
|
120
124
|
records: unloaded(m.records),
|
|
121
125
|
generated: memberGenerated(m, tree, repoPrefix),
|
|
122
126
|
agents: sessions.agents.filter((a) => a.members.includes(m.name)).map((a) => a.name),
|
|
127
|
+
...(m.repo ? { repo: { ...m.repo } } : {}),
|
|
123
128
|
// The member's x- keys, as declared (#3595).
|
|
124
129
|
...extensionsAt(declaration, m.pointer),
|
|
125
130
|
};
|
|
@@ -147,6 +152,7 @@ function readListing(query) {
|
|
|
147
152
|
at,
|
|
148
153
|
workspace: {
|
|
149
154
|
name: declaration.name,
|
|
155
|
+
repo: repoIdentity(rootOnDisk),
|
|
150
156
|
root: located.root,
|
|
151
157
|
file: declaration.file,
|
|
152
158
|
schema: declaration.schema,
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"required": ["name", "root", "file", "schema", "minReader", "pins"],
|
|
52
52
|
"properties": {
|
|
53
53
|
"name": { "type": "string", "description": "The declared name. With the revision, it identifies the workspace." },
|
|
54
|
+
"repo": { "type": ["string", "null"], "description": "Added in contract 1 by #3168. The repository the document came from: the URL of the remote origin of the git repository that holds the workspace, with any user name or password removed, or null when there is no origin or the workspace is outside git. With name, root and the revision, it says which repository's workspace a document describes, so a reader that gathers several repositories' documents, such as an org workspace's repo members, tells them apart." },
|
|
54
55
|
"root": {
|
|
55
56
|
"type": "string",
|
|
56
57
|
"description": "The workspace root relative to the git root, with / separators, \".\" for the git root itself. An absolute path outside a git repository."
|
|
@@ -158,6 +159,12 @@
|
|
|
158
159
|
"type": "array",
|
|
159
160
|
"items": { "$ref": "#/$defs/generatedFile" }
|
|
160
161
|
},
|
|
162
|
+
"repo": {
|
|
163
|
+
"description": "Added in contract 1 by #3168. For a member of kind repo, the other repository's workspace it names: url, the pinned rev and the workspace root inside that repository. Absent for every other kind. A repo member's dir is @repo/<name>, a marker that names no directory of this repository.",
|
|
164
|
+
"type": "object",
|
|
165
|
+
"required": ["url", "rev", "workspace"],
|
|
166
|
+
"properties": { "url": { "type": "string" }, "rev": { "type": "string" }, "workspace": { "type": "string" } }
|
|
167
|
+
},
|
|
161
168
|
"agents": {
|
|
162
169
|
"description": "Added in contract 1 by #3615. The names of the agent sessions the declaration binds to the member (agents[].member or agents[].members), in declaration order, read where workspace.agentsFrom says. Empty when none is. A session bound to several members is listed on each.",
|
|
163
170
|
"type": "array",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-commands.d.ts","sourceRoot":"","sources":["../../src/workspace/member-commands.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"member-commands.d.ts","sourceRoot":"","sources":["../../src/workspace/member-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -157,9 +157,11 @@ export function planMembers(verb, root, options = {}) {
|
|
|
157
157
|
if (entry.kind !== "chant") {
|
|
158
158
|
const why = entry.kind === "workspace"
|
|
159
159
|
? "a nested workspace runs its own chant workspace commands"
|
|
160
|
-
: entry.kind === "
|
|
161
|
-
? "a
|
|
162
|
-
:
|
|
160
|
+
: entry.kind === "repo"
|
|
161
|
+
? "a repo member is another repository's workspace, which runs its own chant workspace commands; chant workspace graph reads it at its pinned revision"
|
|
162
|
+
: entry.kind === "design"
|
|
163
|
+
? "a design member is data: chant reads its files for record pins and builds nothing"
|
|
164
|
+
: `chant workspace ${verb} runs members of kind chant, and this one is kind ${entry.kind}`;
|
|
163
165
|
skipped.push({ name: entry.name, dir: entry.dir, kind: entry.kind, reason: { code: "kind-not-run", message: why } });
|
|
164
166
|
continue;
|
|
165
167
|
}
|
|
@@ -467,14 +469,19 @@ export async function runWorkspaceMembers(ctx, verb) {
|
|
|
467
469
|
return 0;
|
|
468
470
|
}
|
|
469
471
|
const results = await executePlan(plan, args);
|
|
470
|
-
|
|
472
|
+
// #2549: the disagreement lint, over every member's graph, when asked for.
|
|
473
|
+
const cross = verb === "lint" && args.crossRoot ? await runCrossRoot(found.dir, args) : undefined;
|
|
474
|
+
const anyFailed = results.some((r) => r.exitCode !== 0) || plan.unreadable.length > 0 || cross?.failed === true;
|
|
471
475
|
const workspace = { name: plan.workspace.name, root: plan.workspace.root };
|
|
472
476
|
if (verb === "lint" && args.format === "sarif") {
|
|
473
477
|
for (const r of results)
|
|
474
478
|
if (r.stderr.trim())
|
|
475
479
|
process.stderr.write(r.stderr.endsWith("\n") ? r.stderr : `${r.stderr}\n`);
|
|
476
480
|
const unreadable = plan.unreadable.map((s) => ({ id: s.name, member: s.name, dir: s.dir ?? ".", exitCode: 1, stdout: "", stderr: `${s.reason.code}: ${s.reason.message}` }));
|
|
477
|
-
|
|
481
|
+
const sarif = mergeSarif([...results, ...unreadable], plan.workspace.root);
|
|
482
|
+
if (cross)
|
|
483
|
+
(sarif.runs ?? (sarif.runs = [])).push(crossRootSarifRun(cross));
|
|
484
|
+
emitDocument(sarif, args.output);
|
|
478
485
|
console.error(summaryLine(plan, results));
|
|
479
486
|
return anyFailed ? 1 : 0;
|
|
480
487
|
}
|
|
@@ -515,6 +522,7 @@ export async function runWorkspaceMembers(ctx, verb) {
|
|
|
515
522
|
...plan.unreadable.map((s) => ({ member: s.name, dir: s.dir, exitCode: 1, diagnostics: null, reason: s.reason })),
|
|
516
523
|
],
|
|
517
524
|
skipped: plan.skipped,
|
|
525
|
+
...(cross ? { crossRoot: crossRootJson(cross) } : {}),
|
|
518
526
|
};
|
|
519
527
|
}
|
|
520
528
|
emitDocument(doc, args.output);
|
|
@@ -524,5 +532,46 @@ export async function runWorkspaceMembers(ctx, verb) {
|
|
|
524
532
|
// Text: each member's own output under a heading. A build without -o prints
|
|
525
533
|
// no templates, since several members' templates can't share one stdout.
|
|
526
534
|
printSections(plan, results, verb !== "build" || args.output !== undefined);
|
|
535
|
+
if (cross)
|
|
536
|
+
printCrossRoot(cross);
|
|
527
537
|
return anyFailed ? 1 : 0;
|
|
528
538
|
}
|
|
539
|
+
async function runCrossRoot(root, args) {
|
|
540
|
+
const { workspaceGraph } = await import("./graph-cli.js");
|
|
541
|
+
const { crossRootLint } = await import("./cross-root-lint.js");
|
|
542
|
+
const { doc, failed } = await workspaceGraph({ cwd: root, ...(args.members?.length ? { members: args.members } : {}), onStderr: (t) => process.stderr.write(t) });
|
|
543
|
+
if ("error" in doc)
|
|
544
|
+
return { error: `${doc.error.code}: ${doc.error.message}`, failed: true };
|
|
545
|
+
const result = await crossRootLint(doc, args.env ? { env: args.env } : {});
|
|
546
|
+
return { result, failed: failed || result.findings.some((f) => f.severity === "error") };
|
|
547
|
+
}
|
|
548
|
+
function crossRootJson(cross) {
|
|
549
|
+
return cross.result ? { findings: cross.result.findings, checks: cross.result.checks, unloaded: cross.result.unloaded } : { error: cross.error };
|
|
550
|
+
}
|
|
551
|
+
function crossRootSarifRun(cross) {
|
|
552
|
+
const findings = cross.result?.findings ?? [];
|
|
553
|
+
return {
|
|
554
|
+
tool: { driver: { name: "chant", rules: [...new Set(findings.map((f) => f.checkId))].sort().map((id) => ({ id })) } },
|
|
555
|
+
automationDetails: { id: "cross-root/" },
|
|
556
|
+
properties: { crossRoot: true, checks: cross.result?.checks ?? [], unloaded: cross.result?.unloaded ?? [] },
|
|
557
|
+
results: findings.map((f) => ({
|
|
558
|
+
ruleId: f.checkId,
|
|
559
|
+
level: f.severity === "error" ? "error" : f.severity === "warning" ? "warning" : "note",
|
|
560
|
+
message: { text: f.message },
|
|
561
|
+
...(f.root ? { properties: { member: f.root } } : {}),
|
|
562
|
+
})),
|
|
563
|
+
...(cross.error ? { invocations: [{ executionSuccessful: false, toolExecutionNotifications: [{ message: { text: cross.error } }] }] } : {}),
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
function printCrossRoot(cross) {
|
|
567
|
+
if (!cross.result) {
|
|
568
|
+
console.log(`── cross-root (the members' graphs could not be read: ${cross.error})`);
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
const { findings, checks, unloaded } = cross.result;
|
|
572
|
+
console.log(`── cross-root (${checks.join(", ")}; ${findings.length} finding${findings.length === 1 ? "" : "s"})`);
|
|
573
|
+
for (const f of findings)
|
|
574
|
+
console.log(` ${f.severity.padEnd(7)} ${f.checkId}${f.root ? ` [${f.root}]` : ""} ${f.message}`);
|
|
575
|
+
for (const u of unloaded)
|
|
576
|
+
console.log(` (lexicon ${u.lexicon}: its cross-root checks could not be loaded: ${u.reason})`);
|
|
577
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace links `chant migrate` writes (#4399).
|
|
3
|
+
*
|
|
4
|
+
* A migration reads one member (the Postgres tables) and writes into another
|
|
5
|
+
* (the ClickHouse mirrors). When both sit in a workspace, the migrated
|
|
6
|
+
* output reads the source member's outputs, and the declaration should say
|
|
7
|
+
* so: `chant workspace check` then fails when the source drops or renames an
|
|
8
|
+
* output until the mirror follows (WSP093, `./checks/links.ts`).
|
|
9
|
+
*
|
|
10
|
+
* {@link planMigrateLinks} finds the declaration above the source, the member
|
|
11
|
+
* that holds the source and the member that holds the output file, and adds
|
|
12
|
+
* a `links` entry on the second for each output the migration names. It
|
|
13
|
+
* changes only the text of that member's `links`, as the other declaration
|
|
14
|
+
* write commands do (`./json-edit.ts`). It returns a plan; the caller writes
|
|
15
|
+
* it. A migration with no workspace around it, or whose source and output
|
|
16
|
+
* are one member, has nothing to link and returns a reason when that is
|
|
17
|
+
* worth telling.
|
|
18
|
+
*/
|
|
19
|
+
export interface MigrateLinkPlan {
|
|
20
|
+
/** The declaration file, absolute. */
|
|
21
|
+
file: string;
|
|
22
|
+
/** The producer: the member that holds the source. */
|
|
23
|
+
producer: string;
|
|
24
|
+
/** The consumer: the member that holds the output file. */
|
|
25
|
+
consumer: string;
|
|
26
|
+
/** Outputs the consumer did not link to before. */
|
|
27
|
+
added: string[];
|
|
28
|
+
/** The declaration's new text; equal to the old when nothing was added. */
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
31
|
+
export type MigrateLinkOutcome = {
|
|
32
|
+
plan: MigrateLinkPlan;
|
|
33
|
+
} | {
|
|
34
|
+
skipped: string;
|
|
35
|
+
} | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Plan the links from the member holding `sourcePath` to the outputs a
|
|
38
|
+
* migration read, on the member holding `outputPath`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function planMigrateLinks(opts: {
|
|
41
|
+
sourcePath: string;
|
|
42
|
+
outputPath: string | undefined;
|
|
43
|
+
outputs: readonly string[];
|
|
44
|
+
}): MigrateLinkOutcome;
|
|
45
|
+
//# sourceMappingURL=migrate-links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-links.d.ts","sourceRoot":"","sources":["../../src/workspace/migrate-links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC;AA6B7F;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAqC7I"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace links `chant migrate` writes (#4399).
|
|
3
|
+
*
|
|
4
|
+
* A migration reads one member (the Postgres tables) and writes into another
|
|
5
|
+
* (the ClickHouse mirrors). When both sit in a workspace, the migrated
|
|
6
|
+
* output reads the source member's outputs, and the declaration should say
|
|
7
|
+
* so: `chant workspace check` then fails when the source drops or renames an
|
|
8
|
+
* output until the mirror follows (WSP093, `./checks/links.ts`).
|
|
9
|
+
*
|
|
10
|
+
* {@link planMigrateLinks} finds the declaration above the source, the member
|
|
11
|
+
* that holds the source and the member that holds the output file, and adds
|
|
12
|
+
* a `links` entry on the second for each output the migration names. It
|
|
13
|
+
* changes only the text of that member's `links`, as the other declaration
|
|
14
|
+
* write commands do (`./json-edit.ts`). It returns a plan; the caller writes
|
|
15
|
+
* it. A migration with no workspace around it, or whose source and output
|
|
16
|
+
* are one member, has nothing to link and returns a reason when that is
|
|
17
|
+
* worth telling.
|
|
18
|
+
*/
|
|
19
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
20
|
+
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
21
|
+
import { DECLARATION_FILES, parseDeclaration } from "./declaration.js";
|
|
22
|
+
import { appendElement, setProperty } from "./json-edit.js";
|
|
23
|
+
/** The workspace declaration at or above `start`. */
|
|
24
|
+
function findDeclaration(start) {
|
|
25
|
+
let dir = resolve(start);
|
|
26
|
+
for (;;) {
|
|
27
|
+
for (const name of DECLARATION_FILES) {
|
|
28
|
+
const candidate = join(dir, name);
|
|
29
|
+
if (existsSync(candidate))
|
|
30
|
+
return candidate;
|
|
31
|
+
}
|
|
32
|
+
const parent = dirname(dir);
|
|
33
|
+
if (parent === dir)
|
|
34
|
+
return undefined;
|
|
35
|
+
dir = parent;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** The deepest member whose directory holds `path`. */
|
|
39
|
+
function memberHolding(declaration, root, path) {
|
|
40
|
+
let best;
|
|
41
|
+
for (const m of declaration.members) {
|
|
42
|
+
const memberRoot = resolve(root, m.dir);
|
|
43
|
+
const rel = relative(memberRoot, path);
|
|
44
|
+
if (rel === ".." || rel.startsWith(`..${sep}`) || isAbsolute(rel))
|
|
45
|
+
continue;
|
|
46
|
+
// The longer root is the deeper member.
|
|
47
|
+
if (!best || memberRoot.length > best.depth)
|
|
48
|
+
best = { member: m, depth: memberRoot.length };
|
|
49
|
+
}
|
|
50
|
+
return best?.member;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Plan the links from the member holding `sourcePath` to the outputs a
|
|
54
|
+
* migration read, on the member holding `outputPath`.
|
|
55
|
+
*/
|
|
56
|
+
export function planMigrateLinks(opts) {
|
|
57
|
+
const source = resolve(opts.sourcePath);
|
|
58
|
+
const file = findDeclaration(source);
|
|
59
|
+
if (!file)
|
|
60
|
+
return undefined;
|
|
61
|
+
if (opts.outputPath === undefined)
|
|
62
|
+
return { skipped: "pass --output inside the ClickHouse member to link its columns to the Postgres member" };
|
|
63
|
+
const root = dirname(file);
|
|
64
|
+
const text = readFileSync(file, "utf8");
|
|
65
|
+
let declaration;
|
|
66
|
+
try {
|
|
67
|
+
declaration = parseDeclaration(text, file);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
return { skipped: `the workspace declaration ${file} does not read, so no link was written: ${err instanceof Error ? err.message : String(err)}` };
|
|
71
|
+
}
|
|
72
|
+
const producer = memberHolding(declaration, root, source);
|
|
73
|
+
const consumer = memberHolding(declaration, root, resolve(opts.outputPath));
|
|
74
|
+
if (!producer)
|
|
75
|
+
return { skipped: `${opts.sourcePath} is in no member of ${file}, so no link was written` };
|
|
76
|
+
if (!consumer)
|
|
77
|
+
return { skipped: `${opts.outputPath} is in no member of ${file}, so no link was written` };
|
|
78
|
+
if (producer.name === consumer.name)
|
|
79
|
+
return { skipped: `the source and the output are both in member ${producer.name}; a member does not link to itself` };
|
|
80
|
+
const have = new Set(consumer.links.filter((l) => l.member === producer.name && l.kind === null).map((l) => l.output));
|
|
81
|
+
const added = [...new Set(opts.outputs)].filter((o) => !have.has(o));
|
|
82
|
+
if (added.length === 0)
|
|
83
|
+
return { plan: { file, producer: producer.name, consumer: consumer.name, added, text } };
|
|
84
|
+
const jsonc = file.endsWith(".jsonc");
|
|
85
|
+
const links = added.map((output) => ({ member: producer.name, output }));
|
|
86
|
+
let next = text;
|
|
87
|
+
if (consumer.links.length === 0) {
|
|
88
|
+
next = setProperty(next, jsonc, consumer.pointer, "links", links);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
for (const l of links)
|
|
92
|
+
next = appendElement(next, jsonc, `${consumer.pointer}/links`, l);
|
|
93
|
+
}
|
|
94
|
+
// The edit is never written unless it reads back with the links it meant to add.
|
|
95
|
+
const back = parseDeclaration(next, file).members.find((m) => m.name === consumer.name);
|
|
96
|
+
if (!back || back.links.length !== consumer.links.length + added.length) {
|
|
97
|
+
return { skipped: `the edit to ${file} did not read back as the links it meant to add, so nothing was written` };
|
|
98
|
+
}
|
|
99
|
+
return { plan: { file, producer: producer.name, consumer: consumer.name, added, text: next } };
|
|
100
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The readers for goose, golang-migrate and clickhouse-migrations
|
|
3
|
+
* directories (#4400). Each lists the migrations in the order the tool
|
|
4
|
+
* applies them. None runs the tool or a server: the schema the migrations
|
|
5
|
+
* produce comes from a replay.
|
|
6
|
+
*
|
|
7
|
+
* File layouts, checked against the tools' own docs and source:
|
|
8
|
+
*
|
|
9
|
+
* - goose (pressly/goose 9a201bb): `<version>_<name>.sql` directly in the
|
|
10
|
+
* directory, the version a positive integer before the first `_`
|
|
11
|
+
* (`NumericComponent`, migration.go); ordered by that number, so a
|
|
12
|
+
* sequential `00001` and a timestamp `20240101120000` sort together.
|
|
13
|
+
* A file holds `-- +goose Up` and, optionally, a later `-- +goose Down`
|
|
14
|
+
* (internal/sqlparser/parser.go); `-- +goose NO TRANSACTION` runs it
|
|
15
|
+
* outside a transaction. `.go` migrations are listed in the version order
|
|
16
|
+
* but are code, so each is a gap.
|
|
17
|
+
* - golang-migrate (golang-migrate/migrate 504568a): `<version>_<name>.up.<ext>`
|
|
18
|
+
* and `.down.<ext>` directly in the directory, matched by
|
|
19
|
+
* `^([0-9]+)_(.*)\.(down|up)\.(.*)$` (source/parse.go); ordered by the
|
|
20
|
+
* version, a 64-bit unsigned integer. The up files are the migrations; a
|
|
21
|
+
* version with a down file and no up file, or two files for one version
|
|
22
|
+
* and direction, is a gap.
|
|
23
|
+
* - clickhouse-migrations, the Python tool (zifter/clickhouse-migrations) and
|
|
24
|
+
* the Node tool (npm clickhouse-migrations): `<version>_<name>.sql` directly
|
|
25
|
+
* in the migrations directory, the version an integer before the first `_`,
|
|
26
|
+
* applied in ascending numeric order. The Python tool also reads an
|
|
27
|
+
* optional `<version>_<name>.down.sql` rollback beside it. The dialect is
|
|
28
|
+
* always ClickHouse.
|
|
29
|
+
*
|
|
30
|
+
* What the migrations produce comes from a replay (`chant sql replay`), which
|
|
31
|
+
* records the tables and columns in {@link REPLAY_FILE} beside the
|
|
32
|
+
* migrations. Each reader returns them as the member's outputs when the
|
|
33
|
+
* recorded digest still matches the files, and a gap that says to replay
|
|
34
|
+
* again when it does not (see {@link withReplay}).
|
|
35
|
+
*
|
|
36
|
+
* The member's `migrationsDir` field names the directory under the member's
|
|
37
|
+
* own, and `dialect` names the dialect for goose and golang-migrate, whose
|
|
38
|
+
* tools take it from a driver or URL the directory does not hold.
|
|
39
|
+
*/
|
|
40
|
+
import type { KindLinkRead, KindReadMigration, KindReaderInput } from "./kind-link-readers.js";
|
|
41
|
+
import { type WorkspaceTree } from "./tree.js";
|
|
42
|
+
/** The dialects a migration directory's `dialect` field names. */
|
|
43
|
+
export declare const MIGRATION_DIALECTS: readonly ["postgres", "clickhouse"];
|
|
44
|
+
export declare function fieldString(fields: KindReaderInput["fields"], name: string, fallback: string): string;
|
|
45
|
+
/** The directory a reader lists: the member's `migrationsDir` under its own directory. */
|
|
46
|
+
export declare function migrationsDirOf(input: KindReaderInput): string;
|
|
47
|
+
/** The goose annotation on `line` (`up`, `down`, `no transaction`, ...), or undefined when it holds none. Mirrors the parser's rule: a comment that contains `+goose`. */
|
|
48
|
+
export declare function gooseAnnotation(line: string): string | undefined;
|
|
49
|
+
/** The file a replay writes in the member's directory: the tables and columns the migrations produced, and the digest of the files it ran (#4400). */
|
|
50
|
+
export declare const REPLAY_FILE = "chant.replay.json";
|
|
51
|
+
/** What {@link REPLAY_FILE} holds. */
|
|
52
|
+
export interface ReplaySnapshot {
|
|
53
|
+
schema: 1;
|
|
54
|
+
dialect: string;
|
|
55
|
+
/** {@link migrationDigest} of the files the replay ran. */
|
|
56
|
+
digest: string;
|
|
57
|
+
/** Names as `<schema>.<table>` and `<schema>.<table>.<column>` (Postgres), or `<database>...` (ClickHouse), the contract of #3931. */
|
|
58
|
+
outputs: string[];
|
|
59
|
+
}
|
|
60
|
+
/** A digest of the migration files in order, so a snapshot can tell the files changed. `extra` are files beside them that change what runs, such as Flyway's configuration. */
|
|
61
|
+
export declare function migrationDigest(read: (file: string) => string, files: readonly string[]): string;
|
|
62
|
+
/** The files a replay of `migrations` depends on, in order. */
|
|
63
|
+
export declare function replayFiles(tree: WorkspaceTree, migrations: readonly KindReadMigration[], extra?: readonly string[]): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Add the recorded replay to a reader's result: the snapshot's names as
|
|
66
|
+
* outputs when its digest matches the files, else a gap flagged `outputs`
|
|
67
|
+
* (a link into the member is then unresolved, not missing). A snapshot
|
|
68
|
+
* that does not parse is a gap too.
|
|
69
|
+
*/
|
|
70
|
+
export declare function withReplay(result: KindLinkRead, tree: WorkspaceTree, dir: string, extra?: readonly string[]): KindLinkRead;
|
|
71
|
+
export declare const readGooseDir: (input: KindReaderInput) => KindLinkRead;
|
|
72
|
+
export declare const readGolangMigrateDir: (input: KindReaderInput) => KindLinkRead;
|
|
73
|
+
export declare const readClickHouseMigrationsDir: (input: KindReaderInput) => KindLinkRead;
|
|
74
|
+
//# sourceMappingURL=migration-dirs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-dirs.d.ts","sourceRoot":"","sources":["../../src/workspace/migration-dirs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAe,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEzG,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEtD,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,YAAI,UAAU,EAAE,YAAY,CAAU,CAAC;AAEtE,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrG;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAG9D;AAWD,0KAA0K;AAC1K,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIhE;AA4HD,sJAAsJ;AACtJ,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAE/C,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,sIAAsI;IACtI,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,+KAA+K;AAC/K,wBAAgB,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAShG;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,iBAAiB,EAAE,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,EAAE,CAElI;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,YAAY,CA6B9H;AAED,eAAO,MAAM,YAAY,UAAW,eAAe,KAAG,YAAsE,CAAC;AAC7H,eAAO,MAAM,oBAAoB,UAAW,eAAe,KAAG,YAA8E,CAAC;AAC7I,eAAO,MAAM,2BAA2B,UAAW,eAAe,KAAG,YAAqF,CAAC"}
|