@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
|
@@ -1,29 +1,78 @@
|
|
|
1
1
|
import { captureDeployment } from '../deployment.js';
|
|
2
2
|
const admittedAdapters = new WeakSet();
|
|
3
|
-
|
|
3
|
+
const admittedBundlers = new WeakMap();
|
|
4
|
+
/** Every field an adapter definition may declare, in either contract. */
|
|
5
|
+
const FIELDS = [
|
|
6
|
+
'name',
|
|
7
|
+
'version',
|
|
8
|
+
'bundler',
|
|
9
|
+
'admit',
|
|
10
|
+
'configure',
|
|
11
|
+
'placement',
|
|
12
|
+
'deployRelease',
|
|
13
|
+
'list',
|
|
14
|
+
'retain',
|
|
15
|
+
'prepare',
|
|
16
|
+
'deploy',
|
|
17
|
+
'secretsFile',
|
|
18
|
+
];
|
|
19
|
+
/** The operations that make a definition adapter interface v2. */
|
|
20
|
+
const RELEASE_OPERATIONS = ['configure', 'placement', 'deployRelease'];
|
|
21
|
+
const OPTIONAL_RELEASE_OPERATIONS = ['list', 'retain'];
|
|
22
|
+
/** The operations of the legacy direct-mode path. */
|
|
23
|
+
const STABLE_TARGET_OPERATIONS = ['prepare', 'deploy'];
|
|
24
|
+
/** Every operation an adapter may declare, in the order an admitted adapter lists them. */
|
|
25
|
+
const OPERATIONS = FIELDS.filter((key) => key !== 'name' && key !== 'version' && key !== 'bundler');
|
|
4
26
|
export function defineAdapter(input) {
|
|
5
27
|
const value = record(input, 'Adapter definition');
|
|
6
|
-
|
|
28
|
+
if (Reflect.ownKeys(value).some((key) => !FIELDS.includes(key))) {
|
|
29
|
+
invalidFields();
|
|
30
|
+
}
|
|
31
|
+
const declared = (key) => value[key] !== undefined;
|
|
32
|
+
const release = [...RELEASE_OPERATIONS, ...OPTIONAL_RELEASE_OPERATIONS].some(declared);
|
|
33
|
+
// A legacy definition names both operations, as it always had to; v2 treats undefined as absent.
|
|
34
|
+
const stableTarget = STABLE_TARGET_OPERATIONS.filter((key) => release ? declared(key) : Object.hasOwn(value, key));
|
|
35
|
+
if (!release && stableTarget.length !== STABLE_TARGET_OPERATIONS.length)
|
|
36
|
+
invalidFields();
|
|
7
37
|
const name = stableName(input.name);
|
|
8
38
|
const version = stableName(input.version);
|
|
39
|
+
if (release)
|
|
40
|
+
admitRelease(name, value, stableTarget.length);
|
|
41
|
+
if (value.bundler === undefined)
|
|
42
|
+
missingBundler(name);
|
|
43
|
+
const bundler = admitBundler(input.bundler);
|
|
9
44
|
const receiver = Object.freeze({ ...input });
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
45
|
+
const required = new Set([...(release ? RELEASE_OPERATIONS : []), ...stableTarget]);
|
|
46
|
+
const operations = Object.fromEntries(OPERATIONS.filter((key) => required.has(key) || declared(key)).map((key) => [
|
|
47
|
+
key,
|
|
48
|
+
capture(receiver, key),
|
|
49
|
+
]));
|
|
14
50
|
const adapter = Object.freeze({
|
|
15
51
|
kind: 'adapter',
|
|
16
52
|
name,
|
|
17
53
|
version,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
deploy,
|
|
21
|
-
...(secretsFile === undefined ? {} : { secretsFile }),
|
|
54
|
+
bundler,
|
|
55
|
+
...operations,
|
|
22
56
|
});
|
|
23
57
|
admittedAdapters.add(adapter);
|
|
24
58
|
return adapter;
|
|
25
59
|
}
|
|
26
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* An adapter interface v2 definition implements configure, placement and deployRelease, and keeps
|
|
62
|
+
* prepare with deploy, or neither.
|
|
63
|
+
*/
|
|
64
|
+
function admitRelease(name, value, stableTargetOperations) {
|
|
65
|
+
const missing = RELEASE_OPERATIONS.filter((key) => value[key] === undefined);
|
|
66
|
+
if (missing.length > 0) {
|
|
67
|
+
throw new TypeError(`Adapter ${name} declares part of adapter interface v2 without ${missing.join(', ')}: ` +
|
|
68
|
+
'an adapter that deploys immutable deployments implements configure, placement and ' +
|
|
69
|
+
'deployRelease.');
|
|
70
|
+
}
|
|
71
|
+
if (stableTargetOperations === 1) {
|
|
72
|
+
throw new TypeError(`Adapter ${name} declares only one of prepare and deploy: an adapter that keeps the legacy ` +
|
|
73
|
+
'direct-mode path declares both.');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
27
76
|
export function defineDeployment(adapter, parameters) {
|
|
28
77
|
if (!isAdapter(adapter))
|
|
29
78
|
throw new TypeError('Deployment Adapter is not admitted.');
|
|
@@ -32,12 +81,39 @@ export function defineDeployment(adapter, parameters) {
|
|
|
32
81
|
}
|
|
33
82
|
return captureDeployment(adapter, Object.freeze({ ...parameters }));
|
|
34
83
|
}
|
|
84
|
+
/** Whether `defineAdapter` admitted this value, on either contract. */
|
|
35
85
|
export function isAdapter(input) {
|
|
36
86
|
return input !== null && typeof input === 'object' && admittedAdapters.has(input);
|
|
37
87
|
}
|
|
38
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Capture one receiver-bound bundler; its id and version name the bytes it produces. Adapters that
|
|
90
|
+
* declare one bundler object receive one admitted Bundler, so `astrale-domain build` bundles once
|
|
91
|
+
* for all of them.
|
|
92
|
+
*/
|
|
93
|
+
function admitBundler(input) {
|
|
94
|
+
const value = record(input, 'Bundler');
|
|
95
|
+
if (Reflect.ownKeys(value).some((key) => key !== 'id' && key !== 'version' && key !== 'bundle') ||
|
|
96
|
+
typeof input.bundle !== 'function') {
|
|
97
|
+
throw new TypeError('Bundler must declare exactly id, version and bundle.');
|
|
98
|
+
}
|
|
99
|
+
const admitted = admittedBundlers.get(value);
|
|
100
|
+
if (admitted !== undefined &&
|
|
101
|
+
admitted.declared === input.bundle &&
|
|
102
|
+
admitted.bundler.id === input.id &&
|
|
103
|
+
admitted.bundler.version === input.version) {
|
|
104
|
+
return admitted.bundler;
|
|
105
|
+
}
|
|
106
|
+
const bundler = Object.freeze({
|
|
107
|
+
id: stableName(input.id, 'Bundler id'),
|
|
108
|
+
version: stableName(input.version, 'Bundler version'),
|
|
109
|
+
bundle: input.bundle.bind(input),
|
|
110
|
+
});
|
|
111
|
+
admittedBundlers.set(value, { declared: input.bundle, bundler });
|
|
112
|
+
return bundler;
|
|
113
|
+
}
|
|
114
|
+
function stableName(input, label = 'Adapter name') {
|
|
39
115
|
if (typeof input !== 'string' || input.length === 0 || input.trim() !== input) {
|
|
40
|
-
throw new TypeError(
|
|
116
|
+
throw new TypeError(`${label} must be a non-empty stable string.`);
|
|
41
117
|
}
|
|
42
118
|
return input;
|
|
43
119
|
}
|
|
@@ -47,20 +123,21 @@ function record(input, label) {
|
|
|
47
123
|
}
|
|
48
124
|
return input;
|
|
49
125
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
126
|
+
/** Every adapter, on either contract, declares the bundler of the bytes it deploys. */
|
|
127
|
+
function missingBundler(name) {
|
|
128
|
+
throw new TypeError(`Adapter ${name} declares no bundler. ` +
|
|
129
|
+
'Every adapter declares `bundler`: the bundler of the environment-free bytes ' +
|
|
130
|
+
'`astrale-domain build` identifies by their build digest and `astrale-domain deploy` hands ' +
|
|
131
|
+
'to the adapter as its Bundle (a Cloudflare Worker adapter declares ' +
|
|
132
|
+
'`cloudflareWorkerBundler` from `@astrale-os/adapter-cloudflare/build`).');
|
|
133
|
+
}
|
|
134
|
+
function invalidFields() {
|
|
135
|
+
throw new TypeError('Adapter definition contains missing or unknown fields.');
|
|
56
136
|
}
|
|
57
137
|
function capture(receiver, key) {
|
|
58
|
-
const method = receiver
|
|
138
|
+
const method = Reflect.get(receiver, key);
|
|
59
139
|
if (typeof method !== 'function') {
|
|
60
|
-
throw new TypeError(`Adapter ${
|
|
140
|
+
throw new TypeError(`Adapter ${key} operation is invalid.`);
|
|
61
141
|
}
|
|
62
142
|
return method.bind(receiver);
|
|
63
143
|
}
|
|
64
|
-
function optional(receiver, key) {
|
|
65
|
-
return receiver[key] === undefined ? undefined : capture(receiver, key);
|
|
66
|
-
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export type { Adapter, AdapterEnvironmentContext, AdapterInput
|
|
1
|
+
export type { Adapter, AdapterEnvironmentContext, AdapterInput } from './adapter.js';
|
|
2
2
|
export { defineAdapter, defineDeployment, isAdapter } from './define.js';
|
|
3
|
-
export
|
|
4
|
-
export type * from './
|
|
3
|
+
export { RetainRefusal } from './release/refusal.js';
|
|
4
|
+
export type * from './bundle/index.js';
|
|
5
|
+
export type * from './release/index.js';
|
|
6
|
+
/** @deprecated The contract before adapter interface v2; see `./legacy/index.ts`. */
|
|
7
|
+
export type * from './legacy/index.js';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AdapterEnvironmentContext } from '../adapter.js';
|
|
2
|
+
import type { Bundler } from '../bundle/index.js';
|
|
3
|
+
import type { DeployContext, DeployResult } from './deploy/index.js';
|
|
4
|
+
import type { ArtifactSource, PrepareContext } from './prepare/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* A provider adapter on the contract before adapter interface v2: `prepare` places a build at one
|
|
7
|
+
* stable target per Environment and `deploy` replaces that target's code in place. It declares no
|
|
8
|
+
* `deployRelease`, so every Environment it deploys is on the legacy direct-mode path (CT33). Like
|
|
9
|
+
* every adapter, it declares its `bundler`: `astrale-domain deploy` bundles first and `prepare`
|
|
10
|
+
* only places that Bundle.
|
|
11
|
+
*
|
|
12
|
+
* @deprecated Replacement: `Adapter` (adapter interface v2), whose `deployRelease` deploys one
|
|
13
|
+
* sealed release as one immutable deployment. See `./index.ts` for its consumers and removal.
|
|
14
|
+
*/
|
|
15
|
+
export interface LegacyAdapter<Parameters extends object = object> {
|
|
16
|
+
readonly kind: 'adapter';
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly version: string;
|
|
19
|
+
/** Environment-free bytes `astrale-domain build` identifies by their build digest. */
|
|
20
|
+
readonly bundler: Bundler;
|
|
21
|
+
admit?(parameters: Parameters, context: AdapterEnvironmentContext): void;
|
|
22
|
+
prepare(parameters: Parameters, context: PrepareContext): Promise<ArtifactSource>;
|
|
23
|
+
deploy(parameters: Parameters, context: DeployContext): Promise<DeployResult>;
|
|
24
|
+
readonly secretsFile?: (parameters: Parameters) => string | undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* What `defineAdapter` admits for a `LegacyAdapter`.
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Replacement: `AdapterInput` (adapter interface v2). See `./index.ts`.
|
|
30
|
+
*/
|
|
31
|
+
export interface LegacyAdapterInput<Parameters extends object> {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly version: string;
|
|
34
|
+
/** Environment-free bytes `astrale-domain build` identifies by their build digest. */
|
|
35
|
+
readonly bundler: Bundler;
|
|
36
|
+
admit?(parameters: Parameters, context: AdapterEnvironmentContext): void;
|
|
37
|
+
prepare(parameters: Parameters, context: PrepareContext): Promise<ArtifactSource>;
|
|
38
|
+
deploy(parameters: Parameters, context: DeployContext): Promise<DeployResult>;
|
|
39
|
+
readonly secretsFile?: (parameters: Parameters) => string | undefined;
|
|
40
|
+
}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import type { InstallationTarget } from '../adapter.js';
|
|
2
1
|
import type { PreparedArtifact } from '../prepare/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* What a legacy `deploy` receives to replace one Environment's stable target in place.
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement:
|
|
6
|
+
* `ReleaseDeployContext`, which `deployRelease` receives.
|
|
7
|
+
*/
|
|
3
8
|
export interface DeployContext {
|
|
4
9
|
readonly projectDir: string;
|
|
5
10
|
readonly environment: string;
|
|
6
|
-
readonly installation?: InstallationTarget;
|
|
7
11
|
/** Optional command-scoped identity override (`--as`). */
|
|
8
12
|
readonly identity?: string;
|
|
9
13
|
/** Optional command-scoped credential; trusted adapters must neither retain nor disclose it. */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { Digest } from '@astrale-os/kernel-protocol/artifact';
|
|
2
|
+
import type { BuildDigest } from '../../../build/index.js';
|
|
3
|
+
import type { Addressing } from '../../../release/index.js';
|
|
4
|
+
import type { Release } from '../../../release/legacy/index.js';
|
|
5
|
+
import type { MutationKnowledge } from '../../release/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Where a legacy `deploy` stopped.
|
|
8
|
+
*
|
|
9
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement:
|
|
10
|
+
* `ReleaseDeploymentPhase`; an immutable deployment is neither addressed nor installed by its deploy.
|
|
11
|
+
*/
|
|
12
|
+
export type DeploymentPhase = 'prerequisite' | 'provider' | 'addressing' | 'release' | 'configuration' | 'readiness';
|
|
13
|
+
/**
|
|
14
|
+
* What a provider reports for the stable target it replaced.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement: the
|
|
17
|
+
* `DeploymentRecordV1` of `ReadyReleaseDeployResult`; a provider deployment or version id never
|
|
18
|
+
* identifies an immutable deployment.
|
|
19
|
+
*/
|
|
20
|
+
export interface ProviderDeploymentEvidence {
|
|
21
|
+
readonly provider: string;
|
|
22
|
+
readonly deployment: string;
|
|
23
|
+
readonly artifact: Digest;
|
|
24
|
+
/**
|
|
25
|
+
* Build digest of the portable upload (modules and assets) this deployment was made from, which
|
|
26
|
+
* `astrale-domain deploy` compares with the Bundle it passed as `PrepareContext.bundle`. Present
|
|
27
|
+
* only when preparation placed that Bundle. A provider that bundles the upload again (Wrangler in
|
|
28
|
+
* direct mode) runs other bytes than these. Legacy prepare/deploy surface: deleted with it.
|
|
29
|
+
*/
|
|
30
|
+
readonly build?: BuildDigest;
|
|
31
|
+
readonly issuer?: Addressing['issuer'];
|
|
32
|
+
/** Optional provider-side check before promotion; distinct from public readiness. */
|
|
33
|
+
readonly preflight?: 'passed' | 'unavailable';
|
|
34
|
+
}
|
|
35
|
+
/** @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). */
|
|
36
|
+
export type AppliedProviderDeployment = {
|
|
37
|
+
readonly kind: 'applied';
|
|
38
|
+
readonly evidence: ProviderDeploymentEvidence & {
|
|
39
|
+
readonly issuer: Addressing['issuer'];
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* What a legacy `deploy` changed, effect by effect.
|
|
44
|
+
*
|
|
45
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement:
|
|
46
|
+
* `FailedReleaseDeployResult.provider`.
|
|
47
|
+
*/
|
|
48
|
+
export interface DeploymentProgress {
|
|
49
|
+
readonly prerequisite: MutationKnowledge;
|
|
50
|
+
readonly provider: MutationKnowledge<ProviderDeploymentEvidence>;
|
|
51
|
+
readonly configuration: MutationKnowledge;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* A stable target replaced in place and ready.
|
|
55
|
+
*
|
|
56
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement:
|
|
57
|
+
* `ReadyReleaseDeployResult`, the immutable deployment `deployRelease` created or reused.
|
|
58
|
+
*/
|
|
59
|
+
export interface ReadyDeployResult {
|
|
60
|
+
readonly status: 'ready';
|
|
61
|
+
readonly phase: 'complete';
|
|
62
|
+
readonly progress: DeploymentProgress & {
|
|
63
|
+
readonly provider: AppliedProviderDeployment;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* The stable-target Release (v3 Publication) of the legacy `deploy` operation. A canonical deploy
|
|
67
|
+
* reaches its adapter through `deployRelease` with the v4 Release (CT23); D10 deletes `deploy`
|
|
68
|
+
* and this result with the direct-mode path.
|
|
69
|
+
*/
|
|
70
|
+
readonly release: Release;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A legacy `deploy` that did not reach a ready stable target.
|
|
74
|
+
*
|
|
75
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement:
|
|
76
|
+
* `FailedReleaseDeployResult`.
|
|
77
|
+
*/
|
|
78
|
+
export interface FailedDeployResult {
|
|
79
|
+
readonly status: 'failed';
|
|
80
|
+
readonly phase: DeploymentPhase;
|
|
81
|
+
readonly progress: DeploymentProgress;
|
|
82
|
+
readonly error: Error;
|
|
83
|
+
readonly release?: Release;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement:
|
|
87
|
+
* `ReleaseDeployResult`.
|
|
88
|
+
*/
|
|
89
|
+
export type DeployResult = ReadyDeployResult | FailedDeployResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The adapter contract before adapter interface v2: `prepare` places a build at one stable target
|
|
3
|
+
* per Environment, `deploy` replaces that target's code in place, and the stable target serves a
|
|
4
|
+
* v3 Publication under an issuer bound to it for life. Neither installs anything.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated Replacement: `Adapter` (adapter interface v2): beside the same `bundler`, `configure`,
|
|
7
|
+
* `placement` and `deployRelease`, which deploys one sealed release as one immutable deployment,
|
|
8
|
+
* created or reused, and installs nothing.
|
|
9
|
+
*
|
|
10
|
+
* Short-term consumers: the legacy direct-mode path (CT33), which `astrale-domain deploy`
|
|
11
|
+
* runs through these operations: adapter-cloudflare direct mode (`route`,
|
|
12
|
+
* `workerName`, `identityIssuer`, `addressing`, `signingIdentity`, or no `namespace`), which serves
|
|
13
|
+
* the configurations of domains ai-gateway, closing, grc, integrations and issues (until SV15),
|
|
14
|
+
* domains organization (until it leaves direct mode, AM-147), the Services `beta` and `prod` (until
|
|
15
|
+
* SV12), `development` (until SV9) and frozen `admin-beta` (until D19) environments, shell (until
|
|
16
|
+
* SH2) and its frozen `legacy-v3` (until D22), and ui:domain (until UI1).
|
|
17
|
+
*
|
|
18
|
+
* Removal: D10, once no configuration on any repository's main selects the direct-mode path
|
|
19
|
+
* (CT33, AM-147); it deletes these types with `prepare`/`deploy`, `src/deployment/release/legacy`
|
|
20
|
+
* and the stable-target CLI path.
|
|
21
|
+
*/
|
|
22
|
+
export type { LegacyAdapter, LegacyAdapterInput } from './adapter.js';
|
|
23
|
+
export type * from './prepare/index.js';
|
|
24
|
+
export type * from './deploy/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Digest } from '@astrale-os/kernel-protocol/artifact';
|
|
2
|
+
import type { Build } from '../../../build/index.js';
|
|
3
|
+
import type { Addressing } from '../../../release/index.js';
|
|
4
|
+
import type { ArtifactFile, PreparedArtifactFile } from '../../bundle/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Where the stable target of one Environment answers: configured by the author or assigned by the
|
|
7
|
+
* provider.
|
|
8
|
+
*
|
|
9
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement: `Placement`,
|
|
10
|
+
* from which `deploymentUrl(label, placement.routingDomain)` derives an immutable deployment's URL.
|
|
11
|
+
*/
|
|
12
|
+
export type AddressingPlan = {
|
|
13
|
+
readonly kind: 'configured';
|
|
14
|
+
readonly addressing: Addressing;
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: 'provider-assigned';
|
|
17
|
+
readonly claim: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Untrusted provider-specific preparation output admitted by verify/preflight.
|
|
21
|
+
*
|
|
22
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement: the `Bundle`
|
|
23
|
+
* the adapter's `bundler` produces, which `deployRelease` receives.
|
|
24
|
+
*/
|
|
25
|
+
export interface ArtifactSource {
|
|
26
|
+
readonly entrypoint: string;
|
|
27
|
+
readonly files: readonly ArtifactFile[];
|
|
28
|
+
readonly addressing: AddressingPlan;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Exact detached input supplied to every provider deployment effect.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement: the `Bundle`
|
|
34
|
+
* and `FrozenConfigurationV1` that `deployRelease` receives.
|
|
35
|
+
*/
|
|
36
|
+
export interface PreparedArtifact<BuildValue extends Build = Build> {
|
|
37
|
+
readonly kind: 'prepared-artifact';
|
|
38
|
+
readonly build: BuildValue;
|
|
39
|
+
readonly digest: Digest;
|
|
40
|
+
readonly entrypoint: string;
|
|
41
|
+
readonly files: readonly PreparedArtifactFile[];
|
|
42
|
+
readonly addressing: AddressingPlan;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Build } from '../../../build/index.js';
|
|
2
|
+
import type { ResolvedRuntimeReference } from '../../../runtime/index.js';
|
|
3
|
+
import type { Bundle } from '../../bundle/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* What `prepare` receives to produce the artifact of one Environment's stable target.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Legacy `prepare`/`deploy` contract (see `../index.ts`). Replacement: `configure`,
|
|
8
|
+
* `placement` and the Bundle of the adapter's `bundler`, which `deployRelease` receives.
|
|
9
|
+
*/
|
|
10
|
+
export interface PrepareContext<BuildValue extends Build = Build> {
|
|
11
|
+
readonly projectDir: string;
|
|
12
|
+
readonly environment: string;
|
|
13
|
+
/**
|
|
14
|
+
* Preparation purpose. One-shot deployment prepares complete release artifacts. Omitted by
|
|
15
|
+
* older custom callers means release for compatibility during the beta migration.
|
|
16
|
+
*/
|
|
17
|
+
readonly mode?: 'release';
|
|
18
|
+
/**
|
|
19
|
+
* Optional preparation-input observer used by tooling that must rebuild when
|
|
20
|
+
* an adapter reads authored paths outside the Domain/Runtime module graph.
|
|
21
|
+
*/
|
|
22
|
+
readonly recordSource?: (path: string) => void;
|
|
23
|
+
/** Parent-owned lifecycle cancellation shared by every preparation process/effect. */
|
|
24
|
+
readonly signal: AbortSignal;
|
|
25
|
+
readonly build: BuildValue;
|
|
26
|
+
readonly runtime: ResolvedRuntimeReference;
|
|
27
|
+
/**
|
|
28
|
+
* The environment-free Bundle of the adapter's own `bundler`, which `astrale-domain deploy`
|
|
29
|
+
* always produces first so that preparation only places it. Absent for a custom caller, the
|
|
30
|
+
* adapter bundles by itself. Legacy prepare/deploy surface: deleted with it.
|
|
31
|
+
*/
|
|
32
|
+
readonly bundle?: Bundle<BuildValue>;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { DeploymentCommitV1, FrozenConfigurationV1, LineAddressing } from '../../address/index.js';
|
|
2
|
+
import type { Release } from '../../release/index.js';
|
|
3
|
+
import type { Bundle } from '../bundle/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* What `configure` receives: the Environment whose configuration it freezes, and the names of the
|
|
6
|
+
* secrets its deployment binds. Never a secret value: a rotated value is not another configuration,
|
|
7
|
+
* a name added or removed is.
|
|
8
|
+
*/
|
|
9
|
+
export interface ConfigureContext {
|
|
10
|
+
readonly environment: string;
|
|
11
|
+
/**
|
|
12
|
+
* The names of the Environment's current secrets (the adapter's `secretsFile`), sorted and
|
|
13
|
+
* unique: exactly the secrets `deployRelease` receives, which the configuration declares in
|
|
14
|
+
* `bindings.secrets`.
|
|
15
|
+
*/
|
|
16
|
+
readonly secrets: readonly string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Where the host places the deployments of one Environment. `routingDomain` is the DNS name every
|
|
20
|
+
* deployment URL ends with, `https://<label>.<routingDomain>`; `addressing` is how its line reads:
|
|
21
|
+
* `readable` for platform lines, `opaque` (the fingerprint alone) for tenant lines.
|
|
22
|
+
*/
|
|
23
|
+
export interface Placement {
|
|
24
|
+
readonly addressing: LineAddressing;
|
|
25
|
+
readonly routingDomain: string;
|
|
26
|
+
}
|
|
27
|
+
/** What `placement` receives. It answers without any effect at the host. */
|
|
28
|
+
export interface PlacementContext {
|
|
29
|
+
readonly environment: string;
|
|
30
|
+
/** Parent-owned lifecycle cancellation. */
|
|
31
|
+
readonly signal: AbortSignal;
|
|
32
|
+
/** Optional command-scoped identity override (`--as`). */
|
|
33
|
+
readonly identity?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Everything `deployRelease` deploys: one sealed release as one immutable deployment at
|
|
37
|
+
* `release.url`, which is `deploymentUrl(label, placement.routingDomain)` and the release's issuer.
|
|
38
|
+
* The SDK computes each value before the call, from the Build, `configure` and `placement`, so the
|
|
39
|
+
* adapter never derives an address or seals anything itself.
|
|
40
|
+
*/
|
|
41
|
+
export interface ReleaseDeployContext {
|
|
42
|
+
readonly projectDir: string;
|
|
43
|
+
readonly environment: string;
|
|
44
|
+
/** Optional command-scoped identity override (`--as`). */
|
|
45
|
+
readonly identity?: string;
|
|
46
|
+
/** Optional command-scoped credential; trusted adapters must neither retain nor disclose it. */
|
|
47
|
+
readonly credential?: string;
|
|
48
|
+
/**
|
|
49
|
+
* The Environment's current secrets. A new deployment binds them; a reused deployment has its
|
|
50
|
+
* own declared secrets rewritten in place. A deploy never writes another deployment's secrets.
|
|
51
|
+
*/
|
|
52
|
+
readonly secrets: Readonly<Record<string, string>>;
|
|
53
|
+
/** The environment-free bytes of the adapter's `bundler`, identified by `bundle.digest`. */
|
|
54
|
+
readonly bundle: Bundle;
|
|
55
|
+
/** What `configure` froze for this Environment. */
|
|
56
|
+
readonly configuration: FrozenConfigurationV1;
|
|
57
|
+
/** Where `placement` said the host places the deployment. */
|
|
58
|
+
readonly placement: Placement;
|
|
59
|
+
/**
|
|
60
|
+
* `<line>-<content>`: the DNS label of the deployment, which is also its provider script. Its
|
|
61
|
+
* content covers `bundle.digest` and `configuration`, so one label serves one release.
|
|
62
|
+
*/
|
|
63
|
+
readonly label: string;
|
|
64
|
+
/**
|
|
65
|
+
* The release the SDK sealed for this deployment before the call: its `document` is the
|
|
66
|
+
* `DomainRelease` v4 the deployment serves at `release.json`, its `url` the deployment URL.
|
|
67
|
+
*/
|
|
68
|
+
readonly release: Release;
|
|
69
|
+
/**
|
|
70
|
+
* The commit this deploy runs from, which the record of a deployment it creates declares. The
|
|
71
|
+
* label does not cover it: a reused deployment keeps the record, and so the commit, of the deploy
|
|
72
|
+
* that created it, and an adapter never refuses a reuse for another commit.
|
|
73
|
+
*/
|
|
74
|
+
readonly commit: DeploymentCommitV1 | null;
|
|
75
|
+
/** Parent-owned lifecycle cancellation shared by every provider effect. */
|
|
76
|
+
readonly signal: AbortSignal;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* What `list` receives: the origin and the Environment whose deployments the host lists for the
|
|
80
|
+
* caller. It answers without any effect at the host.
|
|
81
|
+
*/
|
|
82
|
+
export interface ListContext {
|
|
83
|
+
readonly origin: string;
|
|
84
|
+
readonly environment: string;
|
|
85
|
+
/** Parent-owned lifecycle cancellation. */
|
|
86
|
+
readonly signal: AbortSignal;
|
|
87
|
+
/** Optional command-scoped identity override (`--as`). */
|
|
88
|
+
readonly identity?: string;
|
|
89
|
+
}
|
|
90
|
+
/** What `retain` receives: the label of the published deployment to keep. */
|
|
91
|
+
export interface RetainContext {
|
|
92
|
+
readonly label: string;
|
|
93
|
+
readonly signal: AbortSignal;
|
|
94
|
+
readonly identity?: string;
|
|
95
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ConfigureContext, ListContext, Placement, PlacementContext, ReleaseDeployContext, RetainContext, } from './context.js';
|
|
2
|
+
export type { DeploymentCallTarget, ListedDeployment } from './list.js';
|
|
3
|
+
export type { DeploymentSecretsState, FailedReleaseDeployResult, MutationKnowledge, ReadyReleaseDeployResult, ReleaseDeploymentPhase, ReleaseDeployResult, } from './result.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { DeploymentSummaryV1 } from '../../address/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Where one listed deployment is called on its host, so that an operator can act on it:
|
|
4
|
+
*
|
|
5
|
+
* - `services`: a deployment Admin's Services hosts, called on the Admin instance with
|
|
6
|
+
* `astrale call "<node>.method.<method>" --admin` (`--admin=<admin>` when `admin` names the
|
|
7
|
+
* Admin bookmark). `path` is the deployment's node, `@<id>`, qualified by its class,
|
|
8
|
+
* `@<id>::services.astrale.ai:class.CloudflareDeployment`, whose only Method is `retire`.
|
|
9
|
+
* `service` is the node of the Service it is a version of,
|
|
10
|
+
* `@<serviceId>::services.astrale.ai:class.CloudflareService`, whose Methods act on the Service
|
|
11
|
+
* and the deployment it currently serves: `promote` (this deployment's label rolls the Service
|
|
12
|
+
* back or forward to it), `setSecret` and `secrets`, `setSchedule` and `schedules`, `logs`,
|
|
13
|
+
* `transfer` and `delete`.
|
|
14
|
+
* - `namespace`: a deployment of a platform dispatch namespace, which has no Services node: the
|
|
15
|
+
* namespace and the script the per-script tooling of that namespace takes.
|
|
16
|
+
*/
|
|
17
|
+
export type DeploymentCallTarget = {
|
|
18
|
+
readonly kind: 'services';
|
|
19
|
+
readonly path: string;
|
|
20
|
+
readonly service: string;
|
|
21
|
+
/** The Admin bookmark the deployment is reached through; the CLI's own Admin target when absent. */
|
|
22
|
+
readonly admin?: string;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'namespace';
|
|
25
|
+
readonly namespace: string;
|
|
26
|
+
readonly script: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* One deployment as an adapter's `list` returns it: what its host knows of it, its record as the
|
|
30
|
+
* host stores it, and where it is called. `lastCallAt`, and a preview's `expiresAt`, are as of the
|
|
31
|
+
* listing: an adapter whose host records calls only now and then reads the calls counted since, and
|
|
32
|
+
* one that cannot read them for want of a permission omits both rather than print stale values.
|
|
33
|
+
* Admin's Services keeps every deployment until it is retired and counts no call: its deployments
|
|
34
|
+
* are `published`, `withdrawn` once retiring, and carry neither clock.
|
|
35
|
+
*
|
|
36
|
+
* The adapter does not admit the record. The listing admits it with `acceptDeploymentRecord`, and a
|
|
37
|
+
* record it refuses (one a host on an older SDK still admits, say) never fails the listing: that
|
|
38
|
+
* deployment is listed from the facts its host owns.
|
|
39
|
+
*/
|
|
40
|
+
export interface ListedDeployment extends Omit<DeploymentSummaryV1, 'record'> {
|
|
41
|
+
/**
|
|
42
|
+
* The record as the host stores it, unadmitted, whatever value that is (JSON `null` included).
|
|
43
|
+
* Absent when the host keeps no record of the deployment: a platform namespace keeps none until
|
|
44
|
+
* it activates the deployment.
|
|
45
|
+
*/
|
|
46
|
+
readonly record?: unknown;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the stable URL of the deployment's Service serves it. Present only where the host has
|
|
49
|
+
* Services (Admin's Services); a platform namespace has none.
|
|
50
|
+
*/
|
|
51
|
+
readonly current?: boolean;
|
|
52
|
+
readonly callTarget: DeploymentCallTarget;
|
|
53
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why the host can no longer keep one published deployment (`Adapter.retain`): it is `absent`
|
|
3
|
+
* (the host holds no deployment of that label, or it was deleted) or `retired` (withdrawn, never
|
|
4
|
+
* served again). No rerun keeps it; a new version publishes a new deployment. Any other rejection
|
|
5
|
+
* of `retain` is transient: once it has passed, a rerun keeps the deployment.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RetainRefusal extends Error {
|
|
8
|
+
readonly reason: 'absent' | 'retired';
|
|
9
|
+
constructor(reason: RetainRefusal['reason'], message: string);
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why the host can no longer keep one published deployment (`Adapter.retain`): it is `absent`
|
|
3
|
+
* (the host holds no deployment of that label, or it was deleted) or `retired` (withdrawn, never
|
|
4
|
+
* served again). No rerun keeps it; a new version publishes a new deployment. Any other rejection
|
|
5
|
+
* of `retain` is transient: once it has passed, a rerun keeps the deployment.
|
|
6
|
+
*/
|
|
7
|
+
export class RetainRefusal extends Error {
|
|
8
|
+
reason;
|
|
9
|
+
constructor(reason, message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'RetainRefusal';
|
|
12
|
+
this.reason = reason;
|
|
13
|
+
}
|
|
14
|
+
}
|