@astrale-os/sdk 0.6.0-beta.2 → 0.6.0-beta.20
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 +74 -0
- package/dist/tooling/cli/publish/index.js +364 -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 +127 -0
- package/dist/tooling/cli/registry/client.js +351 -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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Digest } from '@astrale-os/kernel-protocol/artifact';
|
|
2
|
+
/**
|
|
3
|
+
* Identity of the code a deployment executes: the hash of the produced bytes (modules, assets,
|
|
4
|
+
* Schema and requirements), never of the address, issuer, key, secrets or Environment. Two builds of
|
|
5
|
+
* one source share it; a code change at equal Schema revision changes it.
|
|
6
|
+
*/
|
|
7
|
+
export type BuildDigest = Digest;
|
|
8
|
+
/** Schema revision, unchanged: what the Domain means. */
|
|
9
|
+
type Revision = Digest;
|
|
10
|
+
export declare const BUILD_MANIFEST_FORMAT = "astrale.domain.build";
|
|
11
|
+
export declare const BUILD_MANIFEST_VERSION = 1;
|
|
12
|
+
/** Exact preimage of a build digest. */
|
|
13
|
+
export interface BuildManifestV1 {
|
|
14
|
+
readonly format: typeof BUILD_MANIFEST_FORMAT;
|
|
15
|
+
readonly version: typeof BUILD_MANIFEST_VERSION;
|
|
16
|
+
readonly origin: string;
|
|
17
|
+
readonly schema: {
|
|
18
|
+
readonly revision: Revision;
|
|
19
|
+
readonly bundle: Digest;
|
|
20
|
+
};
|
|
21
|
+
readonly bundler: {
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly version: string;
|
|
24
|
+
};
|
|
25
|
+
readonly entrypoint: string;
|
|
26
|
+
/**
|
|
27
|
+
* Unique, sorted by path (UTF-16 code units): modules by uploaded module name, static assets as
|
|
28
|
+
* `assets/<path>`.
|
|
29
|
+
*/
|
|
30
|
+
readonly files: readonly {
|
|
31
|
+
readonly path: string;
|
|
32
|
+
readonly digest: Digest;
|
|
33
|
+
readonly size: number;
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
36
|
+
export interface BuildManifestInput {
|
|
37
|
+
readonly origin: string;
|
|
38
|
+
readonly revision: Revision;
|
|
39
|
+
readonly bundle: Digest;
|
|
40
|
+
readonly bundler: {
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly version: string;
|
|
43
|
+
};
|
|
44
|
+
readonly entrypoint: string;
|
|
45
|
+
readonly files: readonly {
|
|
46
|
+
readonly path: string;
|
|
47
|
+
readonly content: Uint8Array;
|
|
48
|
+
}[];
|
|
49
|
+
}
|
|
50
|
+
/** Describe the exact files one bundler produced, in the one canonical order. */
|
|
51
|
+
export declare function buildManifest(input: BuildManifestInput): BuildManifestV1;
|
|
52
|
+
/** `sha256` of the canonical JSON (RFC 8785) of one admitted build manifest. */
|
|
53
|
+
export declare function buildDigest(manifest: BuildManifestV1): BuildDigest;
|
|
54
|
+
/**
|
|
55
|
+
* Admit a build digest as it travels outside its manifest (a deployment binding, a record): exactly
|
|
56
|
+
* `sha256:` and 64 lowercase hex digits. Anything else throws, so a reader fails closed.
|
|
57
|
+
*/
|
|
58
|
+
export declare function acceptBuildDigest(input: unknown): BuildDigest;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { json } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import { identify } from '@astrale-os/kernel-protocol/artifact';
|
|
3
|
+
export const BUILD_MANIFEST_FORMAT = 'astrale.domain.build';
|
|
4
|
+
export const BUILD_MANIFEST_VERSION = 1;
|
|
5
|
+
const MANIFEST_MEDIA_TYPE = 'application/vnd.astrale.domain-build+json;v=1';
|
|
6
|
+
const FILE_MEDIA_TYPE = 'application/octet-stream';
|
|
7
|
+
const DIGEST = /^sha256:[0-9a-f]{64}$/u;
|
|
8
|
+
/** Describe the exact files one bundler produced, in the one canonical order. */
|
|
9
|
+
export function buildManifest(input) {
|
|
10
|
+
if (input === null || typeof input !== 'object' || !Array.isArray(input.files))
|
|
11
|
+
invalid();
|
|
12
|
+
const files = input.files.map((file) => {
|
|
13
|
+
if (file === null || typeof file !== 'object' || !(file.content instanceof Uint8Array)) {
|
|
14
|
+
invalid();
|
|
15
|
+
}
|
|
16
|
+
const { digest, size } = identify(file.content, FILE_MEDIA_TYPE);
|
|
17
|
+
return { path: file.path, digest, size };
|
|
18
|
+
});
|
|
19
|
+
return admit({
|
|
20
|
+
format: BUILD_MANIFEST_FORMAT,
|
|
21
|
+
version: BUILD_MANIFEST_VERSION,
|
|
22
|
+
origin: input.origin,
|
|
23
|
+
schema: { revision: input.revision, bundle: input.bundle },
|
|
24
|
+
bundler: { id: input.bundler?.id, version: input.bundler?.version },
|
|
25
|
+
entrypoint: input.entrypoint,
|
|
26
|
+
files: files.sort((left, right) => compare(left.path, right.path)),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/** `sha256` of the canonical JSON (RFC 8785) of one admitted build manifest. */
|
|
30
|
+
export function buildDigest(manifest) {
|
|
31
|
+
return identify(json.encode(admit(manifest)), MANIFEST_MEDIA_TYPE).digest;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Admit a build digest as it travels outside its manifest (a deployment binding, a record): exactly
|
|
35
|
+
* `sha256:` and 64 lowercase hex digits. Anything else throws, so a reader fails closed.
|
|
36
|
+
*/
|
|
37
|
+
export function acceptBuildDigest(input) {
|
|
38
|
+
if (typeof input !== 'string' || !DIGEST.test(input)) {
|
|
39
|
+
throw new TypeError('Build digest must be sha256: followed by 64 lowercase hex digits.');
|
|
40
|
+
}
|
|
41
|
+
return input;
|
|
42
|
+
}
|
|
43
|
+
function admit(input) {
|
|
44
|
+
if (input === null || typeof input !== 'object')
|
|
45
|
+
invalid();
|
|
46
|
+
exact(input, ['format', 'version', 'origin', 'schema', 'bundler', 'entrypoint', 'files']);
|
|
47
|
+
if (input.format !== BUILD_MANIFEST_FORMAT || input.version !== BUILD_MANIFEST_VERSION)
|
|
48
|
+
invalid();
|
|
49
|
+
exact(input.schema, ['revision', 'bundle']);
|
|
50
|
+
exact(input.bundler, ['id', 'version']);
|
|
51
|
+
if (!Array.isArray(input.files) || input.files.length === 0)
|
|
52
|
+
invalid();
|
|
53
|
+
const files = input.files.map((file, index) => {
|
|
54
|
+
exact(file, ['path', 'digest', 'size']);
|
|
55
|
+
const path = contained(file.path);
|
|
56
|
+
if (index > 0 && compare(input.files[index - 1].path, path) >= 0) {
|
|
57
|
+
throw new TypeError('Build manifest files must be unique and sorted by path.');
|
|
58
|
+
}
|
|
59
|
+
if (!Number.isSafeInteger(file.size) || file.size < 0)
|
|
60
|
+
invalid();
|
|
61
|
+
return Object.freeze({ path, digest: digest(file.digest), size: file.size });
|
|
62
|
+
});
|
|
63
|
+
const entrypoint = contained(input.entrypoint);
|
|
64
|
+
if (!files.some((file) => file.path === entrypoint)) {
|
|
65
|
+
throw new TypeError('Build manifest entrypoint is absent from its files.');
|
|
66
|
+
}
|
|
67
|
+
return Object.freeze({
|
|
68
|
+
format: BUILD_MANIFEST_FORMAT,
|
|
69
|
+
version: BUILD_MANIFEST_VERSION,
|
|
70
|
+
origin: stable(input.origin, 'Build origin'),
|
|
71
|
+
schema: Object.freeze({
|
|
72
|
+
revision: digest(input.schema.revision),
|
|
73
|
+
bundle: digest(input.schema.bundle),
|
|
74
|
+
}),
|
|
75
|
+
bundler: Object.freeze({
|
|
76
|
+
id: stable(input.bundler.id, 'Bundler id'),
|
|
77
|
+
version: stable(input.bundler.version, 'Bundler version'),
|
|
78
|
+
}),
|
|
79
|
+
entrypoint,
|
|
80
|
+
files: Object.freeze(files),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function exact(input, keys) {
|
|
84
|
+
if (input === null ||
|
|
85
|
+
typeof input !== 'object' ||
|
|
86
|
+
Array.isArray(input) ||
|
|
87
|
+
Reflect.ownKeys(input).length !== keys.length ||
|
|
88
|
+
keys.some((key) => !Object.hasOwn(input, key))) {
|
|
89
|
+
invalid();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function contained(input) {
|
|
93
|
+
if (typeof input !== 'string' ||
|
|
94
|
+
input.length === 0 ||
|
|
95
|
+
input.startsWith('/') ||
|
|
96
|
+
input.includes('\\') ||
|
|
97
|
+
input.split('/').some((segment) => segment === '' || segment === '.' || segment === '..')) {
|
|
98
|
+
throw new TypeError('Build manifest paths must be contained relative POSIX paths.');
|
|
99
|
+
}
|
|
100
|
+
return input;
|
|
101
|
+
}
|
|
102
|
+
function digest(input) {
|
|
103
|
+
if (typeof input !== 'string' || !DIGEST.test(input))
|
|
104
|
+
invalid();
|
|
105
|
+
return input;
|
|
106
|
+
}
|
|
107
|
+
function stable(input, label) {
|
|
108
|
+
if (typeof input !== 'string' || input.length === 0 || input.trim() !== input) {
|
|
109
|
+
throw new TypeError(`${label} must be a non-empty stable string.`);
|
|
110
|
+
}
|
|
111
|
+
return input;
|
|
112
|
+
}
|
|
113
|
+
function compare(left, right) {
|
|
114
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
115
|
+
}
|
|
116
|
+
function invalid() {
|
|
117
|
+
throw new TypeError('Build manifest is invalid.');
|
|
118
|
+
}
|
|
@@ -4,8 +4,8 @@ import { load as loadCompiledSchema } from '@astrale-os/kernel-dsl/v1/compiled/l
|
|
|
4
4
|
import { revision } from '@astrale-os/kernel-dsl/v1/schema/revision';
|
|
5
5
|
import { equal } from '@astrale-os/kernel-dsl/value';
|
|
6
6
|
import * as artifact from '@astrale-os/kernel-protocol/artifact';
|
|
7
|
-
import { BUNDLE_MEDIA_TYPE } from '@astrale-os/kernel-protocol/
|
|
8
|
-
import { admitRequirements, validateRequirements, } from '@astrale-os/kernel-protocol/
|
|
7
|
+
import { BUNDLE_MEDIA_TYPE } from '@astrale-os/kernel-protocol/release/bundle';
|
|
8
|
+
import { admitRequirements, validateRequirements, } from '@astrale-os/kernel-protocol/release/requirements';
|
|
9
9
|
import * as routes from '@astrale-os/kernel-protocol/routes';
|
|
10
10
|
import { admitRuntimeRegistry, isRuntime } from '../../application/runtime/index.js';
|
|
11
11
|
import { admitBuild, isBuild } from './admission.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { release } from '@astrale-os/kernel-protocol';
|
|
2
2
|
import type { schema } from '../../platform/schema/index.js';
|
|
3
3
|
export interface BuildBundle {
|
|
4
|
-
readonly ref:
|
|
4
|
+
readonly ref: release.BundleDescriptor['ref'];
|
|
5
5
|
bytes(): Uint8Array;
|
|
6
6
|
}
|
|
7
7
|
export interface BuildSchema<Source extends schema.DomainSchema = schema.DomainSchema> {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Adapter } from './adapter/index.js';
|
|
1
|
+
import type { DomainDefinitionIdentity } from '../application/index.js';
|
|
2
|
+
import type { Adapter, LegacyAdapter } from './adapter/index.js';
|
|
3
3
|
import type { RuntimeReference } from './runtime/index.js';
|
|
4
|
-
type CanonicalAdapter<Value> = Value extends Adapter<infer _Parameters> ? Value : never;
|
|
5
|
-
/** @deprecated Declare
|
|
6
|
-
export interface DeploymentInput<
|
|
7
|
-
readonly application:
|
|
4
|
+
type CanonicalAdapter<Value> = Value extends Adapter<infer _Parameters> ? Value : Value extends LegacyAdapter<infer _Parameters> ? Value : never;
|
|
5
|
+
/** @deprecated Declare the Domain and Environments directly in defineProject(). */
|
|
6
|
+
export interface DeploymentInput<DomainDefinitionValue extends DomainDefinitionIdentity, AdapterValue extends object> {
|
|
7
|
+
readonly application: DomainDefinitionValue;
|
|
8
8
|
readonly entrypoint: RuntimeReference;
|
|
9
9
|
readonly adapter: CanonicalAdapter<AdapterValue>;
|
|
10
10
|
}
|
|
11
11
|
/** @deprecated Legacy aggregate retained only so tooling can issue an exact migration diagnostic. */
|
|
12
|
-
export interface LegacyDeployment<
|
|
13
|
-
readonly application:
|
|
12
|
+
export interface LegacyDeployment<DomainDefinitionValue extends DomainDefinitionIdentity = DomainDefinitionIdentity, AdapterValue extends object = object> {
|
|
13
|
+
readonly application: DomainDefinitionValue;
|
|
14
14
|
readonly entrypoint: RuntimeReference;
|
|
15
15
|
readonly adapter: AdapterValue;
|
|
16
16
|
}
|
|
17
|
-
/** @deprecated Declare
|
|
18
|
-
export declare function deploy<const
|
|
17
|
+
/** @deprecated Declare the Domain and Environments directly in defineProject(). */
|
|
18
|
+
export declare function deploy<const DomainDefinitionValue extends DomainDefinitionIdentity, const AdapterValue extends object>(input: DeploymentInput<DomainDefinitionValue, AdapterValue>): LegacyDeployment<DomainDefinitionValue, AdapterValue>;
|
|
19
19
|
export declare function isLegacyDeployment(input: unknown): input is LegacyDeployment;
|
|
20
20
|
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isDomainDefinition } from '../application/index.js';
|
|
2
2
|
import { isAdapter } from './adapter/index.js';
|
|
3
3
|
import { isRuntimeReference } from './runtime/index.js';
|
|
4
4
|
const legacyDeployments = new WeakSet();
|
|
5
|
-
/** @deprecated Declare
|
|
5
|
+
/** @deprecated Declare the Domain and Environments directly in defineProject(). */
|
|
6
6
|
export function deploy(input) {
|
|
7
7
|
if (input === null || typeof input !== 'object' || Array.isArray(input))
|
|
8
8
|
invalid();
|
|
@@ -11,7 +11,7 @@ export function deploy(input) {
|
|
|
11
11
|
keys.some((key) => key !== 'application' && key !== 'entrypoint' && key !== 'adapter')) {
|
|
12
12
|
invalid();
|
|
13
13
|
}
|
|
14
|
-
if (!
|
|
14
|
+
if (!isDomainDefinition(input.application)) {
|
|
15
15
|
throw new TypeError('Deployment Application is not admitted.');
|
|
16
16
|
}
|
|
17
17
|
if (!isRuntimeReference(input.entrypoint)) {
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type { Adapter } from './adapter/index.js';
|
|
2
|
-
|
|
1
|
+
import type { Adapter, LegacyAdapter } from './adapter/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* One adapter bound to the parameters of one Project Environment. `AdapterValue` is an adapter
|
|
4
|
+
* interface v2 `Adapter`, or a `@deprecated` `LegacyAdapter` whose Environments are all on the
|
|
5
|
+
* legacy direct-mode path (CT33).
|
|
6
|
+
*/
|
|
7
|
+
export interface Deployment<Parameters extends object = object, AdapterValue extends Adapter<Parameters> | LegacyAdapter<Parameters> = Adapter<Parameters> | LegacyAdapter<Parameters>> {
|
|
3
8
|
readonly kind: 'deployment';
|
|
4
|
-
readonly adapter:
|
|
9
|
+
readonly adapter: AdapterValue;
|
|
5
10
|
readonly parameters: Parameters;
|
|
6
11
|
}
|
|
7
12
|
/** Internal adapter binding boundary used by public provider packages. */
|
|
8
|
-
export declare function captureDeployment<const Parameters extends object>(adapter: Adapter<Parameters>, parameters: Parameters): Deployment<Parameters>;
|
|
13
|
+
export declare function captureDeployment<const Parameters extends object>(adapter: Adapter<Parameters> | LegacyAdapter<Parameters>, parameters: Parameters): Deployment<Parameters>;
|
|
9
14
|
export declare function isDeployment(input: unknown): input is Deployment;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The name of a project environment, the target a deployment is made for (`staging`, `production`,
|
|
3
|
+
* `pr-42`), as `defineProject` admits it: lower-case letters, digits, `.`, `_` and `-`, starting and
|
|
4
|
+
* ending with a letter or a digit. It stays Worker-safe because a deployment name renders it.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ENVIRONMENT_NAME: RegExp;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The name of a project environment, the target a deployment is made for (`staging`, `production`,
|
|
3
|
+
* `pr-42`), as `defineProject` admits it: lower-case letters, digits, `.`, `_` and `-`, starting and
|
|
4
|
+
* ending with a letter or a digit. It stays Worker-safe because a deployment name renders it.
|
|
5
|
+
*/
|
|
6
|
+
export const ENVIRONMENT_NAME = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/u;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { defineAdapter, defineDeployment, isAdapter } from './adapter/index.js';
|
|
2
|
-
export type { Adapter, AdapterEnvironmentContext, AdapterInput, AddressingPlan, ArtifactFile, ArtifactSource, DeployContext, DeploymentPhase, DeploymentProgress, DeployResult, FailedDeployResult, MutationKnowledge, PreparedArtifact, PreparedArtifactFile, PrepareContext, ReadyDeployResult,
|
|
2
|
+
export type { Adapter, AdapterEnvironmentContext, AdapterInput, AddressingPlan, ArtifactFile, ArtifactSource, Bundle, BundleContext, Bundler, BundleSource, ConfigureContext, DeployContext, DeploymentCallTarget, DeploymentPhase, DeploymentProgress, DeploymentSecretsState, DeployResult, FailedDeployResult, FailedReleaseDeployResult, LegacyAdapter, LegacyAdapterInput, ListContext, ListedDeployment, MutationKnowledge, Placement, PlacementContext, PreparedArtifact, PreparedArtifactFile, PrepareContext, ReadyDeployResult, ReadyReleaseDeployResult, ReleaseDeployContext, ReleaseDeploymentPhase, ReleaseDeployResult, RetainContext, } from './adapter/index.js';
|
|
3
3
|
export { compile, isBuild } from './build/index.js';
|
|
4
|
-
export type { Build, BuildBundle, BuildSchema } from './build/index.js';
|
|
4
|
+
export type { Build, BuildBundle, BuildDigest, BuildManifestV1, BuildSchema, } from './build/index.js';
|
|
5
5
|
export { deploy } from './deploy.js';
|
|
6
6
|
export type { DeploymentInput, LegacyDeployment } from './deploy.js';
|
|
7
7
|
export { isDeployment } from './deployment.js';
|
|
@@ -10,5 +10,5 @@ export { addressing, assemble, isAddressing, isRelease } from './release/index.j
|
|
|
10
10
|
export type { Addressing, Release } from './release/index.js';
|
|
11
11
|
export { admit as admitRuntime, resolve as resolveRuntime, runtime } from './runtime/index.js';
|
|
12
12
|
export type { ResolvedRuntimeReference, RuntimeModuleLoader, RuntimeReference, } from './runtime/index.js';
|
|
13
|
-
export { verifyDeployment, verifyPreflight, verifyReadiness } from './verify/index.js';
|
|
14
|
-
export type { PreflightInput } from './verify/index.js';
|
|
13
|
+
export { verifyBundle, verifyDeployment, verifyPreflight, verifyReadiness, verifyUploadedBuild, } from './verify/index.js';
|
|
14
|
+
export type { BundleInput, PreflightInput } from './verify/index.js';
|
package/dist/deployment/index.js
CHANGED
|
@@ -4,4 +4,4 @@ export { deploy } from './deploy.js';
|
|
|
4
4
|
export { isDeployment } from './deployment.js';
|
|
5
5
|
export { addressing, assemble, isAddressing, isRelease } from './release/index.js';
|
|
6
6
|
export { admit as admitRuntime, resolve as resolveRuntime, runtime } from './runtime/index.js';
|
|
7
|
-
export { verifyDeployment, verifyPreflight, verifyReadiness } from './verify/index.js';
|
|
7
|
+
export { verifyBundle, verifyDeployment, verifyPreflight, verifyReadiness, verifyUploadedBuild, } from './verify/index.js';
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { IssuerId } from '../../platform/auth/index.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Domain identity and public placement, independent of how a provider obtains them. A deployment's
|
|
4
|
+
* `addressing(url)` has `issuer === publicUrl`: its URL is its issuer.
|
|
5
|
+
*/
|
|
3
6
|
export interface Addressing {
|
|
4
7
|
readonly issuer: IssuerId;
|
|
5
8
|
/** Public origin serving this Release; the issuer can remain on an older deployment. */
|
|
6
9
|
readonly publicUrl: IssuerId;
|
|
7
10
|
}
|
|
8
11
|
export declare function addressing(input: string, options?: {
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Stable-target `legacy` path only: adapter-cloudflare direct mode serves under an
|
|
14
|
+
* issuer distinct from its route (`identityIssuer`). Removed with that mode at D10; a
|
|
15
|
+
* deployment's URL is its issuer.
|
|
16
|
+
*/
|
|
9
17
|
readonly publicUrl?: string;
|
|
10
18
|
}): Addressing;
|
|
11
19
|
export declare function isAddressing(input: unknown): input is Addressing;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Build } from '../build/build.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { BuildDigest } from '../build/manifest.js';
|
|
3
3
|
import type { Release } from './release.js';
|
|
4
|
-
/**
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Purely assemble what one immutable deployment serves at its URL, which is also its issuer, from
|
|
6
|
+
* its Build and the build digest of the code it runs, without a provider effect.
|
|
7
|
+
*/
|
|
8
|
+
export declare function assemble<const BuildValue extends Build>(build: BuildValue, buildDigest: BuildDigest, url: string): Release<BuildValue>;
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { isBuild } from '../build/admission.js';
|
|
2
|
-
import {
|
|
2
|
+
import { addressing } from './addressing.js';
|
|
3
3
|
import { capture } from './admission.js';
|
|
4
|
-
import { seal } from './
|
|
5
|
-
/**
|
|
6
|
-
|
|
4
|
+
import { seal } from './seal.js';
|
|
5
|
+
/**
|
|
6
|
+
* Purely assemble what one immutable deployment serves at its URL, which is also its issuer, from
|
|
7
|
+
* its Build and the build digest of the code it runs, without a provider effect.
|
|
8
|
+
*/
|
|
9
|
+
export function assemble(build, buildDigest, url) {
|
|
7
10
|
if (!isBuild(build))
|
|
8
11
|
throw new TypeError('Release assembly requires an admitted Build.');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
const sealed = seal(build, addressing);
|
|
12
|
+
const placed = addressing(url);
|
|
13
|
+
const sealed = seal(build, buildDigest, placed);
|
|
13
14
|
return capture(Object.freeze({
|
|
14
15
|
kind: 'release',
|
|
15
16
|
build,
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
url: placed.publicUrl,
|
|
18
|
+
document: sealed.document,
|
|
19
|
+
buildDigest: sealed.document.build.digest,
|
|
18
20
|
routes: sealed.routes,
|
|
19
21
|
}));
|
|
20
22
|
}
|
|
@@ -3,3 +3,5 @@ export { capture, isRelease } from './admission.js';
|
|
|
3
3
|
export { addressing, isAddressing, type Addressing } from './addressing.js';
|
|
4
4
|
export { invocationPath } from './invocation.js';
|
|
5
5
|
export type { Release } from './release.js';
|
|
6
|
+
/** @deprecated Stable-target Publication v3; see `legacy/index.ts` for its consumers and removal. */
|
|
7
|
+
export * as legacy from './legacy/index.js';
|
|
@@ -2,3 +2,5 @@ export { assemble } from './assemble.js';
|
|
|
2
2
|
export { capture, isRelease } from './admission.js';
|
|
3
3
|
export { addressing, isAddressing } from './addressing.js';
|
|
4
4
|
export { invocationPath } from './invocation.js';
|
|
5
|
+
/** @deprecated Stable-target Publication v3; see `legacy/index.ts` for its consumers and removal. */
|
|
6
|
+
export * as legacy from './legacy/index.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Build } from '../../build/build.js';
|
|
2
|
+
import type { Addressing } from '../addressing.js';
|
|
3
|
+
import type { Release } from './release.js';
|
|
4
|
+
/** Purely assemble what a stable target serves at its Addressing, without a provider effect. */
|
|
5
|
+
export declare function assemble<const BuildValue extends Build>(build: BuildValue, addressing: Addressing): Release<BuildValue>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isBuild } from '../../build/admission.js';
|
|
2
|
+
import { isAddressing } from '../addressing.js';
|
|
3
|
+
import { capture } from './admission.js';
|
|
4
|
+
import { seal } from './seal.js';
|
|
5
|
+
/** Purely assemble what a stable target serves at its Addressing, without a provider effect. */
|
|
6
|
+
export function assemble(build, addressing) {
|
|
7
|
+
if (!isBuild(build))
|
|
8
|
+
throw new TypeError('Release assembly requires an admitted Build.');
|
|
9
|
+
if (!isAddressing(addressing)) {
|
|
10
|
+
throw new TypeError('Release assembly requires admitted Addressing.');
|
|
11
|
+
}
|
|
12
|
+
const sealed = seal(build, addressing);
|
|
13
|
+
return capture(Object.freeze({
|
|
14
|
+
kind: 'publication',
|
|
15
|
+
build,
|
|
16
|
+
addressing,
|
|
17
|
+
publication: sealed.publication,
|
|
18
|
+
routes: sealed.routes,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a stable target serves: the v3 Publication sealed from a Build and its Addressing, which
|
|
3
|
+
* carries no build digest, and the Route Table bound to that Publication. A stable target keeps one
|
|
4
|
+
* URL across deploys, so it never serves `release.json` and every Kernel pins it as a legacy
|
|
5
|
+
* document.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Replacement: `assemble` and `Release` of `@astrale-os/sdk/deployment/release`, which
|
|
8
|
+
* seal the `DomainRelease` v4 of an immutable deployment from its build digest and URL.
|
|
9
|
+
*
|
|
10
|
+
* Short-term consumers:
|
|
11
|
+
* - the direct-mode deploy path (`prepare`/`deploy` of adapter-cloudflare, whose
|
|
12
|
+
* `DeployResult.release` is this Release) and the stable Worker that assembles its Release
|
|
13
|
+
* at runtime, which serve the direct-mode configurations of domains ai-gateway, closing, grc,
|
|
14
|
+
* integrations and issues (until SV15), domains organization (until it leaves direct mode,
|
|
15
|
+
* AM-147), the Services `beta` and `prod` (until SV12), `development` (until SV9) and frozen
|
|
16
|
+
* `admin-beta` (until D19) environments, shell (until SH2) and its frozen `legacy-v3` (until
|
|
17
|
+
* D22), and ui:domain (until UI1);
|
|
18
|
+
* - the stable-target branch of the SDK's serving surface, which serves this Release beside the v4
|
|
19
|
+
* one (`execution/runtime/release.ts` `ServedRelease`): its Kernel Server source
|
|
20
|
+
* (`execution/service/serving/legacy/`), the Delivery v1-only answer of a Publication
|
|
21
|
+
* (`execution/identity/delivery.ts`), its pinned-snapshot check
|
|
22
|
+
* (`execution/invocation/invocation.ts`), its readiness at `domain.json`
|
|
23
|
+
* (`deployment/verify/readiness/legacy/`) and the preflight of the direct-mode prepare path
|
|
24
|
+
* (`deployment/verify/preflight/publication.ts`);
|
|
25
|
+
* - the split-issuer option of `addressing` (`publicUrl` distinct from the issuer), used only by
|
|
26
|
+
* adapter-cloudflare direct mode (`identityIssuer`).
|
|
27
|
+
*
|
|
28
|
+
* Removal: D10, once no configuration on any repository's main selects the direct-mode path
|
|
29
|
+
* (CT33, AM-147); the serving surface already serves the v4 Release (S4b), canonical deploys reach
|
|
30
|
+
* adapters through `deployRelease` (S7a, CT23), and D10 deletes `prepare`/`deploy` and their
|
|
31
|
+
* `DeployResult` with every branch listed above.
|
|
32
|
+
*/
|
|
33
|
+
export { assemble } from './assemble.js';
|
|
34
|
+
export { isRelease } from './admission.js';
|
|
35
|
+
export type { Release } from './release.js';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a stable target serves: the v3 Publication sealed from a Build and its Addressing, which
|
|
3
|
+
* carries no build digest, and the Route Table bound to that Publication. A stable target keeps one
|
|
4
|
+
* URL across deploys, so it never serves `release.json` and every Kernel pins it as a legacy
|
|
5
|
+
* document.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Replacement: `assemble` and `Release` of `@astrale-os/sdk/deployment/release`, which
|
|
8
|
+
* seal the `DomainRelease` v4 of an immutable deployment from its build digest and URL.
|
|
9
|
+
*
|
|
10
|
+
* Short-term consumers:
|
|
11
|
+
* - the direct-mode deploy path (`prepare`/`deploy` of adapter-cloudflare, whose
|
|
12
|
+
* `DeployResult.release` is this Release) and the stable Worker that assembles its Release
|
|
13
|
+
* at runtime, which serve the direct-mode configurations of domains ai-gateway, closing, grc,
|
|
14
|
+
* integrations and issues (until SV15), domains organization (until it leaves direct mode,
|
|
15
|
+
* AM-147), the Services `beta` and `prod` (until SV12), `development` (until SV9) and frozen
|
|
16
|
+
* `admin-beta` (until D19) environments, shell (until SH2) and its frozen `legacy-v3` (until
|
|
17
|
+
* D22), and ui:domain (until UI1);
|
|
18
|
+
* - the stable-target branch of the SDK's serving surface, which serves this Release beside the v4
|
|
19
|
+
* one (`execution/runtime/release.ts` `ServedRelease`): its Kernel Server source
|
|
20
|
+
* (`execution/service/serving/legacy/`), the Delivery v1-only answer of a Publication
|
|
21
|
+
* (`execution/identity/delivery.ts`), its pinned-snapshot check
|
|
22
|
+
* (`execution/invocation/invocation.ts`), its readiness at `domain.json`
|
|
23
|
+
* (`deployment/verify/readiness/legacy/`) and the preflight of the direct-mode prepare path
|
|
24
|
+
* (`deployment/verify/preflight/publication.ts`);
|
|
25
|
+
* - the split-issuer option of `addressing` (`publicUrl` distinct from the issuer), used only by
|
|
26
|
+
* adapter-cloudflare direct mode (`identityIssuer`).
|
|
27
|
+
*
|
|
28
|
+
* Removal: D10, once no configuration on any repository's main selects the direct-mode path
|
|
29
|
+
* (CT33, AM-147); the serving surface already serves the v4 Release (S4b), canonical deploys reach
|
|
30
|
+
* adapters through `deployRelease` (S7a, CT23), and D10 deletes `prepare`/`deploy` and their
|
|
31
|
+
* `DeployResult` with every branch listed above.
|
|
32
|
+
*/
|
|
33
|
+
export { assemble } from './assemble.js';
|
|
34
|
+
export { isRelease } from './admission.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type * as publication from '@astrale-os/kernel-protocol/release/legacy';
|
|
2
|
+
import type * as routes from '@astrale-os/kernel-protocol/routes';
|
|
3
|
+
import type { Build } from '../../build/index.js';
|
|
4
|
+
import type { Addressing } from '../addressing.js';
|
|
5
|
+
/** What a stable target serves: the v3 Publication of its Build and the Route Table bound to it. */
|
|
6
|
+
export interface Release<BuildValue extends Build = Build> {
|
|
7
|
+
readonly kind: 'publication';
|
|
8
|
+
readonly build: BuildValue;
|
|
9
|
+
readonly addressing: Addressing;
|
|
10
|
+
readonly publication: publication.Publication;
|
|
11
|
+
readonly routes: routes.legacy.Table;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as publication from '@astrale-os/kernel-protocol/
|
|
1
|
+
import * as publication from '@astrale-os/kernel-protocol/release/legacy';
|
|
2
2
|
import * as protocolRoutes from '@astrale-os/kernel-protocol/routes';
|
|
3
3
|
import type { Build } from '../../build/index.js';
|
|
4
4
|
import type { Addressing } from '../addressing.js';
|
|
5
|
-
export declare const DELIVERY_PATH: '/install';
|
|
6
5
|
export interface SealedPublication {
|
|
7
6
|
readonly publication: publication.Publication;
|
|
8
|
-
readonly routes: protocolRoutes.Table;
|
|
7
|
+
readonly routes: protocolRoutes.legacy.Table;
|
|
9
8
|
}
|
|
9
|
+
/** Seal the v3 Publication a stable target serves: the served content of the Build, without code. */
|
|
10
10
|
export declare function seal(build: Build, addressing: Addressing): SealedPublication;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as publication from '@astrale-os/kernel-protocol/release/legacy';
|
|
2
|
+
import * as protocolRoutes from '@astrale-os/kernel-protocol/routes';
|
|
3
|
+
import { evidenceOf } from '../../build/admission.js';
|
|
4
|
+
import { served } from '../served/index.js';
|
|
5
|
+
/** Seal the v3 Publication a stable target serves: the served content of the Build, without code. */
|
|
6
|
+
export function seal(build, addressing) {
|
|
7
|
+
const sealed = publication.seal({
|
|
8
|
+
format: 'astrale.domain.publication',
|
|
9
|
+
version: 3,
|
|
10
|
+
...served(build, addressing),
|
|
11
|
+
});
|
|
12
|
+
const { domain } = evidenceOf(build);
|
|
13
|
+
return Object.freeze({
|
|
14
|
+
publication: sealed,
|
|
15
|
+
routes: protocolRoutes.legacy.bind(build.routes, sealed, domain, addressing.publicUrl),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
import type * as
|
|
1
|
+
import type * as release from '@astrale-os/kernel-protocol/release';
|
|
2
2
|
import type * as routes from '@astrale-os/kernel-protocol/routes';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { IssuerId } from '../../platform/auth/index.js';
|
|
4
|
+
import type { Build, BuildDigest } from '../build/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Everything one immutable deployment serves: the `DomainRelease` v4 it publishes at
|
|
7
|
+
* `release.json`, sealed from its Build, its URL and the build digest of its code, and the Route
|
|
8
|
+
* Table bound to that release.
|
|
9
|
+
*/
|
|
5
10
|
export interface Release<BuildValue extends Build = Build> {
|
|
6
11
|
readonly kind: 'release';
|
|
7
12
|
readonly build: BuildValue;
|
|
8
|
-
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* The deployment's URL: its origin, which is also its issuer (`document.identity.issuer`). A
|
|
15
|
+
* deployment never splits the two; only the stable-target `legacy` path does.
|
|
16
|
+
*/
|
|
17
|
+
readonly url: IssuerId;
|
|
18
|
+
readonly document: release.DomainRelease;
|
|
19
|
+
/** Digest of the exact bytes the deployment runs: `document.build.digest`. */
|
|
20
|
+
readonly buildDigest: BuildDigest;
|
|
10
21
|
readonly routes: routes.Table;
|
|
11
22
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as release from '@astrale-os/kernel-protocol/release';
|
|
2
|
+
import * as protocolRoutes from '@astrale-os/kernel-protocol/routes';
|
|
3
|
+
import type { Build, BuildDigest } from '../build/index.js';
|
|
4
|
+
import type { Addressing } from './addressing.js';
|
|
5
|
+
export interface SealedRelease {
|
|
6
|
+
readonly document: release.DomainRelease;
|
|
7
|
+
readonly routes: protocolRoutes.Table;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Seal the `DomainRelease` v4 one deployment serves: the served content of the Build at its
|
|
11
|
+
* address, and the build digest of the exact code it runs. Its release digest therefore names the
|
|
12
|
+
* schema, the address and the code at once; the Route Table is bound to that release.
|
|
13
|
+
*/
|
|
14
|
+
export declare function seal(build: Build, buildDigest: BuildDigest, addressing: Addressing): SealedRelease;
|