@astrale-os/sdk 0.6.0-beta.2 → 0.6.0-beta.21
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/README.md +74 -14
- package/dist/application/action/action.d.ts +6 -0
- package/dist/application/action/authoring.d.ts +1 -1
- package/dist/application/action/context.d.ts +17 -8
- package/dist/application/action/define.d.ts +3 -3
- package/dist/application/action/index.d.ts +1 -1
- package/dist/application/define.d.ts +5 -5
- package/dist/application/define.js +13 -13
- package/dist/application/dependency/index.d.ts +1 -1
- package/dist/application/dependency/invoker.d.ts +11 -6
- package/dist/application/domain.d.ts +28 -0
- package/dist/application/index.d.ts +3 -3
- package/dist/application/index.js +1 -1
- package/dist/application/mutation/authoring/properties.d.ts +5 -3
- package/dist/application/mutation/authoring/properties.js +35 -2
- package/dist/application/mutation/authoring/transition.js +4 -1
- package/dist/application/routes/admission.d.ts +2 -2
- package/dist/application/routes/admission.js +1 -1
- package/dist/application/routes/route.d.ts +2 -2
- package/dist/application/runtime/actions.js +3 -0
- package/dist/application/runtime/workflows.d.ts +2 -0
- package/dist/application/runtime/workflows.js +5 -0
- package/dist/application/workflow/authoring.d.ts +3 -2
- package/dist/application/workflow/context.d.ts +8 -2
- package/dist/application/workflow/define.d.ts +3 -3
- package/dist/application/workflow/define.js +19 -3
- package/dist/application/workflow/durable.d.ts +83 -0
- package/dist/application/workflow/index.d.ts +3 -2
- package/dist/application/workflow/runner/inline.js +3 -4
- package/dist/application/workflow/runner/runner.d.ts +2 -2
- package/dist/application/workflow/step/output.d.ts +2 -0
- package/dist/application/workflow/step/output.js +73 -0
- package/dist/application/workflow/workflow.d.ts +12 -0
- package/dist/deployment/adapter/adapter.d.ts +59 -11
- package/dist/deployment/adapter/bundle/bundle.d.ts +36 -0
- package/dist/deployment/adapter/bundle/file.d.ts +10 -0
- package/dist/deployment/adapter/bundle/index.d.ts +2 -0
- package/dist/deployment/adapter/define.d.ts +25 -3
- package/dist/deployment/adapter/define.js +101 -24
- package/dist/deployment/adapter/index.d.ts +6 -3
- package/dist/deployment/adapter/index.js +1 -0
- package/dist/deployment/adapter/legacy/adapter.d.ts +40 -0
- package/dist/deployment/adapter/{deploy → legacy/deploy}/context.d.ts +6 -2
- package/dist/deployment/adapter/legacy/deploy/index.d.ts +2 -0
- package/dist/deployment/adapter/legacy/deploy/index.js +1 -0
- package/dist/deployment/adapter/legacy/deploy/result.d.ts +89 -0
- package/dist/deployment/adapter/legacy/deploy/result.js +1 -0
- package/dist/deployment/adapter/legacy/index.d.ts +24 -0
- package/dist/deployment/adapter/legacy/index.js +1 -0
- package/dist/deployment/adapter/legacy/prepare/artifact.d.ts +43 -0
- package/dist/deployment/adapter/legacy/prepare/artifact.js +1 -0
- package/dist/deployment/adapter/legacy/prepare/context.d.ts +33 -0
- package/dist/deployment/adapter/legacy/prepare/context.js +1 -0
- package/dist/deployment/adapter/legacy/prepare/index.d.ts +2 -0
- package/dist/deployment/adapter/legacy/prepare/index.js +1 -0
- package/dist/deployment/adapter/release/context.d.ts +95 -0
- package/dist/deployment/adapter/release/context.js +1 -0
- package/dist/deployment/adapter/release/index.d.ts +3 -0
- package/dist/deployment/adapter/release/index.js +1 -0
- package/dist/deployment/adapter/release/list.d.ts +53 -0
- package/dist/deployment/adapter/release/list.js +1 -0
- package/dist/deployment/adapter/release/refusal.d.ts +10 -0
- package/dist/deployment/adapter/release/refusal.js +14 -0
- package/dist/deployment/adapter/release/result.d.ts +56 -0
- package/dist/deployment/adapter/release/result.js +1 -0
- package/dist/deployment/address/configuration.d.ts +83 -0
- package/dist/deployment/address/configuration.js +262 -0
- package/dist/deployment/address/fingerprint.d.ts +5 -0
- package/dist/deployment/address/fingerprint.js +27 -0
- package/dist/deployment/address/index.d.ts +5 -0
- package/dist/deployment/address/index.js +5 -0
- package/dist/deployment/address/label.d.ts +42 -0
- package/dist/deployment/address/label.js +80 -0
- package/dist/deployment/address/line.d.ts +29 -0
- package/dist/deployment/address/line.js +53 -0
- package/dist/deployment/address/record.d.ts +52 -0
- package/dist/deployment/address/record.js +104 -0
- package/dist/deployment/address/summary.d.ts +57 -0
- package/dist/deployment/address/summary.js +117 -0
- package/dist/deployment/address/vectors.d.ts +60 -0
- package/dist/deployment/address/vectors.js +517 -0
- package/dist/deployment/build/build.d.ts +2 -2
- package/dist/deployment/build/compile.d.ts +4 -4
- package/dist/deployment/build/compile.js +17 -17
- package/dist/deployment/build/index.d.ts +1 -0
- package/dist/deployment/build/index.js +1 -0
- package/dist/deployment/build/manifest.d.ts +59 -0
- package/dist/deployment/build/manifest.js +118 -0
- package/dist/deployment/build/material.js +2 -2
- package/dist/deployment/build/schema.d.ts +2 -2
- package/dist/deployment/deploy.d.ts +10 -10
- package/dist/deployment/deploy.js +3 -3
- package/dist/deployment/deployment.d.ts +9 -4
- package/dist/deployment/environment.d.ts +6 -0
- package/dist/deployment/environment.js +6 -0
- package/dist/deployment/index.d.ts +4 -4
- package/dist/deployment/index.js +1 -1
- package/dist/deployment/release/addressing.d.ts +9 -1
- package/dist/deployment/release/assemble.d.ts +6 -3
- package/dist/deployment/release/assemble.js +12 -10
- package/dist/deployment/release/index.d.ts +2 -0
- package/dist/deployment/release/index.js +2 -0
- package/dist/deployment/release/legacy/admission.d.ts +3 -0
- package/dist/deployment/release/legacy/admission.js +8 -0
- package/dist/deployment/release/legacy/assemble.d.ts +5 -0
- package/dist/deployment/release/legacy/assemble.js +20 -0
- package/dist/deployment/release/legacy/index.d.ts +35 -0
- package/dist/deployment/release/legacy/index.js +34 -0
- package/dist/deployment/release/legacy/release.d.ts +12 -0
- package/dist/deployment/release/legacy/release.js +1 -0
- package/dist/deployment/release/{publication → legacy}/seal.d.ts +3 -3
- package/dist/deployment/release/legacy/seal.js +17 -0
- package/dist/deployment/release/release.d.ts +16 -5
- package/dist/deployment/release/runtime.d.ts +2 -0
- package/dist/deployment/release/runtime.js +2 -0
- package/dist/deployment/release/seal.d.ts +14 -0
- package/dist/deployment/release/seal.js +22 -0
- package/dist/deployment/release/{publication → served}/callables.d.ts +2 -2
- package/dist/deployment/release/{publication → served}/callables.js +2 -2
- package/dist/deployment/release/served/index.d.ts +12 -0
- package/dist/deployment/release/served/index.js +22 -0
- package/dist/deployment/release/{publication → served}/views.d.ts +2 -2
- package/dist/deployment/runtime/admission.d.ts +2 -2
- package/dist/deployment/runtime/admission.js +5 -5
- package/dist/deployment/verify/index.d.ts +2 -1
- package/dist/deployment/verify/index.js +1 -0
- package/dist/deployment/verify/preflight/artifact.d.ts +1 -1
- package/dist/deployment/verify/preflight/bundle.d.ts +18 -0
- package/dist/deployment/verify/preflight/bundle.js +71 -0
- package/dist/deployment/verify/preflight/index.d.ts +2 -1
- package/dist/deployment/verify/preflight/index.js +1 -0
- package/dist/deployment/verify/preflight/publication.d.ts +2 -2
- package/dist/deployment/verify/preflight/publication.js +4 -3
- package/dist/deployment/verify/readiness/deployment.js +7 -15
- package/dist/deployment/verify/readiness/fetch.d.ts +13 -0
- package/dist/deployment/verify/readiness/fetch.js +26 -0
- package/dist/deployment/verify/readiness/identity.d.ts +3 -6
- package/dist/deployment/verify/readiness/identity.js +3 -3
- package/dist/deployment/verify/readiness/index.d.ts +11 -7
- package/dist/deployment/verify/readiness/index.js +15 -4
- package/dist/deployment/verify/readiness/legacy/index.d.ts +2 -0
- package/dist/deployment/verify/readiness/legacy/index.js +2 -0
- package/dist/deployment/verify/readiness/legacy/publication.d.ts +12 -0
- package/dist/deployment/verify/readiness/legacy/publication.js +23 -0
- package/dist/deployment/verify/readiness/release.d.ts +8 -0
- package/dist/deployment/verify/readiness/release.js +22 -0
- package/dist/execution/identity/authentication.d.ts +23 -2
- package/dist/execution/identity/authentication.js +64 -40
- package/dist/execution/identity/callback.d.ts +16 -15
- package/dist/execution/identity/callback.js +21 -16
- package/dist/execution/identity/delivery.d.ts +11 -4
- package/dist/execution/identity/delivery.js +47 -20
- package/dist/execution/identity/identity.d.ts +18 -3
- package/dist/execution/identity/identity.js +8 -4
- package/dist/execution/identity/jwks.js +57 -12
- package/dist/execution/index.d.ts +4 -2
- package/dist/execution/index.js +2 -1
- package/dist/execution/invocation/admission/authentication.d.ts +3 -8
- package/dist/execution/invocation/admission/authentication.js +10 -24
- package/dist/execution/invocation/admission/authority.d.ts +15 -8
- package/dist/execution/invocation/admission/authority.js +5 -0
- package/dist/execution/invocation/admission/input.d.ts +2 -2
- package/dist/execution/invocation/admission/input.js +16 -2
- package/dist/execution/invocation/dependency/bind.d.ts +1 -1
- package/dist/execution/invocation/dependency/bind.js +35 -14
- package/dist/execution/invocation/dispatch/context.d.ts +2 -1
- package/dist/execution/invocation/dispatch/context.js +1 -1
- package/dist/execution/invocation/invocation.js +58 -16
- package/dist/execution/invocation/result/project.js +41 -1
- package/dist/execution/node/serve.d.ts +2 -2
- package/dist/execution/node/serve.js +1 -1
- package/dist/execution/runtime/index.d.ts +1 -0
- package/dist/execution/runtime/index.js +1 -0
- package/dist/execution/runtime/load.d.ts +3 -3
- package/dist/execution/runtime/load.js +3 -2
- package/dist/execution/runtime/release.d.ts +22 -0
- package/dist/execution/runtime/release.js +14 -0
- package/dist/execution/serve.d.ts +10 -4
- package/dist/execution/serve.js +3 -0
- package/dist/execution/service/create.js +39 -7
- package/dist/execution/service/initialization.d.ts +4 -4
- package/dist/execution/service/initialization.js +23 -14
- package/dist/execution/service/release.d.ts +2 -2
- package/dist/execution/service/release.js +3 -2
- package/dist/execution/service/service.d.ts +15 -5
- package/dist/execution/service/serving/delivery.d.ts +6 -0
- package/dist/execution/service/{publication → serving}/delivery.js +5 -1
- package/dist/execution/service/{publication → serving}/index.d.ts +1 -1
- package/dist/execution/service/serving/installation.d.ts +4 -0
- package/dist/execution/service/serving/installation.js +9 -0
- package/dist/execution/service/serving/legacy/index.d.ts +15 -0
- package/dist/execution/service/serving/legacy/index.js +19 -0
- package/dist/execution/service/serving/source.d.ts +18 -0
- package/dist/execution/service/serving/source.js +19 -0
- package/dist/execution/workflows/discovery.d.ts +14 -0
- package/dist/execution/workflows/discovery.js +151 -0
- package/dist/execution/workflows/engine.d.ts +52 -0
- package/dist/execution/workflows/engine.js +1 -0
- package/dist/execution/workflows/envelope.d.ts +12 -0
- package/dist/execution/workflows/envelope.js +46 -0
- package/dist/execution/workflows/failure.d.ts +11 -0
- package/dist/execution/workflows/failure.js +43 -0
- package/dist/execution/workflows/index.d.ts +4 -0
- package/dist/execution/workflows/index.js +3 -0
- package/dist/execution/workflows/options.d.ts +40 -0
- package/dist/execution/workflows/options.js +83 -0
- package/dist/execution/workflows/receiver.d.ts +22 -0
- package/dist/execution/workflows/receiver.js +99 -0
- package/dist/execution/workflows/route.d.ts +14 -0
- package/dist/execution/workflows/route.js +40 -0
- package/dist/execution/workflows/run.d.ts +22 -0
- package/dist/execution/workflows/run.js +211 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/platform/release/index.d.ts +27 -0
- package/dist/platform/release/index.js +27 -0
- package/dist/platform/schema/index.d.ts +2 -1
- package/dist/platform/schema/property-input.d.ts +15 -0
- package/dist/platform/schema/property-input.js +1 -0
- package/dist/platform/schema/property.d.ts +5 -0
- package/dist/platform/versioning/dependents.d.ts +18 -0
- package/dist/platform/versioning/dependents.js +15 -0
- package/dist/platform/versioning/index.d.ts +5 -0
- package/dist/platform/versioning/index.js +5 -0
- package/dist/platform/versioning/name.d.ts +38 -0
- package/dist/platform/versioning/name.js +58 -0
- package/dist/platform/versioning/reference.d.ts +48 -0
- package/dist/platform/versioning/reference.js +95 -0
- package/dist/platform/versioning/version.d.ts +72 -0
- package/dist/platform/versioning/version.js +98 -0
- package/dist/project/admit.js +2 -2
- package/dist/project/define.d.ts +4 -4
- package/dist/project/define.js +55 -35
- package/dist/project/index.d.ts +1 -1
- package/dist/project/install-command.d.ts +10 -0
- package/dist/project/install-command.js +13 -0
- package/dist/project/project.d.ts +10 -8
- package/dist/testing/dataset/builder.d.ts +3 -3
- package/dist/testing/dataset/define.d.ts +1 -1
- package/dist/testing/load.js +1 -1
- package/dist/tooling/cli/arguments.d.ts +10 -5
- package/dist/tooling/cli/arguments.js +123 -52
- package/dist/tooling/cli/build.d.ts +55 -0
- package/dist/tooling/cli/build.js +77 -0
- package/dist/tooling/cli/bun.d.ts +0 -1
- package/dist/tooling/cli/bun.js +0 -7
- package/dist/tooling/cli/commit.d.ts +35 -0
- package/dist/tooling/cli/commit.js +235 -0
- package/dist/tooling/cli/deploy-mode.d.ts +82 -0
- package/dist/tooling/cli/deploy-mode.js +135 -0
- package/dist/tooling/cli/deploy-result.d.ts +85 -0
- package/dist/tooling/cli/deploy-result.js +64 -0
- package/dist/tooling/cli/diff/declared.d.ts +7 -0
- package/dist/tooling/cli/diff/declared.js +27 -0
- package/dist/tooling/cli/diff/index.d.ts +30 -0
- package/dist/tooling/cli/diff/index.js +58 -0
- package/dist/tooling/cli/diff/render.d.ts +15 -0
- package/dist/tooling/cli/diff/render.js +131 -0
- package/dist/tooling/cli/diff/report.d.ts +88 -0
- package/dist/tooling/cli/diff/report.js +154 -0
- package/dist/tooling/cli/dotenv.d.ts +2 -2
- package/dist/tooling/cli/dotenv.js +3 -33
- package/dist/tooling/cli/help.js +176 -59
- package/dist/tooling/cli/immutable-deployment.d.ts +83 -0
- package/dist/tooling/cli/immutable-deployment.js +135 -0
- package/dist/tooling/cli/index.d.ts +10 -4
- package/dist/tooling/cli/index.js +5 -3
- package/dist/tooling/cli/installed-on.d.ts +83 -0
- package/dist/tooling/cli/installed-on.js +156 -0
- package/dist/tooling/cli/legacy/deploy-result.d.ts +28 -0
- package/dist/tooling/cli/legacy/deploy-result.js +37 -0
- package/dist/tooling/cli/legacy/stable-target-adapter.d.ts +21 -0
- package/dist/tooling/cli/legacy/stable-target-adapter.js +14 -0
- package/dist/tooling/cli/legacy/stable-target-deploy.d.ts +40 -0
- package/dist/tooling/cli/legacy/stable-target-deploy.js +102 -0
- package/dist/tooling/cli/legacy/uploaded-build.d.ts +11 -0
- package/dist/tooling/cli/legacy/uploaded-build.js +22 -0
- package/dist/tooling/cli/list.d.ts +154 -0
- package/dist/tooling/cli/list.js +381 -0
- package/dist/tooling/cli/log.d.ts +5 -0
- package/dist/tooling/cli/log.js +9 -0
- package/dist/tooling/cli/orchestrate.d.ts +0 -6
- package/dist/tooling/cli/orchestrate.js +236 -88
- package/dist/tooling/cli/project.d.ts +3 -3
- package/dist/tooling/cli/publish/index.d.ts +73 -0
- package/dist/tooling/cli/publish/index.js +346 -0
- package/dist/tooling/cli/publish/report.d.ts +49 -0
- package/dist/tooling/cli/publish/report.js +15 -0
- package/dist/tooling/cli/registry/client.d.ts +114 -0
- package/dist/tooling/cli/registry/client.js +346 -0
- package/dist/tooling/cli/registry/error.d.ts +11 -0
- package/dist/tooling/cli/registry/error.js +17 -0
- package/dist/tooling/cli/registry/executable.d.ts +29 -0
- package/dist/tooling/cli/registry/executable.js +90 -0
- package/dist/tooling/cli/registry/index.d.ts +9 -0
- package/dist/tooling/cli/registry/index.js +8 -0
- package/dist/tooling/cli/registry/installations.d.ts +67 -0
- package/dist/tooling/cli/registry/installations.js +108 -0
- package/dist/tooling/cli/registry/process.d.ts +36 -0
- package/dist/tooling/cli/registry/process.js +119 -0
- package/dist/tooling/cli/secrets.d.ts +9 -0
- package/dist/tooling/cli/secrets.js +19 -0
- package/dist/tooling/cli/yank.d.ts +34 -0
- package/dist/tooling/cli/yank.js +32 -0
- package/dist/tooling/linter/implementations/source/callable-requirements.d.ts +1 -1
- package/dist/tooling/linter/implementations/source/callable-requirements.js +10 -10
- package/dist/tooling/linter/implementations/source/dependencies.js +12 -10
- package/dist/tooling/linter/implementations/source/global.js +1 -1
- package/dist/tooling/linter/implementations/source/mutations.js +17 -17
- package/dist/tooling/linter/implementations/source/providers.js +5 -5
- package/dist/tooling/linter/implementations/source/views.js +2 -2
- package/dist/tooling/linter/policy/generated.js +16 -16
- package/dist/tooling/packaging/declarations/ownership.js +1 -1
- package/dist/tooling/packaging/finalize.d.ts +1 -1
- package/dist/tooling/packaging/finalize.js +1 -1
- package/package.json +32 -11
- package/dist/application/application.d.ts +0 -28
- package/dist/deployment/adapter/deploy/index.d.ts +0 -2
- package/dist/deployment/adapter/deploy/result.d.ts +0 -50
- package/dist/deployment/adapter/prepare/artifact.d.ts +0 -33
- package/dist/deployment/adapter/prepare/context.d.ts +0 -23
- package/dist/deployment/adapter/prepare/index.d.ts +0 -2
- package/dist/deployment/release/publication/index.d.ts +0 -6
- package/dist/deployment/release/publication/index.js +0 -6
- package/dist/deployment/release/publication/manifest.d.ts +0 -3
- package/dist/deployment/release/publication/manifest.js +0 -5
- package/dist/deployment/release/publication/requirements.d.ts +0 -3
- package/dist/deployment/release/publication/requirements.js +0 -3
- package/dist/deployment/release/publication/seal.js +0 -39
- package/dist/deployment/verify/readiness/publication.d.ts +0 -11
- package/dist/deployment/verify/readiness/publication.js +0 -41
- package/dist/execution/service/publication/delivery.d.ts +0 -2
- package/dist/execution/service/publication/installation.d.ts +0 -3
- package/dist/execution/service/publication/installation.js +0 -8
- package/dist/execution/service/publication/source.d.ts +0 -3
- package/dist/execution/service/publication/source.js +0 -11
- package/dist/platform/publication/index.d.ts +0 -2
- package/dist/platform/publication/index.js +0 -2
- package/dist/tooling/cli/astrale/authority.d.ts +0 -5
- package/dist/tooling/cli/astrale/authority.js +0 -11
- package/dist/tooling/cli/astrale/executable.d.ts +0 -2
- package/dist/tooling/cli/astrale/executable.js +0 -47
- package/dist/tooling/cli/astrale/failure.d.ts +0 -6
- package/dist/tooling/cli/astrale/failure.js +0 -48
- package/dist/tooling/cli/astrale/instance.d.ts +0 -11
- package/dist/tooling/cli/astrale/instance.js +0 -52
- package/dist/tooling/cli/astrale/process.d.ts +0 -13
- package/dist/tooling/cli/astrale/process.js +0 -94
- package/dist/tooling/cli/astrale/version.d.ts +0 -18
- package/dist/tooling/cli/astrale/version.js +0 -55
- package/dist/tooling/cli/credential.d.ts +0 -2
- package/dist/tooling/cli/credential.js +0 -57
- package/dist/tooling/cli/development/candidate.d.ts +0 -25
- package/dist/tooling/cli/development/candidate.js +0 -176
- package/dist/tooling/cli/development/deployment.d.ts +0 -16
- package/dist/tooling/cli/development/deployment.js +0 -39
- package/dist/tooling/cli/development/develop.d.ts +0 -11
- package/dist/tooling/cli/development/develop.js +0 -243
- package/dist/tooling/cli/development/lease.d.ts +0 -18
- package/dist/tooling/cli/development/lease.js +0 -163
- package/dist/tooling/cli/development/lifecycle.d.ts +0 -9
- package/dist/tooling/cli/development/lifecycle.js +0 -43
- package/dist/tooling/cli/development/project-imports.d.ts +0 -22
- package/dist/tooling/cli/development/project-imports.js +0 -39
- package/dist/tooling/cli/development/project-lock.d.ts +0 -16
- package/dist/tooling/cli/development/project-lock.js +0 -41
- package/dist/tooling/cli/development/rebuild.d.ts +0 -13
- package/dist/tooling/cli/development/rebuild.js +0 -58
- package/dist/tooling/cli/development/release-evidence.d.ts +0 -4
- package/dist/tooling/cli/development/release-evidence.js +0 -10
- package/dist/tooling/cli/development/report.d.ts +0 -6
- package/dist/tooling/cli/development/report.js +0 -14
- package/dist/tooling/cli/development/session-file.d.ts +0 -53
- package/dist/tooling/cli/development/session-file.js +0 -337
- package/dist/tooling/cli/development/source-watch.d.ts +0 -14
- package/dist/tooling/cli/development/source-watch.js +0 -140
- package/dist/tooling/cli/development/sources.d.ts +0 -7
- package/dist/tooling/cli/development/sources.js +0 -48
- package/dist/tooling/cli/development/target-lock.d.ts +0 -16
- package/dist/tooling/cli/development/target-lock.js +0 -68
- package/dist/tooling/cli/development/view.d.ts +0 -28
- package/dist/tooling/cli/development/view.js +0 -151
- package/dist/tooling/cli/environment-release.d.ts +0 -21
- package/dist/tooling/cli/environment-release.js +0 -46
- package/dist/tooling/cli/evidence.d.ts +0 -11
- package/dist/tooling/cli/evidence.js +0 -53
- package/dist/tooling/cli/installation/index.d.ts +0 -2
- package/dist/tooling/cli/installation/index.js +0 -1
- package/dist/tooling/cli/installation/observation.d.ts +0 -10
- package/dist/tooling/cli/installation/observation.js +0 -44
- package/dist/tooling/cli/installation/reconcile.d.ts +0 -32
- package/dist/tooling/cli/installation/reconcile.js +0 -122
- /package/dist/application/{application.js → domain.js} +0 -0
- /package/dist/{deployment/adapter/deploy/context.js → application/workflow/durable.js} +0 -0
- /package/dist/deployment/adapter/{deploy/index.js → bundle/bundle.js} +0 -0
- /package/dist/deployment/adapter/{deploy/result.js → bundle/file.js} +0 -0
- /package/dist/deployment/adapter/{prepare → bundle}/index.js +0 -0
- /package/dist/deployment/adapter/{prepare/artifact.js → legacy/adapter.js} +0 -0
- /package/dist/deployment/adapter/{prepare → legacy/deploy}/context.js +0 -0
- /package/dist/deployment/release/{publication → served}/routes.d.ts +0 -0
- /package/dist/deployment/release/{publication → served}/routes.js +0 -0
- /package/dist/deployment/release/{publication → served}/views.js +0 -0
- /package/dist/execution/service/{publication → serving}/index.js +0 -0
package/dist/project/define.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isDomainDefinition } from '../application/index.js';
|
|
2
2
|
import { isDeployment } from '../deployment/deployment.js';
|
|
3
|
+
import { ENVIRONMENT_NAME } from '../deployment/environment.js';
|
|
3
4
|
import { isTests } from '../testing/index.js';
|
|
5
|
+
import { installCommand } from './install-command.js';
|
|
4
6
|
const admittedProjects = new WeakSet();
|
|
5
|
-
const ENVIRONMENT_NAME = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/u;
|
|
6
7
|
/** Capture one inert Project definition without loading entrypoints or performing effects. */
|
|
7
8
|
export function defineProject(input) {
|
|
8
9
|
const value = record(input, 'Project definition');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
if (Object.hasOwn(value, 'application')) {
|
|
11
|
+
throw new TypeError('Project `application` is now `domain`: defineProject({ domain, environments }).');
|
|
12
|
+
}
|
|
13
|
+
exact(value, ['domain', 'environments'], ['entrypoints', 'tests'], invalid);
|
|
14
|
+
if (!isDomainDefinition(input.domain))
|
|
15
|
+
throw new TypeError('Project Domain is not admitted.');
|
|
12
16
|
const environments = record(input.environments, 'Project environments');
|
|
13
17
|
if (Reflect.ownKeys(environments).some((key) => typeof key !== 'string')) {
|
|
14
18
|
throw new TypeError('Project Environment names must be strings.');
|
|
@@ -16,27 +20,28 @@ export function defineProject(input) {
|
|
|
16
20
|
const names = Object.keys(environments);
|
|
17
21
|
if (names.length === 0)
|
|
18
22
|
throw new TypeError('Project must declare at least one Environment.');
|
|
19
|
-
const
|
|
20
|
-
for (const name of names) {
|
|
23
|
+
const declared = names.map((name) => {
|
|
21
24
|
if (!ENVIRONMENT_NAME.test(name)) {
|
|
22
25
|
throw new TypeError(`Project Environment name "${name}" is not normalized.`);
|
|
23
26
|
}
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
return [name, record(environments[name], `Project Environment ${name}`)];
|
|
28
|
+
});
|
|
29
|
+
// One refusal names every Environment that declares installation, each with its own commands.
|
|
30
|
+
const installations = declared
|
|
31
|
+
.filter(([, environment]) => Object.hasOwn(environment, 'installation'))
|
|
32
|
+
.map(([name, environment]) => installationRefusal(environment, name));
|
|
33
|
+
if (installations.length > 0)
|
|
34
|
+
throw new TypeError(installations.join('\n'));
|
|
35
|
+
const captured = Object.create(null);
|
|
36
|
+
for (const [name, environment] of declared) {
|
|
37
|
+
exact(environment, ['deployment'], [], () => invalidEnvironment(name));
|
|
26
38
|
if (!isDeployment(environment.deployment)) {
|
|
27
39
|
throw new TypeError(`Project Environment ${name} deployment is not admitted.`);
|
|
28
40
|
}
|
|
29
|
-
const installation = environment.installation === undefined
|
|
30
|
-
? undefined
|
|
31
|
-
: admitInstallation(environment.installation, name);
|
|
32
41
|
environment.deployment.adapter.admit?.(environment.deployment.parameters, {
|
|
33
42
|
environment: name,
|
|
34
|
-
...(installation === undefined ? {} : { installation }),
|
|
35
|
-
});
|
|
36
|
-
captured[name] = Object.freeze({
|
|
37
|
-
deployment: environment.deployment,
|
|
38
|
-
...(installation === undefined ? {} : { installation }),
|
|
39
43
|
});
|
|
44
|
+
captured[name] = Object.freeze({ deployment: environment.deployment });
|
|
40
45
|
}
|
|
41
46
|
const entrypoints = input.entrypoints === undefined ? undefined : admitEntrypoints(input.entrypoints);
|
|
42
47
|
if (input.tests !== undefined && !isTests(input.tests)) {
|
|
@@ -44,7 +49,7 @@ export function defineProject(input) {
|
|
|
44
49
|
}
|
|
45
50
|
const project = Object.freeze({
|
|
46
51
|
kind: 'project',
|
|
47
|
-
|
|
52
|
+
domain: input.domain,
|
|
48
53
|
environments: Object.freeze(captured),
|
|
49
54
|
...(entrypoints === undefined ? {} : { entrypoints }),
|
|
50
55
|
...(input.tests === undefined ? {} : { tests: input.tests }),
|
|
@@ -68,22 +73,37 @@ function admitEntrypoints(input) {
|
|
|
68
73
|
}
|
|
69
74
|
return Object.freeze({ runtime: input.runtime });
|
|
70
75
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
throw new TypeError(`Project ${label} must be a non-empty stable string.`);
|
|
76
|
+
/**
|
|
77
|
+
* A deploy no longer installs (DX [.81399], AM-72): an Environment that still declares
|
|
78
|
+
* `installation` is refused before any effect, with the commands that replace it. Its only
|
|
79
|
+
* consumer pins an SDK older than this refusal.
|
|
80
|
+
*
|
|
81
|
+
* adapter-astrale deploys on Admin's Services, never through the installation's instance. The
|
|
82
|
+
* installation's instance and identity move to the install command.
|
|
83
|
+
*/
|
|
84
|
+
function installationRefusal(environment, name) {
|
|
85
|
+
const declared = environment.installation;
|
|
86
|
+
if (declared === undefined) {
|
|
87
|
+
return (`Project Environment ${name} declares \`installation\`, which a deploy no longer reads: a ` +
|
|
88
|
+
'deploy never installs. Remove the key.');
|
|
85
89
|
}
|
|
86
|
-
|
|
90
|
+
const installation = declared !== null && typeof declared === 'object'
|
|
91
|
+
? declared
|
|
92
|
+
: {};
|
|
93
|
+
const instance = stable(installation.instance);
|
|
94
|
+
const identity = stable(installation.identity);
|
|
95
|
+
return (`Project Environment ${name} declares installation, and a deploy no longer installs. ` +
|
|
96
|
+
`Remove \`installation\`, run \`astrale-domain deploy ${name}\`, ` +
|
|
97
|
+
`then install the URL it prints with \`${installCommand(instance, identity)}\`.`);
|
|
98
|
+
}
|
|
99
|
+
/** A declared coordinate worth repeating in guidance: a non-empty single-line trimmed string. */
|
|
100
|
+
function stable(input) {
|
|
101
|
+
return typeof input === 'string' &&
|
|
102
|
+
input.length > 0 &&
|
|
103
|
+
input.trim() === input &&
|
|
104
|
+
!/[\s`]/u.test(input)
|
|
105
|
+
? input
|
|
106
|
+
: undefined;
|
|
87
107
|
}
|
|
88
108
|
function record(input, label) {
|
|
89
109
|
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
@@ -99,8 +119,8 @@ function exact(input, required, optional, fail) {
|
|
|
99
119
|
}
|
|
100
120
|
}
|
|
101
121
|
function invalid() {
|
|
102
|
-
throw new TypeError('Project definition may contain only
|
|
122
|
+
throw new TypeError('Project definition may contain only domain, environments, entrypoints, and tests.');
|
|
103
123
|
}
|
|
104
124
|
function invalidEnvironment(name) {
|
|
105
|
-
throw new TypeError(`Project Environment ${name} may contain only deployment
|
|
125
|
+
throw new TypeError(`Project Environment ${name} may contain only deployment.`);
|
|
106
126
|
}
|
package/dist/project/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { admitProjectModule, PROJECT_EXPORT_HINT } from './admit.js';
|
|
2
2
|
export { defineProject, isProject } from './define.js';
|
|
3
3
|
export type { ProjectInput } from './define.js';
|
|
4
|
-
export type {
|
|
4
|
+
export type { DomainDefinitionOfProject, EnvironmentsOfProject, Project, ProjectEntrypoints, ProjectEnvironment, } from './project.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The command that installs a deployed URL on an instance, as every SDK refusal and help text
|
|
3
|
+
* names it. A deploy never installs (DX [.81399], AM-72): `astrale-domain deploy <environment>`
|
|
4
|
+
* prints a URL, and this command installs it.
|
|
5
|
+
*
|
|
6
|
+
* `--direct` sends a URL install to the instance Kernel, which the astrale CLI requires today and
|
|
7
|
+
* accepts until D13. When the CLI retires it, this is the one SDK text to change; the adapter and
|
|
8
|
+
* scaffold READMEs and templates repeat it as prose.
|
|
9
|
+
*/
|
|
10
|
+
export declare function installCommand(instance?: string, identity?: string): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The command that installs a deployed URL on an instance, as every SDK refusal and help text
|
|
3
|
+
* names it. A deploy never installs (DX [.81399], AM-72): `astrale-domain deploy <environment>`
|
|
4
|
+
* prints a URL, and this command installs it.
|
|
5
|
+
*
|
|
6
|
+
* `--direct` sends a URL install to the instance Kernel, which the astrale CLI requires today and
|
|
7
|
+
* accepts until D13. When the CLI retires it, this is the one SDK text to change; the adapter and
|
|
8
|
+
* scaffold READMEs and templates repeat it as prose.
|
|
9
|
+
*/
|
|
10
|
+
export function installCommand(instance = '<instance>', identity) {
|
|
11
|
+
return (`astrale domain install <url> --direct -i ${instance}` +
|
|
12
|
+
(identity === undefined ? '' : ` --as ${identity}`));
|
|
13
|
+
}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { InstallationTarget } from '../deployment/adapter/index.js';
|
|
1
|
+
import type { DomainDefinitionIdentity } from '../application/index.js';
|
|
3
2
|
import type { Tests } from '../testing/index.js';
|
|
4
3
|
export interface ProjectEntrypoints {
|
|
5
4
|
readonly runtime: string;
|
|
6
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* One Environment of a Project: where and how its deployments are made. It never names an
|
|
8
|
+
* instance: a deploy installs nothing, and `astrale domain install <url>` installs a deployment.
|
|
9
|
+
*/
|
|
7
10
|
export interface ProjectEnvironment<DeploymentValue = unknown> {
|
|
8
11
|
readonly deployment: DeploymentValue;
|
|
9
|
-
readonly installation?: InstallationTarget;
|
|
10
12
|
}
|
|
11
13
|
/** The complete independently executable software-product definition in astrale.config.ts. */
|
|
12
|
-
export interface Project<
|
|
14
|
+
export interface Project<DomainDefinitionValue extends DomainDefinitionIdentity = DomainDefinitionIdentity, EnvironmentsValue extends Readonly<Record<string, ProjectEnvironment>> = Readonly<Record<string, ProjectEnvironment>>, TestsValue extends Tests | undefined = undefined> {
|
|
13
15
|
readonly kind: 'project';
|
|
14
|
-
readonly
|
|
16
|
+
readonly domain: DomainDefinitionValue;
|
|
15
17
|
readonly environments: EnvironmentsValue;
|
|
16
18
|
readonly entrypoints?: ProjectEntrypoints;
|
|
17
19
|
readonly tests?: TestsValue;
|
|
18
20
|
}
|
|
19
|
-
export type
|
|
20
|
-
readonly
|
|
21
|
-
} ? Extract<
|
|
21
|
+
export type DomainDefinitionOfProject<Value> = Value extends {
|
|
22
|
+
readonly domain: infer DomainDefinitionValue;
|
|
23
|
+
} ? Extract<DomainDefinitionValue, DomainDefinitionIdentity> : never;
|
|
22
24
|
export type EnvironmentsOfProject<Value> = Value extends {
|
|
23
25
|
readonly environments: infer EnvironmentsValue;
|
|
24
26
|
} ? EnvironmentsValue : never;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Edge } from '../../platform/graph/edge/index.js';
|
|
2
2
|
import type { Node, NodeId } from '../../platform/graph/node/index.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ResolvedClass, schema, StoredPropertyInputOf } from '../../platform/schema/index.js';
|
|
4
4
|
import type { DatasetNode, DatasetReferences } from './dataset.js';
|
|
5
5
|
import { type DatasetReferenceInput } from './references.js';
|
|
6
6
|
/** Resolved Classes of the exact authored Schema, keyed by their authored names. */
|
|
@@ -10,11 +10,11 @@ export type DatasetEndpoint = Node | NodeId | string;
|
|
|
10
10
|
export interface DatasetNodeInput<Class extends ResolvedClass<'node'>> {
|
|
11
11
|
/** Stable identity within the Dataset; derived from the Class name and insertion order when omitted. */
|
|
12
12
|
readonly id?: string;
|
|
13
|
-
readonly props?:
|
|
13
|
+
readonly props?: StoredPropertyInputOf<Class>;
|
|
14
14
|
}
|
|
15
15
|
export interface DatasetEdgeInput<Class extends ResolvedClass<'edge'>> {
|
|
16
16
|
readonly slug?: string;
|
|
17
|
-
readonly props?:
|
|
17
|
+
readonly props?: StoredPropertyInputOf<Class>;
|
|
18
18
|
}
|
|
19
19
|
/** Graph authoring surface handed to one Dataset definition. Facts are canonical Kernel values. */
|
|
20
20
|
export interface DatasetGraph<Schema extends schema.DomainSchema> {
|
|
@@ -7,7 +7,7 @@ export type AuthoredDatasetVariables = DatasetVariables | void;
|
|
|
7
7
|
/** The exact variables record retained by a Dataset for one authored return type. */
|
|
8
8
|
export type DatasetVariablesOf<Value> = [Value] extends [void] ? Readonly<Record<never, never>> : Value extends DatasetVariables ? Value : never;
|
|
9
9
|
export interface DatasetInput<Schema extends schemaLanguage.DomainSchema, Variables extends AuthoredDatasetVariables> {
|
|
10
|
-
/** Stable lowercase identity, unique within one
|
|
10
|
+
/** Stable lowercase identity, unique within one Domain. */
|
|
11
11
|
readonly id: string;
|
|
12
12
|
readonly title?: string;
|
|
13
13
|
readonly description?: string;
|
package/dist/testing/load.js
CHANGED
|
@@ -21,7 +21,7 @@ export async function loadDataset(reference, load, source) {
|
|
|
21
21
|
throw new TypeError(`Dataset module ${reference.path} default export is not an admitted Dataset.`);
|
|
22
22
|
}
|
|
23
23
|
if (dataset.schema !== source) {
|
|
24
|
-
throw new TypeError(`Dataset ${dataset.id} (${reference.path}) targets Schema ${dataset.schema.origin}, not the exact
|
|
24
|
+
throw new TypeError(`Dataset ${dataset.id} (${reference.path}) targets Schema ${dataset.schema.origin}, not the exact Domain Schema.`);
|
|
25
25
|
}
|
|
26
26
|
return Object.freeze({ reference, dataset });
|
|
27
27
|
}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import type { LintReportFormat } from '../linter/index.js';
|
|
2
|
-
|
|
2
|
+
import { type Version } from '../../platform/versioning/index.js';
|
|
3
|
+
export declare const COMMANDS: readonly ['build', 'deploy', 'diff', 'list', 'publish', 'test', 'lint', 'package', 'upgrade', 'yank'];
|
|
3
4
|
export type Command = (typeof COMMANDS)[number];
|
|
4
5
|
export interface ParsedArgs {
|
|
5
6
|
readonly command: Command;
|
|
6
7
|
readonly env: string;
|
|
7
8
|
readonly fix?: boolean;
|
|
8
9
|
readonly format?: LintReportFormat;
|
|
9
|
-
readonly deployOnly?: boolean;
|
|
10
10
|
readonly identity?: string;
|
|
11
|
-
readonly credentialFile?: string;
|
|
12
11
|
readonly suite?: string;
|
|
13
|
-
readonly sessionFile?: string;
|
|
14
|
-
readonly secretsFile?: string;
|
|
15
12
|
readonly channel?: string;
|
|
16
13
|
readonly check?: boolean;
|
|
14
|
+
readonly json?: boolean;
|
|
15
|
+
/** `yank`: the published version it names. */
|
|
16
|
+
readonly version?: Version;
|
|
17
|
+
/** `yank --undo`: restore the version instead of yanking it. */
|
|
18
|
+
readonly undo?: boolean;
|
|
19
|
+
readonly allowDirty?: boolean;
|
|
20
|
+
/** `list`: instances to ask what they run, in argument order. */
|
|
21
|
+
readonly instances?: readonly string[];
|
|
17
22
|
}
|
|
18
23
|
/** Parse the frozen `astrale-domain` command grammar without performing effects. */
|
|
19
24
|
export declare function parseArgs(argv: readonly string[]): ParsedArgs;
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { acceptVersion } from '../../platform/versioning/index.js';
|
|
2
|
+
import { installCommand } from '../../project/install-command.js';
|
|
3
|
+
export const COMMANDS = [
|
|
4
|
+
'build',
|
|
5
|
+
'deploy',
|
|
6
|
+
'diff',
|
|
7
|
+
'list',
|
|
8
|
+
'publish',
|
|
9
|
+
'test',
|
|
10
|
+
'lint',
|
|
11
|
+
'package',
|
|
12
|
+
'upgrade',
|
|
13
|
+
'yank',
|
|
14
|
+
];
|
|
3
15
|
/** Parse the frozen `astrale-domain` command grammar without performing effects. */
|
|
4
16
|
export function parseArgs(argv) {
|
|
5
17
|
const [command, ...rest] = argv;
|
|
@@ -7,35 +19,18 @@ export function parseArgs(argv) {
|
|
|
7
19
|
return parseUpgrade(rest);
|
|
8
20
|
const fix = rest.includes('--fix');
|
|
9
21
|
const deployOnly = rest.includes('--deploy-only');
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
22
|
+
const json = rest.includes('--json');
|
|
23
|
+
const undo = rest.includes('--undo');
|
|
24
|
+
const allowDirty = rest.includes('--allow-dirty');
|
|
13
25
|
let identity;
|
|
14
26
|
let suite;
|
|
15
27
|
let format;
|
|
16
28
|
let environment;
|
|
29
|
+
const instances = [];
|
|
17
30
|
const cleaned = [];
|
|
18
31
|
for (let index = 0; index < rest.length; index += 1) {
|
|
19
32
|
const argument = rest[index];
|
|
20
|
-
if (argument === '--
|
|
21
|
-
sessionFile = absoluteFilePath('--session-file', rest[++index]);
|
|
22
|
-
}
|
|
23
|
-
else if (argument.startsWith('--session-file=')) {
|
|
24
|
-
sessionFile = absoluteFilePath('--session-file', argument.slice('--session-file='.length));
|
|
25
|
-
}
|
|
26
|
-
else if (argument === '--credential-file') {
|
|
27
|
-
credentialFile = absoluteFilePath('--credential-file', rest[++index]);
|
|
28
|
-
}
|
|
29
|
-
else if (argument.startsWith('--credential-file=')) {
|
|
30
|
-
credentialFile = absoluteFilePath('--credential-file', argument.slice('--credential-file='.length));
|
|
31
|
-
}
|
|
32
|
-
else if (argument === '--secrets-file') {
|
|
33
|
-
secretsFile = absoluteFilePath('--secrets-file', rest[++index]);
|
|
34
|
-
}
|
|
35
|
-
else if (argument.startsWith('--secrets-file=')) {
|
|
36
|
-
secretsFile = absoluteFilePath('--secrets-file', argument.slice('--secrets-file='.length));
|
|
37
|
-
}
|
|
38
|
-
else if (argument === '--as') {
|
|
33
|
+
if (argument === '--as') {
|
|
39
34
|
identity = requiredValue('--as', rest[++index]);
|
|
40
35
|
}
|
|
41
36
|
else if (argument.startsWith('--as=')) {
|
|
@@ -53,13 +48,24 @@ export function parseArgs(argv) {
|
|
|
53
48
|
else if (argument.startsWith('--environment=')) {
|
|
54
49
|
environment = requiredValue('--environment', argument.slice('--environment='.length));
|
|
55
50
|
}
|
|
51
|
+
else if (command === 'list' && argument === '--instance') {
|
|
52
|
+
// Only `list` asks instances; elsewhere `--instance` stays unknown, as deploy removed it.
|
|
53
|
+
instances.push(requiredValue('--instance', rest[++index]));
|
|
54
|
+
}
|
|
55
|
+
else if (command === 'list' && argument.startsWith('--instance=')) {
|
|
56
|
+
instances.push(requiredValue('--instance', argument.slice('--instance='.length)));
|
|
57
|
+
}
|
|
56
58
|
else if (argument === '--suite') {
|
|
57
59
|
suite = requiredValue('--suite', rest[++index]);
|
|
58
60
|
}
|
|
59
61
|
else if (argument.startsWith('--suite=')) {
|
|
60
62
|
suite = requiredValue('--suite', argument.slice('--suite='.length));
|
|
61
63
|
}
|
|
62
|
-
else if (argument === '--fix' ||
|
|
64
|
+
else if (argument === '--fix' ||
|
|
65
|
+
argument === '--deploy-only' ||
|
|
66
|
+
argument === '--json' ||
|
|
67
|
+
argument === '--undo' ||
|
|
68
|
+
argument === '--allow-dirty') {
|
|
63
69
|
continue;
|
|
64
70
|
}
|
|
65
71
|
else if (argument.startsWith('-')) {
|
|
@@ -71,23 +77,37 @@ export function parseArgs(argv) {
|
|
|
71
77
|
}
|
|
72
78
|
if (fix && command !== 'lint')
|
|
73
79
|
throw new Error('`--fix` is only valid for `lint`.');
|
|
74
|
-
if (
|
|
75
|
-
|
|
80
|
+
if (json &&
|
|
81
|
+
command !== 'build' &&
|
|
82
|
+
command !== 'deploy' &&
|
|
83
|
+
command !== 'diff' &&
|
|
84
|
+
command !== 'list' &&
|
|
85
|
+
command !== 'publish' &&
|
|
86
|
+
command !== 'yank') {
|
|
87
|
+
throw new Error('`--json` is only valid for `build`, `deploy`, `diff`, `list`, `publish` or `yank`.');
|
|
76
88
|
}
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
throw new Error('`--session-file`, `--credential-file`, and `--secrets-file` are only valid for `dev`.');
|
|
89
|
+
if (allowDirty && command !== 'publish') {
|
|
90
|
+
throw new Error('`--allow-dirty` is only valid for `publish`.');
|
|
80
91
|
}
|
|
81
|
-
if (
|
|
82
|
-
throw new Error('
|
|
92
|
+
if (undo && command !== 'yank')
|
|
93
|
+
throw new Error('`--undo` is only valid for `yank`.');
|
|
94
|
+
if (format !== undefined && command !== 'lint') {
|
|
95
|
+
throw new Error('`--format` is only valid for `lint`.');
|
|
83
96
|
}
|
|
84
|
-
if (
|
|
85
|
-
|
|
97
|
+
if (deployOnly && command !== 'deploy')
|
|
98
|
+
refuseDeployOnly(undefined);
|
|
99
|
+
if (identity !== undefined &&
|
|
100
|
+
command !== 'deploy' &&
|
|
101
|
+
command !== 'diff' &&
|
|
102
|
+
command !== 'list' &&
|
|
103
|
+
command !== 'publish') {
|
|
104
|
+
throw new Error('`--as` is only valid for `deploy`, `diff`, `list` or `publish`.');
|
|
86
105
|
}
|
|
87
|
-
if (environment !== undefined &&
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
106
|
+
if (environment !== undefined &&
|
|
107
|
+
command !== 'deploy' &&
|
|
108
|
+
command !== 'list' &&
|
|
109
|
+
command !== 'test') {
|
|
110
|
+
throw new Error('`--environment` is only valid for `deploy`, `list` or `test`.');
|
|
91
111
|
}
|
|
92
112
|
if (suite !== undefined && command !== 'test') {
|
|
93
113
|
throw new Error('`--suite` is only valid for `test`.');
|
|
@@ -97,31 +117,65 @@ export function parseArgs(argv) {
|
|
|
97
117
|
throw new Error('Choose either a positional Environment or `--environment`, not both.');
|
|
98
118
|
}
|
|
99
119
|
switch (command) {
|
|
100
|
-
case 'dev':
|
|
101
120
|
case 'deploy': {
|
|
102
121
|
if (positionals.length > 1) {
|
|
103
122
|
throw new Error(`\`${command}\` accepts exactly one Environment.`);
|
|
104
123
|
}
|
|
105
|
-
const env = environment ?? positionals[0]
|
|
124
|
+
const env = environment ?? positionals[0];
|
|
106
125
|
if (!env) {
|
|
107
126
|
throw new Error(`\`${command}\` requires an Environment, e.g. \`${command} development\`.`);
|
|
108
127
|
}
|
|
128
|
+
if (deployOnly)
|
|
129
|
+
refuseDeployOnly(command, env);
|
|
109
130
|
return {
|
|
110
131
|
command,
|
|
111
132
|
env,
|
|
112
|
-
...(
|
|
133
|
+
...(json ? { json: true } : {}),
|
|
113
134
|
...(identity === undefined ? {} : { identity }),
|
|
114
|
-
...(credentialFile === undefined ? {} : { credentialFile }),
|
|
115
|
-
...(sessionFile === undefined ? {} : { sessionFile }),
|
|
116
|
-
...(secretsFile === undefined ? {} : { secretsFile }),
|
|
117
135
|
};
|
|
118
136
|
}
|
|
137
|
+
case 'list':
|
|
138
|
+
// Every Environment of the Project, or the one `--environment` names.
|
|
139
|
+
if (positionals.length > 0) {
|
|
140
|
+
throw new Error('`list` does not accept positional arguments; use `--environment`.');
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
command: 'list',
|
|
144
|
+
env: environment ?? '',
|
|
145
|
+
...(json ? { json: true } : {}),
|
|
146
|
+
...(identity === undefined ? {} : { identity }),
|
|
147
|
+
...(instances.length === 0 ? {} : { instances: [...new Set(instances)] }),
|
|
148
|
+
};
|
|
119
149
|
case 'build':
|
|
120
150
|
case 'package':
|
|
121
151
|
if (positionals.length > 0) {
|
|
122
152
|
throw new Error(`\`${command}\` does not accept positional arguments.`);
|
|
123
153
|
}
|
|
124
|
-
return { command, env: '' };
|
|
154
|
+
return { command, env: '', ...(json ? { json: true } : {}) };
|
|
155
|
+
case 'diff':
|
|
156
|
+
// The version is package.json's: no command takes a version number (tech Versioning).
|
|
157
|
+
if (positionals.length > 0) {
|
|
158
|
+
throw new Error('`diff` does not accept positional arguments; it reads package.json.');
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
command: 'diff',
|
|
162
|
+
env: '',
|
|
163
|
+
...(json ? { json: true } : {}),
|
|
164
|
+
...(identity === undefined ? {} : { identity }),
|
|
165
|
+
};
|
|
166
|
+
case 'publish': {
|
|
167
|
+
// The version is package.json's: the one positional names the Environment (tech Versioning).
|
|
168
|
+
if (positionals.length !== 1) {
|
|
169
|
+
throw new Error('`publish` takes exactly one Environment, e.g. `publish production`; it reads the version from package.json.');
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
command: 'publish',
|
|
173
|
+
env: positionals[0],
|
|
174
|
+
...(json ? { json: true } : {}),
|
|
175
|
+
...(allowDirty ? { allowDirty: true } : {}),
|
|
176
|
+
...(identity === undefined ? {} : { identity }),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
125
179
|
case 'test':
|
|
126
180
|
if (positionals.length > 0) {
|
|
127
181
|
throw new Error('`test` does not accept positional arguments; use `--environment`.');
|
|
@@ -131,6 +185,18 @@ export function parseArgs(argv) {
|
|
|
131
185
|
env: environment ?? '',
|
|
132
186
|
...(suite === undefined ? {} : { suite }),
|
|
133
187
|
};
|
|
188
|
+
case 'yank': {
|
|
189
|
+
if (positionals.length !== 1) {
|
|
190
|
+
throw new Error('`yank` takes exactly one published version, e.g. `yank 1.5.0`.');
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
command: 'yank',
|
|
194
|
+
env: '',
|
|
195
|
+
version: acceptVersion(positionals[0]),
|
|
196
|
+
...(undo ? { undo: true } : {}),
|
|
197
|
+
...(json ? { json: true } : {}),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
134
200
|
case 'lint':
|
|
135
201
|
if (positionals.length > 0)
|
|
136
202
|
throw new Error('`lint` does not accept positional arguments.');
|
|
@@ -144,6 +210,18 @@ export function parseArgs(argv) {
|
|
|
144
210
|
throw new Error(command ? `Unknown command "${command}".` : 'Missing command.');
|
|
145
211
|
}
|
|
146
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* `--deploy-only` suppressed the installation a deploy used to make. A deploy never installs
|
|
215
|
+
* (DX [.81399], AM-72), so the flag is refused before any effect, naming the commands that
|
|
216
|
+
* replace it. Its only consumer pins an SDK older than this refusal.
|
|
217
|
+
*/
|
|
218
|
+
function refuseDeployOnly(command, environment) {
|
|
219
|
+
const refusal = '`--deploy-only` is no longer accepted: a deploy never installs.';
|
|
220
|
+
if (command === undefined || environment === undefined)
|
|
221
|
+
throw new Error(refusal);
|
|
222
|
+
throw new Error(`${refusal} Run \`astrale-domain ${command} ${environment}\` without it, then install the ` +
|
|
223
|
+
`URL it prints with \`${installCommand()}\`.`);
|
|
224
|
+
}
|
|
147
225
|
function parseUpgrade(args) {
|
|
148
226
|
let channel = 'beta';
|
|
149
227
|
let check = false;
|
|
@@ -173,10 +251,3 @@ function requiredValue(flag, input) {
|
|
|
173
251
|
throw new Error(`${flag} needs a value.`);
|
|
174
252
|
return input;
|
|
175
253
|
}
|
|
176
|
-
function absoluteFilePath(flag, input) {
|
|
177
|
-
const value = requiredValue(flag, input);
|
|
178
|
-
if (!isAbsolute(value) || normalize(value) !== value) {
|
|
179
|
-
throw new Error(`${flag} needs a normalized absolute path, got "${value}"`);
|
|
180
|
-
}
|
|
181
|
-
return value;
|
|
182
|
-
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Build, BuildDigest, BuildManifestV1, Bundle, Bundler, ResolvedRuntimeReference } from '../../deployment/index.js';
|
|
2
|
+
import type { LoadedProject } from './project.js';
|
|
3
|
+
/** `astrale-domain build --json`: the build digest of every distinct bundler of the Project. */
|
|
4
|
+
export interface BuildResultV1 {
|
|
5
|
+
readonly format: 'astrale.build-result';
|
|
6
|
+
readonly version: 1;
|
|
7
|
+
readonly origin: string;
|
|
8
|
+
readonly schema: {
|
|
9
|
+
readonly revision: BuildManifestV1['schema']['revision'];
|
|
10
|
+
};
|
|
11
|
+
readonly builds: readonly {
|
|
12
|
+
readonly bundler: {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly version: string;
|
|
15
|
+
};
|
|
16
|
+
readonly digest: BuildDigest;
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
19
|
+
/** One bundler a Project declares, with the Environments whose adapters declare it. */
|
|
20
|
+
export interface ProjectBundler {
|
|
21
|
+
readonly bundler: Bundler;
|
|
22
|
+
readonly environments: readonly {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
/** `<adapter name>@<adapter version>` */
|
|
25
|
+
readonly adapter: string;
|
|
26
|
+
}[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The distinct bundlers of a Project's Environments, in declaration order. Environments whose
|
|
30
|
+
* adapters declare one bundler object share its build. Two copies of one bundler (two installed
|
|
31
|
+
* versions of its package) are two bundlers even under one id and version, since their code can
|
|
32
|
+
* differ.
|
|
33
|
+
*/
|
|
34
|
+
export declare function projectBundlers(project: LoadedProject): readonly ProjectBundler[];
|
|
35
|
+
/** Bundle one Build without any Environment and identify the bytes by their build digest. */
|
|
36
|
+
export declare function bundleBuild<const BuildValue extends Build>(input: {
|
|
37
|
+
readonly bundler: Bundler;
|
|
38
|
+
readonly projectDir: string;
|
|
39
|
+
readonly build: BuildValue;
|
|
40
|
+
readonly runtime: ResolvedRuntimeReference;
|
|
41
|
+
readonly signal: AbortSignal;
|
|
42
|
+
}): Promise<Bundle<BuildValue>>;
|
|
43
|
+
/**
|
|
44
|
+
* One entry per distinct build: copies of one bundler that produced the same bytes give one entry,
|
|
45
|
+
* copies that produced different bytes give one entry each.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildResult(build: Build, bundles: readonly Bundle[]): BuildResultV1;
|
|
48
|
+
/**
|
|
49
|
+
* A warning for every bundler id and version whose copies produced different bytes: each copy's
|
|
50
|
+
* Environments deploy their own build, so the Project has more than one build for that bundler.
|
|
51
|
+
*/
|
|
52
|
+
export declare function bundlerCopyWarnings(built: readonly {
|
|
53
|
+
readonly source: ProjectBundler;
|
|
54
|
+
readonly bundle: Bundle;
|
|
55
|
+
}[]): readonly string[];
|