@intentius/chant 0.124.31 → 0.124.33
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/bin/chant +7 -2
- package/dist/ci-jobs.d.ts +4 -0
- package/dist/ci-jobs.d.ts.map +1 -1
- package/dist/ci-jobs.js +9 -2
- package/dist/cli/commands/check-lexicon-plugin.d.ts +7 -4
- package/dist/cli/commands/check-lexicon-plugin.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon-plugin.js +10 -7
- package/dist/cli/commands/check-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon.js +18 -12
- package/dist/cli/commands/import.d.ts +10 -0
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +37 -0
- package/dist/cli/commands/init-lexicon/templates/project.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon/templates/project.js +4 -3
- package/dist/cli/commands/onboard.d.ts.map +1 -1
- package/dist/cli/commands/onboard.js +8 -4
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +2 -1
- package/dist/cli/dependencies.d.ts +18 -0
- package/dist/cli/dependencies.d.ts.map +1 -0
- package/dist/cli/dependencies.js +120 -0
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/build.js +38 -4
- package/dist/cli/handlers/fan-out.d.ts.map +1 -1
- package/dist/cli/handlers/fan-out.js +12 -4
- package/dist/cli/handlers/graph.d.ts.map +1 -1
- package/dist/cli/handlers/graph.js +16 -6
- package/dist/cli/handlers/lifecycle-health.d.ts +16 -0
- package/dist/cli/handlers/lifecycle-health.d.ts.map +1 -0
- package/dist/cli/handlers/lifecycle-health.js +150 -0
- package/dist/cli/handlers/lifecycle.d.ts +26 -0
- package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
- package/dist/cli/handlers/lifecycle.js +1 -1
- package/dist/cli/handlers/lint.d.ts.map +1 -1
- package/dist/cli/handlers/lint.js +6 -0
- package/dist/cli/handlers/operator.d.ts +2 -2
- package/dist/cli/handlers/operator.js +3 -3
- package/dist/cli/handlers/pr.d.ts +16 -0
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +610 -32
- package/dist/cli/handlers/promote.d.ts.map +1 -1
- package/dist/cli/handlers/promote.js +19 -2
- package/dist/cli/handlers/release.d.ts +16 -1
- package/dist/cli/handlers/release.d.ts.map +1 -1
- package/dist/cli/handlers/release.js +83 -11
- package/dist/cli/handlers/run.d.ts +13 -1
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/handlers/run.js +38 -15
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +121 -33
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +37 -0
- package/dist/cli/registry.d.ts +29 -6
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +6 -2
- package/dist/codegen/generate-post-synth-barrel.js +2 -2
- package/dist/codegen/lexicon-regen.d.ts +4 -0
- package/dist/codegen/lexicon-regen.d.ts.map +1 -1
- package/dist/codegen/lexicon-regen.js +1 -1
- package/dist/codegen/pinned-upgrade.js +2 -2
- package/dist/components/capability.d.ts +44 -3
- package/dist/components/capability.d.ts.map +1 -1
- package/dist/components/capability.js +21 -0
- package/dist/components/changed-files.d.ts +7 -1
- package/dist/components/changed-files.d.ts.map +1 -1
- package/dist/components/changed-files.js +9 -1
- package/dist/components/deploy-inputs.d.ts +91 -0
- package/dist/components/deploy-inputs.d.ts.map +1 -0
- package/dist/components/deploy-inputs.js +184 -0
- package/dist/components/driver.d.ts +38 -0
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/driver.js +56 -6
- package/dist/components/fan-out-record.d.ts +6 -1
- package/dist/components/fan-out-record.d.ts.map +1 -1
- package/dist/components/fan-out-record.js +24 -0
- package/dist/components/fan-out-run.d.ts +20 -0
- package/dist/components/fan-out-run.d.ts.map +1 -1
- package/dist/components/fan-out-run.js +21 -1
- package/dist/components/gate-plan.d.ts +8 -0
- package/dist/components/gate-plan.d.ts.map +1 -1
- package/dist/components/gate-plan.js +6 -0
- package/dist/components/pr-pipeline.d.ts +98 -12
- package/dist/components/pr-pipeline.d.ts.map +1 -1
- package/dist/components/pr-pipeline.js +146 -23
- package/dist/components/pr-run.d.ts +128 -30
- package/dist/components/pr-run.d.ts.map +1 -1
- package/dist/components/pr-run.js +290 -70
- package/dist/components/release-compile.d.ts +37 -2
- package/dist/components/release-compile.d.ts.map +1 -1
- package/dist/components/release-compile.js +64 -8
- package/dist/components/release-promote.d.ts +17 -3
- package/dist/components/release-promote.d.ts.map +1 -1
- package/dist/components/release-promote.js +79 -18
- package/dist/components/verbs/bom-writer.d.ts +1 -1
- package/dist/components/verbs/bom-writer.d.ts.map +1 -1
- package/dist/components/verbs/lockfile-sbom-generator.d.ts +20 -0
- package/dist/components/verbs/lockfile-sbom-generator.d.ts.map +1 -1
- package/dist/components/verbs/lockfile-sbom-generator.js +41 -4
- package/dist/components/wave-plan.d.ts +15 -2
- package/dist/components/wave-plan.d.ts.map +1 -1
- package/dist/components/wave-plan.js +44 -5
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/fold-import.js +16 -6
- package/dist/discovery/sandbox/bundle.d.ts.map +1 -1
- package/dist/discovery/sandbox/bundle.js +6 -0
- package/dist/discovery/specifier-resolve.d.ts.map +1 -1
- package/dist/discovery/specifier-resolve.js +8 -2
- package/dist/fold/fold.d.ts.map +1 -1
- package/dist/fold/fold.js +68 -1
- package/dist/fold/subset.d.ts +37 -0
- package/dist/fold/subset.d.ts.map +1 -1
- package/dist/fold/subset.js +88 -0
- package/dist/graph-detail.d.ts.map +1 -1
- package/dist/graph-detail.js +32 -7
- package/dist/health.d.ts +110 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +105 -0
- package/dist/health.schema.json +191 -0
- package/dist/lexicon-module.d.ts +10 -0
- package/dist/lexicon-module.d.ts.map +1 -1
- package/dist/lexicon-module.js +53 -8
- package/dist/lexicon-plugin-helpers.d.ts.map +1 -1
- package/dist/lexicon-plugin-helpers.js +6 -4
- package/dist/lexicon.d.ts +29 -0
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/affected.d.ts.map +1 -1
- package/dist/lifecycle/affected.js +7 -1
- package/dist/lifecycle/merge-record.d.ts +104 -0
- package/dist/lifecycle/merge-record.d.ts.map +1 -0
- package/dist/lifecycle/merge-record.js +102 -0
- package/dist/lifecycle/publish-attachments.d.ts +8 -5
- package/dist/lifecycle/publish-attachments.d.ts.map +1 -1
- package/dist/lifecycle/publish-attachments.js +27 -13
- package/dist/lifecycle/publish-npm.d.ts +3 -2
- package/dist/lifecycle/publish-npm.d.ts.map +1 -1
- package/dist/lifecycle/publish-npm.js +4 -3
- package/dist/lifecycle/release-at.d.ts +40 -0
- package/dist/lifecycle/release-at.d.ts.map +1 -0
- package/dist/lifecycle/release-at.js +83 -0
- package/dist/lifecycle/release-cut.d.ts.map +1 -1
- package/dist/lifecycle/release-cut.js +23 -12
- package/dist/lifecycle/release-ledger.d.ts +21 -0
- package/dist/lifecycle/release-ledger.d.ts.map +1 -1
- package/dist/lifecycle/release-ledger.js +24 -0
- package/dist/lifecycle/release-publish.d.ts +28 -12
- package/dist/lifecycle/release-publish.d.ts.map +1 -1
- package/dist/lifecycle/release-publish.js +29 -17
- package/dist/lifecycle/release-store.d.ts +25 -2
- package/dist/lifecycle/release-store.d.ts.map +1 -1
- package/dist/lifecycle/release-store.js +40 -13
- package/dist/lifecycle/run-ledger.d.ts.map +1 -1
- package/dist/lifecycle/run-ledger.js +1 -0
- package/dist/lifecycle/work-dir.d.ts +45 -0
- package/dist/lifecycle/work-dir.d.ts.map +1 -0
- package/dist/lifecycle/work-dir.js +78 -0
- package/dist/lint/discover.d.ts +17 -9
- package/dist/lint/discover.d.ts.map +1 -1
- package/dist/lint/discover.js +62 -54
- package/dist/lint/rules/op/index.d.ts +2 -1
- package/dist/lint/rules/op/index.d.ts.map +1 -1
- package/dist/lint/rules/op/index.js +4 -2
- package/dist/lint/rules/op/ops018-shell-image-digest.d.ts +10 -0
- package/dist/lint/rules/op/ops018-shell-image-digest.d.ts.map +1 -0
- package/dist/lint/rules/op/ops018-shell-image-digest.js +38 -0
- package/dist/module-source.d.ts +57 -0
- package/dist/module-source.d.ts.map +1 -0
- package/dist/module-source.js +104 -0
- package/dist/op/activities/activity-contracts.d.ts +5 -0
- package/dist/op/activities/activity-contracts.d.ts.map +1 -1
- package/dist/op/activities/activity-contracts.js +3 -0
- package/dist/op/activities/factory.js +1 -1
- package/dist/op/activities/shell.d.ts +38 -0
- package/dist/op/activities/shell.d.ts.map +1 -1
- package/dist/op/activities/shell.js +89 -3
- package/dist/op/builders.d.ts +7 -0
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/builders.js +7 -0
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/discover.js +13 -3
- package/dist/op/gate.d.ts.map +1 -1
- package/dist/op/gate.js +3 -0
- package/dist/op/op-waves-run.d.ts.map +1 -1
- package/dist/op/op-waves-run.js +20 -5
- package/dist/op/operator.d.ts +2 -2
- package/dist/op/operator.js +2 -2
- package/dist/op/runtime.d.ts +2 -0
- package/dist/op/runtime.d.ts.map +1 -1
- package/dist/op/steward.d.ts +6 -4
- package/dist/op/steward.d.ts.map +1 -1
- package/dist/op/steward.js +5 -3
- package/dist/op/work-lease-run.d.ts +20 -7
- package/dist/op/work-lease-run.d.ts.map +1 -1
- package/dist/op/work-lease-run.js +56 -12
- package/dist/pr-forge.d.ts +10 -0
- package/dist/pr-forge.d.ts.map +1 -1
- package/dist/pr-forge.js +39 -0
- package/dist/pr-loop.d.ts +155 -7
- package/dist/pr-loop.d.ts.map +1 -1
- package/dist/pr-loop.js +137 -11
- package/dist/pr-report-url.d.ts +4 -4
- package/dist/pr-report-url.d.ts.map +1 -1
- package/dist/pr-report-url.js +5 -5
- package/dist/runner-start.d.ts +179 -0
- package/dist/runner-start.d.ts.map +1 -0
- package/dist/runner-start.js +277 -0
- package/dist/ts-loader.d.ts +38 -4
- package/dist/ts-loader.d.ts.map +1 -1
- package/dist/ts-loader.js +190 -16
- package/dist/wave-runtime.mjs +238 -231
- package/dist/workspace/chant-migrations/fountain-retired-kinds.d.ts +34 -0
- package/dist/workspace/chant-migrations/fountain-retired-kinds.d.ts.map +1 -0
- package/dist/workspace/chant-migrations/fountain-retired-kinds.js +176 -0
- package/dist/workspace/chant-migrations.d.ts.map +1 -1
- package/dist/workspace/chant-migrations.js +2 -0
- package/dist/workspace/check.schema.json +70 -2
- package/dist/workspace/checks/boxes.d.ts +6 -6
- package/dist/workspace/checks/boxes.js +9 -9
- package/dist/workspace/checks/security.d.ts +35 -0
- package/dist/workspace/checks/security.d.ts.map +1 -0
- package/dist/workspace/checks/security.js +305 -0
- package/dist/workspace/checks.d.ts +2 -0
- package/dist/workspace/checks.d.ts.map +1 -1
- package/dist/workspace/checks.js +5 -0
- package/dist/workspace/ci-builds.d.ts +163 -0
- package/dist/workspace/ci-builds.d.ts.map +1 -0
- package/dist/workspace/ci-builds.js +315 -0
- package/dist/workspace/ci-green-cli.d.ts +2 -1
- package/dist/workspace/ci-green-cli.d.ts.map +1 -1
- package/dist/workspace/ci-green-cli.js +25 -5
- package/dist/workspace/ci-green-forge.d.ts +18 -4
- package/dist/workspace/ci-green-forge.d.ts.map +1 -1
- package/dist/workspace/ci-green-forge.js +12 -0
- package/dist/workspace/ci-green-workflow.d.ts +55 -1
- package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-green-workflow.js +128 -1
- package/dist/workspace/ci-green.d.ts +117 -16
- package/dist/workspace/ci-green.d.ts.map +1 -1
- package/dist/workspace/ci-green.js +358 -43
- package/dist/workspace/ci-last-green.schema.json +49 -0
- package/dist/workspace/ci-list.schema.json +47 -7
- package/dist/workspace/ci-report-url.d.ts +18 -0
- package/dist/workspace/ci-report-url.d.ts.map +1 -0
- package/dist/workspace/ci-report-url.js +33 -0
- package/dist/workspace/ci-run-index.d.ts +13 -1
- package/dist/workspace/ci-run-index.d.ts.map +1 -1
- package/dist/workspace/ci-run-index.js +6 -4
- package/dist/workspace/ci-run-index.schema.json +6 -4
- package/dist/workspace/ci-run.d.ts +85 -6
- package/dist/workspace/ci-run.d.ts.map +1 -1
- package/dist/workspace/ci-run.js +262 -64
- package/dist/workspace/ci-runner-key.d.ts +16 -3
- package/dist/workspace/ci-runner-key.d.ts.map +1 -1
- package/dist/workspace/ci-runner-key.js +30 -10
- package/dist/workspace/ci-runner-start.d.ts +77 -0
- package/dist/workspace/ci-runner-start.d.ts.map +1 -0
- package/dist/workspace/ci-runner-start.js +185 -0
- package/dist/workspace/ci-serve.d.ts +130 -11
- package/dist/workspace/ci-serve.d.ts.map +1 -1
- package/dist/workspace/ci-serve.js +323 -40
- package/dist/workspace/declaration.d.ts +25 -0
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.js +14 -2
- package/dist/workspace/declaration.schema.json +30 -2
- package/dist/workspace/export.d.ts +1 -1
- package/dist/workspace/export.d.ts.map +1 -1
- package/dist/workspace/export.js +7 -3
- package/dist/workspace/ls.d.ts +8 -1
- package/dist/workspace/ls.d.ts.map +1 -1
- package/dist/workspace/ls.js +2 -1
- package/dist/workspace/ls.schema.json +9 -2
- package/dist/workspace/member-pipeline.d.ts +1 -0
- package/dist/workspace/member-pipeline.d.ts.map +1 -1
- package/dist/workspace/member-pipeline.js +2 -0
- package/dist/workspace/merge-record.schema.json +49 -0
- package/dist/workspace/pin-integrity.d.ts.map +1 -1
- package/dist/workspace/pin-integrity.js +3 -2
- package/dist/workspace/pr-report.schema.json +75 -8
- package/dist/workspace/reason-codes.d.ts +18 -1
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/reason-codes.js +20 -2
- package/dist/workspace/release-candidates.d.ts +129 -0
- package/dist/workspace/release-candidates.d.ts.map +1 -0
- package/dist/workspace/release-candidates.js +233 -0
- package/dist/workspace/release-candidates.schema.json +353 -0
- package/dist/workspace/run-event.schema.json +3 -1
- package/dist/workspace/security.d.ts +40 -0
- package/dist/workspace/security.d.ts.map +1 -0
- package/dist/workspace/security.js +99 -0
- package/dist/workspace/status.schema.json +3 -1
- package/dist/workspace/write-scope.d.ts +9 -0
- package/dist/workspace/write-scope.d.ts.map +1 -1
- package/dist/workspace/write-scope.js +11 -1
- package/package.json +8 -1
- package/src/__fixtures__/pr-loop/pr-apply-wave-waiting.note.golden.md +48 -0
- package/src/__fixtures__/pr-loop/pr-plan.note.golden.md +1 -1
- package/src/ci-jobs.ts +11 -2
- package/src/cli/commands/__fixtures__/init-lexicon-output/package.json +3 -3
- package/src/cli/commands/audit.test.ts +2 -2
- package/src/cli/commands/check-lexicon-plugin.test.ts +9 -0
- package/src/cli/commands/check-lexicon-plugin.ts +11 -8
- package/src/cli/commands/check-lexicon.test.ts +1 -1
- package/src/cli/commands/check-lexicon.ts +16 -11
- package/src/cli/commands/import.ts +40 -0
- package/src/cli/commands/init-lexicon/templates/project.ts +4 -3
- package/src/cli/commands/init-lexicon.test.ts +8 -5
- package/src/cli/commands/onboard.test.ts +45 -0
- package/src/cli/commands/onboard.ts +8 -4
- package/src/cli/commands/update.test.ts +6 -0
- package/src/cli/commands/update.ts +4 -1
- package/src/cli/compiled-cli.e2e.test.ts +76 -11
- package/src/cli/dependencies.e2e.test.ts +101 -0
- package/src/cli/dependencies.test.ts +93 -0
- package/src/cli/dependencies.ts +122 -0
- package/src/cli/handlers/build.test.ts +105 -0
- package/src/cli/handlers/build.ts +35 -4
- package/src/cli/handlers/fan-out.test.ts +73 -0
- package/src/cli/handlers/fan-out.ts +11 -4
- package/src/cli/handlers/graph.test.ts +76 -0
- package/src/cli/handlers/graph.ts +19 -12
- package/src/cli/handlers/lifecycle-health.test.ts +123 -0
- package/src/cli/handlers/lifecycle-health.ts +157 -0
- package/src/cli/handlers/lifecycle.ts +1 -1
- package/src/cli/handlers/lint.test.ts +42 -0
- package/src/cli/handlers/lint.ts +6 -0
- package/src/cli/handlers/operator.ts +3 -3
- package/src/cli/handlers/pr-deploy-inputs.test.ts +209 -0
- package/src/cli/handlers/pr-record.test.ts +201 -0
- package/src/cli/handlers/pr-waves.test.ts +449 -0
- package/src/cli/handlers/pr.test.ts +156 -0
- package/src/cli/handlers/pr.ts +648 -33
- package/src/cli/handlers/promote.test.ts +43 -1
- package/src/cli/handlers/promote.ts +19 -3
- package/src/cli/handlers/release-cut-at.e2e.test.ts +115 -0
- package/src/cli/handlers/release-publish-targets.e2e.test.ts +2 -2
- package/src/cli/handlers/release-verify.e2e.test.ts +12 -10
- package/src/cli/handlers/release.e2e.test.ts +19 -28
- package/src/cli/handlers/release.ts +81 -11
- package/src/cli/handlers/run-components-exit.test.ts +99 -0
- package/src/cli/handlers/run-signer.test.ts +79 -0
- package/src/cli/handlers/run.ts +34 -16
- package/src/cli/main.test.ts +18 -0
- package/src/cli/main.ts +120 -33
- package/src/cli/parse-args.ts +28 -0
- package/src/cli/registry.ts +35 -8
- package/src/codegen/generate-post-synth-barrel.ts +2 -2
- package/src/codegen/lexicon-regen.ts +1 -1
- package/src/codegen/pinned-upgrade.ts +2 -2
- package/src/codegen/post-synth-barrel-guards.test.ts +6 -11
- package/src/components/capability.ts +51 -3
- package/src/components/changed-files.test.ts +16 -1
- package/src/components/changed-files.ts +9 -1
- package/src/components/deploy-inputs.test.ts +108 -0
- package/src/components/deploy-inputs.ts +225 -0
- package/src/components/driver.test.ts +36 -1
- package/src/components/driver.ts +87 -4
- package/src/components/fan-out-record.ts +29 -1
- package/src/components/fan-out-run.test.ts +35 -0
- package/src/components/fan-out-run.ts +40 -1
- package/src/components/gate-plan.ts +9 -0
- package/src/components/pr-pipeline.test.ts +100 -0
- package/src/components/pr-pipeline.ts +184 -28
- package/src/components/pr-run.test.ts +323 -18
- package/src/components/pr-run.ts +355 -76
- package/src/components/release-compile.test.ts +34 -0
- package/src/components/release-compile.ts +89 -8
- package/src/components/release-promote.test.ts +55 -2
- package/src/components/release-promote.ts +93 -23
- package/src/components/verbs/bom-writer.ts +1 -1
- package/src/components/verbs/lockfile-sbom-generator.test.ts +36 -0
- package/src/components/verbs/lockfile-sbom-generator.ts +43 -5
- package/src/components/wave-plan.ts +48 -8
- package/src/discovery/fold-host-method.test.ts +87 -0
- package/src/discovery/fold-import.ts +15 -5
- package/src/discovery/fold-package-composite.test.ts +27 -0
- package/src/discovery/fold-specifiers.test.ts +8 -0
- package/src/discovery/sandbox/bundle.ts +6 -0
- package/src/discovery/specifier-resolve.ts +8 -2
- package/src/fold/fold.test.ts +72 -0
- package/src/fold/fold.ts +71 -0
- package/src/fold/subset.test.ts +31 -0
- package/src/fold/subset.ts +99 -0
- package/src/graph-detail.test.ts +57 -0
- package/src/graph-detail.ts +33 -7
- package/src/health.schema.json +191 -0
- package/src/health.test.ts +62 -0
- package/src/health.ts +178 -0
- package/src/lexicon-dist.e2e.test.ts +254 -0
- package/src/lexicon-module.test.ts +47 -0
- package/src/lexicon-module.ts +49 -7
- package/src/lexicon-plugin-helpers.ts +6 -4
- package/src/lexicon.ts +43 -1
- package/src/lifecycle/affected.test.ts +7 -0
- package/src/lifecycle/affected.ts +6 -1
- package/src/lifecycle/merge-record.test.ts +111 -0
- package/src/lifecycle/merge-record.ts +154 -0
- package/src/lifecycle/publish-attachments.ts +25 -13
- package/src/lifecycle/publish-npm.ts +4 -3
- package/src/lifecycle/publish-targets.test.ts +34 -4
- package/src/lifecycle/release-at.test.ts +48 -0
- package/src/lifecycle/release-at.ts +100 -0
- package/src/lifecycle/release-cut.test.ts +41 -0
- package/src/lifecycle/release-cut.ts +22 -11
- package/src/lifecycle/release-ledger.ts +34 -0
- package/src/lifecycle/release-publish.test.ts +43 -13
- package/src/lifecycle/release-publish.ts +38 -18
- package/src/lifecycle/release-store.ts +57 -13
- package/src/lifecycle/run-ledger.test.ts +13 -0
- package/src/lifecycle/run-ledger.ts +1 -0
- package/src/lifecycle/work-dir.test.ts +77 -0
- package/src/lifecycle/work-dir.ts +82 -0
- package/src/lint/discover.test.ts +46 -2
- package/src/lint/discover.ts +55 -49
- package/src/lint/rules/op/index.ts +4 -2
- package/src/lint/rules/op/ops018-shell-image-digest.test.ts +60 -0
- package/src/lint/rules/op/ops018-shell-image-digest.ts +48 -0
- package/src/module-source.test.ts +85 -0
- package/src/module-source.ts +112 -0
- package/src/op/activities/activity-contracts.ts +3 -0
- package/src/op/activities/factory.ts +1 -1
- package/src/op/activities/shell-container.e2e.test.ts +67 -0
- package/src/op/activities/shell.test.ts +44 -1
- package/src/op/activities/shell.ts +110 -3
- package/src/op/builders.ts +7 -0
- package/src/op/discover-root.test.ts +31 -2
- package/src/op/discover.ts +14 -4
- package/src/op/gate.test.ts +30 -0
- package/src/op/gate.ts +3 -0
- package/src/op/op-waves-run.ts +20 -5
- package/src/op/op-waves.test.ts +49 -0
- package/src/op/operator.ts +2 -2
- package/src/op/runtime.ts +2 -0
- package/src/op/step-console.test.ts +4 -2
- package/src/op/steward.ts +6 -4
- package/src/op/work-lease-run.test.ts +88 -2
- package/src/op/work-lease-run.ts +52 -12
- package/src/pr-forge-bundle.test.ts +2 -2
- package/src/pr-forge.test.ts +42 -0
- package/src/pr-forge.ts +40 -0
- package/src/pr-loop-bundle.test.ts +2 -1
- package/src/pr-loop.test.ts +146 -1
- package/src/pr-loop.ts +278 -17
- package/src/pr-report-url.ts +7 -7
- package/src/runner-start-bundle.test.ts +29 -0
- package/src/runner-start.test.ts +179 -0
- package/src/runner-start.ts +329 -0
- package/src/terraform/__fixtures__/advise.test.ts +21 -2
- package/src/ts-loader.test.ts +89 -1
- package/src/ts-loader.ts +180 -13
- package/src/workspace/changes.test.ts +1 -1
- package/src/workspace/chant-migrations/fountain-retired-kinds.test.ts +33 -0
- package/src/workspace/chant-migrations/fountain-retired-kinds.ts +190 -0
- package/src/workspace/chant-migrations.e2e.test.ts +5 -0
- package/src/workspace/chant-migrations.ts +2 -0
- package/src/workspace/check-contract.test.ts +3 -2
- package/src/workspace/check.schema.json +70 -2
- package/src/workspace/checks/boxes.ts +9 -9
- package/src/workspace/checks/security.test.ts +138 -0
- package/src/workspace/checks/security.ts +305 -0
- package/src/workspace/checks.ts +5 -0
- package/src/workspace/ci-builds.e2e.test.ts +208 -0
- package/src/workspace/ci-builds.test.ts +174 -0
- package/src/workspace/ci-builds.ts +385 -0
- package/src/workspace/ci-green-builds.test.ts +180 -0
- package/src/workspace/ci-green-cli.test.ts +54 -0
- package/src/workspace/ci-green-cli.ts +26 -5
- package/src/workspace/ci-green-forge.ts +30 -4
- package/src/workspace/ci-green-runs.test.ts +53 -11
- package/src/workspace/ci-green-workflow.test.ts +84 -1
- package/src/workspace/ci-green-workflow.ts +139 -2
- package/src/workspace/ci-green.test.ts +6 -3
- package/src/workspace/ci-green.ts +408 -48
- package/src/workspace/ci-last-green.schema.json +49 -0
- package/src/workspace/ci-list.schema.json +47 -7
- package/src/workspace/ci-report-url.test.ts +220 -0
- package/src/workspace/ci-report-url.ts +33 -0
- package/src/workspace/ci-run-index.schema.json +6 -4
- package/src/workspace/ci-run-index.test.ts +42 -3
- package/src/workspace/ci-run-index.ts +19 -5
- package/src/workspace/ci-run.test.ts +203 -8
- package/src/workspace/ci-run.ts +295 -63
- package/src/workspace/ci-runner-key.test.ts +55 -17
- package/src/workspace/ci-runner-key.ts +36 -11
- package/src/workspace/ci-runner-start.test.ts +151 -0
- package/src/workspace/ci-runner-start.ts +193 -0
- package/src/workspace/ci-serve-builds.test.ts +86 -0
- package/src/workspace/ci-serve.test.ts +209 -6
- package/src/workspace/ci-serve.ts +341 -42
- package/src/workspace/declaration.schema.json +30 -2
- package/src/workspace/declaration.test.ts +40 -0
- package/src/workspace/declaration.ts +40 -3
- package/src/workspace/export.ts +6 -3
- package/src/workspace/ls.schema.json +9 -2
- package/src/workspace/ls.ts +10 -4
- package/src/workspace/member-pipeline.ts +2 -1
- package/src/workspace/merge-record.schema.json +49 -0
- package/src/workspace/pin-integrity.test.ts +5 -0
- package/src/workspace/pin-integrity.ts +3 -2
- package/src/workspace/pr-report.schema.json +75 -8
- package/src/workspace/reason-codes.test.ts +2 -0
- package/src/workspace/reason-codes.ts +20 -2
- package/src/workspace/release-candidates.schema.json +353 -0
- package/src/workspace/release-candidates.test.ts +106 -0
- package/src/workspace/release-candidates.ts +315 -0
- package/src/workspace/run-event.schema.json +3 -1
- package/src/workspace/security.test.ts +70 -0
- package/src/workspace/security.ts +118 -0
- package/src/workspace/status.schema.json +3 -1
- package/src/workspace/write-scope.test.ts +29 -1
- package/src/workspace/write-scope.ts +12 -1
package/dist/ts-loader.js
CHANGED
|
@@ -18,12 +18,14 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Run from source (the repository's `bin/chant` through tsx, vitest), this
|
|
20
20
|
* module is itself TypeScript, the TypeScript loader is already there, and
|
|
21
|
-
* both functions do nothing
|
|
21
|
+
* both functions do nothing, except that {@link installCompiledCli} resolves
|
|
22
|
+
* chant's packages to their source (#3981, {@link installSourceResolution}).
|
|
22
23
|
*/
|
|
23
|
-
import { existsSync } from "node:fs";
|
|
24
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
24
25
|
import * as nodeModule from "node:module";
|
|
25
26
|
import { dirname, join, sep } from "node:path";
|
|
26
27
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
28
|
+
import { isJavaScriptModule, moduleSourceDir } from "./module-source.js";
|
|
27
29
|
const { createRequire, registerHooks } = nodeModule;
|
|
28
30
|
const STATE = Symbol.for("chant.compiledCli");
|
|
29
31
|
function compiledState() {
|
|
@@ -35,11 +37,15 @@ function runsCompiled() {
|
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* Called once by the CLI's `main()`. Compiled, it records that TypeScript
|
|
38
|
-
* loads lazily and installs the `src/*.ts` to `dist/*.js` redirect
|
|
39
|
-
* source it
|
|
40
|
+
* loads lazily and installs the `src/*.ts` to `dist/*.js` redirect. From
|
|
41
|
+
* source it installs {@link installSourceResolution}.
|
|
40
42
|
*/
|
|
41
43
|
export function installCompiledCli() {
|
|
42
|
-
if (!runsCompiled()
|
|
44
|
+
if (!runsCompiled()) {
|
|
45
|
+
installSourceResolution();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (compiledState())
|
|
43
49
|
return;
|
|
44
50
|
globalThis[STATE] = { tsx: false };
|
|
45
51
|
const distDir = dirname(fileURLToPath(import.meta.url));
|
|
@@ -49,8 +55,10 @@ export function installCompiledCli() {
|
|
|
49
55
|
registerHooks({
|
|
50
56
|
resolve(specifier, context, nextResolve) {
|
|
51
57
|
const result = nextResolve(specifier, context);
|
|
52
|
-
if (!result.url.startsWith(srcUrl))
|
|
53
|
-
|
|
58
|
+
if (!result.url.startsWith(srcUrl)) {
|
|
59
|
+
const twin = lexiconCompiledTwin(result.url);
|
|
60
|
+
return twin === undefined ? result : { ...result, url: twin, format: "module" };
|
|
61
|
+
}
|
|
54
62
|
const path = result.url.slice(srcUrl.length).replace(/[?#].*$/, "");
|
|
55
63
|
if (!path.endsWith(".ts") || path.endsWith(".d.ts"))
|
|
56
64
|
return result;
|
|
@@ -64,6 +72,155 @@ export function installCompiledCli() {
|
|
|
64
72
|
},
|
|
65
73
|
});
|
|
66
74
|
}
|
|
75
|
+
/** Package directories by the directory a module sits in: a lexicon package's root, or null for any other package. */
|
|
76
|
+
const lexiconRoots = new Map();
|
|
77
|
+
/** The lexicon package `dir` belongs to: the nearest directory up with a package.json, when it names a chant lexicon. */
|
|
78
|
+
function lexiconRootOf(dir) {
|
|
79
|
+
const seen = [];
|
|
80
|
+
let root = null;
|
|
81
|
+
for (let at = dir;;) {
|
|
82
|
+
const cached = lexiconRoots.get(at);
|
|
83
|
+
if (cached !== undefined) {
|
|
84
|
+
root = cached;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
seen.push(at);
|
|
88
|
+
const manifest = join(at, "package.json");
|
|
89
|
+
if (existsSync(manifest)) {
|
|
90
|
+
try {
|
|
91
|
+
const name = JSON.parse(readFileSync(manifest, "utf-8")).name;
|
|
92
|
+
root = typeof name === "string" && name.startsWith("@intentius/chant-lexicon-") ? at : null;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
root = null;
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
const parent = dirname(at);
|
|
100
|
+
if (parent === at)
|
|
101
|
+
break;
|
|
102
|
+
at = parent;
|
|
103
|
+
}
|
|
104
|
+
for (const at of seen)
|
|
105
|
+
lexiconRoots.set(at, root);
|
|
106
|
+
return root ?? undefined;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* #3981 — the compiled module for a lexicon's `src/*.ts`: `<lexicon>/dist/*.js`
|
|
110
|
+
* when it exists, as a URL, else `undefined`. A lexicon ships both, and its
|
|
111
|
+
* exports name the compiled one; fold reads a composite from the source, and
|
|
112
|
+
* an import that source makes must land on the module the plugin and the
|
|
113
|
+
* project already loaded, with no TypeScript loader.
|
|
114
|
+
*/
|
|
115
|
+
export function lexiconCompiledTwin(url) {
|
|
116
|
+
if (!url.startsWith("file:"))
|
|
117
|
+
return undefined;
|
|
118
|
+
const path = fileURLToPath(url.replace(/[?#].*$/, ""));
|
|
119
|
+
if (!/\.[cm]?ts$/.test(path) || /\.d\.[cm]?ts$/.test(path) || !path.includes(`${sep}src${sep}`))
|
|
120
|
+
return undefined;
|
|
121
|
+
const root = lexiconRootOf(dirname(path));
|
|
122
|
+
if (root === undefined)
|
|
123
|
+
return undefined;
|
|
124
|
+
const srcDir = join(root, "src") + sep;
|
|
125
|
+
if (!path.startsWith(srcDir))
|
|
126
|
+
return undefined;
|
|
127
|
+
const js = join(root, "dist", path.slice(srcDir.length)).replace(/\.([cm]?)ts$/, ".$1js");
|
|
128
|
+
return existsSync(js) ? pathToFileURL(js).href : undefined;
|
|
129
|
+
}
|
|
130
|
+
const SOURCE_RESOLUTION = Symbol.for("chant.sourceResolution");
|
|
131
|
+
/**
|
|
132
|
+
* #3981 — the `development` target a chant package's `exports` give
|
|
133
|
+
* `specifier`, found from `parentPath`'s directory up through each
|
|
134
|
+
* `node_modules`, or `undefined` when there is none or its file does not
|
|
135
|
+
* exist. Reads exact keys and single-`*` patterns, the shapes chant's
|
|
136
|
+
* packages use; anything else is left to Node.
|
|
137
|
+
*/
|
|
138
|
+
export function chantPackageSourceTarget(specifier, parentPath) {
|
|
139
|
+
const match = /^(@intentius\/chant(?:-[a-z0-9-]+)?)(\/.*)?$/.exec(specifier);
|
|
140
|
+
if (!match)
|
|
141
|
+
return undefined;
|
|
142
|
+
const subpath = match[2] ? `.${match[2]}` : ".";
|
|
143
|
+
let dir = dirname(parentPath);
|
|
144
|
+
for (;;) {
|
|
145
|
+
const pkgDir = join(dir, "node_modules", match[1]);
|
|
146
|
+
const manifest = join(pkgDir, "package.json");
|
|
147
|
+
if (existsSync(manifest)) {
|
|
148
|
+
let exportsField;
|
|
149
|
+
try {
|
|
150
|
+
exportsField = JSON.parse(readFileSync(manifest, "utf-8")).exports;
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
if (!exportsField || typeof exportsField !== "object")
|
|
156
|
+
return undefined;
|
|
157
|
+
const map = exportsField;
|
|
158
|
+
let entry = map[subpath];
|
|
159
|
+
let star;
|
|
160
|
+
if (entry === undefined) {
|
|
161
|
+
let best = "";
|
|
162
|
+
for (const key of Object.keys(map)) {
|
|
163
|
+
const at = key.indexOf("*");
|
|
164
|
+
if (at < 0 || key.indexOf("*", at + 1) >= 0)
|
|
165
|
+
continue;
|
|
166
|
+
const prefix = key.slice(0, at);
|
|
167
|
+
const suffix = key.slice(at + 1);
|
|
168
|
+
if (!subpath.startsWith(prefix) || !subpath.endsWith(suffix) || subpath.length < key.length || prefix.length <= best.length)
|
|
169
|
+
continue;
|
|
170
|
+
best = prefix;
|
|
171
|
+
entry = map[key];
|
|
172
|
+
star = subpath.slice(prefix.length, subpath.length - suffix.length);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const development = entry && typeof entry === "object" ? entry.development : undefined;
|
|
176
|
+
if (typeof development !== "string")
|
|
177
|
+
return undefined;
|
|
178
|
+
const target = join(pkgDir, star === undefined ? development : development.split("*").join(star));
|
|
179
|
+
// Node keys a module by its real path, so a symlinked package must too.
|
|
180
|
+
return existsSync(target) ? realpathSync(target) : undefined;
|
|
181
|
+
}
|
|
182
|
+
const parent = dirname(dir);
|
|
183
|
+
if (parent === dir)
|
|
184
|
+
return undefined;
|
|
185
|
+
dir = parent;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* #3981 — from source, resolve chant's own packages through their
|
|
190
|
+
* `development` export condition, as `node --conditions=development` (which
|
|
191
|
+
* the repository's `bin/chant` passes) would. A lexicon's `default` export is
|
|
192
|
+
* its compiled `dist/*.js`, which a checkout may not have built, or built from
|
|
193
|
+
* older source; `development` is its `src/*.ts`, which vitest, a project's
|
|
194
|
+
* tsconfig `paths` and fold's own resolution (`SOURCE_EXPORT_CONDITIONS`)
|
|
195
|
+
* pick. Without this, a CLI run from source by `node --import tsx` would load
|
|
196
|
+
* a plugin from `dist/` and fold the project against `src/`: two copies of the
|
|
197
|
+
* lexicon with their own classes.
|
|
198
|
+
*
|
|
199
|
+
* The hook resolves the specifier itself and short-circuits: conditions added
|
|
200
|
+
* to the context here do not reach tsx's resolver. Nothing is installed under
|
|
201
|
+
* vitest, whose resolver already adds the condition, or on a node without
|
|
202
|
+
* `module.registerHooks`.
|
|
203
|
+
*/
|
|
204
|
+
function installSourceResolution() {
|
|
205
|
+
// In a vitest worker (not a CLI it spawns, which inherits its environment), vite resolves.
|
|
206
|
+
if ("__vitest_worker__" in globalThis || typeof registerHooks !== "function")
|
|
207
|
+
return;
|
|
208
|
+
const flags = globalThis;
|
|
209
|
+
if (flags[SOURCE_RESOLUTION])
|
|
210
|
+
return;
|
|
211
|
+
flags[SOURCE_RESOLUTION] = true;
|
|
212
|
+
registerHooks({
|
|
213
|
+
resolve(specifier, context, nextResolve) {
|
|
214
|
+
const parentURL = context?.parentURL;
|
|
215
|
+
if (specifier.startsWith("@intentius/chant") && parentURL?.startsWith("file:")) {
|
|
216
|
+
const target = chantPackageSourceTarget(specifier, fileURLToPath(parentURL));
|
|
217
|
+
if (target !== undefined)
|
|
218
|
+
return { url: pathToFileURL(target).href, shortCircuit: true };
|
|
219
|
+
}
|
|
220
|
+
return nextResolve(specifier, context);
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
}
|
|
67
224
|
/**
|
|
68
225
|
* Register tsx for the ESM and CommonJS loaders, once, before importing
|
|
69
226
|
* anything that may be TypeScript. A no-op from source, where tsx (or vitest)
|
|
@@ -83,21 +240,38 @@ export function ensureTypeScriptLoader() {
|
|
|
83
240
|
require("tsx/esm/api").register();
|
|
84
241
|
return true;
|
|
85
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* #3981 — register tsx only when the module about to be imported is not
|
|
245
|
+
* JavaScript. `pathOrUrl` is the resolved module, a path or a file URL. A
|
|
246
|
+
* compiled lexicon (`dist/*.js`) imports with plain node, so a command that
|
|
247
|
+
* loads only compiled modules never pays for tsx's hooks thread. A `.ts`
|
|
248
|
+
* module, or one with no extension, registers tsx as before. Returns what
|
|
249
|
+
* {@link ensureTypeScriptLoader} does, or whether tsx is already registered
|
|
250
|
+
* when the module is JavaScript.
|
|
251
|
+
*/
|
|
252
|
+
export function ensureTypeScriptLoaderFor(pathOrUrl) {
|
|
253
|
+
if (!isJavaScriptModule(pathOrUrl))
|
|
254
|
+
return ensureTypeScriptLoader();
|
|
255
|
+
return compiledState()?.tsx ?? false;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* #3981 — whether a caller about to import a module of unknown kind should
|
|
259
|
+
* resolve it first: true only in the compiled CLI before tsx is registered.
|
|
260
|
+
* From source, and once tsx is in, every module loads either way.
|
|
261
|
+
*/
|
|
262
|
+
export function typeScriptLoaderPending() {
|
|
263
|
+
const state = compiledState();
|
|
264
|
+
return state !== undefined && !state.tsx;
|
|
265
|
+
}
|
|
86
266
|
/**
|
|
87
267
|
* The source directory for a module of chant's own: `dirname` of `moduleUrl`
|
|
88
268
|
* from source, and the matching directory under `<package>/src` when the
|
|
89
269
|
* module runs from `<package>/dist`. The sandbox drivers hand chant's own
|
|
90
270
|
* modules to esbuild by path, and must name the TypeScript source the
|
|
91
271
|
* project's own `@intentius/chant/*` imports resolve to. String arithmetic
|
|
92
|
-
* only: no filesystem access, so it is safe inside a sandboxed child.
|
|
272
|
+
* only: no filesystem access, so it is safe inside a sandboxed child. The
|
|
273
|
+
* same mapping as {@link moduleSourceDir}, which lexicons use.
|
|
93
274
|
*/
|
|
94
275
|
export function chantSourceDir(moduleUrl) {
|
|
95
|
-
|
|
96
|
-
if (!moduleUrl.endsWith(".js"))
|
|
97
|
-
return dir;
|
|
98
|
-
const marker = `${sep}dist${sep}`;
|
|
99
|
-
const at = (dir + sep).lastIndexOf(marker);
|
|
100
|
-
if (at < 0)
|
|
101
|
-
return dir;
|
|
102
|
-
return dir.slice(0, at) + `${sep}src` + dir.slice(at + marker.length - 1);
|
|
276
|
+
return moduleSourceDir(moduleUrl);
|
|
103
277
|
}
|