@intentius/chant 0.124.28 → 0.124.30
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/build-params.d.ts +34 -1
- package/dist/build-params.d.ts.map +1 -1
- package/dist/build-params.js +31 -1
- package/dist/change-set-graph.d.ts +8 -1
- package/dist/change-set-graph.d.ts.map +1 -1
- package/dist/change-set-graph.js +4 -2
- package/dist/change-set.d.ts +10 -0
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +4 -3
- package/dist/cli/build-params-cli.d.ts +7 -1
- package/dist/cli/build-params-cli.d.ts.map +1 -1
- package/dist/cli/build-params-cli.js +17 -8
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +6 -3
- package/dist/cli/handlers/approve.d.ts.map +1 -1
- package/dist/cli/handlers/approve.js +45 -0
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/build.js +18 -4
- package/dist/cli/handlers/fan-out.d.ts +9 -0
- package/dist/cli/handlers/fan-out.d.ts.map +1 -1
- package/dist/cli/handlers/fan-out.js +67 -8
- package/dist/cli/handlers/lifecycle-gc.d.ts +19 -0
- package/dist/cli/handlers/lifecycle-gc.d.ts.map +1 -0
- package/dist/cli/handlers/lifecycle-gc.js +143 -0
- package/dist/cli/handlers/pr.d.ts +11 -3
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +134 -26
- package/dist/cli/handlers/promote.d.ts +7 -0
- package/dist/cli/handlers/promote.d.ts.map +1 -1
- package/dist/cli/handlers/promote.js +210 -33
- package/dist/cli/handlers/release.d.ts +62 -5
- package/dist/cli/handlers/release.d.ts.map +1 -1
- package/dist/cli/handlers/release.js +414 -28
- package/dist/cli/handlers/run.d.ts +11 -1
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/handlers/run.js +67 -6
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +91 -10
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +73 -2
- package/dist/cli/registry.d.ts +32 -4
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/run-events.d.ts +3 -2
- package/dist/cli/run-events.d.ts.map +1 -1
- package/dist/cli/run-events.js +5 -3
- package/dist/components/auto-release.d.ts +2 -0
- package/dist/components/auto-release.d.ts.map +1 -1
- package/dist/components/auto-release.js +1 -0
- package/dist/components/capability.d.ts +9 -0
- package/dist/components/capability.d.ts.map +1 -1
- package/dist/components/driver.d.ts +8 -0
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/driver.js +35 -0
- package/dist/components/fan-out-inputs.d.ts +69 -0
- package/dist/components/fan-out-inputs.d.ts.map +1 -0
- package/dist/components/fan-out-inputs.js +169 -0
- package/dist/components/fan-out-record.d.ts +13 -0
- package/dist/components/fan-out-record.d.ts.map +1 -1
- package/dist/components/fan-out-record.js +16 -0
- package/dist/components/fan-out-run.d.ts.map +1 -1
- package/dist/components/fan-out-run.js +50 -0
- package/dist/components/fan-out.d.ts +4 -0
- package/dist/components/fan-out.d.ts.map +1 -1
- package/dist/components/pr-pipeline.d.ts +49 -0
- package/dist/components/pr-pipeline.d.ts.map +1 -1
- package/dist/components/pr-pipeline.js +38 -4
- package/dist/components/pr-run.d.ts +20 -2
- package/dist/components/pr-run.d.ts.map +1 -1
- package/dist/components/pr-run.js +26 -13
- package/dist/components/promote.d.ts +23 -0
- package/dist/components/promote.d.ts.map +1 -1
- package/dist/components/promote.js +60 -2
- package/dist/components/release-compile.d.ts +9 -0
- package/dist/components/release-compile.d.ts.map +1 -1
- package/dist/components/release-compile.js +9 -3
- package/dist/components/release-gate.d.ts +11 -1
- package/dist/components/release-gate.d.ts.map +1 -1
- package/dist/components/release-gate.js +10 -4
- package/dist/components/wave-plan.d.ts +16 -0
- package/dist/components/wave-plan.d.ts.map +1 -1
- package/dist/components/wave-plan.js +36 -2
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/flag-params.d.ts +54 -0
- package/dist/flag-params.d.ts.map +1 -0
- package/dist/flag-params.js +130 -0
- package/dist/lifecycle/__fixtures__/publish-fakes.d.ts +120 -0
- package/dist/lifecycle/__fixtures__/publish-fakes.d.ts.map +1 -0
- package/dist/lifecycle/__fixtures__/publish-fakes.js +304 -0
- package/dist/lifecycle/change-set-store.d.ts +2 -1
- package/dist/lifecycle/change-set-store.d.ts.map +1 -1
- package/dist/lifecycle/change-set-store.js +2 -1
- package/dist/lifecycle/delivery-metrics.d.ts +139 -0
- package/dist/lifecycle/delivery-metrics.d.ts.map +1 -0
- package/dist/lifecycle/delivery-metrics.js +145 -0
- package/dist/lifecycle/deploy-outcome.d.ts +81 -0
- package/dist/lifecycle/deploy-outcome.d.ts.map +1 -0
- package/dist/lifecycle/deploy-outcome.js +101 -0
- package/dist/lifecycle/gate-change-set.d.ts +10 -1
- package/dist/lifecycle/gate-change-set.d.ts.map +1 -1
- package/dist/lifecycle/gate-change-set.js +35 -3
- package/dist/lifecycle/gate-ledger.d.ts +2 -3
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/git.d.ts +30 -1
- package/dist/lifecycle/git.d.ts.map +1 -1
- package/dist/lifecycle/git.js +31 -5
- package/dist/lifecycle/index.d.ts +4 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +4 -0
- package/dist/lifecycle/mixed-environment.d.ts +95 -0
- package/dist/lifecycle/mixed-environment.d.ts.map +1 -0
- package/dist/lifecycle/mixed-environment.js +154 -0
- package/dist/lifecycle/publish-attachments.d.ts +79 -0
- package/dist/lifecycle/publish-attachments.d.ts.map +1 -0
- package/dist/lifecycle/publish-attachments.js +179 -0
- package/dist/lifecycle/publish-credentials.d.ts +37 -0
- package/dist/lifecycle/publish-credentials.d.ts.map +1 -0
- package/dist/lifecycle/publish-credentials.js +69 -0
- package/dist/lifecycle/publish-declaration.d.ts +97 -0
- package/dist/lifecycle/publish-declaration.d.ts.map +1 -0
- package/dist/lifecycle/publish-declaration.js +83 -0
- package/dist/lifecycle/publish-forge.d.ts +53 -0
- package/dist/lifecycle/publish-forge.d.ts.map +1 -0
- package/dist/lifecycle/publish-forge.js +298 -0
- package/dist/lifecycle/publish-npm.d.ts +61 -0
- package/dist/lifecycle/publish-npm.d.ts.map +1 -0
- package/dist/lifecycle/publish-npm.js +242 -0
- package/dist/lifecycle/publish-oci.d.ts +64 -0
- package/dist/lifecycle/publish-oci.d.ts.map +1 -0
- package/dist/lifecycle/publish-oci.js +383 -0
- package/dist/lifecycle/publish-record.d.ts +66 -0
- package/dist/lifecycle/publish-record.d.ts.map +1 -0
- package/dist/lifecycle/publish-record.js +84 -0
- package/dist/lifecycle/publish-targets.d.ts +45 -0
- package/dist/lifecycle/publish-targets.d.ts.map +1 -0
- package/dist/lifecycle/publish-targets.js +85 -0
- package/dist/lifecycle/release-cut.d.ts +48 -1
- package/dist/lifecycle/release-cut.d.ts.map +1 -1
- package/dist/lifecycle/release-cut.js +116 -23
- package/dist/lifecycle/release-join.d.ts +95 -0
- package/dist/lifecycle/release-join.d.ts.map +1 -0
- package/dist/lifecycle/release-join.js +139 -0
- package/dist/lifecycle/release-ledger.d.ts +8 -3
- package/dist/lifecycle/release-ledger.d.ts.map +1 -1
- package/dist/lifecycle/release-ledger.js +2 -0
- package/dist/lifecycle/release-publish.d.ts +312 -0
- package/dist/lifecycle/release-publish.d.ts.map +1 -0
- package/dist/lifecycle/release-publish.js +335 -0
- package/dist/lifecycle/release-revocation.d.ts +80 -0
- package/dist/lifecycle/release-revocation.d.ts.map +1 -0
- package/dist/lifecycle/release-revocation.js +123 -0
- package/dist/lifecycle/release-store.d.ts +12 -2
- package/dist/lifecycle/release-store.d.ts.map +1 -1
- package/dist/lifecycle/release-store.js +4 -2
- package/dist/lifecycle/release-verify.d.ts +61 -0
- package/dist/lifecycle/release-verify.d.ts.map +1 -0
- package/dist/lifecycle/release-verify.js +92 -0
- package/dist/lifecycle/release-workstation.d.ts +91 -0
- package/dist/lifecycle/release-workstation.d.ts.map +1 -0
- package/dist/lifecycle/release-workstation.js +180 -0
- package/dist/lifecycle/retention-policy.d.ts +45 -0
- package/dist/lifecycle/retention-policy.d.ts.map +1 -0
- package/dist/lifecycle/retention-policy.js +43 -0
- package/dist/lifecycle/retention.d.ts +185 -0
- package/dist/lifecycle/retention.d.ts.map +1 -0
- package/dist/lifecycle/retention.js +400 -0
- package/dist/lifecycle/run-ledger.d.ts +1 -1
- package/dist/lifecycle/run-ledger.d.ts.map +1 -1
- package/dist/lifecycle/run-ledger.js +9 -0
- package/dist/op/activities/activity-contracts.d.ts +1 -0
- package/dist/op/activities/activity-contracts.d.ts.map +1 -1
- package/dist/op/activities/activity-contracts.js +1 -0
- package/dist/op/activities/shell.d.ts +6 -0
- package/dist/op/activities/shell.d.ts.map +1 -1
- package/dist/op/activities/shell.js +1 -1
- package/dist/op/local-executor.d.ts +23 -1
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/local-executor.js +9 -3
- package/dist/op/runtime.d.ts +27 -0
- package/dist/op/runtime.d.ts.map +1 -1
- package/dist/op/runtime.js +20 -0
- package/dist/plan-summary.d.ts.map +1 -1
- package/dist/plan-summary.js +8 -2
- package/dist/pr-forge.d.ts +23 -0
- package/dist/pr-forge.d.ts.map +1 -1
- package/dist/pr-forge.js +44 -0
- package/dist/pr-loop.d.ts +17 -0
- package/dist/pr-loop.d.ts.map +1 -1
- package/dist/pr-loop.js +30 -4
- package/dist/pr-report-url.d.ts +82 -0
- package/dist/pr-report-url.d.ts.map +1 -0
- package/dist/pr-report-url.js +174 -0
- package/dist/provenance.d.ts +2 -2
- package/dist/provenance.d.ts.map +1 -1
- package/dist/run-event-store.d.ts +29 -2
- package/dist/run-event-store.d.ts.map +1 -1
- package/dist/run-event-store.js +50 -3
- package/dist/run-event-stream.d.ts +4 -3
- package/dist/run-event-stream.d.ts.map +1 -1
- package/dist/run-event-stream.js +7 -3
- package/dist/run-event.d.ts +34 -1
- package/dist/run-event.d.ts.map +1 -1
- package/dist/run-event.js +4 -0
- package/dist/wave-runtime.mjs +260 -229
- package/dist/workspace/__fixtures__/flag-workspace.d.ts +31 -0
- package/dist/workspace/__fixtures__/flag-workspace.d.ts.map +1 -0
- package/dist/workspace/__fixtures__/flag-workspace.js +114 -0
- package/dist/workspace/change-set.schema.json +5 -1
- package/dist/workspace/check.schema.json +4 -2
- package/dist/workspace/checks/records.d.ts +9 -1
- package/dist/workspace/checks/records.d.ts.map +1 -1
- package/dist/workspace/checks/records.js +35 -1
- package/dist/workspace/checks.d.ts +1 -0
- package/dist/workspace/checks.d.ts.map +1 -1
- package/dist/workspace/checks.js +2 -1
- package/dist/workspace/ci-green-forge.d.ts +2 -0
- package/dist/workspace/ci-green-forge.d.ts.map +1 -1
- package/dist/workspace/ci-green.d.ts +10 -0
- package/dist/workspace/ci-green.d.ts.map +1 -1
- package/dist/workspace/ci-green.js +14 -5
- package/dist/workspace/ci-run.d.ts +222 -0
- package/dist/workspace/ci-run.d.ts.map +1 -0
- package/dist/workspace/ci-run.js +464 -0
- package/dist/workspace/ci-serve.d.ts +214 -0
- package/dist/workspace/ci-serve.d.ts.map +1 -0
- package/dist/workspace/ci-serve.js +412 -0
- package/dist/workspace/declaration.d.ts +16 -0
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.js +26 -0
- package/dist/workspace/declaration.schema.json +64 -0
- package/dist/workspace/declared-kinds.d.ts +16 -0
- package/dist/workspace/declared-kinds.d.ts.map +1 -1
- package/dist/workspace/declared-kinds.js +25 -0
- package/dist/workspace/delivery-metrics.d.ts +91 -0
- package/dist/workspace/delivery-metrics.d.ts.map +1 -0
- package/dist/workspace/delivery-metrics.js +217 -0
- package/dist/workspace/delivery-metrics.schema.json +519 -0
- package/dist/workspace/flags-read.d.ts +37 -0
- package/dist/workspace/flags-read.d.ts.map +1 -0
- package/dist/workspace/flags-read.js +103 -0
- package/dist/workspace/flags.d.ts +100 -0
- package/dist/workspace/flags.d.ts.map +1 -0
- package/dist/workspace/flags.js +98 -0
- package/dist/workspace/graph-cli.js +1 -1
- package/dist/workspace/intent-cli.d.ts +11 -2
- package/dist/workspace/intent-cli.d.ts.map +1 -1
- package/dist/workspace/intent-cli.js +54 -5
- package/dist/workspace/intent-trace.d.ts +219 -0
- package/dist/workspace/intent-trace.d.ts.map +1 -0
- package/dist/workspace/intent-trace.js +314 -0
- package/dist/workspace/intent.d.ts +30 -6
- package/dist/workspace/intent.d.ts.map +1 -1
- package/dist/workspace/intent.js +141 -21
- package/dist/workspace/intent.schema.json +702 -6
- package/dist/workspace/overlap.d.ts +146 -0
- package/dist/workspace/overlap.d.ts.map +1 -0
- package/dist/workspace/overlap.js +276 -0
- package/dist/workspace/pr-report.schema.json +5 -0
- package/dist/workspace/reason-codes.d.ts +2 -0
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/reason-codes.js +3 -0
- package/dist/workspace/records.d.ts +15 -2
- package/dist/workspace/records.d.ts.map +1 -1
- package/dist/workspace/records.js +32 -0
- package/dist/workspace/records.schema.json +21 -2
- package/dist/workspace/reference-kinds/flag/flag.kind.mjs +32 -0
- package/dist/workspace/reference-kinds/flag/flag.schema.json +53 -0
- package/dist/workspace/releases.d.ts +9 -0
- package/dist/workspace/releases.d.ts.map +1 -1
- package/dist/workspace/releases.js +9 -0
- package/dist/workspace/releases.schema.json +123 -1
- package/dist/workspace/run-event.schema.json +24 -6
- package/dist/workspace/status-gates.d.ts +8 -0
- package/dist/workspace/status-gates.d.ts.map +1 -1
- package/dist/workspace/status-stewards.d.ts +2 -0
- package/dist/workspace/status-stewards.d.ts.map +1 -1
- package/dist/workspace/status-stewards.js +1 -0
- package/dist/workspace/status.d.ts +78 -0
- package/dist/workspace/status.d.ts.map +1 -1
- package/dist/workspace/status.js +170 -3
- package/dist/workspace/status.schema.json +210 -2
- package/dist/workspace/wip.d.ts.map +1 -1
- package/dist/workspace/wip.js +11 -3
- package/package.json +1 -1
- package/src/build-params.test.ts +46 -0
- package/src/build-params.ts +55 -1
- package/src/change-set-graph.ts +10 -2
- package/src/change-set.ts +14 -3
- package/src/cli/build-params-cli.ts +22 -9
- package/src/cli/commands/build.ts +6 -3
- package/src/cli/handlers/approve-release.test.ts +5 -1
- package/src/cli/handlers/approve-revoked.test.ts +155 -0
- package/src/cli/handlers/approve.ts +47 -0
- package/src/cli/handlers/build.test.ts +30 -0
- package/src/cli/handlers/build.ts +20 -4
- package/src/cli/handlers/fan-out.test.ts +262 -1
- package/src/cli/handlers/fan-out.ts +72 -8
- package/src/cli/handlers/intent-trace.e2e.test.ts +201 -0
- package/src/cli/handlers/lifecycle-gc.test.ts +126 -0
- package/src/cli/handlers/lifecycle-gc.ts +146 -0
- package/src/cli/handlers/pr.test.ts +148 -1
- package/src/cli/handlers/pr.ts +144 -28
- package/src/cli/handlers/promote.test.ts +280 -2
- package/src/cli/handlers/promote.ts +210 -34
- package/src/cli/handlers/release-implicit.e2e.test.ts +12 -4
- package/src/cli/handlers/release-join.e2e.test.ts +185 -0
- package/src/cli/handlers/release-publish-targets.e2e.test.ts +295 -0
- package/src/cli/handlers/release-verify.e2e.test.ts +117 -0
- package/src/cli/handlers/release-workstation-ci.e2e.test.ts +135 -0
- package/src/cli/handlers/release.e2e.test.ts +146 -32
- package/src/cli/handlers/release.ts +415 -28
- package/src/cli/handlers/run-auto-release.test.ts +9 -0
- package/src/cli/handlers/run-release.test.ts +55 -0
- package/src/cli/handlers/run.ts +69 -5
- package/src/cli/main.test.ts +1 -0
- package/src/cli/main.ts +91 -10
- package/src/cli/parse-args.ts +54 -2
- package/src/cli/registry.ts +32 -4
- package/src/cli/run-events.ts +5 -2
- package/src/components/auto-release.test.ts +9 -0
- package/src/components/auto-release.ts +3 -0
- package/src/components/capability.ts +9 -0
- package/src/components/driver.test.ts +24 -0
- package/src/components/driver.ts +36 -0
- package/src/components/fan-out-inputs.test.ts +85 -0
- package/src/components/fan-out-inputs.ts +192 -0
- package/src/components/fan-out-record.test.ts +10 -0
- package/src/components/fan-out-record.ts +19 -0
- package/src/components/fan-out-run.ts +48 -0
- package/src/components/fan-out.ts +4 -0
- package/src/components/pr-pipeline.ts +67 -4
- package/src/components/pr-run.test.ts +127 -0
- package/src/components/pr-run.ts +32 -12
- package/src/components/promote.ts +68 -2
- package/src/components/release-compile.ts +17 -3
- package/src/components/release-gate.ts +18 -4
- package/src/components/wave-plan.ts +45 -2
- package/src/config.ts +8 -0
- package/src/flag-params.test.ts +144 -0
- package/src/flag-params.ts +134 -0
- package/src/lifecycle/__fixtures__/publish-fakes.ts +351 -0
- package/src/lifecycle/change-set-store.ts +2 -1
- package/src/lifecycle/delivery-metrics.ts +263 -0
- package/src/lifecycle/deploy-outcome.ts +147 -0
- package/src/lifecycle/gate-change-set.ts +37 -6
- package/src/lifecycle/gate-ledger.ts +2 -2
- package/src/lifecycle/git.ts +61 -8
- package/src/lifecycle/index.ts +4 -0
- package/src/lifecycle/mixed-environment.test.ts +97 -0
- package/src/lifecycle/mixed-environment.ts +204 -0
- package/src/lifecycle/publish-attachments.ts +196 -0
- package/src/lifecycle/publish-credentials.ts +84 -0
- package/src/lifecycle/publish-declaration.ts +95 -0
- package/src/lifecycle/publish-forge.ts +325 -0
- package/src/lifecycle/publish-npm.ts +259 -0
- package/src/lifecycle/publish-oci.ts +396 -0
- package/src/lifecycle/publish-record.ts +113 -0
- package/src/lifecycle/publish-resume.test.ts +168 -0
- package/src/lifecycle/publish-targets.test.ts +494 -0
- package/src/lifecycle/publish-targets.ts +100 -0
- package/src/lifecycle/release-cut.test.ts +74 -2
- package/src/lifecycle/release-cut.ts +158 -22
- package/src/lifecycle/release-flag.test.ts +112 -0
- package/src/lifecycle/release-join.test.ts +68 -0
- package/src/lifecycle/release-join.ts +182 -0
- package/src/lifecycle/release-ledger.ts +9 -3
- package/src/lifecycle/release-publish.test.ts +225 -0
- package/src/lifecycle/release-publish.ts +568 -0
- package/src/lifecycle/release-revocation.ts +147 -0
- package/src/lifecycle/release-store.ts +15 -4
- package/src/lifecycle/release-verify.test.ts +110 -0
- package/src/lifecycle/release-verify.ts +120 -0
- package/src/lifecycle/release-workstation.test.ts +204 -0
- package/src/lifecycle/release-workstation.ts +216 -0
- package/src/lifecycle/retention-growth.e2e.test.ts +279 -0
- package/src/lifecycle/retention-policy.ts +63 -0
- package/src/lifecycle/retention.test.ts +363 -0
- package/src/lifecycle/retention.ts +508 -0
- package/src/lifecycle/run-ledger.ts +7 -1
- package/src/op/activities/activity-contracts.ts +1 -0
- package/src/op/activities/shell.ts +7 -1
- package/src/op/local-executor.ts +27 -4
- package/src/op/runtime.ts +42 -0
- package/src/plan-summary.test.ts +20 -0
- package/src/plan-summary.ts +8 -1
- package/src/pr-forge.test.ts +25 -0
- package/src/pr-forge.ts +62 -0
- package/src/pr-loop.test.ts +13 -1
- package/src/pr-loop.ts +41 -4
- package/src/pr-report-url.test.ts +131 -0
- package/src/pr-report-url.ts +209 -0
- package/src/provenance.ts +2 -2
- package/src/run-event-store.ts +63 -3
- package/src/run-event-stream.ts +8 -4
- package/src/run-event.ts +38 -1
- package/src/workspace/__fixtures__/flag-workspace.ts +132 -0
- package/src/workspace/__fixtures__/older-records/change-set-984534ea9.json +100 -0
- package/src/workspace/__fixtures__/older-records/older-records.json +326 -0
- package/src/workspace/change-set.schema.json +5 -1
- package/src/workspace/check.schema.json +4 -2
- package/src/workspace/checks/records.ts +35 -1
- package/src/workspace/checks.ts +2 -1
- package/src/workspace/ci-green-forge.ts +2 -0
- package/src/workspace/ci-green.ts +20 -5
- package/src/workspace/ci-run.test.ts +416 -0
- package/src/workspace/ci-run.ts +571 -0
- package/src/workspace/ci-serve.test.ts +268 -0
- package/src/workspace/ci-serve.ts +521 -0
- package/src/workspace/declaration.schema.json +64 -0
- package/src/workspace/declaration.test.ts +28 -0
- package/src/workspace/declaration.ts +38 -0
- package/src/workspace/declared-kinds.ts +40 -1
- package/src/workspace/delivery-metrics.schema.json +519 -0
- package/src/workspace/delivery-metrics.test.ts +236 -0
- package/src/workspace/delivery-metrics.ts +286 -0
- package/src/workspace/flags-read.ts +121 -0
- package/src/workspace/flags.test.ts +141 -0
- package/src/workspace/flags.ts +157 -0
- package/src/workspace/graph-cli.ts +1 -1
- package/src/workspace/intent-cli.ts +46 -5
- package/src/workspace/intent-trace.test.ts +173 -0
- package/src/workspace/intent-trace.ts +484 -0
- package/src/workspace/intent.schema.json +702 -6
- package/src/workspace/intent.ts +148 -25
- package/src/workspace/older-records.test.ts +412 -0
- package/src/workspace/overlap.test.ts +165 -0
- package/src/workspace/overlap.ts +340 -0
- package/src/workspace/pr-report.schema.json +5 -0
- package/src/workspace/read-contract.e2e.test.ts +2 -1
- package/src/workspace/reason-codes.test.ts +5 -0
- package/src/workspace/reason-codes.ts +3 -0
- package/src/workspace/record-assets.test.ts +2 -1
- package/src/workspace/records-contract.e2e.test.ts +2 -1
- package/src/workspace/records.schema.json +21 -2
- package/src/workspace/records.ts +36 -2
- package/src/workspace/reference-kinds/flag/flag.kind.mjs +32 -0
- package/src/workspace/reference-kinds/flag/flag.schema.json +53 -0
- package/src/workspace/releases.schema.json +123 -1
- package/src/workspace/releases.ts +11 -0
- package/src/workspace/run-event.schema.json +24 -6
- package/src/workspace/status-contract.test.ts +29 -0
- package/src/workspace/status-gates.ts +8 -0
- package/src/workspace/status-mixed.test.ts +152 -0
- package/src/workspace/status-revoked.test.ts +153 -0
- package/src/workspace/status-stewards.ts +3 -0
- package/src/workspace/status.schema.json +210 -2
- package/src/workspace/status.ts +254 -3
- package/src/workspace/wip.ts +11 -2
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The npm publish target (#4047): `npm publish` for each package the
|
|
3
|
+
* declaration lists, in the order it lists them, so a set of packages that
|
|
4
|
+
* depend on each other goes out dependencies first.
|
|
5
|
+
*
|
|
6
|
+
* Each package is a directory with a `package.json` or a `.tgz` that
|
|
7
|
+
* `npm pack` wrote, relative to the member.
|
|
8
|
+
*
|
|
9
|
+
* A publish is two steps (#4048), as chant's own releases are (#3903):
|
|
10
|
+
*
|
|
11
|
+
* - stage: for each package, `npm view <name>@<version> version` asks the
|
|
12
|
+
* registry whether it already holds the version, and when it does not,
|
|
13
|
+
*
|
|
14
|
+
* npm publish <package> --tag next [--registry <url>] [--access <access>] [--provenance]
|
|
15
|
+
*
|
|
16
|
+
* puts it out under the `next` dist-tag, where nothing that resolves
|
|
17
|
+
* `latest` or a range finds it. A version already there is not published
|
|
18
|
+
* again, so a stage run after a failure publishes only the rest.
|
|
19
|
+
* - reveal: `npm dist-tag add <name>@<version> latest` for each package in
|
|
20
|
+
* the declared order. The first package is the set's core: it moves first,
|
|
21
|
+
* so a consumer never resolves a new package whose new core is not `latest`
|
|
22
|
+
* yet. Order the list core first, then the packages that depend on it.
|
|
23
|
+
* `ctx.tag` names another tag to move in place of `latest`.
|
|
24
|
+
*
|
|
25
|
+
* `--provenance` is passed when the run has an OIDC token (`detectProvenance`
|
|
26
|
+
* in ./release-publish.ts), so a CI publish gets npm provenance, and npm's
|
|
27
|
+
* trusted publishing exchanges that token for its own. With that token, the
|
|
28
|
+
* reveal then checks what it published (#4049): in an empty directory it
|
|
29
|
+
* installs every package at its version with `npm install --ignore-scripts`
|
|
30
|
+
* and runs `npm audit signatures`, which fails on a package whose registry
|
|
31
|
+
* signature or provenance attestation does not verify. From a workstation
|
|
32
|
+
* there is no npm provenance, and the release's signature, which
|
|
33
|
+
* `chant release verify` checks, is the only provenance.
|
|
34
|
+
*
|
|
35
|
+
* Each package carries its SBOM (#4049): npm keeps no file beside a package,
|
|
36
|
+
* so the SBOM is a file at the package's root, the one `sbom` names or the
|
|
37
|
+
* first of `sbom.spdx.json`, `sbom.cdx.json`, `sbom.cyclonedx.json` it holds,
|
|
38
|
+
* such as `npm sbom` writes. A package with none is refused
|
|
39
|
+
* (`publish-sbom-missing`) unless the declaration says `sbom: false`. Moving a dist-tag over
|
|
40
|
+
* OIDC needs "Allow npm dist-tag" on the package's trusted-publisher record.
|
|
41
|
+
* npm makes the first version of a new package `latest` whatever tag it is
|
|
42
|
+
* published under, so a package's first release is visible when it stages.
|
|
43
|
+
*
|
|
44
|
+
* Credentials are npm's own. chant reads no npm token and writes no `.npmrc`:
|
|
45
|
+
* npm authenticates with the registry's `_authToken` in the user's or the
|
|
46
|
+
* CI's npm config (`actions/setup-node` writes one that reads
|
|
47
|
+
* `NODE_AUTH_TOKEN`), or by trusted publishing. npm runs with the run's
|
|
48
|
+
* environment, and everything it prints is redacted before chant prints it.
|
|
49
|
+
*/
|
|
50
|
+
import { execFileSync, spawn } from "node:child_process";
|
|
51
|
+
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
52
|
+
import { tmpdir } from "node:os";
|
|
53
|
+
import { join } from "node:path";
|
|
54
|
+
import { packageSbom } from "./publish-attachments.js";
|
|
55
|
+
import { checkReleaseDigest, fileDigest, isDir, memberFile, publishTargetKey } from "./publish-targets.js";
|
|
56
|
+
import { NPM_STAGE_TAG, PublishTargetError } from "./release-publish.js";
|
|
57
|
+
/** Read a package's name and version, from its directory or its packed `.tgz`, and find the SBOM it carries. */
|
|
58
|
+
function readPackage(ctx, path, sbom) {
|
|
59
|
+
const abs = memberFile(ctx.cwd, path);
|
|
60
|
+
let text;
|
|
61
|
+
let digest;
|
|
62
|
+
const directory = isDir(abs);
|
|
63
|
+
if (directory) {
|
|
64
|
+
try {
|
|
65
|
+
text = readFileSync(join(abs, "package.json"), "utf-8");
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
throw new PublishTargetError("publish-npm-not-a-package", `${path} has no package.json`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
digest = fileDigest(abs);
|
|
73
|
+
checkReleaseDigest(ctx.release, "asset", ctx.cwd, path, [digest]);
|
|
74
|
+
try {
|
|
75
|
+
text = execFileSync("tar", ["-xzOf", abs, "package/package.json"], { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] });
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
throw new PublishTargetError("publish-npm-not-a-package", `${path} is not a package tarball with package/package.json`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
let pkg;
|
|
82
|
+
try {
|
|
83
|
+
pkg = JSON.parse(text);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
throw new PublishTargetError("publish-npm-not-a-package", `${path}'s package.json is not JSON`);
|
|
87
|
+
}
|
|
88
|
+
if (typeof pkg.name !== "string" || typeof pkg.version !== "string") {
|
|
89
|
+
throw new PublishTargetError("publish-npm-not-a-package", `${path}'s package.json has no name and version`);
|
|
90
|
+
}
|
|
91
|
+
if (pkg.private === true) {
|
|
92
|
+
throw new PublishTargetError("publish-npm-private", `${pkg.name} (${path}) is private, and npm refuses to publish it`, "Remove it from release.publish, or remove private: true.");
|
|
93
|
+
}
|
|
94
|
+
const carried = packageSbom(abs, directory, path, pkg.name, sbom);
|
|
95
|
+
return { path, abs, name: pkg.name, version: pkg.version, ...(digest ? { digest } : {}), ...(carried ? { sbom: carried.file } : {}) };
|
|
96
|
+
}
|
|
97
|
+
/** The arguments of one `npm publish`, which stages under `tag`. */
|
|
98
|
+
export function npmPublishArgs(decl, abs, ctx, tag = NPM_STAGE_TAG) {
|
|
99
|
+
return [
|
|
100
|
+
"publish",
|
|
101
|
+
abs,
|
|
102
|
+
"--tag",
|
|
103
|
+
tag,
|
|
104
|
+
...(decl.registry ? ["--registry", decl.registry] : []),
|
|
105
|
+
...(decl.access ? ["--access", decl.access] : []),
|
|
106
|
+
...(ctx.provenance.oidc ? ["--provenance"] : []),
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
/** The arguments of the `npm dist-tag add` that reveals a staged version under `tag`. */
|
|
110
|
+
export function npmDistTagArgs(decl, name, version, tag) {
|
|
111
|
+
return ["dist-tag", "add", `${name}@${version}`, tag, ...(decl.registry ? ["--registry", decl.registry] : [])];
|
|
112
|
+
}
|
|
113
|
+
/** The arguments of the `npm install` that fetches the published packages into an empty directory for `npm audit signatures`. */
|
|
114
|
+
export function npmAuditInstallArgs(decl) {
|
|
115
|
+
return ["install", "--ignore-scripts", "--no-audit", "--no-fund", ...(decl.registry ? ["--registry", decl.registry] : [])];
|
|
116
|
+
}
|
|
117
|
+
/** The arguments of `npm audit signatures`. */
|
|
118
|
+
export function npmAuditSignaturesArgs(decl) {
|
|
119
|
+
return ["audit", "signatures", ...(decl.registry ? ["--registry", decl.registry] : [])];
|
|
120
|
+
}
|
|
121
|
+
function run(bin, args, ctx, cwd = ctx.cwd) {
|
|
122
|
+
return new Promise((resolvePromise, reject) => {
|
|
123
|
+
const child = spawn(bin, args, { cwd, env: ctx.env, stdio: ["ignore", "pipe", "pipe"] });
|
|
124
|
+
const output = [];
|
|
125
|
+
let partial = { out: "", err: "" };
|
|
126
|
+
const take = (key) => (chunk) => {
|
|
127
|
+
const text = partial[key] + chunk.toString("utf-8");
|
|
128
|
+
const lines = text.split("\n");
|
|
129
|
+
partial = { ...partial, [key]: lines.pop() ?? "" };
|
|
130
|
+
for (const l of lines)
|
|
131
|
+
if (l.trim() !== "")
|
|
132
|
+
output.push(ctx.redactor.redact(l));
|
|
133
|
+
};
|
|
134
|
+
child.stdout.on("data", take("out"));
|
|
135
|
+
child.stderr.on("data", take("err"));
|
|
136
|
+
child.on("error", reject);
|
|
137
|
+
child.on("close", (code) => {
|
|
138
|
+
for (const l of [partial.out, partial.err])
|
|
139
|
+
if (l.trim() !== "")
|
|
140
|
+
output.push(ctx.redactor.redact(l));
|
|
141
|
+
resolvePromise({ code: code ?? 1, output });
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
export function npmTarget(decl, deps) {
|
|
146
|
+
const bin = deps.npm ?? "npm";
|
|
147
|
+
const registry = decl.registry ?? "the registry npm's config names";
|
|
148
|
+
const shown = (tag) => `${registry}, dist-tag ${tag}`;
|
|
149
|
+
const revealTag = (ctx) => ctx.tag ?? "latest";
|
|
150
|
+
const npm = async (ctx, args, cwd) => {
|
|
151
|
+
try {
|
|
152
|
+
return await run(bin, args, ctx, cwd);
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
throw new PublishTargetError("publish-npm-failed", ctx.redactor.redact(`npm could not be run: ${err instanceof Error ? err.message : String(err)}`), "Install npm, or put it on PATH.");
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
/** Whether the registry already holds the version. A failed lookup reads as no, and the publish that follows says why. */
|
|
159
|
+
const onRegistry = async (ctx, pkg) => {
|
|
160
|
+
const r = await npm(ctx, ["view", `${pkg.name}@${pkg.version}`, "version", ...(decl.registry ? ["--registry", decl.registry] : [])]);
|
|
161
|
+
return r.code === 0 && r.output.some((l) => l.trim() === pkg.version || l.trim() === JSON.stringify(pkg.version));
|
|
162
|
+
};
|
|
163
|
+
const read = (ctx) => decl.packages.map((p) => readPackage(ctx, p, decl.sbom));
|
|
164
|
+
const extra = (pkg) => ({ ...(pkg.digest ? { digest: pkg.digest } : {}), ...(pkg.sbom ? { sbom: pkg.sbom } : {}) });
|
|
165
|
+
const plan = async (ctx) => read(ctx).map((pkg) => ({ name: `${pkg.name}@${pkg.version}`, destination: `${shown(NPM_STAGE_TAG)}, then ${revealTag(ctx)}`, ...extra(pkg) }));
|
|
166
|
+
/**
|
|
167
|
+
* In CI, install what was published into an empty directory and run
|
|
168
|
+
* `npm audit signatures` there (#4049), which checks each package's
|
|
169
|
+
* registry signature and provenance attestation.
|
|
170
|
+
*/
|
|
171
|
+
const audit = async (ctx, pkgs) => {
|
|
172
|
+
const dir = mkdtempSync(join(tmpdir(), "chant-npm-audit-"));
|
|
173
|
+
try {
|
|
174
|
+
const dependencies = Object.fromEntries(pkgs.map((p) => [p.name, p.version]));
|
|
175
|
+
writeFileSync(join(dir, "package.json"), `${JSON.stringify({ name: "chant-publish-audit", version: "0.0.0", private: true, dependencies }, null, 2)}\n`);
|
|
176
|
+
for (const args of [npmAuditInstallArgs(decl), npmAuditSignaturesArgs(decl)]) {
|
|
177
|
+
ctx.log(`npm ${args.join(" ")}`);
|
|
178
|
+
const result = await npm(ctx, args, dir);
|
|
179
|
+
for (const line of result.output)
|
|
180
|
+
ctx.log(` ${line}`);
|
|
181
|
+
if (result.code !== 0) {
|
|
182
|
+
throw new PublishTargetError("publish-npm-audit-failed", `npm ${args.slice(0, 2).join(" ")} exited ${result.code} for ${pkgs.map((p) => `${p.name}@${p.version}`).join(", ")}, after latest moved: ${result.output.at(-1) ?? "npm printed nothing"}`, "Each package was published; check its signature and provenance on the registry. Running the publish again moves no tag that moved and audits again.");
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
rmSync(dir, { recursive: true, force: true });
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
return {
|
|
191
|
+
kind: "npm",
|
|
192
|
+
name: `npm (${decl.packages.length} package${decl.packages.length === 1 ? "" : "s"})`,
|
|
193
|
+
destination: `npm ${registry}`,
|
|
194
|
+
credentialEnv: [],
|
|
195
|
+
key: publishTargetKey(decl),
|
|
196
|
+
plan,
|
|
197
|
+
async stage(ctx) {
|
|
198
|
+
const pkgs = read(ctx);
|
|
199
|
+
const items = [];
|
|
200
|
+
for (const pkg of pkgs) {
|
|
201
|
+
const item = { name: `${pkg.name}@${pkg.version}`, destination: shown(NPM_STAGE_TAG), ...extra(pkg) };
|
|
202
|
+
if (await onRegistry(ctx, pkg)) {
|
|
203
|
+
ctx.log(`${item.name} is already on the registry; not published again`);
|
|
204
|
+
items.push({ ...item, present: true });
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
const args = npmPublishArgs(decl, pkg.abs, ctx);
|
|
208
|
+
ctx.log(`npm publish ${pkg.path} ${args.slice(2).join(" ")}`);
|
|
209
|
+
const result = await npm(ctx, args);
|
|
210
|
+
for (const line of result.output)
|
|
211
|
+
ctx.log(` ${line}`);
|
|
212
|
+
if (result.code !== 0) {
|
|
213
|
+
const done = items.map((i) => i.name);
|
|
214
|
+
throw new PublishTargetError("publish-npm-failed", `npm publish of ${item.name} exited ${result.code}${done.length > 0 ? `, after ${done.join(", ")} were staged under ${NPM_STAGE_TAG}` : ", before any package was staged"}: ${result.output.at(-1) ?? "npm printed nothing"}`);
|
|
215
|
+
}
|
|
216
|
+
items.push(item);
|
|
217
|
+
}
|
|
218
|
+
return { target: this.name, destination: this.destination, items, state: {} };
|
|
219
|
+
},
|
|
220
|
+
async reveal(ctx) {
|
|
221
|
+
const tag = revealTag(ctx);
|
|
222
|
+
const pkgs = read(ctx);
|
|
223
|
+
const items = [];
|
|
224
|
+
// The declared order: the first package is the set's core, and its tag moves first.
|
|
225
|
+
for (const pkg of pkgs) {
|
|
226
|
+
const args = npmDistTagArgs(decl, pkg.name, pkg.version, tag);
|
|
227
|
+
ctx.log(`npm ${args.join(" ")}`);
|
|
228
|
+
const result = await npm(ctx, args);
|
|
229
|
+
for (const line of result.output)
|
|
230
|
+
ctx.log(` ${line}`);
|
|
231
|
+
if (result.code !== 0) {
|
|
232
|
+
const moved = items.map((i) => i.name);
|
|
233
|
+
throw new PublishTargetError("publish-npm-tag-failed", `npm dist-tag add ${pkg.name}@${pkg.version} ${tag} exited ${result.code}${moved.length > 0 ? `, after ${tag} moved for ${moved.join(", ")}` : `, before ${tag} moved for any package`}: ${result.output.at(-1) ?? "npm printed nothing"}`, `Moving a dist-tag needs npm credentials that may change dist-tags; over OIDC that is "Allow npm dist-tag" on the package's trusted-publisher record.`);
|
|
234
|
+
}
|
|
235
|
+
items.push({ name: `${pkg.name}@${pkg.version}`, destination: shown(tag), ...extra(pkg) });
|
|
236
|
+
}
|
|
237
|
+
if (ctx.provenance.oidc)
|
|
238
|
+
await audit(ctx, pkgs);
|
|
239
|
+
return { target: this.name, destination: this.destination, items };
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The OCI publish target (#4047): an image pushed to an OCI registry, such
|
|
3
|
+
* as GHCR or Docker Hub, by digest, then tagged.
|
|
4
|
+
*
|
|
5
|
+
* The image is an OCI image layout (`index.json` and `blobs/`), as a
|
|
6
|
+
* directory or a tar file such as `docker save` writes. Its `index.json`
|
|
7
|
+
* names one manifest: an image manifest, or an index of them. The target
|
|
8
|
+
* speaks the registry HTTP API (the OCI distribution spec) through an
|
|
9
|
+
* injectable `fetch`, so it needs no docker, crane or oras, and the tests
|
|
10
|
+
* run it against a registry fake on 127.0.0.1. A publish is two steps
|
|
11
|
+
* (#4048). The stage pushes by digest only: for each image manifest it
|
|
12
|
+
* uploads the config and layers the registry does not hold yet, then puts
|
|
13
|
+
* the manifest by its digest, then the index when there is one. A registry
|
|
14
|
+
* that already holds the top manifest's digest is sent nothing. Every blob
|
|
15
|
+
* is checked against its digest before it is sent. Nothing a consumer pulls
|
|
16
|
+
* by tag changes until the reveal, which points each tag at that digest.
|
|
17
|
+
*
|
|
18
|
+
* The stage also pushes, by digest, two referrers of the image (#4049): its
|
|
19
|
+
* SBOM and the release's provenance statement (./publish-attachments.ts),
|
|
20
|
+
* each an OCI artifact manifest whose `subject` is the image, so a registry
|
|
21
|
+
* with the referrers API lists them under the image's digest and `oras
|
|
22
|
+
* discover` or `cosign tree` finds them. A referrer the registry already
|
|
23
|
+
* holds is not pushed again.
|
|
24
|
+
*
|
|
25
|
+
* Credentials come from `usernameEnv` and `passwordEnv` (default
|
|
26
|
+
* `OCI_USERNAME`, `OCI_PASSWORD`), or else from the `auths` entry for the
|
|
27
|
+
* registry in the docker config file (`$DOCKER_CONFIG/config.json` or
|
|
28
|
+
* `~/.docker/config.json`), which `docker login` writes; a credential helper
|
|
29
|
+
* (`credsStore`) is not read. With none, the push is anonymous. The registry
|
|
30
|
+
* decides how they are used: a `Basic` challenge takes them as they are, and
|
|
31
|
+
* a `Bearer` challenge (GHCR, Docker Hub) exchanges them for a token at the
|
|
32
|
+
* realm it names. The password and the token are masked in all output.
|
|
33
|
+
*
|
|
34
|
+
* A host of `localhost`, `127.0.0.1` or `[::1]` is spoken to over http, as
|
|
35
|
+
* docker does; any other over https. `docker.io` is `registry-1.docker.io`,
|
|
36
|
+
* and a one-part Docker Hub name is under `library/`.
|
|
37
|
+
*/
|
|
38
|
+
import { type Attachment } from "./publish-attachments.js";
|
|
39
|
+
import type { OciPublishDeclaration } from "./publish-declaration.js";
|
|
40
|
+
import { type PublishContext, type PublishDeps, type PublishTarget } from "./release-publish.js";
|
|
41
|
+
/** A repository reference split into where the registry is and the name in it. */
|
|
42
|
+
export interface OciRepository {
|
|
43
|
+
/** The host as written, used to find docker config credentials. */
|
|
44
|
+
host: string;
|
|
45
|
+
/** `http(s)://<host>` the API is under. */
|
|
46
|
+
base: string;
|
|
47
|
+
/** The repository's name in the registry. */
|
|
48
|
+
name: string;
|
|
49
|
+
}
|
|
50
|
+
export declare function parseRepository(repository: string): OciRepository;
|
|
51
|
+
/**
|
|
52
|
+
* The artifact manifest that attaches `a` to the image `subject` (OCI image
|
|
53
|
+
* spec 1.1): `artifactType` is the file's media type, the config is the empty
|
|
54
|
+
* descriptor, the one layer is the file, and `subject` is the image.
|
|
55
|
+
*/
|
|
56
|
+
export declare function referrerManifest(a: Attachment, subject: {
|
|
57
|
+
mediaType: string;
|
|
58
|
+
digest: string;
|
|
59
|
+
size: number;
|
|
60
|
+
}): Uint8Array;
|
|
61
|
+
/** The tags to point at the digest: the context's tag when set, else the declared ones with `{label}` filled in. */
|
|
62
|
+
export declare function ociTags(decl: OciPublishDeclaration, ctx: Pick<PublishContext, "tag" | "label">): string[];
|
|
63
|
+
export declare function ociTarget(decl: OciPublishDeclaration, deps: PublishDeps): PublishTarget;
|
|
64
|
+
//# sourceMappingURL=publish-oci.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-oci.d.ts","sourceRoot":"","sources":["../../src/lifecycle/publish-oci.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,WAAW,EAAuC,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvJ,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAajE;AAgMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAWxH;AAED,oHAAoH;AACpH,wBAAgB,OAAO,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,MAAM,EAAE,CAIzG;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,WAAW,GAAG,aAAa,CAyGvF"}
|