@astrale-os/sdk 0.6.0-beta.4 → 0.6.0-beta.41
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 +191 -58
- package/dist/application/action/action.d.ts +6 -0
- package/dist/application/action/authoring.d.ts +1 -1
- package/dist/application/action/context.d.ts +47 -31
- package/dist/application/action/define.d.ts +3 -3
- package/dist/application/action/index.d.ts +1 -1
- package/dist/application/define.d.ts +8 -6
- package/dist/application/define.js +28 -14
- package/dist/application/dependency/index.d.ts +1 -1
- package/dist/application/dependency/invoker.d.ts +21 -10
- package/dist/application/domain.d.ts +30 -0
- package/dist/application/index.d.ts +4 -4
- package/dist/application/index.js +1 -1
- package/dist/application/integration/define.d.ts +8 -1
- package/dist/application/integration/index.d.ts +2 -2
- package/dist/application/integration/integration.d.ts +13 -1
- package/dist/application/integration/operation.d.ts +16 -3
- package/dist/application/mutation/authoring/properties.d.ts +5 -3
- package/dist/application/mutation/authoring/properties.js +35 -2
- package/dist/application/mutation/authoring/transition.js +4 -1
- package/dist/application/mutation/execution/execute.js +1 -1
- package/dist/application/mutation/failure.d.ts +6 -0
- package/dist/application/mutation/failure.js +24 -18
- package/dist/application/mutation/index.d.ts +1 -1
- package/dist/application/query/collection/union.js +11 -4
- package/dist/application/query/composite/plan.d.ts +0 -4
- package/dist/application/query/composite/plan.js +0 -2
- package/dist/application/query/conformance.d.ts +15 -0
- package/dist/application/query/conformance.js +46 -0
- package/dist/application/query/define.js +4 -3
- package/dist/application/query/execution/execute.d.ts +0 -1
- package/dist/application/query/execution/execute.js +7 -1
- package/dist/application/query/failure.d.ts +8 -0
- package/dist/application/query/failure.js +8 -0
- package/dist/application/query/index.d.ts +1 -1
- package/dist/application/query/index.js +1 -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 +3 -1
- package/dist/application/runtime/workflows.js +3 -4
- package/dist/application/view/define.js +4 -6
- package/dist/application/view/frontend.d.ts +2 -2
- package/dist/application/view/index.d.ts +1 -1
- package/dist/application/view/route.d.ts +0 -14
- package/dist/application/view/route.js +1 -64
- package/dist/application/workflow/authoring.d.ts +3 -2
- package/dist/application/workflow/context.d.ts +8 -2
- package/dist/application/workflow/define.d.ts +4 -4
- package/dist/application/workflow/define.js +14 -9
- package/dist/application/workflow/durable.d.ts +197 -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 +5 -3
- package/dist/deployment/adapter/adapter.d.ts +55 -13
- package/dist/deployment/adapter/bundle/bundle.d.ts +36 -0
- package/dist/deployment/adapter/bundle/file.d.ts +10 -0
- package/dist/deployment/adapter/bundle/index.d.ts +2 -0
- package/dist/deployment/adapter/define.d.ts +4 -3
- package/dist/deployment/adapter/define.js +107 -23
- package/dist/deployment/adapter/index.d.ts +4 -3
- package/dist/deployment/adapter/index.js +1 -0
- package/dist/deployment/adapter/release/command.d.ts +33 -0
- package/dist/deployment/adapter/release/context.d.ts +94 -0
- package/dist/deployment/adapter/release/index.d.ts +4 -0
- package/dist/deployment/adapter/release/index.js +1 -0
- package/dist/deployment/adapter/release/list.d.ts +53 -0
- package/dist/deployment/adapter/release/list.js +1 -0
- package/dist/deployment/adapter/release/refusal.d.ts +10 -0
- package/dist/deployment/adapter/release/refusal.js +14 -0
- package/dist/deployment/adapter/release/result.d.ts +56 -0
- package/dist/deployment/adapter/release/result.js +1 -0
- package/dist/deployment/address/configuration.d.ts +96 -0
- package/dist/deployment/address/configuration.js +274 -0
- package/dist/deployment/address/fingerprint.d.ts +5 -0
- package/dist/deployment/address/fingerprint.js +27 -0
- package/dist/deployment/address/index.d.ts +5 -0
- package/dist/deployment/address/index.js +4 -0
- package/dist/deployment/address/label.d.ts +42 -0
- package/dist/deployment/address/label.js +80 -0
- package/dist/deployment/address/line.d.ts +29 -0
- package/dist/deployment/address/line.js +53 -0
- package/dist/deployment/address/record.d.ts +73 -0
- package/dist/deployment/address/record.js +138 -0
- package/dist/deployment/address/summary.d.ts +30 -0
- package/dist/deployment/address/summary.js +1 -0
- package/dist/deployment/address/vectors.d.ts +60 -0
- package/dist/deployment/address/vectors.js +517 -0
- package/dist/deployment/authoring.d.ts +0 -2
- package/dist/deployment/authoring.js +0 -1
- package/dist/deployment/build/build.d.ts +8 -2
- package/dist/deployment/build/compile.d.ts +4 -4
- package/dist/deployment/build/compile.js +19 -17
- package/dist/deployment/build/frontend/compilation.d.ts +2 -4
- package/dist/deployment/build/frontend/compilation.js +0 -5
- package/dist/deployment/build/frontend/digest.js +1 -5
- package/dist/deployment/build/index.d.ts +1 -0
- package/dist/deployment/build/index.js +1 -0
- package/dist/deployment/build/manifest.d.ts +59 -0
- package/dist/deployment/build/manifest.js +118 -0
- package/dist/deployment/build/material.d.ts +2 -2
- package/dist/deployment/build/material.js +28 -13
- package/dist/deployment/build/schema.d.ts +2 -2
- package/dist/deployment/deployment.d.ts +3 -2
- package/dist/deployment/environment.d.ts +6 -0
- package/dist/deployment/environment.js +6 -0
- package/dist/deployment/index.d.ts +4 -6
- package/dist/deployment/index.js +1 -2
- package/dist/deployment/release/addressing.d.ts +6 -5
- package/dist/deployment/release/addressing.js +2 -3
- package/dist/deployment/release/assemble.d.ts +6 -3
- package/dist/deployment/release/assemble.js +12 -10
- package/dist/deployment/release/release.d.ts +16 -5
- package/dist/deployment/release/seal.d.ts +14 -0
- package/dist/deployment/release/seal.js +22 -0
- package/dist/deployment/release/{publication → served}/callables.d.ts +2 -2
- package/dist/deployment/release/{publication → served}/callables.js +2 -2
- package/dist/deployment/release/served/index.d.ts +11 -0
- package/dist/deployment/release/served/index.js +26 -0
- package/dist/deployment/release/{publication → served}/views.d.ts +2 -2
- package/dist/deployment/release/{publication → served}/views.js +0 -1
- package/dist/deployment/runtime/admission.d.ts +2 -2
- package/dist/deployment/runtime/admission.js +5 -5
- package/dist/deployment/verify/index.d.ts +3 -4
- package/dist/deployment/verify/index.js +2 -3
- package/dist/deployment/verify/preflight/bundle.d.ts +18 -0
- package/dist/deployment/verify/preflight/bundle.js +71 -0
- package/dist/deployment/verify/preflight/index.d.ts +1 -12
- package/dist/deployment/verify/preflight/index.js +1 -12
- package/dist/deployment/verify/readiness/fetch.d.ts +13 -0
- package/dist/deployment/verify/readiness/fetch.js +26 -0
- package/dist/deployment/verify/readiness/identity.d.ts +3 -6
- package/dist/deployment/verify/readiness/identity.js +3 -3
- package/dist/deployment/verify/readiness/index.d.ts +15 -8
- package/dist/deployment/verify/readiness/index.js +25 -6
- package/dist/deployment/verify/readiness/release.d.ts +8 -0
- package/dist/deployment/verify/readiness/release.js +22 -0
- package/dist/deployment/worker/address.d.ts +26 -0
- package/dist/deployment/worker/address.js +43 -0
- package/dist/deployment/worker/build.d.ts +60 -0
- package/dist/deployment/worker/build.js +172 -0
- package/dist/deployment/worker/configuration.d.ts +73 -0
- package/dist/deployment/worker/configuration.js +165 -0
- package/dist/deployment/worker/content.d.ts +38 -0
- package/dist/deployment/worker/content.js +169 -0
- package/dist/deployment/worker/index.d.ts +29 -0
- package/dist/deployment/worker/index.js +29 -0
- package/dist/deployment/worker/limits.d.ts +30 -0
- package/dist/deployment/worker/limits.js +30 -0
- package/dist/deployment/worker/record.d.ts +29 -0
- package/dist/deployment/worker/record.js +69 -0
- package/dist/deployment/worker/request.d.ts +118 -0
- package/dist/deployment/worker/request.js +280 -0
- package/dist/deployment/worker/response.d.ts +101 -0
- package/dist/deployment/worker/response.js +207 -0
- package/dist/execution/cache/cache.d.ts +17 -0
- package/dist/execution/cache/cache.js +11 -0
- package/dist/execution/cache/index.d.ts +2 -0
- package/dist/execution/cache/index.js +2 -0
- package/dist/execution/cache/memory.d.ts +13 -0
- package/dist/execution/cache/memory.js +48 -0
- package/dist/execution/identity/authentication.d.ts +33 -3
- package/dist/execution/identity/authentication.js +90 -36
- package/dist/execution/identity/callback.d.ts +20 -20
- package/dist/execution/identity/callback.js +34 -26
- package/dist/execution/identity/delivery.d.ts +6 -4
- package/dist/execution/identity/delivery.js +25 -20
- package/dist/execution/identity/identity.d.ts +17 -3
- package/dist/execution/identity/identity.js +12 -4
- package/dist/execution/identity/jwks.d.ts +5 -0
- package/dist/execution/identity/jwks.js +92 -102
- package/dist/execution/index.d.ts +6 -4
- package/dist/execution/index.js +4 -2
- package/dist/execution/invocation/admission/age.d.ts +57 -0
- package/dist/execution/invocation/admission/age.js +208 -0
- package/dist/execution/invocation/admission/authentication.d.ts +13 -13
- package/dist/execution/invocation/admission/authentication.js +52 -44
- package/dist/execution/invocation/admission/authority.d.ts +28 -6
- package/dist/execution/invocation/admission/authority.js +9 -2
- package/dist/execution/invocation/admission/index.d.ts +4 -3
- package/dist/execution/invocation/admission/index.js +3 -2
- package/dist/execution/invocation/admission/input.d.ts +2 -2
- package/dist/execution/invocation/admission/input.js +16 -2
- package/dist/execution/invocation/admission/target.d.ts +11 -0
- package/dist/execution/invocation/admission/target.js +22 -3
- package/dist/execution/invocation/capabilities/bind.d.ts +11 -0
- package/dist/execution/invocation/capabilities/bind.js +25 -0
- package/dist/execution/invocation/capabilities/index.d.ts +1 -0
- package/dist/execution/invocation/capabilities/index.js +1 -0
- package/dist/execution/invocation/dependency/bind.d.ts +3 -1
- package/dist/execution/invocation/dependency/bind.js +36 -16
- package/dist/execution/invocation/dispatch/context.d.ts +7 -6
- package/dist/execution/invocation/dispatch/context.js +11 -44
- package/dist/execution/invocation/dispatch/workflow.js +0 -4
- package/dist/execution/invocation/handler.js +8 -2
- package/dist/execution/invocation/index.d.ts +2 -2
- package/dist/execution/invocation/index.js +1 -1
- package/dist/execution/invocation/integration/authentication.d.ts +3 -3
- package/dist/execution/invocation/integration/authentication.js +7 -7
- package/dist/execution/invocation/integration/call.d.ts +2 -1
- package/dist/execution/invocation/integration/call.js +3 -3
- package/dist/execution/invocation/integration/clients.d.ts +1 -1
- package/dist/execution/invocation/integration/index.d.ts +1 -0
- package/dist/execution/invocation/integration/index.js +1 -0
- package/dist/execution/invocation/invocation.d.ts +6 -0
- package/dist/execution/invocation/invocation.js +129 -21
- package/dist/execution/invocation/lifecycle/active.d.ts +8 -2
- package/dist/execution/invocation/lifecycle/active.js +3 -3
- package/dist/execution/invocation/lifecycle/index.d.ts +1 -1
- package/dist/execution/invocation/result/errors.d.ts +0 -10
- package/dist/execution/invocation/result/errors.js +0 -17
- package/dist/execution/invocation/result/index.d.ts +2 -2
- package/dist/execution/invocation/result/index.js +1 -1
- package/dist/execution/invocation/result/project.js +41 -1
- package/dist/execution/node/serve.d.ts +2 -2
- package/dist/execution/node/serve.js +1 -1
- package/dist/execution/runtime/index.d.ts +1 -0
- package/dist/execution/runtime/index.js +1 -0
- package/dist/execution/runtime/load.d.ts +3 -3
- package/dist/execution/runtime/load.js +3 -2
- package/dist/execution/runtime/release.d.ts +17 -0
- package/dist/execution/runtime/release.js +7 -0
- package/dist/execution/serve.d.ts +18 -4
- package/dist/execution/serve.js +10 -0
- package/dist/execution/service/create.js +43 -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 +20 -5
- package/dist/execution/service/serving/delivery.d.ts +5 -0
- package/dist/execution/service/{publication → serving}/delivery.js +4 -1
- package/dist/execution/service/{publication → serving}/index.d.ts +1 -1
- package/dist/execution/service/serving/installation.d.ts +4 -0
- package/dist/execution/service/serving/installation.js +9 -0
- package/dist/execution/service/serving/source.d.ts +11 -0
- package/dist/execution/service/serving/source.js +15 -0
- package/dist/execution/workflows/attempts.d.ts +87 -0
- package/dist/execution/workflows/attempts.js +205 -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 +83 -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 +39 -0
- package/dist/execution/workflows/failure.js +143 -0
- package/dist/execution/workflows/index.d.ts +4 -0
- package/dist/execution/workflows/index.js +3 -0
- package/dist/execution/workflows/integrations.d.ts +13 -0
- package/dist/execution/workflows/integrations.js +25 -0
- package/dist/execution/workflows/options.d.ts +81 -0
- package/dist/execution/workflows/options.js +158 -0
- package/dist/execution/workflows/receiver.d.ts +24 -0
- package/dist/execution/workflows/receiver.js +99 -0
- package/dist/execution/workflows/route.d.ts +12 -0
- package/dist/execution/workflows/route.js +35 -0
- package/dist/execution/workflows/run.d.ts +23 -0
- package/dist/execution/workflows/run.js +365 -0
- package/dist/execution/workflows/steps.d.ts +48 -0
- package/dist/execution/workflows/steps.js +93 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/platform/graph/alias.d.ts +1 -5
- package/dist/platform/graph/alias.js +1 -5
- package/dist/platform/graph/document/index.d.ts +1 -1
- package/dist/platform/graph/document/index.js +1 -1
- package/dist/platform/graph/index.d.ts +1 -1
- package/dist/platform/graph/index.js +1 -1
- package/dist/platform/release/index.d.ts +2 -0
- package/dist/platform/release/index.js +2 -0
- package/dist/platform/schema/callable-authoring.d.ts +21 -0
- package/dist/platform/schema/callable-authoring.js +27 -0
- package/dist/platform/schema/class-authoring.d.ts +61 -11
- package/dist/platform/schema/class-authoring.js +37 -4
- package/dist/platform/schema/class-icon-svg.d.ts +9 -0
- package/dist/platform/schema/class-icon-svg.js +29 -0
- package/dist/platform/schema/class-icon.d.ts +3 -8
- package/dist/platform/schema/class-icon.js +2 -29
- package/dist/platform/schema/index.d.ts +6 -4
- package/dist/platform/schema/index.js +2 -1
- package/dist/platform/schema/property.d.ts +5 -0
- package/dist/platform/schema/schema-authoring.d.ts +14 -7
- package/dist/platform/schema/schema-authoring.js +5 -1
- package/dist/platform/versioning/dependents.d.ts +18 -0
- package/dist/platform/versioning/dependents.js +15 -0
- package/dist/platform/versioning/index.d.ts +5 -0
- package/dist/platform/versioning/index.js +5 -0
- package/dist/platform/versioning/name.d.ts +38 -0
- package/dist/platform/versioning/name.js +58 -0
- package/dist/platform/versioning/reference.d.ts +48 -0
- package/dist/platform/versioning/reference.js +95 -0
- package/dist/platform/versioning/version.d.ts +72 -0
- package/dist/platform/versioning/version.js +98 -0
- package/dist/project/admit.js +1 -5
- package/dist/project/define.d.ts +4 -4
- package/dist/project/define.js +55 -35
- package/dist/project/index.d.ts +1 -1
- package/dist/project/install-command.d.ts +6 -0
- package/dist/project/install-command.js +9 -0
- package/dist/project/project.d.ts +10 -8
- package/dist/testing/dataset/define.d.ts +1 -1
- package/dist/testing/durable/engine.d.ts +128 -0
- package/dist/testing/durable/engine.js +619 -0
- package/dist/testing/durable/index.d.ts +3 -0
- package/dist/testing/durable/index.js +1 -0
- package/dist/testing/durable/steps.d.ts +30 -0
- package/dist/testing/durable/steps.js +45 -0
- package/dist/testing/index.d.ts +6 -1
- package/dist/testing/index.js +5 -1
- package/dist/testing/load.js +1 -1
- package/dist/tooling/cli/adapter-command.d.ts +35 -0
- package/dist/tooling/cli/adapter-command.js +66 -0
- package/dist/tooling/cli/arguments.d.ts +17 -6
- package/dist/tooling/cli/arguments.js +175 -52
- package/dist/tooling/cli/build.d.ts +55 -0
- package/dist/tooling/cli/build.js +77 -0
- package/dist/tooling/cli/bun.d.ts +0 -1
- package/dist/tooling/cli/bun.js +0 -7
- package/dist/tooling/cli/commit.d.ts +35 -0
- package/dist/tooling/cli/commit.js +235 -0
- package/dist/tooling/cli/deploy-mode.d.ts +26 -0
- package/dist/tooling/cli/deploy-mode.js +59 -0
- package/dist/tooling/cli/deploy-result.d.ts +80 -0
- package/dist/tooling/cli/deploy-result.js +64 -0
- package/dist/tooling/cli/diff/declared.d.ts +7 -0
- package/dist/tooling/cli/diff/declared.js +27 -0
- package/dist/tooling/cli/diff/index.d.ts +30 -0
- package/dist/tooling/cli/diff/index.js +58 -0
- package/dist/tooling/cli/diff/render.d.ts +15 -0
- package/dist/tooling/cli/diff/render.js +131 -0
- package/dist/tooling/cli/diff/report.d.ts +88 -0
- package/dist/tooling/cli/diff/report.js +154 -0
- package/dist/tooling/cli/dotenv.d.ts +5 -5
- package/dist/tooling/cli/dotenv.js +6 -36
- package/dist/tooling/cli/help.js +173 -60
- package/dist/tooling/cli/immutable-deployment.d.ts +83 -0
- package/dist/tooling/cli/immutable-deployment.js +135 -0
- package/dist/tooling/cli/index.d.ts +12 -4
- package/dist/tooling/cli/index.js +6 -3
- package/dist/tooling/cli/installed-on.d.ts +83 -0
- package/dist/tooling/cli/installed-on.js +156 -0
- package/dist/tooling/cli/list.d.ts +152 -0
- package/dist/tooling/cli/list.js +331 -0
- package/dist/tooling/cli/log.d.ts +5 -2
- package/dist/tooling/cli/log.js +9 -2
- package/dist/tooling/cli/orchestrate.d.ts +0 -6
- package/dist/tooling/cli/orchestrate.js +246 -90
- package/dist/tooling/cli/project.d.ts +3 -3
- package/dist/tooling/cli/publish/index.d.ts +81 -0
- package/dist/tooling/cli/publish/index.js +383 -0
- package/dist/tooling/cli/publish/report.d.ts +49 -0
- package/dist/tooling/cli/publish/report.js +15 -0
- package/dist/tooling/cli/registry/client.d.ts +121 -0
- package/dist/tooling/cli/registry/client.js +354 -0
- package/dist/tooling/cli/registry/error.d.ts +11 -0
- package/dist/tooling/cli/registry/error.js +17 -0
- package/dist/tooling/cli/registry/executable.d.ts +35 -0
- package/dist/tooling/cli/registry/executable.js +96 -0
- package/dist/tooling/cli/registry/index.d.ts +9 -0
- package/dist/tooling/cli/registry/index.js +8 -0
- package/dist/tooling/cli/registry/installations.d.ts +67 -0
- package/dist/tooling/cli/registry/installations.js +108 -0
- package/dist/tooling/cli/registry/process.d.ts +36 -0
- package/dist/tooling/cli/registry/process.js +119 -0
- package/dist/tooling/cli/secrets.d.ts +9 -0
- package/dist/tooling/cli/secrets.js +19 -0
- package/dist/tooling/cli/yank.d.ts +34 -0
- package/dist/tooling/cli/yank.js +32 -0
- package/dist/tooling/linter/adapters/typescript/imports.d.ts +0 -1
- package/dist/tooling/linter/adapters/typescript/imports.js +1 -5
- package/dist/tooling/linter/adapters/typescript/index.d.ts +1 -1
- package/dist/tooling/linter/adapters/typescript/index.js +1 -1
- package/dist/tooling/linter/adapters/typescript/syntax.d.ts +3 -3
- package/dist/tooling/linter/adapters/typescript/syntax.js +13 -25
- package/dist/tooling/linter/implementations/source/callable-requirements.d.ts +1 -2
- package/dist/tooling/linter/implementations/source/callable-requirements.js +11 -16
- package/dist/tooling/linter/implementations/source/dependencies.js +13 -72
- package/dist/tooling/linter/implementations/source/global.js +1 -2
- package/dist/tooling/linter/implementations/source/mutations.js +18 -29
- package/dist/tooling/linter/implementations/source/providers.js +5 -5
- package/dist/tooling/linter/implementations/source/queries.js +1 -17
- package/dist/tooling/linter/implementations/source/shared.d.ts +12 -4
- package/dist/tooling/linter/implementations/source/shared.js +101 -46
- package/dist/tooling/linter/implementations/source/verifiers.js +0 -2
- package/dist/tooling/linter/implementations/source/views.js +2 -2
- package/dist/tooling/linter/implementations/source/workflows.js +499 -17
- package/dist/tooling/linter/policy/generated.js +14 -63
- package/dist/tooling/linter/requirements/registry.js +6 -8
- 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/docs/admission-age.md +88 -0
- package/docs/auth-api-migration.md +55 -0
- package/docs/business-errors.md +42 -0
- package/docs/domain-definition-migration.md +44 -0
- package/docs/domain-schema-migration.md +36 -0
- package/docs/durable-workflows.md +445 -0
- package/docs/handler-dependencies.md +213 -0
- package/docs/release.md +155 -0
- package/docs/schema-cost.md +124 -0
- package/package.json +45 -16
- package/dist/application/application.d.ts +0 -28
- package/dist/application/query/execution/projection.d.ts +0 -3
- package/dist/application/query/execution/projection.js +0 -3
- package/dist/deployment/adapter/deploy/context.d.ts +0 -15
- package/dist/deployment/adapter/deploy/index.d.ts +0 -2
- package/dist/deployment/adapter/deploy/result.d.ts +0 -50
- package/dist/deployment/adapter/prepare/artifact.d.ts +0 -33
- package/dist/deployment/adapter/prepare/context.d.ts +0 -23
- package/dist/deployment/adapter/prepare/index.d.ts +0 -2
- package/dist/deployment/deploy.d.ts +0 -20
- package/dist/deployment/deploy.js +0 -31
- package/dist/deployment/release/publication/index.d.ts +0 -6
- package/dist/deployment/release/publication/index.js +0 -6
- package/dist/deployment/release/publication/manifest.d.ts +0 -3
- package/dist/deployment/release/publication/manifest.js +0 -5
- package/dist/deployment/release/publication/requirements.d.ts +0 -3
- package/dist/deployment/release/publication/requirements.js +0 -3
- package/dist/deployment/release/publication/seal.d.ts +0 -10
- package/dist/deployment/release/publication/seal.js +0 -39
- package/dist/deployment/verify/preflight/artifact.d.ts +0 -6
- package/dist/deployment/verify/preflight/artifact.js +0 -122
- package/dist/deployment/verify/preflight/publication.d.ts +0 -4
- package/dist/deployment/verify/preflight/publication.js +0 -14
- package/dist/deployment/verify/readiness/deployment.d.ts +0 -3
- package/dist/deployment/verify/readiness/deployment.js +0 -151
- package/dist/deployment/verify/readiness/publication.d.ts +0 -11
- package/dist/deployment/verify/readiness/publication.js +0 -41
- package/dist/execution/service/errors.d.ts +0 -3
- package/dist/execution/service/errors.js +0 -3
- package/dist/execution/service/publication/delivery.d.ts +0 -2
- package/dist/execution/service/publication/installation.d.ts +0 -3
- package/dist/execution/service/publication/installation.js +0 -8
- package/dist/execution/service/publication/source.d.ts +0 -3
- package/dist/execution/service/publication/source.js +0 -11
- package/dist/platform/publication/index.d.ts +0 -2
- package/dist/platform/publication/index.js +0 -2
- package/dist/tooling/cli/astrale/authority.d.ts +0 -5
- package/dist/tooling/cli/astrale/authority.js +0 -11
- package/dist/tooling/cli/astrale/executable.d.ts +0 -2
- package/dist/tooling/cli/astrale/executable.js +0 -47
- package/dist/tooling/cli/astrale/failure.d.ts +0 -6
- package/dist/tooling/cli/astrale/failure.js +0 -48
- package/dist/tooling/cli/astrale/instance.d.ts +0 -11
- package/dist/tooling/cli/astrale/instance.js +0 -52
- package/dist/tooling/cli/astrale/process.d.ts +0 -13
- package/dist/tooling/cli/astrale/process.js +0 -94
- package/dist/tooling/cli/astrale/version.d.ts +0 -18
- package/dist/tooling/cli/astrale/version.js +0 -55
- package/dist/tooling/cli/credential.d.ts +0 -2
- package/dist/tooling/cli/credential.js +0 -57
- package/dist/tooling/cli/deprecations.d.ts +0 -9
- package/dist/tooling/cli/deprecations.js +0 -15
- package/dist/tooling/cli/development/candidate.d.ts +0 -25
- package/dist/tooling/cli/development/candidate.js +0 -176
- package/dist/tooling/cli/development/deployment.d.ts +0 -16
- package/dist/tooling/cli/development/deployment.js +0 -39
- package/dist/tooling/cli/development/develop.d.ts +0 -11
- package/dist/tooling/cli/development/develop.js +0 -243
- package/dist/tooling/cli/development/lease.d.ts +0 -18
- package/dist/tooling/cli/development/lease.js +0 -163
- package/dist/tooling/cli/development/lifecycle.d.ts +0 -9
- package/dist/tooling/cli/development/lifecycle.js +0 -43
- package/dist/tooling/cli/development/project-imports.d.ts +0 -22
- package/dist/tooling/cli/development/project-imports.js +0 -39
- package/dist/tooling/cli/development/project-lock.d.ts +0 -16
- package/dist/tooling/cli/development/project-lock.js +0 -41
- package/dist/tooling/cli/development/rebuild.d.ts +0 -13
- package/dist/tooling/cli/development/rebuild.js +0 -58
- package/dist/tooling/cli/development/release-evidence.d.ts +0 -4
- package/dist/tooling/cli/development/release-evidence.js +0 -10
- package/dist/tooling/cli/development/report.d.ts +0 -6
- package/dist/tooling/cli/development/report.js +0 -14
- package/dist/tooling/cli/development/session-file.d.ts +0 -53
- package/dist/tooling/cli/development/session-file.js +0 -337
- package/dist/tooling/cli/development/source-watch.d.ts +0 -14
- package/dist/tooling/cli/development/source-watch.js +0 -140
- package/dist/tooling/cli/development/sources.d.ts +0 -7
- package/dist/tooling/cli/development/sources.js +0 -48
- package/dist/tooling/cli/development/target-lock.d.ts +0 -16
- package/dist/tooling/cli/development/target-lock.js +0 -68
- package/dist/tooling/cli/development/view.d.ts +0 -28
- package/dist/tooling/cli/development/view.js +0 -151
- package/dist/tooling/cli/environment-release.d.ts +0 -21
- package/dist/tooling/cli/environment-release.js +0 -46
- package/dist/tooling/cli/evidence.d.ts +0 -11
- package/dist/tooling/cli/evidence.js +0 -53
- package/dist/tooling/cli/installation/index.d.ts +0 -2
- package/dist/tooling/cli/installation/index.js +0 -1
- package/dist/tooling/cli/installation/observation.d.ts +0 -10
- package/dist/tooling/cli/installation/observation.js +0 -44
- package/dist/tooling/cli/installation/reconcile.d.ts +0 -32
- package/dist/tooling/cli/installation/reconcile.js +0 -122
- package/dist/tooling/linter/implementations/source/migrations.d.ts +0 -2
- package/dist/tooling/linter/implementations/source/migrations.js +0 -113
- package/dist/tooling/linter/qualification/index.d.ts +0 -10
- package/dist/tooling/linter/qualification/index.js +0 -2
- package/dist/tooling/linter/qualification/query-fixtures.d.ts +0 -2
- package/dist/tooling/linter/qualification/query-fixtures.js +0 -68
- package/dist/tooling/linter/qualification/runner.d.ts +0 -3
- package/dist/tooling/linter/qualification/runner.js +0 -6
- /package/dist/application/{application.js → domain.js} +0 -0
- /package/dist/{deployment/adapter/deploy/context.js → application/workflow/durable.js} +0 -0
- /package/dist/deployment/adapter/{deploy/index.js → bundle/bundle.js} +0 -0
- /package/dist/deployment/adapter/{deploy/result.js → bundle/file.js} +0 -0
- /package/dist/deployment/adapter/{prepare → bundle}/index.js +0 -0
- /package/dist/deployment/adapter/{prepare/artifact.js → release/command.js} +0 -0
- /package/dist/deployment/adapter/{prepare → release}/context.js +0 -0
- /package/dist/deployment/release/{publication → served}/routes.d.ts +0 -0
- /package/dist/deployment/release/{publication → served}/routes.js +0 -0
- /package/dist/execution/service/{publication → serving}/index.js +0 -0
|
@@ -1,36 +1,86 @@
|
|
|
1
|
-
import { nodeClass as kernelNodeClass, type DirectedEdgeClass, type DirectedEdgeInput, type NodeClass, type NodeClassInput as KernelNodeClassInput, type UndirectedEdgeClass, type UndirectedEdgeInput } from '@astrale-os/kernel-dsl/v1/builder';
|
|
1
|
+
import { edgeClass as kernelEdgeClass, nodeClass as kernelNodeClass, type DirectedEdgeClass, type DirectedEdgeInput, type Lazy, type NodeClass, type NodeClassInput as KernelNodeClassInput, type NodeClassPolicyInput, type Policy, type UndirectedEdgeClass, type UndirectedEdgeInput } from '@astrale-os/kernel-dsl/v1/builder';
|
|
2
2
|
import { type ClassIcon } from './class-icon.js';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* SDK Node Class input: every author must make an explicit, admitted icon choice, and every
|
|
5
|
+
* concrete Class must declare its read rule.
|
|
6
|
+
*/
|
|
4
7
|
export type NodeClassInput = Omit<KernelNodeClassInput, 'icon'> & {
|
|
5
8
|
readonly icon: ClassIcon;
|
|
6
9
|
};
|
|
10
|
+
/** Who may read or traverse an Edge Class: a named Policy, or the constant `true` or `false`. */
|
|
11
|
+
export type ClassReadRule = Lazy<Policy> | boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Who may read or traverse a Node Class: a named Policy, the constant `true` or `false`, or Policy
|
|
14
|
+
* checks over the observed Node (`self`) and fixed members (`ref(...)`), composed as the checks of
|
|
15
|
+
* an authorized callable.
|
|
16
|
+
*/
|
|
17
|
+
export type NodeClassReadRule = NodeClassPolicyInput;
|
|
18
|
+
/**
|
|
19
|
+
* The observation rules of a concrete Class. A Node stays traversable through either rule, so a
|
|
20
|
+
* read rule other than `true` leaves every caller able to reach it, and to select its reference,
|
|
21
|
+
* until the traverse rule is declared too.
|
|
22
|
+
*/
|
|
23
|
+
export type DeclaredObservation<Rule = ClassReadRule> = {
|
|
24
|
+
readonly read: true;
|
|
25
|
+
readonly traverse?: Rule;
|
|
26
|
+
} | {
|
|
27
|
+
readonly read: Exclude<Rule, true>;
|
|
28
|
+
readonly traverse: Rule;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* A concrete Class declares its read rule, and its traverse rule whenever the read rule is not
|
|
32
|
+
* `true`. An abstract Class is never observed directly, so it declares neither.
|
|
33
|
+
*/
|
|
34
|
+
export type DeclaredReadRule<Config, Rule = ClassReadRule> = Config extends {
|
|
35
|
+
readonly abstract: true;
|
|
36
|
+
} ? unknown : {
|
|
37
|
+
readonly policies: DeclaredObservation<Rule>;
|
|
38
|
+
};
|
|
7
39
|
/** Preserve authored input instead of serializing expanded inheritance projections in consumers. */
|
|
8
40
|
export interface AuthoredNodeClass<Config extends NodeClassInput> extends ReturnType<typeof kernelNodeClass<Config>> {
|
|
9
41
|
}
|
|
42
|
+
type DirectedOptions = Omit<DirectedEdgeInput, 'orientation'>;
|
|
43
|
+
type UndirectedOptions = Omit<UndirectedEdgeInput, 'orientation'>;
|
|
44
|
+
/** The two states `defineClass` admits: abstract, or concrete with declared observation rules. */
|
|
45
|
+
type Declared<Input, Rule = ClassReadRule> = (Input & {
|
|
46
|
+
readonly abstract: true;
|
|
47
|
+
}) | (Input & {
|
|
48
|
+
readonly abstract: false;
|
|
49
|
+
} & {
|
|
50
|
+
readonly policies: DeclaredObservation<Rule>;
|
|
51
|
+
});
|
|
10
52
|
type NodeInput = {
|
|
11
53
|
readonly kind: 'node';
|
|
12
|
-
|
|
13
|
-
} & NodeClassInput;
|
|
54
|
+
} & Declared<NodeClassInput, NodeClassReadRule>;
|
|
14
55
|
type DirectedInput = {
|
|
15
56
|
readonly kind: 'edge';
|
|
16
57
|
readonly orientation: 'directed';
|
|
17
|
-
|
|
18
|
-
} & Omit<DirectedEdgeInput, 'orientation'>;
|
|
58
|
+
} & Declared<DirectedOptions>;
|
|
19
59
|
type UndirectedInput = {
|
|
20
60
|
readonly kind: 'edge';
|
|
21
61
|
readonly orientation: 'undirected';
|
|
22
|
-
|
|
23
|
-
} & Omit<UndirectedEdgeInput, 'orientation'>;
|
|
62
|
+
} & Declared<UndirectedOptions>;
|
|
24
63
|
/**
|
|
25
64
|
* Author a Node Class whose materialized configuration always carries an explicitly selected,
|
|
26
|
-
* admitted SVG icon. The mapped input retains inference
|
|
27
|
-
* Config interface names into portable structure for downstream
|
|
65
|
+
* admitted SVG icon and, when concrete, a declared read rule. The mapped input retains inference
|
|
66
|
+
* while expanding package-private Config interface names into portable structure for downstream
|
|
67
|
+
* declaration emit.
|
|
28
68
|
*/
|
|
29
|
-
export declare function nodeClass<const Config extends NodeClassInput>(config: Config & Record<Exclude<keyof Config, keyof NodeClassInput>, never>): AuthoredNodeClass<{
|
|
69
|
+
export declare function nodeClass<const Config extends NodeClassInput>(config: Config & Record<Exclude<keyof Config, keyof NodeClassInput>, never> & DeclaredReadRule<Config, NodeClassReadRule>): AuthoredNodeClass<{
|
|
30
70
|
[Key in keyof Config]: Key extends 'properties' | 'methods' | 'policies' ? {
|
|
31
71
|
[Member in keyof NonNullable<Config[Key]>]: NonNullable<Config[Key]>[Member];
|
|
32
72
|
} | Extract<Config[Key], undefined> : Key extends 'extends' ? Config[Key] extends infer Parents extends NodeClassInput['extends'] ? Parents extends readonly unknown[] ? readonly [...Parents] : Parents : never : Config[Key];
|
|
33
73
|
}>;
|
|
74
|
+
declare function directed<const Input extends DirectedOptions>(input: Input & Parameters<typeof kernelEdgeClass.directed<Input>>[0] & DeclaredReadRule<Input>): ReturnType<typeof kernelEdgeClass.directed<Input>>;
|
|
75
|
+
declare function undirected<const Input extends UndirectedOptions>(input: Input & Parameters<typeof kernelEdgeClass.undirected<Input>>[0] & DeclaredReadRule<Input>): ReturnType<typeof kernelEdgeClass.undirected<Input>>;
|
|
76
|
+
/**
|
|
77
|
+
* Author an Edge Class. A concrete Edge Class declares its read rule exactly as a Node Class
|
|
78
|
+
* does; the handle is the canonical DSL handle.
|
|
79
|
+
*/
|
|
80
|
+
export declare const edgeClass: Readonly<{
|
|
81
|
+
directed: typeof directed;
|
|
82
|
+
undirected: typeof undirected;
|
|
83
|
+
}>;
|
|
34
84
|
export declare function defineClass(config: NodeInput): NodeClass;
|
|
35
85
|
export declare function defineClass(config: DirectedInput): DirectedEdgeClass;
|
|
36
86
|
export declare function defineClass(config: UndirectedInput): UndirectedEdgeClass;
|
|
@@ -1,20 +1,53 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { edgeClass as kernelEdgeClass, nodeClass as kernelNodeClass, } from '@astrale-os/kernel-dsl/v1/builder';
|
|
2
|
+
import { assertNoUndeclaredCallerRule } from './callable-authoring.js';
|
|
2
3
|
import { classIcon } from './class-icon.js';
|
|
3
4
|
export function nodeClass(config) {
|
|
4
5
|
if (config === undefined || config.icon === undefined) {
|
|
5
6
|
throw new TypeError('Node Class icon is required; use classIcon.neutral to make an explicit neutral choice.');
|
|
6
7
|
}
|
|
8
|
+
assertDeclaredReadRule('Node', config);
|
|
9
|
+
if (config.abstract !== true)
|
|
10
|
+
assertNoUndeclaredCallerRule(config.methods);
|
|
7
11
|
return kernelNodeClass({
|
|
8
12
|
...config,
|
|
9
13
|
icon: classIcon.svg(config.icon),
|
|
10
14
|
});
|
|
11
15
|
}
|
|
16
|
+
function directed(input) {
|
|
17
|
+
assertDeclaredReadRule('Edge', input);
|
|
18
|
+
return kernelEdgeClass.directed(input);
|
|
19
|
+
}
|
|
20
|
+
function undirected(input) {
|
|
21
|
+
assertDeclaredReadRule('Edge', input);
|
|
22
|
+
return kernelEdgeClass.undirected(input);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Author an Edge Class. A concrete Edge Class declares its read rule exactly as a Node Class
|
|
26
|
+
* does; the handle is the canonical DSL handle.
|
|
27
|
+
*/
|
|
28
|
+
export const edgeClass = Object.freeze({ directed, undirected });
|
|
12
29
|
export function defineClass(config) {
|
|
13
30
|
if (config.kind === 'node') {
|
|
14
31
|
const { kind: _, ...input } = config;
|
|
15
32
|
return nodeClass(input);
|
|
16
33
|
}
|
|
17
|
-
if (config.orientation === 'directed')
|
|
18
|
-
|
|
19
|
-
|
|
34
|
+
if (config.orientation === 'directed') {
|
|
35
|
+
const { kind: _, orientation: __, ...input } = config;
|
|
36
|
+
return edgeClass.directed(input);
|
|
37
|
+
}
|
|
38
|
+
const { kind: _, orientation: __, ...input } = config;
|
|
39
|
+
return edgeClass.undirected(input);
|
|
40
|
+
}
|
|
41
|
+
/** The authoring boundary restates the type contract for untyped and widened configurations. */
|
|
42
|
+
function assertDeclaredReadRule(kind, config) {
|
|
43
|
+
if (config.abstract === true)
|
|
44
|
+
return;
|
|
45
|
+
const rule = kind === 'Node' ? 'a Policy, Policy checks, true or false' : 'a Policy, true or false';
|
|
46
|
+
const read = config.policies?.read;
|
|
47
|
+
if (read === undefined) {
|
|
48
|
+
throw new TypeError(`${kind} Class read rule is required; declare policies.read with ${rule}.`);
|
|
49
|
+
}
|
|
50
|
+
if (read !== true && config.policies?.traverse === undefined) {
|
|
51
|
+
throw new TypeError(`${kind} Class traverse rule is required when its read rule is not true; declare policies.traverse with ${rule}.`);
|
|
52
|
+
}
|
|
20
53
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const CLASS_ICON: unique symbol;
|
|
2
|
+
/** An admitted, self-contained SVG suitable for a Node Class presentation icon. */
|
|
3
|
+
export type ClassIcon = string & {
|
|
4
|
+
readonly [CLASS_ICON]: true;
|
|
5
|
+
};
|
|
6
|
+
/** Stable empty SVG used when an author explicitly chooses to render no icon glyph. */
|
|
7
|
+
export declare const NEUTRAL_CLASS_ICON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"></svg>";
|
|
8
|
+
export declare function admitClassIconSvg(source: string): ClassIcon;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const MAX_CLASS_ICON_LENGTH = 8_000;
|
|
2
|
+
const SVG_ROOT = /^<svg(?:\s[^>]*)?>[\s\S]*<\/svg>$/u;
|
|
3
|
+
const SVG_ROOT_OPEN = /<svg(?:\s|>)/gu;
|
|
4
|
+
const SVG_ROOT_CLOSE = /<\/svg\s*>/gu;
|
|
5
|
+
const SVG_GRAPHIC = /<(?:circle|ellipse|line|path|polygon|polyline|rect)\b/iu;
|
|
6
|
+
const UNSAFE_SVG = /<\s*(?:animate|discard|embed|foreignObject|iframe|image|object|script|set|style|use)\b|<!DOCTYPE\b|<!ENTITY\b|\son[a-z][\w:.-]*\s*=|(?:href|xlink:href)\s*=|javascript\s*:|url\s*\(/iu;
|
|
7
|
+
/** Stable empty SVG used when an author explicitly chooses to render no icon glyph. */
|
|
8
|
+
export const NEUTRAL_CLASS_ICON_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"></svg>';
|
|
9
|
+
export function admitClassIconSvg(source) {
|
|
10
|
+
if (typeof source !== 'string') {
|
|
11
|
+
throw new TypeError('Class icon must be an inline SVG string.');
|
|
12
|
+
}
|
|
13
|
+
const value = source.trim();
|
|
14
|
+
if (Array.from(value).length > MAX_CLASS_ICON_LENGTH) {
|
|
15
|
+
throw new TypeError(`Class icon must contain at most ${MAX_CLASS_ICON_LENGTH} characters.`);
|
|
16
|
+
}
|
|
17
|
+
if (!SVG_ROOT.test(value) ||
|
|
18
|
+
(value.match(SVG_ROOT_OPEN)?.length ?? 0) !== 1 ||
|
|
19
|
+
(value.match(SVG_ROOT_CLOSE)?.length ?? 0) !== 1) {
|
|
20
|
+
throw new TypeError('Class icon must be one complete inline <svg> element.');
|
|
21
|
+
}
|
|
22
|
+
if (UNSAFE_SVG.test(value)) {
|
|
23
|
+
throw new TypeError('Class icon SVG must be self-contained and contain no executable content.');
|
|
24
|
+
}
|
|
25
|
+
if (value !== NEUTRAL_CLASS_ICON_SVG && !SVG_GRAPHIC.test(value)) {
|
|
26
|
+
throw new TypeError('Class icon SVG must contain a visible vector element.');
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import type { LucideIconData } from '@lucide/icons';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
readonly [CLASS_ICON]: true;
|
|
6
|
-
};
|
|
7
|
-
/** Stable empty SVG used when an author explicitly chooses to render no icon glyph. */
|
|
8
|
-
export declare const NEUTRAL_CLASS_ICON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"></svg>";
|
|
2
|
+
import type { ClassIcon } from './class-icon-svg.js';
|
|
3
|
+
export type { ClassIcon } from './class-icon-svg.js';
|
|
4
|
+
export { NEUTRAL_CLASS_ICON_SVG } from './class-icon-svg.js';
|
|
9
5
|
/** Framework-neutral constructors for canonical Node Class icons. */
|
|
10
6
|
export declare const classIcon: Readonly<{
|
|
11
7
|
readonly neutral: ClassIcon;
|
|
12
8
|
svg(source: string): ClassIcon;
|
|
13
9
|
lucide(icon: LucideIconData): ClassIcon;
|
|
14
10
|
}>;
|
|
15
|
-
export {};
|
|
@@ -1,33 +1,6 @@
|
|
|
1
1
|
import { buildLucideSvg } from '@lucide/icons/build';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const SVG_ROOT_OPEN = /<svg(?:\s|>)/gu;
|
|
5
|
-
const SVG_ROOT_CLOSE = /<\/svg\s*>/gu;
|
|
6
|
-
const SVG_GRAPHIC = /<(?:circle|ellipse|line|path|polygon|polyline|rect)\b/iu;
|
|
7
|
-
const UNSAFE_SVG = /<\s*(?:animate|discard|embed|foreignObject|iframe|image|object|script|set|style|use)\b|<!DOCTYPE\b|<!ENTITY\b|\son[a-z][\w:.-]*\s*=|(?:href|xlink:href)\s*=|javascript\s*:|url\s*\(/iu;
|
|
8
|
-
/** Stable empty SVG used when an author explicitly chooses to render no icon glyph. */
|
|
9
|
-
export const NEUTRAL_CLASS_ICON_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"></svg>';
|
|
10
|
-
function svg(source) {
|
|
11
|
-
if (typeof source !== 'string') {
|
|
12
|
-
throw new TypeError('Class icon must be an inline SVG string.');
|
|
13
|
-
}
|
|
14
|
-
const value = source.trim();
|
|
15
|
-
if (Array.from(value).length > MAX_CLASS_ICON_LENGTH) {
|
|
16
|
-
throw new TypeError(`Class icon must contain at most ${MAX_CLASS_ICON_LENGTH} characters.`);
|
|
17
|
-
}
|
|
18
|
-
if (!SVG_ROOT.test(value) ||
|
|
19
|
-
(value.match(SVG_ROOT_OPEN)?.length ?? 0) !== 1 ||
|
|
20
|
-
(value.match(SVG_ROOT_CLOSE)?.length ?? 0) !== 1) {
|
|
21
|
-
throw new TypeError('Class icon must be one complete inline <svg> element.');
|
|
22
|
-
}
|
|
23
|
-
if (UNSAFE_SVG.test(value)) {
|
|
24
|
-
throw new TypeError('Class icon SVG must be self-contained and contain no executable content.');
|
|
25
|
-
}
|
|
26
|
-
if (value !== NEUTRAL_CLASS_ICON_SVG && !SVG_GRAPHIC.test(value)) {
|
|
27
|
-
throw new TypeError('Class icon SVG must contain a visible vector element.');
|
|
28
|
-
}
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
2
|
+
import { admitClassIconSvg as svg, NEUTRAL_CLASS_ICON_SVG } from './class-icon-svg.js';
|
|
3
|
+
export { NEUTRAL_CLASS_ICON_SVG } from './class-icon-svg.js';
|
|
31
4
|
function lucide(icon) {
|
|
32
5
|
let source;
|
|
33
6
|
try {
|
|
@@ -7,16 +7,18 @@ export type { StateProperty } from './state-property.js';
|
|
|
7
7
|
export { property } from './property.js';
|
|
8
8
|
export type { AuthoredProperty, PropertyOptions } from './property.js';
|
|
9
9
|
export { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
10
|
-
export { defineClass, nodeClass } from './class-authoring.js';
|
|
11
|
-
export type { AuthoredNodeClass, NodeClassInput } from './class-authoring.js';
|
|
10
|
+
export { defineClass, edgeClass, nodeClass } from './class-authoring.js';
|
|
11
|
+
export type { AuthoredNodeClass, ClassReadRule, DeclaredObservation, DeclaredReadRule, NodeClassReadRule, NodeClassInput, } from './class-authoring.js';
|
|
12
|
+
export { func, method } from './callable-authoring.js';
|
|
13
|
+
export type { CallerRule, DeclaredCallerRule } from './callable-authoring.js';
|
|
12
14
|
export { error } from './error.js';
|
|
13
15
|
export type { DeclaredErrorDefinition, DeclaredErrorFamily } from './error.js';
|
|
14
16
|
export { classIcon } from './class-icon.js';
|
|
15
17
|
export type { ClassIcon } from './class-icon.js';
|
|
16
18
|
export type { StoredPropertyInputOf } from './property-input.js';
|
|
17
|
-
export type { CallablePolicyBuilder, CallablePolicyContext, CallableProjection, AuthoredMethodProjection, AuthoredPropertyProjection, ClassIdentityProjection, ClassOwnerProjection, CoreEdge, CoreEndpoint, CoreNode, DefinedSchema, DirectedEdgeClass, ClassReferenceProjection, ClassProjection, FunctionProjection, EdgeClass, Function, Method, MethodProjection, Lazy, NodeClass, Policy, PolicyExistsContext, PolicyNodeBinder, PolicyPatternContext, Property, PropertyProjection, ResolvedDomainOfInput, View, } from '@astrale-os/kernel-dsl/v1/builder';
|
|
19
|
+
export type { CallablePolicyBuilder, CallablePolicyContext, ClassRuleBuilder, ClassRuleContext, PolicyCheckContext, CallableProjection, AuthoredMethodProjection, AuthoredPropertyProjection, ClassIdentityProjection, ClassOwnerProjection, CoreEdge, CoreEndpoint, CoreNode, DefinedSchema, DirectedEdgeClass, ClassReferenceProjection, ClassProjection, FunctionProjection, EdgeClass, Function, Method, MethodProjection, Lazy, NodeClass, Policy, PolicyExistsContext, PolicyNodeBinder, PolicyPatternContext, Property, PropertyProjection, ResolvedDomainOfInput, View, } from '@astrale-os/kernel-dsl/v1/builder';
|
|
18
20
|
export type { Array, Object, Value } from '@astrale-os/kernel-dsl/value';
|
|
19
|
-
export type { ClassKind, DirectedEdgeContract, EdgeClassPolicies, NodeClassDefinition, PolicyCheckObject, PolicyObjectRef, PropertyFacet, StateTopology, UndirectedEdgeContract, } from '@astrale-os/kernel-dsl/v1/language';
|
|
21
|
+
export type { CallableAdmission, CallableExecution, ClassKind, DirectedEdgeContract, EdgeClassPolicies, NodeClassDefinition, PolicyCheckObject, PolicyObjectRef, PropertyFacet, PropertyImmutability, StateTopology, UndirectedEdgeContract, } from '@astrale-os/kernel-dsl/v1/language';
|
|
20
22
|
export type { DomainSchema } from '@astrale-os/kernel-dsl/v1/schema';
|
|
21
23
|
/** Kernel-owned Schema values used by authored product Schemas and graph operations. */
|
|
22
24
|
export { AuthorityOperationOrder, AuthorityOperations, AuthorityRelations, KernelRootFunctions, OperationCore, operationOf, } from '@astrale-os/kernel-core/schema';
|
|
@@ -4,7 +4,8 @@ export { defineSchema } from './schema-authoring.js';
|
|
|
4
4
|
export { stateProperty } from './state-property.js';
|
|
5
5
|
export { property } from './property.js';
|
|
6
6
|
export { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
7
|
-
export { defineClass, nodeClass } from './class-authoring.js';
|
|
7
|
+
export { defineClass, edgeClass, nodeClass } from './class-authoring.js';
|
|
8
|
+
export { func, method } from './callable-authoring.js';
|
|
8
9
|
export { error } from './error.js';
|
|
9
10
|
export { classIcon } from './class-icon.js';
|
|
10
11
|
/** Kernel-owned Schema values used by authored product Schemas and graph operations. */
|
|
@@ -3,6 +3,11 @@ import { type Property as CanonicalProperty, type ValueSchemaInput } from '@astr
|
|
|
3
3
|
export interface PropertyOptions {
|
|
4
4
|
readonly required?: boolean;
|
|
5
5
|
readonly description?: string;
|
|
6
|
+
/**
|
|
7
|
+
* `create` freezes the value when its node or edge is created. `once` admits one write while the
|
|
8
|
+
* value is absent; neither can be changed or unset afterwards, only removed with the element.
|
|
9
|
+
*/
|
|
10
|
+
readonly immutable?: 'create' | 'once';
|
|
6
11
|
}
|
|
7
12
|
/** Keep canonical generic inference: ordinary properties carry no state machine. */
|
|
8
13
|
export type AuthoredProperty<Schema extends ValueSchemaInput, Options extends PropertyOptions = Record<never, never>> = CanonicalProperty<Schema, Options, never>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { DefinedSchema, ResolvedDomainOfInput } from '@astrale-os/kernel-dsl/v1/builder';
|
|
1
|
+
import type { DefinedSchema, EntrypointOf, ResolvedDomainOfInput, SchemaInput } from '@astrale-os/kernel-dsl/v1/builder';
|
|
2
2
|
import type { DomainSchema } from '@astrale-os/kernel-dsl/v1/schema';
|
|
3
|
-
|
|
4
|
-
type DomainSchemaInput = Parameters<typeof kernelDefineSchema>[1];
|
|
3
|
+
type DomainSchemaInput = SchemaInput;
|
|
5
4
|
declare const authoredGraph: unique symbol;
|
|
6
|
-
/**
|
|
5
|
+
/** Resolved Schemas retain their witness; authored Schemas retain input and dependency edges. */
|
|
7
6
|
type Entry = readonly [origin: string, schema: DomainSchema] | readonly [
|
|
8
7
|
origin: string,
|
|
9
8
|
input: DomainSchemaInput,
|
|
@@ -34,7 +33,7 @@ type InputOf<Origin extends string, Graph extends Entry> = Extract<Graph, readon
|
|
|
34
33
|
readonly [Alias in keyof Dependencies]: SchemaOf<Dependencies[Alias], Graph>;
|
|
35
34
|
};
|
|
36
35
|
} : never;
|
|
37
|
-
type SchemaOf<Origin extends string, Graph extends Entry> = Extract<Graph, readonly [Origin, DomainSchema]> extends infer
|
|
36
|
+
type SchemaOf<Origin extends string, Graph extends Entry> = Extract<Graph, readonly [Origin, DomainSchema]> extends infer Resolved ? [Resolved] extends [never] ? AuthoredSchema<Origin, Graph> : Resolved extends readonly [string, infer Schema extends DomainSchema] ? Schema : never : never;
|
|
38
37
|
/** Resolve a dependency graph without expanding a shared Schema at each dependency edge. */
|
|
39
38
|
export interface AuthoredDomain<Origin extends string, Graph extends Entry> extends ResolvedDomainOfInput<Origin, InputOf<Origin, Graph>> {
|
|
40
39
|
}
|
|
@@ -42,7 +41,15 @@ export interface AuthoredDomain<Origin extends string, Graph extends Entry> exte
|
|
|
42
41
|
export interface AuthoredSchema<Origin extends string, Graph extends Entry> extends DefinedSchema<Origin, AuthoredDomain<Origin, Graph>> {
|
|
43
42
|
readonly [authoredGraph]?: Graph;
|
|
44
43
|
}
|
|
45
|
-
type DefineSchema = <const Origin extends string, const Input extends DomainSchemaInput
|
|
46
|
-
|
|
44
|
+
type DefineSchema = <const Origin extends string, const Input extends DomainSchemaInput & {
|
|
45
|
+
readonly name: string;
|
|
46
|
+
}>(origin: Origin, input: Input & {
|
|
47
|
+
readonly entrypoint?: EntrypointOf<Input>;
|
|
48
|
+
}) => string extends Origin | Extract<Dependencies<Input>[keyof Dependencies<Input>], DomainSchema>['origin'] ? DefinedSchema<Origin, ResolvedDomainOfInput<Origin, Input>> : AuthoredSchema<Origin, Extract<UniqueEntries<GraphOfInput<Origin, Input>>, Entry>>;
|
|
49
|
+
/**
|
|
50
|
+
* The canonical implementation with a portable, automatically inferred declaration. Its type
|
|
51
|
+
* requires the Domain `name`, which the Kernel requires to install a new revision; `defineDomain`
|
|
52
|
+
* refuses an unnamed root Schema at runtime. `entrypoint` names one of the declared Views.
|
|
53
|
+
*/
|
|
47
54
|
export declare const defineSchema: DefineSchema;
|
|
48
55
|
export {};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { defineSchema as kernelDefineSchema } from '@astrale-os/kernel-dsl/v1';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* The canonical implementation with a portable, automatically inferred declaration. Its type
|
|
4
|
+
* requires the Domain `name`, which the Kernel requires to install a new revision; `defineDomain`
|
|
5
|
+
* refuses an unnamed root Schema at runtime. `entrypoint` names one of the declared Views.
|
|
6
|
+
*/
|
|
3
7
|
export const defineSchema = kernelDefineSchema;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
|
+
import { type Version } from './version.js';
|
|
3
|
+
/**
|
|
4
|
+
* The highest stable, non-yanked version of a dependent Domain whose dependencies contain the target
|
|
5
|
+
* exactly, by origin and revision: the version to install beside that dependency. Semver is never a
|
|
6
|
+
* compatibility rule; only the exact revision a release was built against is.
|
|
7
|
+
*/
|
|
8
|
+
export declare function compatibleDependentVersion(index: readonly {
|
|
9
|
+
readonly version: Version;
|
|
10
|
+
readonly yanked: boolean;
|
|
11
|
+
readonly dependencies: readonly {
|
|
12
|
+
readonly origin: string;
|
|
13
|
+
readonly revision: Revision;
|
|
14
|
+
}[];
|
|
15
|
+
}[], target: {
|
|
16
|
+
readonly origin: string;
|
|
17
|
+
readonly revision: Revision;
|
|
18
|
+
}): Version | undefined;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { isStable } from './version.js';
|
|
3
|
+
/**
|
|
4
|
+
* The highest stable, non-yanked version of a dependent Domain whose dependencies contain the target
|
|
5
|
+
* exactly, by origin and revision: the version to install beside that dependency. Semver is never a
|
|
6
|
+
* compatibility rule; only the exact revision a release was built against is.
|
|
7
|
+
*/
|
|
8
|
+
export function compatibleDependentVersion(index, target) {
|
|
9
|
+
const compatible = index
|
|
10
|
+
.filter(({ version, yanked, dependencies }) => !yanked &&
|
|
11
|
+
isStable(version) &&
|
|
12
|
+
dependencies.some(({ origin, revision }) => origin === target.origin && revision === target.revision))
|
|
13
|
+
.map(({ version }) => version);
|
|
14
|
+
return semver.rsort(compatible)[0];
|
|
15
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Semver policy of Domain versions, shared by `diff`, `publish` and install resolution. */
|
|
2
|
+
export { compatibleDependentVersion } from './dependents.js';
|
|
3
|
+
export { deploymentName } from './name.js';
|
|
4
|
+
export { parseReference, resolveVersion, type Reference } from './reference.js';
|
|
5
|
+
export { acceptVersion, baselineVersion, effectiveLevel, judgeVersion, minimumVersion, type BumpLevel, type PublishedVersion, type Version, type VersionVerdict, } from './version.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Semver policy of Domain versions, shared by `diff`, `publish` and install resolution. */
|
|
2
|
+
export { compatibleDependentVersion } from './dependents.js';
|
|
3
|
+
export { deploymentName } from './name.js';
|
|
4
|
+
export { parseReference, resolveVersion } from './reference.js';
|
|
5
|
+
export { acceptVersion, baselineVersion, effectiveLevel, judgeVersion, minimumVersion, } from './version.js';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Digest } from '@astrale-os/kernel-protocol/artifact';
|
|
2
|
+
/**
|
|
3
|
+
* The computed, never stored, name of one deployment. A version naming its release names it
|
|
4
|
+
* (`1.5.0`); a version naming its build elsewhere names it in its environment (`1.5.0 · staging`).
|
|
5
|
+
* Otherwise its recorded commit describes it from the last release tag, like `git describe` and Go
|
|
6
|
+
* pseudo-versions (`1.4.2 + 7 commits · a1b2c3d · staging`). A modified tree suffixes the commit
|
|
7
|
+
* token with `-dirty` and keeps the base and the environment (`a1b2c3d-dirty · staging`), as
|
|
8
|
+
* `git describe --dirty` does. When several published versions name one release or build, the
|
|
9
|
+
* highest that is not yanked names it, else the highest yanked one. Every name but a release's
|
|
10
|
+
* carries its environment, and listings print the name as returned, never shortened.
|
|
11
|
+
*
|
|
12
|
+
* The deployer declares the record and anyone may read it, so only the `DeploymentCommitV1` shape
|
|
13
|
+
* enters the name. A base enters only as a canonical version, the release tag without its `v` or
|
|
14
|
+
* `<component>-v` prefix, with a non-negative integer distance. A commit whose SHA is not 40
|
|
15
|
+
* hexadecimal digits names a plain preview, and the commit token is always printed in lower case,
|
|
16
|
+
* like `git describe`. An environment outside the `defineProject` grammar is rendered as `?`, so no
|
|
17
|
+
* record can put control characters or a ` · ` of its own in the name. Likewise only canonical
|
|
18
|
+
* published versions name a deployment. A deployment named without its digests (one whose record
|
|
19
|
+
* is not admitted) is never named by a published version.
|
|
20
|
+
*/
|
|
21
|
+
export declare function deploymentName(deployment: {
|
|
22
|
+
readonly environment: string;
|
|
23
|
+
readonly releaseDigest?: Digest;
|
|
24
|
+
readonly buildDigest?: Digest;
|
|
25
|
+
readonly commit: {
|
|
26
|
+
readonly sha: string;
|
|
27
|
+
readonly dirty: boolean;
|
|
28
|
+
readonly base?: {
|
|
29
|
+
readonly version: string;
|
|
30
|
+
readonly distance: number;
|
|
31
|
+
};
|
|
32
|
+
} | null;
|
|
33
|
+
}, publications: readonly {
|
|
34
|
+
readonly version: string;
|
|
35
|
+
readonly releaseDigest: Digest;
|
|
36
|
+
readonly buildDigest: Digest;
|
|
37
|
+
readonly yanked: boolean;
|
|
38
|
+
}[]): string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { ENVIRONMENT_NAME } from '../../deployment/environment.js';
|
|
3
|
+
import { isVersion } from './version.js';
|
|
4
|
+
/** A commit as `DeploymentCommitV1` records it: the full hexadecimal SHA-1, in either case. */
|
|
5
|
+
const SHA = /^[0-9a-f]{40}$/iu;
|
|
6
|
+
/** Stands for an environment outside the project environment-name grammar. */
|
|
7
|
+
const UNKNOWN_ENVIRONMENT = '?';
|
|
8
|
+
/**
|
|
9
|
+
* The computed, never stored, name of one deployment. A version naming its release names it
|
|
10
|
+
* (`1.5.0`); a version naming its build elsewhere names it in its environment (`1.5.0 · staging`).
|
|
11
|
+
* Otherwise its recorded commit describes it from the last release tag, like `git describe` and Go
|
|
12
|
+
* pseudo-versions (`1.4.2 + 7 commits · a1b2c3d · staging`). A modified tree suffixes the commit
|
|
13
|
+
* token with `-dirty` and keeps the base and the environment (`a1b2c3d-dirty · staging`), as
|
|
14
|
+
* `git describe --dirty` does. When several published versions name one release or build, the
|
|
15
|
+
* highest that is not yanked names it, else the highest yanked one. Every name but a release's
|
|
16
|
+
* carries its environment, and listings print the name as returned, never shortened.
|
|
17
|
+
*
|
|
18
|
+
* The deployer declares the record and anyone may read it, so only the `DeploymentCommitV1` shape
|
|
19
|
+
* enters the name. A base enters only as a canonical version, the release tag without its `v` or
|
|
20
|
+
* `<component>-v` prefix, with a non-negative integer distance. A commit whose SHA is not 40
|
|
21
|
+
* hexadecimal digits names a plain preview, and the commit token is always printed in lower case,
|
|
22
|
+
* like `git describe`. An environment outside the `defineProject` grammar is rendered as `?`, so no
|
|
23
|
+
* record can put control characters or a ` · ` of its own in the name. Likewise only canonical
|
|
24
|
+
* published versions name a deployment. A deployment named without its digests (one whose record
|
|
25
|
+
* is not admitted) is never named by a published version.
|
|
26
|
+
*/
|
|
27
|
+
export function deploymentName(deployment, publications) {
|
|
28
|
+
const { commit } = deployment;
|
|
29
|
+
const environment = typeof deployment.environment === 'string' && ENVIRONMENT_NAME.test(deployment.environment)
|
|
30
|
+
? deployment.environment
|
|
31
|
+
: UNKNOWN_ENVIRONMENT;
|
|
32
|
+
const release = highest(publications.filter(({ releaseDigest }) => deployment.releaseDigest !== undefined && releaseDigest === deployment.releaseDigest));
|
|
33
|
+
if (release !== undefined)
|
|
34
|
+
return release;
|
|
35
|
+
const build = highest(publications.filter(({ buildDigest }) => deployment.buildDigest !== undefined && buildDigest === deployment.buildDigest));
|
|
36
|
+
if (build !== undefined)
|
|
37
|
+
return `${build} · ${environment}`;
|
|
38
|
+
if (commit === null || typeof commit.sha !== 'string' || !SHA.test(commit.sha)) {
|
|
39
|
+
return `preview · ${environment}`;
|
|
40
|
+
}
|
|
41
|
+
const sha = `${commit.sha.slice(0, 7).toLowerCase()}${commit.dirty === true ? '-dirty' : ''}`;
|
|
42
|
+
const base = describeBase(commit.base);
|
|
43
|
+
return base === undefined ? `${sha} · ${environment}` : `${base} · ${sha} · ${environment}`;
|
|
44
|
+
}
|
|
45
|
+
function describeBase(base) {
|
|
46
|
+
if (base === undefined || !isVersion(base.version))
|
|
47
|
+
return undefined;
|
|
48
|
+
const { version, distance } = base;
|
|
49
|
+
if (!Number.isSafeInteger(distance) || distance < 0)
|
|
50
|
+
return undefined;
|
|
51
|
+
return distance === 0 ? version : `${version} + ${distance} commit${distance === 1 ? '' : 's'}`;
|
|
52
|
+
}
|
|
53
|
+
function highest(publications) {
|
|
54
|
+
const versions = (yanked) => publications
|
|
55
|
+
.filter((publication) => publication.yanked === yanked && isVersion(publication.version))
|
|
56
|
+
.map(({ version }) => version);
|
|
57
|
+
return semver.rsort(versions(false))[0] ?? semver.rsort(versions(true))[0];
|
|
58
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type PublishedVersion, type Version } from './version.js';
|
|
2
|
+
/**
|
|
3
|
+
* One install reference. The syntax decides: a version goes to the registry, a deployment URL is
|
|
4
|
+
* installed as is, without any lookup.
|
|
5
|
+
*/
|
|
6
|
+
export type Reference = {
|
|
7
|
+
readonly kind: 'url';
|
|
8
|
+
readonly url: string;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'exact';
|
|
11
|
+
readonly origin: string;
|
|
12
|
+
readonly version: Version;
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: 'line';
|
|
15
|
+
readonly origin: string;
|
|
16
|
+
readonly line: `${number}.${number}`;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Parse `<origin>@<major>.<minor>.<patch>[-<pre>]`, `<origin>@<major>.<minor>` or a deployment URL.
|
|
20
|
+
* Ranges are not references: `@1`, `^1.5` and `1.5.x` are refused, since only the exact version and
|
|
21
|
+
* the highest stable version of one minor line are ever resolved. A URL with credentials is refused:
|
|
22
|
+
* `https://issues.astrale.ai@1.5.0` would otherwise name the host `1.5.0`, not a version.
|
|
23
|
+
*
|
|
24
|
+
* A deployment URL is returned as written, so it must already be the URL the Kernel fetches: one the
|
|
25
|
+
* URL parser keeps as is, up to the `/` of an empty path. Whitespace and control characters (which
|
|
26
|
+
* the parser strips), an upper-case host, a default port or a missing `//` host are refused, as are a
|
|
27
|
+
* query and a fragment, which no deployment URL carries.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseReference(input: string): Reference;
|
|
30
|
+
/**
|
|
31
|
+
* Translate a version reference into one published version. An exact reference names any published
|
|
32
|
+
* version, a pre-release or a yanked one included (the caller warns on yanked). A line resolves to
|
|
33
|
+
* its highest stable version that is not yanked.
|
|
34
|
+
*
|
|
35
|
+
* A reference built from data rather than by `parseReference` is checked the same way: an exact
|
|
36
|
+
* version must be canonical and a line must be `<major>.<minor>`, so `1` never resolves as a major
|
|
37
|
+
* range and `1.5.3` never as an exact pin. Anything else throws a `TypeError`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveVersion(published: readonly PublishedVersion[], reference: Exclude<Reference, {
|
|
40
|
+
kind: 'url';
|
|
41
|
+
}>): {
|
|
42
|
+
readonly kind: 'resolved';
|
|
43
|
+
readonly version: Version;
|
|
44
|
+
readonly yanked: boolean;
|
|
45
|
+
} | {
|
|
46
|
+
readonly kind: 'unresolved';
|
|
47
|
+
readonly reason: 'unknown-version' | 'no-stable-match' | 'yanked-only';
|
|
48
|
+
};
|