@astrale-os/sdk 0.6.0-beta.3 → 0.6.0-beta.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/README.md +179 -58
- 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 +44 -31
- package/dist/application/action/define.d.ts +3 -3
- package/dist/application/action/index.d.ts +1 -1
- package/dist/application/define.d.ts +8 -6
- package/dist/application/define.js +28 -14
- package/dist/application/dependency/index.d.ts +1 -1
- package/dist/application/dependency/invoker.d.ts +14 -9
- package/dist/application/domain.d.ts +30 -0
- package/dist/application/index.d.ts +4 -4
- package/dist/application/index.js +1 -1
- package/dist/application/integration/operation.d.ts +2 -2
- 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/mutation/index.d.ts +1 -1
- package/dist/application/query/composite/plan.d.ts +0 -4
- package/dist/application/query/composite/plan.js +0 -2
- 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 +3 -1
- package/dist/application/runtime/workflows.js +6 -4
- package/dist/application/view/define.js +4 -6
- package/dist/application/view/frontend.d.ts +2 -2
- package/dist/application/view/index.d.ts +1 -1
- package/dist/application/view/route.d.ts +0 -14
- package/dist/application/view/route.js +1 -64
- 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 +4 -4
- package/dist/application/workflow/define.js +20 -4
- package/dist/application/workflow/durable.d.ts +87 -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 +13 -3
- package/dist/deployment/adapter/adapter.d.ts +55 -13
- 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 +4 -3
- package/dist/deployment/adapter/define.js +107 -23
- package/dist/deployment/adapter/index.d.ts +4 -3
- package/dist/deployment/adapter/index.js +1 -0
- package/dist/deployment/adapter/release/command.d.ts +33 -0
- package/dist/deployment/adapter/release/context.d.ts +94 -0
- package/dist/deployment/adapter/release/index.d.ts +4 -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 +95 -0
- package/dist/deployment/address/configuration.js +273 -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 +4 -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 +73 -0
- package/dist/deployment/address/record.js +138 -0
- package/dist/deployment/address/summary.d.ts +30 -0
- package/dist/deployment/address/summary.js +1 -0
- package/dist/deployment/address/vectors.d.ts +60 -0
- package/dist/deployment/address/vectors.js +517 -0
- package/dist/deployment/authoring.d.ts +0 -2
- package/dist/deployment/authoring.js +0 -1
- package/dist/deployment/build/build.d.ts +8 -2
- package/dist/deployment/build/compile.d.ts +4 -4
- package/dist/deployment/build/compile.js +19 -17
- package/dist/deployment/build/frontend/compilation.d.ts +2 -4
- package/dist/deployment/build/frontend/compilation.js +0 -5
- package/dist/deployment/build/frontend/digest.js +1 -5
- 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.d.ts +2 -2
- package/dist/deployment/build/material.js +28 -13
- package/dist/deployment/build/schema.d.ts +2 -2
- package/dist/deployment/deployment.d.ts +3 -2
- package/dist/deployment/environment.d.ts +6 -0
- package/dist/deployment/environment.js +6 -0
- package/dist/deployment/index.d.ts +4 -6
- package/dist/deployment/index.js +1 -2
- package/dist/deployment/release/addressing.d.ts +6 -5
- package/dist/deployment/release/addressing.js +2 -3
- package/dist/deployment/release/assemble.d.ts +6 -3
- package/dist/deployment/release/assemble.js +12 -10
- package/dist/deployment/release/release.d.ts +16 -5
- 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 +11 -0
- package/dist/deployment/release/served/index.js +26 -0
- package/dist/deployment/release/{publication → served}/views.d.ts +2 -2
- package/dist/deployment/release/{publication → served}/views.js +0 -1
- package/dist/deployment/runtime/admission.d.ts +2 -2
- package/dist/deployment/runtime/admission.js +5 -5
- package/dist/deployment/verify/index.d.ts +3 -4
- package/dist/deployment/verify/index.js +2 -3
- 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 +1 -12
- package/dist/deployment/verify/preflight/index.js +1 -12
- 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 +15 -8
- package/dist/deployment/verify/readiness/index.js +25 -6
- package/dist/deployment/verify/readiness/release.d.ts +8 -0
- package/dist/deployment/verify/readiness/release.js +22 -0
- package/dist/deployment/worker/address.d.ts +26 -0
- package/dist/deployment/worker/address.js +43 -0
- package/dist/deployment/worker/build.d.ts +60 -0
- package/dist/deployment/worker/build.js +172 -0
- package/dist/deployment/worker/configuration.d.ts +73 -0
- package/dist/deployment/worker/configuration.js +165 -0
- package/dist/deployment/worker/content.d.ts +38 -0
- package/dist/deployment/worker/content.js +169 -0
- package/dist/deployment/worker/index.d.ts +29 -0
- package/dist/deployment/worker/index.js +29 -0
- package/dist/deployment/worker/limits.d.ts +30 -0
- package/dist/deployment/worker/limits.js +30 -0
- package/dist/deployment/worker/record.d.ts +29 -0
- package/dist/deployment/worker/record.js +69 -0
- package/dist/deployment/worker/request.d.ts +118 -0
- package/dist/deployment/worker/request.js +280 -0
- package/dist/deployment/worker/response.d.ts +101 -0
- package/dist/deployment/worker/response.js +207 -0
- package/dist/execution/identity/authentication.d.ts +33 -3
- package/dist/execution/identity/authentication.js +85 -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 +6 -4
- package/dist/execution/identity/delivery.js +25 -20
- package/dist/execution/identity/identity.d.ts +17 -3
- package/dist/execution/identity/identity.js +12 -4
- package/dist/execution/identity/jwks.d.ts +5 -0
- package/dist/execution/identity/jwks.js +92 -102
- package/dist/execution/index.d.ts +4 -4
- package/dist/execution/index.js +2 -2
- package/dist/execution/invocation/admission/authentication.d.ts +11 -13
- package/dist/execution/invocation/admission/authentication.js +48 -44
- package/dist/execution/invocation/admission/authority.d.ts +28 -6
- package/dist/execution/invocation/admission/authority.js +9 -2
- package/dist/execution/invocation/admission/index.d.ts +2 -2
- package/dist/execution/invocation/admission/index.js +1 -1
- 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 +3 -1
- package/dist/execution/invocation/dependency/bind.js +36 -16
- package/dist/execution/invocation/dispatch/context.d.ts +7 -6
- package/dist/execution/invocation/dispatch/context.js +17 -31
- package/dist/execution/invocation/dispatch/workflow.js +0 -4
- package/dist/execution/invocation/index.d.ts +2 -2
- package/dist/execution/invocation/index.js +1 -1
- package/dist/execution/invocation/integration/call.d.ts +2 -1
- package/dist/execution/invocation/integration/call.js +1 -1
- package/dist/execution/invocation/integration/clients.d.ts +1 -1
- package/dist/execution/invocation/invocation.js +49 -16
- package/dist/execution/invocation/result/errors.d.ts +0 -10
- package/dist/execution/invocation/result/errors.js +0 -17
- package/dist/execution/invocation/result/index.d.ts +2 -2
- package/dist/execution/invocation/result/index.js +1 -1
- 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 +17 -0
- package/dist/execution/runtime/release.js +7 -0
- package/dist/execution/serve.d.ts +10 -4
- package/dist/execution/serve.js +3 -0
- package/dist/execution/service/create.js +41 -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 +14 -5
- package/dist/execution/service/serving/delivery.d.ts +5 -0
- package/dist/execution/service/{publication → serving}/delivery.js +4 -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/source.d.ts +11 -0
- package/dist/execution/service/serving/source.js +15 -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 +34 -0
- package/dist/execution/workflows/options.js +65 -0
- package/dist/execution/workflows/receiver.d.ts +21 -0
- package/dist/execution/workflows/receiver.js +92 -0
- package/dist/execution/workflows/route.d.ts +12 -0
- package/dist/execution/workflows/route.js +35 -0
- package/dist/execution/workflows/run.d.ts +22 -0
- package/dist/execution/workflows/run.js +223 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/platform/graph/alias.d.ts +1 -5
- package/dist/platform/graph/alias.js +1 -5
- package/dist/platform/graph/document/index.d.ts +1 -1
- package/dist/platform/graph/document/index.js +1 -1
- package/dist/platform/graph/index.d.ts +1 -1
- package/dist/platform/graph/index.js +1 -1
- package/dist/platform/release/index.d.ts +2 -0
- package/dist/platform/release/index.js +2 -0
- package/dist/platform/schema/callable-authoring.d.ts +21 -0
- package/dist/platform/schema/callable-authoring.js +27 -0
- package/dist/platform/schema/class-authoring.d.ts +61 -11
- package/dist/platform/schema/class-authoring.js +37 -4
- package/dist/platform/schema/class-icon-svg.d.ts +9 -0
- package/dist/platform/schema/class-icon-svg.js +29 -0
- package/dist/platform/schema/class-icon.d.ts +3 -8
- package/dist/platform/schema/class-icon.js +2 -29
- package/dist/platform/schema/index.d.ts +6 -4
- package/dist/platform/schema/index.js +2 -1
- package/dist/platform/schema/property.d.ts +5 -0
- package/dist/platform/schema/schema-authoring.d.ts +14 -7
- package/dist/platform/schema/schema-authoring.js +5 -1
- 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 +1 -5
- 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 +6 -0
- package/dist/project/install-command.js +9 -0
- package/dist/project/project.d.ts +10 -8
- package/dist/testing/dataset/define.d.ts +1 -1
- package/dist/testing/load.js +1 -1
- package/dist/tooling/cli/adapter-command.d.ts +35 -0
- package/dist/tooling/cli/adapter-command.js +66 -0
- package/dist/tooling/cli/arguments.d.ts +17 -6
- package/dist/tooling/cli/arguments.js +175 -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 +26 -0
- package/dist/tooling/cli/deploy-mode.js +59 -0
- package/dist/tooling/cli/deploy-result.d.ts +80 -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 +173 -60
- 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 +12 -4
- package/dist/tooling/cli/index.js +6 -3
- package/dist/tooling/cli/installed-on.d.ts +83 -0
- package/dist/tooling/cli/installed-on.js +156 -0
- package/dist/tooling/cli/list.d.ts +152 -0
- package/dist/tooling/cli/list.js +331 -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 +246 -90
- package/dist/tooling/cli/project.d.ts +3 -3
- package/dist/tooling/cli/publish/index.d.ts +81 -0
- package/dist/tooling/cli/publish/index.js +383 -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 +121 -0
- package/dist/tooling/cli/registry/client.js +354 -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 +35 -0
- package/dist/tooling/cli/registry/executable.js +96 -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 -2
- 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/verifiers.js +0 -2
- package/dist/tooling/linter/implementations/source/views.js +2 -2
- package/dist/tooling/linter/policy/generated.js +14 -63
- package/dist/tooling/linter/requirements/registry.js +1 -6
- 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 +39 -13
- package/dist/application/application.d.ts +0 -28
- package/dist/application/query/execution/projection.d.ts +0 -3
- package/dist/application/query/execution/projection.js +0 -3
- package/dist/deployment/adapter/deploy/context.d.ts +0 -15
- 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/deploy.d.ts +0 -20
- package/dist/deployment/deploy.js +0 -31
- 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.d.ts +0 -10
- package/dist/deployment/release/publication/seal.js +0 -39
- package/dist/deployment/verify/preflight/artifact.d.ts +0 -6
- package/dist/deployment/verify/preflight/artifact.js +0 -122
- package/dist/deployment/verify/preflight/publication.d.ts +0 -4
- package/dist/deployment/verify/preflight/publication.js +0 -14
- package/dist/deployment/verify/readiness/deployment.d.ts +0 -3
- package/dist/deployment/verify/readiness/deployment.js +0 -151
- package/dist/deployment/verify/readiness/publication.d.ts +0 -11
- package/dist/deployment/verify/readiness/publication.js +0 -41
- package/dist/execution/service/errors.d.ts +0 -3
- package/dist/execution/service/errors.js +0 -3
- 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/deprecations.d.ts +0 -9
- package/dist/tooling/cli/deprecations.js +0 -15
- 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/tooling/linter/implementations/source/migrations.d.ts +0 -2
- package/dist/tooling/linter/implementations/source/migrations.js +0 -113
- package/dist/tooling/linter/qualification/index.d.ts +0 -10
- package/dist/tooling/linter/qualification/index.js +0 -2
- package/dist/tooling/linter/qualification/query-fixtures.d.ts +0 -2
- package/dist/tooling/linter/qualification/query-fixtures.js +0 -68
- package/dist/tooling/linter/qualification/runner.d.ts +0 -3
- package/dist/tooling/linter/qualification/runner.js +0 -6
- /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 → release/command.js} +0 -0
- /package/dist/deployment/adapter/{prepare → release}/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/execution/service/{publication → serving}/index.js +0 -0
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { dirname,
|
|
3
|
-
import { admitRuntime, compile, resolveRuntime
|
|
2
|
+
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
import { admitRuntime, compile, resolveRuntime } from '../../deployment/index.js';
|
|
4
4
|
import { packageDomain } from '../packaging/index.js';
|
|
5
|
+
import { runAdapterCommand } from './adapter-command.js';
|
|
5
6
|
import { parseArgs } from './arguments.js';
|
|
6
|
-
import {
|
|
7
|
+
import { buildResult, bundleBuild, bundlerCopyWarnings, projectBundlers } from './build.js';
|
|
7
8
|
import { BunRequiredError } from './bun.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { loadDeclaredSecrets } from './dotenv.js';
|
|
11
|
-
import { reconcileEnvironmentRelease } from './environment-release.js';
|
|
9
|
+
import { selectDeployMode } from './deploy-mode.js';
|
|
10
|
+
import { runDiff } from './diff/index.js';
|
|
12
11
|
import { ERROR_USAGE, helpRequest, helpText } from './help.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { deployImmutable } from './immutable-deployment.js';
|
|
13
|
+
import { listDeployments, renderDeploymentList } from './list.js';
|
|
14
|
+
import { error, info, progress, warn } from './log.js';
|
|
15
|
+
import { importModule, loadProject, runtimeEntrypoint, selectEnvironment, } from './project.js';
|
|
16
|
+
import { runPublish } from './publish/index.js';
|
|
17
|
+
import { MINIMUM_INSTALLATIONS_CLI_VERSION, openDomainRegistry, RegistryCliError, } from './registry/index.js';
|
|
15
18
|
import { executeTests } from './test.js';
|
|
19
|
+
import { yankPublication, yankSummary } from './yank.js';
|
|
16
20
|
const CONFIG_NAMES = ['astrale.config.ts', 'astrale.config.js', 'astrale.config.mjs'];
|
|
17
21
|
export async function run(argv) {
|
|
18
22
|
const requestedHelp = helpRequest(argv);
|
|
@@ -56,10 +60,39 @@ export async function run(argv) {
|
|
|
56
60
|
error(`No astrale.config.ts found in ${projectDir}.`);
|
|
57
61
|
return 1;
|
|
58
62
|
}
|
|
59
|
-
if (parsed.command === 'dev') {
|
|
60
|
-
return executeDevelopmentCommand(parsed, { configPath, projectDir });
|
|
61
|
-
}
|
|
62
63
|
const project = await loadProject(configPath);
|
|
64
|
+
if (parsed.command === 'list')
|
|
65
|
+
return list(parsed, project, projectDir);
|
|
66
|
+
if (parsed.command === 'adapter') {
|
|
67
|
+
const lifecycle = deploymentLifecycle(`${parsed.adapter} ${parsed.adapterCommand} interrupted.`);
|
|
68
|
+
try {
|
|
69
|
+
return await runAdapterCommand({
|
|
70
|
+
adapter: parsed.adapter,
|
|
71
|
+
command: parsed.adapterCommand,
|
|
72
|
+
environment: parsed.env,
|
|
73
|
+
definition: selectEnvironment(project, parsed.env),
|
|
74
|
+
options: parsed.options ?? {},
|
|
75
|
+
json: parsed.json === true,
|
|
76
|
+
signal: lifecycle.signal,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
lifecycle.dispose();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (parsed.command === 'yank')
|
|
84
|
+
return yank(parsed, project);
|
|
85
|
+
if (parsed.command === 'publish') {
|
|
86
|
+
// A version names an immutable deployment's release: any other Environment is refused before
|
|
87
|
+
// anything is built (CT33, R-G03).
|
|
88
|
+
const mode = selectDeployMode({
|
|
89
|
+
command: 'publish',
|
|
90
|
+
environment: parsed.env,
|
|
91
|
+
definition: selectEnvironment(project, parsed.env),
|
|
92
|
+
});
|
|
93
|
+
if (refused(mode))
|
|
94
|
+
return 1;
|
|
95
|
+
}
|
|
63
96
|
if (parsed.command === 'test') {
|
|
64
97
|
selectEnvironment(project, parsed.env);
|
|
65
98
|
return executeTests({
|
|
@@ -67,94 +100,230 @@ export async function run(argv) {
|
|
|
67
100
|
...(parsed.suite === undefined ? {} : { suite: parsed.suite }),
|
|
68
101
|
});
|
|
69
102
|
}
|
|
70
|
-
const build = compile(project.
|
|
71
|
-
for (const warning of deprecationWarnings(build))
|
|
72
|
-
warn(warning);
|
|
103
|
+
const build = compile(project.domain);
|
|
73
104
|
const resolved = await resolveRuntime(runtimeEntrypoint(project), (path) => importModule(resolve(dirname(configPath), path)));
|
|
74
105
|
admitRuntime({ runtime: build.runtime }, resolved);
|
|
106
|
+
if (parsed.command === 'diff') {
|
|
107
|
+
const lifecycle = deploymentLifecycle('Diff interrupted.');
|
|
108
|
+
try {
|
|
109
|
+
return await runDiff({
|
|
110
|
+
projectDir,
|
|
111
|
+
build,
|
|
112
|
+
// The build digests `build` prints, bundled only when the Schema revision is unchanged.
|
|
113
|
+
builds: async () => {
|
|
114
|
+
const digests = [];
|
|
115
|
+
for (const source of projectBundlers(project)) {
|
|
116
|
+
const bundle = await bundleBuild({
|
|
117
|
+
bundler: source.bundler,
|
|
118
|
+
projectDir,
|
|
119
|
+
build,
|
|
120
|
+
runtime: resolved,
|
|
121
|
+
signal: lifecycle.signal,
|
|
122
|
+
});
|
|
123
|
+
digests.push(bundle.digest);
|
|
124
|
+
}
|
|
125
|
+
return digests;
|
|
126
|
+
},
|
|
127
|
+
...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
|
|
128
|
+
json: parsed.json === true,
|
|
129
|
+
signal: lifecycle.signal,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
lifecycle.dispose();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (parsed.command === 'publish') {
|
|
137
|
+
const environment = selectEnvironment(project, parsed.env);
|
|
138
|
+
const lifecycle = deploymentLifecycle('Publish interrupted.');
|
|
139
|
+
try {
|
|
140
|
+
return await runPublish({
|
|
141
|
+
projectDir,
|
|
142
|
+
environment: parsed.env,
|
|
143
|
+
adapter: environment.deployment.adapter,
|
|
144
|
+
parameters: environment.deployment.parameters,
|
|
145
|
+
build,
|
|
146
|
+
runtime: resolved,
|
|
147
|
+
...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
|
|
148
|
+
allowDirty: parsed.allowDirty === true,
|
|
149
|
+
json: parsed.json === true,
|
|
150
|
+
signal: lifecycle.signal,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
lifecycle.dispose();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
75
157
|
if (parsed.command === 'build') {
|
|
76
|
-
|
|
77
|
-
|
|
158
|
+
// Every distinct bundler of the Project, and never an Environment, address, key or secret.
|
|
159
|
+
const lifecycle = deploymentLifecycle();
|
|
160
|
+
try {
|
|
161
|
+
const built = [];
|
|
162
|
+
for (const source of projectBundlers(project)) {
|
|
163
|
+
built.push({
|
|
164
|
+
source,
|
|
165
|
+
bundle: await bundleBuild({
|
|
166
|
+
bundler: source.bundler,
|
|
167
|
+
projectDir,
|
|
168
|
+
build,
|
|
169
|
+
runtime: resolved,
|
|
170
|
+
signal: lifecycle.signal,
|
|
171
|
+
}),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
for (const warning of bundlerCopyWarnings(built))
|
|
175
|
+
warn(warning);
|
|
176
|
+
const result = buildResult(build, built.map(({ bundle }) => bundle));
|
|
177
|
+
if (parsed.json === true) {
|
|
178
|
+
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
179
|
+
return 0;
|
|
180
|
+
}
|
|
181
|
+
info(`Built ${result.origin} (${result.schema.revision}).`);
|
|
182
|
+
for (const built of result.builds) {
|
|
183
|
+
info(`Build: ${built.digest} (${built.bundler.id}@${built.bundler.version})`);
|
|
184
|
+
}
|
|
185
|
+
return 0;
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
lifecycle.dispose();
|
|
189
|
+
}
|
|
78
190
|
}
|
|
79
191
|
const environment = selectEnvironment(project, parsed.env);
|
|
80
|
-
|
|
81
|
-
const
|
|
192
|
+
// The configuration selects the deploy mode, before any effect (CT33).
|
|
193
|
+
const mode = selectDeployMode({
|
|
194
|
+
command: 'deploy',
|
|
195
|
+
environment: parsed.env,
|
|
196
|
+
definition: environment,
|
|
197
|
+
});
|
|
198
|
+
if (refused(mode))
|
|
199
|
+
return 1;
|
|
200
|
+
// With `--json`, stdout carries only the DeployResultV1; progress goes to stderr.
|
|
201
|
+
const report = progress(parsed.json === true);
|
|
82
202
|
const lifecycle = deploymentLifecycle();
|
|
83
203
|
try {
|
|
84
|
-
const
|
|
204
|
+
const deployment = {
|
|
85
205
|
projectDir,
|
|
86
206
|
environment: parsed.env,
|
|
87
|
-
...(environment.installation === undefined ? {} : { installation: environment.installation }),
|
|
88
|
-
mode: 'release',
|
|
89
|
-
signal: lifecycle.signal,
|
|
90
207
|
build,
|
|
91
208
|
runtime: resolved,
|
|
92
|
-
});
|
|
93
|
-
const artifact = verifyPreflight({ build, runtime: resolved, source });
|
|
94
|
-
const secrets = secretsFor(adapter, parameters, projectDir, resolved.runtime);
|
|
95
|
-
const installationExecutable = environment.installation === undefined || parsed.deployOnly
|
|
96
|
-
? undefined
|
|
97
|
-
: await resolveCompatibleAstrale({ projectDir, signal: lifecycle.signal });
|
|
98
|
-
const deployed = await adapter.deploy(parameters, {
|
|
99
|
-
projectDir,
|
|
100
|
-
environment: parsed.env,
|
|
101
|
-
...(environment.installation === undefined ? {} : { installation: environment.installation }),
|
|
102
209
|
...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
|
|
103
|
-
secrets,
|
|
104
|
-
artifact,
|
|
105
210
|
signal: lifecycle.signal,
|
|
211
|
+
report,
|
|
212
|
+
};
|
|
213
|
+
const deployed = await deployImmutable({
|
|
214
|
+
...deployment,
|
|
215
|
+
adapter: environment.deployment.adapter,
|
|
216
|
+
parameters: environment.deployment.parameters,
|
|
106
217
|
});
|
|
107
|
-
|
|
108
|
-
if (result.status === 'failed') {
|
|
109
|
-
error(`Deployment failed during ${result.phase}: ${result.error.message}`);
|
|
218
|
+
if (deployed === undefined)
|
|
110
219
|
return 1;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
220
|
+
if (parsed.json === true)
|
|
221
|
+
process.stdout.write(`${JSON.stringify(deployed, null, 2)}\n`);
|
|
222
|
+
return 0;
|
|
223
|
+
}
|
|
224
|
+
finally {
|
|
225
|
+
lifecycle.dispose();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* `astrale-domain list`: the deployments of every Environment, or of the one `--environment`
|
|
230
|
+
* names, as their hosts keep them for the caller, named by the registry's versions and placed on
|
|
231
|
+
* the instances each `--instance` says pin them. With `--json`, stdout
|
|
232
|
+
* carries only the ListResultV1, and only when every host and the registry answered; notices go to
|
|
233
|
+
* stderr. A registry that cannot be read (no Astrale CLI, one older than the listing's floor, Admin
|
|
234
|
+
* out of reach, an unreadable index) prints nothing on stdout and exits 1: versions are never
|
|
235
|
+
* dropped silently (AM-224).
|
|
236
|
+
*/
|
|
237
|
+
async function list(parsed, project, projectDir) {
|
|
238
|
+
const origin = compile(project.domain).schema.compiled.root.origin;
|
|
239
|
+
const environments = parsed.env === ''
|
|
240
|
+
? Object.entries(project.environments)
|
|
241
|
+
: [[parsed.env, selectEnvironment(project, parsed.env)]];
|
|
242
|
+
const lifecycle = deploymentLifecycle();
|
|
243
|
+
try {
|
|
244
|
+
const listing = await listDeployments({
|
|
245
|
+
origin,
|
|
246
|
+
environments,
|
|
129
247
|
...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
|
|
130
248
|
signal: lifecycle.signal,
|
|
249
|
+
registry: (signal) => openDomainRegistry({
|
|
250
|
+
projectDir,
|
|
251
|
+
...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
|
|
252
|
+
signal,
|
|
253
|
+
minimum: MINIMUM_INSTALLATIONS_CLI_VERSION,
|
|
254
|
+
}),
|
|
255
|
+
...(parsed.instances === undefined ? {} : { instances: parsed.instances }),
|
|
131
256
|
});
|
|
132
|
-
|
|
133
|
-
|
|
257
|
+
for (const notice of listing.notices)
|
|
258
|
+
warn(notice);
|
|
259
|
+
for (const failure of listing.failures) {
|
|
260
|
+
error(`Environment ${failure.environment} could not be listed (${failure.adapter}): ` +
|
|
261
|
+
failure.error.message);
|
|
262
|
+
}
|
|
263
|
+
if (listing.registryFailure !== undefined) {
|
|
264
|
+
const failure = listing.registryFailure;
|
|
265
|
+
error(failure instanceof RegistryCliError
|
|
266
|
+
? `Domain registry: ${failure.code}: ${failure.message}`
|
|
267
|
+
: `Domain registry: ${failure.message}`);
|
|
268
|
+
return 1;
|
|
134
269
|
}
|
|
135
|
-
|
|
136
|
-
|
|
270
|
+
if (parsed.json === true) {
|
|
271
|
+
if (listing.failures.length > 0)
|
|
272
|
+
return 1;
|
|
273
|
+
process.stdout.write(`${JSON.stringify(listing.result, null, 2)}\n`);
|
|
274
|
+
return 0;
|
|
137
275
|
}
|
|
138
|
-
|
|
139
|
-
|
|
276
|
+
const failed = listing.failures.length > 0;
|
|
277
|
+
for (const line of renderDeploymentList(listing.result, failed)) {
|
|
278
|
+
process.stdout.write(`${line}\n`);
|
|
279
|
+
}
|
|
280
|
+
return failed ? 1 : 0;
|
|
140
281
|
}
|
|
141
282
|
finally {
|
|
142
283
|
lifecycle.dispose();
|
|
143
284
|
}
|
|
144
285
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
286
|
+
/** Report every refusal of a refused deploy mode, each with what to write instead. */
|
|
287
|
+
function refused(mode) {
|
|
288
|
+
if (mode.kind !== 'refused')
|
|
289
|
+
return false;
|
|
290
|
+
for (const refusal of mode.refusals)
|
|
291
|
+
error(refusal.guidance);
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* `astrale-domain yank <version> [--undo]`: take one published version of the Project's Domain
|
|
296
|
+
* out of resolution in the Admin registry, or put it back. With `--json`, stdout carries only the
|
|
297
|
+
* YankReportV1; a refused or failed run prints nothing there.
|
|
298
|
+
*/
|
|
299
|
+
async function yank(parsed, project) {
|
|
300
|
+
if (parsed.version === undefined)
|
|
301
|
+
throw new TypeError('`yank` requires a published version.');
|
|
302
|
+
const origin = compile(project.domain).schema.compiled.root.origin;
|
|
303
|
+
const lifecycle = deploymentLifecycle('Yank interrupted.');
|
|
304
|
+
try {
|
|
305
|
+
const report = await yankPublication({
|
|
306
|
+
origin,
|
|
307
|
+
version: parsed.version,
|
|
308
|
+
undo: parsed.undo === true,
|
|
309
|
+
projectDir: process.cwd(),
|
|
310
|
+
signal: lifecycle.signal,
|
|
311
|
+
});
|
|
312
|
+
if (parsed.json === true)
|
|
313
|
+
process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
314
|
+
else
|
|
315
|
+
info(yankSummary(report));
|
|
316
|
+
return 0;
|
|
317
|
+
}
|
|
318
|
+
catch (cause) {
|
|
319
|
+
if (!(cause instanceof RegistryCliError))
|
|
320
|
+
throw cause;
|
|
321
|
+
error(`${cause.code}: ${cause.message}`);
|
|
322
|
+
return 1;
|
|
323
|
+
}
|
|
324
|
+
finally {
|
|
325
|
+
lifecycle.dispose();
|
|
326
|
+
}
|
|
158
327
|
}
|
|
159
328
|
async function lint(parsed) {
|
|
160
329
|
const { formatLintResult, lintDomain, LinterToolError } = await import('../linter/index.js');
|
|
@@ -174,25 +343,12 @@ async function lint(parsed) {
|
|
|
174
343
|
throw cause;
|
|
175
344
|
}
|
|
176
345
|
}
|
|
177
|
-
function secretsFor(adapter, parameters, projectDir, runtime) {
|
|
178
|
-
const file = adapter.secretsFile?.(parameters);
|
|
179
|
-
if (file === undefined)
|
|
180
|
-
return Object.freeze({});
|
|
181
|
-
const path = isAbsolute(file) ? file : join(projectDir, file);
|
|
182
|
-
// An Integration-free Runtime has no Providers and therefore no author-owned
|
|
183
|
-
// environment secrets. Adapter-owned secrets, such as the signing identity,
|
|
184
|
-
// are resolved separately by the adapter and must not make this file required.
|
|
185
|
-
if (Object.keys(runtime.integrations).length === 0 && !existsSync(path)) {
|
|
186
|
-
return Object.freeze({});
|
|
187
|
-
}
|
|
188
|
-
return Object.freeze(loadDeclaredSecrets(path, file));
|
|
189
|
-
}
|
|
190
346
|
function findConfig(projectDir) {
|
|
191
347
|
return CONFIG_NAMES.map((name) => join(projectDir, name)).find(existsSync);
|
|
192
348
|
}
|
|
193
|
-
function deploymentLifecycle() {
|
|
349
|
+
function deploymentLifecycle(interruption = 'Deployment interrupted.') {
|
|
194
350
|
const controller = new AbortController();
|
|
195
|
-
const stop = () => controller.abort(new Error(
|
|
351
|
+
const stop = () => controller.abort(new Error(interruption));
|
|
196
352
|
process.once('SIGINT', stop);
|
|
197
353
|
process.once('SIGTERM', stop);
|
|
198
354
|
return Object.freeze({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DomainDefinition } from '../../application/index.js';
|
|
2
2
|
import type { Requirements } from '../../application/requirements/index.js';
|
|
3
3
|
import type { Routes } from '../../application/routes/index.js';
|
|
4
4
|
import type { Runtime } from '../../application/runtime/index.js';
|
|
@@ -7,10 +7,10 @@ import type { Deployment } from '../../deployment/index.js';
|
|
|
7
7
|
import type { schema } from '../../platform/schema/index.js';
|
|
8
8
|
import type { Project, ProjectEnvironment } from '../../project/index.js';
|
|
9
9
|
import type { Tests } from '../../testing/index.js';
|
|
10
|
-
export type
|
|
10
|
+
export type LoadedDomainDefinition = DomainDefinition<schema.DomainSchema, Runtime, Frontend<schema.DomainSchema> | undefined, Routes | undefined, Requirements | undefined>;
|
|
11
11
|
export type LoadedDeployment = Deployment<object>;
|
|
12
12
|
export type LoadedEnvironment = ProjectEnvironment<LoadedDeployment>;
|
|
13
|
-
export type LoadedProject = Project<
|
|
13
|
+
export type LoadedProject = Project<LoadedDomainDefinition, Readonly<Record<string, LoadedEnvironment>>, Tests | undefined>;
|
|
14
14
|
export declare function loadProject(path: string): Promise<LoadedProject>;
|
|
15
15
|
export declare function selectEnvironment(project: LoadedProject, name: string): LoadedEnvironment;
|
|
16
16
|
export declare function runtimeEntrypoint(project: LoadedProject): import("../../deployment/index.js").RuntimeReference;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { Adapter, Build, Release, ResolvedRuntimeReference } from '../../../deployment/index.js';
|
|
2
|
+
import type { DomainRegistry } from '../registry/index.js';
|
|
3
|
+
export type { PublishReportV1 } from './report.js';
|
|
4
|
+
export interface PublishCommandInput {
|
|
5
|
+
readonly projectDir: string;
|
|
6
|
+
readonly environment: string;
|
|
7
|
+
/** The adapter of a canonical Environment (CT33): `publish` refuses every other one before. */
|
|
8
|
+
readonly adapter: Adapter<object>;
|
|
9
|
+
readonly parameters: object;
|
|
10
|
+
readonly build: Build;
|
|
11
|
+
readonly runtime: ResolvedRuntimeReference;
|
|
12
|
+
/** `--as`: the identity that reads and writes the registry and deploys. */
|
|
13
|
+
readonly identity?: string;
|
|
14
|
+
/** `--allow-dirty`: publish from a working tree with changes, or outside git. */
|
|
15
|
+
readonly allowDirty: boolean;
|
|
16
|
+
readonly json: boolean;
|
|
17
|
+
readonly signal: AbortSignal;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What `publish` uses of the Domain registry: the index, the claim of an origin no one has, a
|
|
21
|
+
* baseline's bundle, the Publication.
|
|
22
|
+
*/
|
|
23
|
+
type PublishRegistry = Pick<DomainRegistry, 'index' | 'claim' | 'bundle' | 'publish'>;
|
|
24
|
+
export interface PublishCommandDependencies {
|
|
25
|
+
readonly open: (input: {
|
|
26
|
+
readonly projectDir: string;
|
|
27
|
+
readonly identity?: string;
|
|
28
|
+
readonly signal: AbortSignal;
|
|
29
|
+
/** The first Astrale CLI release that serves every registry command publish may run. */
|
|
30
|
+
readonly minimum?: string;
|
|
31
|
+
}) => Promise<PublishRegistry>;
|
|
32
|
+
/** Step 5: the deployment serves exactly this sealed release at its URL. */
|
|
33
|
+
readonly verify: (release: Release, signal: AbortSignal) => Promise<void>;
|
|
34
|
+
/** Whether a remote-tracking branch already holds the commit (tech Versioning [.73872]). */
|
|
35
|
+
readonly pushed: (input: {
|
|
36
|
+
readonly projectDir: string;
|
|
37
|
+
readonly sha: string;
|
|
38
|
+
readonly signal: AbortSignal;
|
|
39
|
+
}) => Promise<boolean | undefined>;
|
|
40
|
+
readonly stdout: (text: string) => void;
|
|
41
|
+
readonly stderr: (text: string) => void;
|
|
42
|
+
/** The deadline of step 5; `VERIFY_TIMEOUT_MS` by default. */
|
|
43
|
+
readonly verifyTimeoutMs?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Step 5 reads the deployment's `release.json` (at most 1 MiB) and its Bundle (at most 16 MiB)
|
|
47
|
+
* once the adapter has seen it ready: a deployment that accepts the connection and never answers
|
|
48
|
+
* is refused after this long, never waited on until the CI job's own timeout.
|
|
49
|
+
*/
|
|
50
|
+
export declare const VERIFY_TIMEOUT_MS = 60000;
|
|
51
|
+
/**
|
|
52
|
+
* `astrale-domain publish <environment> [--allow-dirty] [--as <identity>] [--json]`: give the
|
|
53
|
+
* release this tree deploys in one Environment the version `package.json` declares (tech
|
|
54
|
+
* Versioning [.73345], Registry [.122137]). It deploys bottom-up and names last: the Publication
|
|
55
|
+
* Admin creates under the Domain's lock is the only switch, so every failure before it leaves at
|
|
56
|
+
* most a deployment without a version, which a rerun reuses (Registry [.122407]).
|
|
57
|
+
*
|
|
58
|
+
* 0. Before any effect: provenance (a dirty tree or no git is refused unless `--allow-dirty`; the
|
|
59
|
+
* commit is recorded; an unpushed commit warns), then the plan of the deployment: build,
|
|
60
|
+
* configure, placement, label, URL and the sealed release digest.
|
|
61
|
+
* 1. Read the version from `package.json`.
|
|
62
|
+
* 2. Read the registry. The version exists: the same release succeeds without effect, another is
|
|
63
|
+
* refused. An origin the registry does not hold for this identity is claimed: Admin gives an
|
|
64
|
+
* origin no one has to its first claimer, who administers its Domain, and refuses one another
|
|
65
|
+
* account holds. A registry that does not answer is refused.
|
|
66
|
+
* 3. Judge the version against the highest stable version below it (AM-23); refuse a version
|
|
67
|
+
* that is too low.
|
|
68
|
+
* 4. Deploy the release, or reuse its deployment.
|
|
69
|
+
* 5. Verify that the deployment serves the sealed release.
|
|
70
|
+
* 6. Ask Admin for the Publication; a version Admin gave another release meanwhile is refused,
|
|
71
|
+
* naming the winner's release, and this deployment stays a preview. Any other failure says
|
|
72
|
+
* what CT29 says of it: Admin may have created the Publication (a rerun settles it), Admin made
|
|
73
|
+
* none and a rerun can help, or Admin refused and a rerun meets the same refusal. Then, when
|
|
74
|
+
* the adapter declares `retain` (a host with no registry principal to keep it, CT36), it
|
|
75
|
+
* keeps the published deployment. No first-party adapter declares it: Admin's Services and a
|
|
76
|
+
* Cloudflare dispatch namespace keep every deployment until its owner retires it.
|
|
77
|
+
*
|
|
78
|
+
* Steps 0 to 3 make no deploy call; step 2's claim is the only registry change before step 6.
|
|
79
|
+
* Never installs.
|
|
80
|
+
*/
|
|
81
|
+
export declare function runPublish(input: PublishCommandInput, dependencies?: PublishCommandDependencies): Promise<number>;
|