@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,26 +1,37 @@
|
|
|
1
1
|
import type { Binary, Input } from '../../platform/client/index.js';
|
|
2
|
-
import type { SessionRequestOptions } from '../../platform/client/session/index.js';
|
|
2
|
+
import type { ExecutionRef, SessionRequestOptions, SessionRequestOptionsWithBody } from '../../platform/client/session/index.js';
|
|
3
3
|
import type { NodeId } from '../../platform/graph/node/index.js';
|
|
4
|
-
import type { CallableInputOf, CallableOutputOf, CallableResultOf, Domain, ResolvedMethod, KernelSchema, schema } from '../../platform/schema/index.js';
|
|
5
|
-
import type { LocalCallable } from '../action/index.js';
|
|
6
|
-
export type DependencyCallOptions = Pick<SessionRequestOptions, 'timeoutMs' | 'idempotencyKey'>;
|
|
4
|
+
import type { CallableInputOf, CallableInputModeOf, CallableOutputOf, CallableResultOf, Domain, ResolvedFunction, ResolvedMethod, KernelSchema, schema } from '../../platform/schema/index.js';
|
|
5
|
+
import type { AuthorityMode, AuthoritySelection, LocalCallable } from '../action/index.js';
|
|
6
|
+
export type DependencyCallOptions = Pick<SessionRequestOptions, 'timeoutMs' | 'idempotencyKey' | 'body'>;
|
|
7
|
+
export type DependencyBinaryCallOptions = Pick<SessionRequestOptionsWithBody, 'timeoutMs' | 'idempotencyKey' | 'body'>;
|
|
7
8
|
type InstanceMethodOf<D extends Domain> = Extract<LocalCallable<D>, ResolvedMethod<unknown, unknown, false>>;
|
|
8
9
|
type FunctionOrStaticMethodOf<D extends Domain> = Exclude<LocalCallable<D>, ResolvedMethod<unknown, unknown, false>>;
|
|
10
|
+
type WithInputMode<C, Mode extends 'value' | 'binary'> = C extends unknown ? CallableInputModeOf<C> extends Mode ? C : never : never;
|
|
11
|
+
type ValueFunctionOrStaticMethodOf<D extends Domain> = WithInputMode<FunctionOrStaticMethodOf<D>, 'value'>;
|
|
12
|
+
type BinaryFunctionOf<D extends Domain> = WithInputMode<Extract<LocalCallable<D>, ResolvedFunction>, 'binary'>;
|
|
9
13
|
type DependencyInputOf<C> = C extends unknown ? unknown extends CallableInputOf<C> ? Input : [CallableInputOf<C>] extends [void] ? undefined : CallableInputOf<C> : never;
|
|
10
|
-
type
|
|
14
|
+
type HandlerResultOf<C> = unknown extends CallableOutputOf<C> ? unknown : CallableResultOf<C, Binary>;
|
|
15
|
+
/** A durable callable answers with its Execution, as the Kernel Client's typed reference does. */
|
|
16
|
+
type DependencyResultOf<C> = C extends {
|
|
17
|
+
readonly execution: {
|
|
18
|
+
readonly durable: true;
|
|
19
|
+
};
|
|
20
|
+
} ? ExecutionRef<HandlerResultOf<C>> : HandlerResultOf<C>;
|
|
11
21
|
/** One declared dependency, bound to one explicitly selected invocation authority. */
|
|
12
22
|
export interface DependencyInvoker<D extends Domain> {
|
|
13
23
|
readonly invoke: {
|
|
14
|
-
<const C extends
|
|
24
|
+
<const C extends ValueFunctionOrStaticMethodOf<D>>(select: (domain: D) => C, input: NoInfer<DependencyInputOf<C>>, options?: DependencyCallOptions): Promise<DependencyResultOf<C>>;
|
|
15
25
|
<const C extends InstanceMethodOf<D>>(select: (domain: D) => C, instance: NodeId, input: NoInfer<DependencyInputOf<C>>, options?: DependencyCallOptions): Promise<DependencyResultOf<C>>;
|
|
26
|
+
<const C extends BinaryFunctionOf<D>>(select: (domain: D) => C, metadata: NoInfer<DependencyInputOf<C>>, options: DependencyBinaryCallOptions): Promise<DependencyResultOf<C>>;
|
|
16
27
|
};
|
|
17
28
|
}
|
|
18
29
|
/**
|
|
19
30
|
* Direct Schema aliases with explicit authority selection and no default invoke.
|
|
20
|
-
* self is the executing Domain; caller forwards the incoming
|
|
21
|
-
* The canonical Kernel is exposed through context.kernel.
|
|
31
|
+
* self is the executing Domain; caller forwards the incoming caller Identity, and is absent from a
|
|
32
|
+
* call that carried no credential. The canonical Kernel is exposed through context.kernel.
|
|
22
33
|
*/
|
|
23
|
-
export type HandlerDependencies<D extends Domain> = Readonly<{
|
|
24
|
-
[Alias in keyof D['dependencies'] as D['dependencies'][Alias] extends schema.DomainOf<KernelSchema> ? never : Alias]:
|
|
34
|
+
export type HandlerDependencies<D extends Domain, Authority extends AuthorityMode = AuthorityMode> = Readonly<{
|
|
35
|
+
[Alias in keyof D['dependencies'] as D['dependencies'][Alias] extends schema.DomainOf<KernelSchema> ? never : Alias]: AuthoritySelection<DependencyInvoker<Extract<D['dependencies'][Alias], Domain>>, Authority>;
|
|
25
36
|
}>;
|
|
26
37
|
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ClassIcon, schema } from '../platform/schema/index.js';
|
|
2
|
+
import type { Requirements } from './requirements/index.js';
|
|
3
|
+
import type { Routes } from './routes/index.js';
|
|
4
|
+
import type { Runtime, SchemaOfRuntime as RuntimeSchemaOf } from './runtime/index.js';
|
|
5
|
+
import type { Frontend } from './view/index.js';
|
|
6
|
+
declare const DOMAIN_DEFINITION_IDENTITY: unique symbol;
|
|
7
|
+
declare const DOMAIN_DEFINITION_SCHEMA: unique symbol;
|
|
8
|
+
/** Schema-independent type witness shared by every admitted Domain definition. */
|
|
9
|
+
export interface DomainDefinitionIdentity {
|
|
10
|
+
readonly [DOMAIN_DEFINITION_IDENTITY]: true;
|
|
11
|
+
}
|
|
12
|
+
/** Inert source/build composition of one Domain: its exact Schema and authored Runtime. */
|
|
13
|
+
export interface DomainDefinition<Schema extends schema.DomainSchema = schema.DomainSchema, RuntimeValue extends Runtime<Schema> = Runtime<Schema>, FrontendValue extends Frontend<Schema> | undefined = undefined, RoutesValue extends Routes | undefined = undefined, RequirementsValue extends Requirements | undefined = undefined> extends DomainDefinitionIdentity {
|
|
14
|
+
readonly schema: Schema;
|
|
15
|
+
readonly runtime: RuntimeValue;
|
|
16
|
+
readonly frontend?: FrontendValue;
|
|
17
|
+
readonly routes?: RoutesValue;
|
|
18
|
+
readonly requirements?: RequirementsValue;
|
|
19
|
+
/** The application's icon. */
|
|
20
|
+
readonly icon?: ClassIcon;
|
|
21
|
+
readonly [DOMAIN_DEFINITION_SCHEMA]: (schema: Schema) => Schema;
|
|
22
|
+
}
|
|
23
|
+
export type SchemaOfDomainDefinition<Value> = Value extends {
|
|
24
|
+
readonly schema: infer Schema;
|
|
25
|
+
} ? Extract<Schema, schema.DomainSchema> : never;
|
|
26
|
+
export type RuntimeOfDomainDefinition<Value> = Value extends {
|
|
27
|
+
readonly runtime: infer RuntimeValue;
|
|
28
|
+
} ? Extract<RuntimeValue, Runtime> : never;
|
|
29
|
+
export type SchemaOfRuntime<Value> = RuntimeSchemaOf<Value>;
|
|
30
|
+
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
1
|
+
export { defineDomain, isDomainDefinition } from './define.js';
|
|
2
|
+
export type { DomainDefinitionInput } from './define.js';
|
|
3
3
|
export { requirements } from './requirements/index.js';
|
|
4
4
|
export type { AuthorityRequirements, AuthorityRequirementsInput, ClassOperation, ClassRequirement, ClassRequirementInput, CoreRequirement, CoreRequirementInput, FunctionRequirementTarget, Requirements, RequirementsInput, } from './requirements/index.js';
|
|
5
5
|
export { route, routes } from './routes/index.js';
|
|
6
6
|
export type { Route, RouteInput, RouteTarget, Routes } from './routes/index.js';
|
|
7
7
|
export { defineFrontend, external, vite } from './view/index.js';
|
|
8
|
-
export type { Frontend, FrontendInput, FrontendSource,
|
|
9
|
-
export type {
|
|
8
|
+
export type { Frontend, FrontendInput, FrontendSource, ViewHostRequirements } from './view/index.js';
|
|
9
|
+
export type { DomainDefinition, DomainDefinitionIdentity, RuntimeOfDomainDefinition, SchemaOfDomainDefinition, SchemaOfRuntime, } from './domain.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { defineDomain, isDomainDefinition } from './define.js';
|
|
2
2
|
export { requirements } from './requirements/index.js';
|
|
3
3
|
export { route, routes } from './routes/index.js';
|
|
4
4
|
export { defineFrontend, external, vite } from './view/index.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IntegrationDefinition, Integrations } from './integration.js';
|
|
2
|
-
import type { IntegrationOperation, IntegrationOperations, IntegrationReplay } from './operation.js';
|
|
2
|
+
import type { IntegrationOperation, IntegrationOperations, IntegrationReplay, ReplayableIntegrationDecision } from './operation.js';
|
|
3
3
|
import type { Provider, ProviderImplementation } from './provider.js';
|
|
4
4
|
type RuntimeDefinition = IntegrationDefinition<string, IntegrationOperations>;
|
|
5
5
|
type ProviderOperations = Readonly<Record<string, (...input: readonly unknown[]) => unknown>>;
|
|
@@ -12,6 +12,13 @@ export interface DefineIntegration {
|
|
|
12
12
|
readonly id: Id;
|
|
13
13
|
readonly operations: Operations;
|
|
14
14
|
}): IntegrationDefinition<Id, Operations>;
|
|
15
|
+
/**
|
|
16
|
+
* One operation and what another attempt of it may do. A decision that is never `unsafe` keeps
|
|
17
|
+
* the operation available to code that may run more than once, such as a durable Step.
|
|
18
|
+
*/
|
|
19
|
+
operation<Input = void, Output = void>(input: {
|
|
20
|
+
readonly replay: ReplayableIntegrationDecision | ((input: Input) => ReplayableIntegrationDecision);
|
|
21
|
+
}): IntegrationOperation<Input, Output, ReplayableIntegrationDecision['kind']>;
|
|
15
22
|
operation<Input = void, Output = void>(input: {
|
|
16
23
|
readonly replay: IntegrationReplay<Input>;
|
|
17
24
|
}): IntegrationOperation<Input, Output>;
|
|
@@ -2,7 +2,7 @@ export { createIntegrationClients, bindProviders } from './client.js';
|
|
|
2
2
|
export type { IntegrationAttempt, IntegrationCallCoordinates, IntegrationClientFactory, IntegrationInvocationOwner, } from './client.js';
|
|
3
3
|
export { admitIntegrations, defineIntegration, defineProvider, requireIntegration, requireProvider, } from './define.js';
|
|
4
4
|
export type { DefineIntegration, ProviderBinding } from './define.js';
|
|
5
|
-
export type { IntegrationClient, IntegrationClients, IntegrationDefinition, Integrations, } from './integration.js';
|
|
6
|
-
export type { IntegrationExecution, IntegrationInput, IntegrationOperation, IntegrationOperations, IntegrationOutput, IntegrationReplay, IntegrationReplayDecision, } from './operation.js';
|
|
5
|
+
export type { IntegrationClient, IntegrationClients, IntegrationDefinition, Integrations, ReplayableIntegrationClient, ReplayableIntegrationClients, } from './integration.js';
|
|
6
|
+
export type { IntegrationExecution, IntegrationInput, IntegrationOperation, IntegrationOperations, IntegrationOutput, IntegrationReplay, IntegrationReplayDecision, IntegrationReplayKind, IntegrationReplayOf, ReplayableIntegrationDecision, } from './operation.js';
|
|
7
7
|
export type { Provider, ProviderImplementation, Providers } from './provider.js';
|
|
8
8
|
export type { IntegrationAuthentication, IntegrationMintInput } from './authentication.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IntegrationOperation, IntegrationOperations } from './operation.js';
|
|
1
|
+
import type { IntegrationOperation, IntegrationOperations, IntegrationReplayOf } from './operation.js';
|
|
2
2
|
declare const INTEGRATION_DEFINITION: unique symbol;
|
|
3
3
|
export interface IntegrationDefinition<Id extends string = string, Operations extends IntegrationOperations = IntegrationOperations> {
|
|
4
4
|
readonly kind: 'integration';
|
|
@@ -16,4 +16,16 @@ export type IntegrationClient<Definition extends IntegrationDefinition> = Readon
|
|
|
16
16
|
export type IntegrationClients<Definitions extends Integrations> = Readonly<{
|
|
17
17
|
[Name in keyof Definitions]: IntegrationClient<Definitions[Name]>;
|
|
18
18
|
}>;
|
|
19
|
+
type ReplayableOperationName<Definition extends IntegrationDefinition> = {
|
|
20
|
+
[Name in keyof Definition['operations']]: 'unsafe' extends IntegrationReplayOf<Definition['operations'][Name]> ? never : Name;
|
|
21
|
+
}[keyof Definition['operations']];
|
|
22
|
+
/** The operations of one Integration that may be attempted again: each is `safe` or keyed. */
|
|
23
|
+
export type ReplayableIntegrationClient<Definition extends IntegrationDefinition> = Pick<IntegrationClient<Definition>, ReplayableOperationName<Definition>>;
|
|
24
|
+
/**
|
|
25
|
+
* Integration clients of code that may run more than once, such as a durable Step. An operation
|
|
26
|
+
* whose replay decision may be `unsafe` is absent: another attempt could repeat its effect.
|
|
27
|
+
*/
|
|
28
|
+
export type ReplayableIntegrationClients<Definitions extends Integrations> = Readonly<{
|
|
29
|
+
[Name in keyof Definitions]: ReplayableIntegrationClient<Definitions[Name]>;
|
|
30
|
+
}>;
|
|
19
31
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BoundClientSession } from '../../platform/client/session/index.js';
|
|
2
2
|
import type { IntegrationAuthentication } from './authentication.js';
|
|
3
3
|
declare const INTEGRATION_OPERATION: unique symbol;
|
|
4
|
+
declare const INTEGRATION_REPLAY: unique symbol;
|
|
4
5
|
export type IntegrationReplayDecision = {
|
|
5
6
|
readonly kind: 'safe';
|
|
6
7
|
} | {
|
|
@@ -13,20 +14,28 @@ export type IntegrationReplayDecision = {
|
|
|
13
14
|
} | {
|
|
14
15
|
readonly kind: 'unsafe';
|
|
15
16
|
};
|
|
17
|
+
/** What another attempt of an operation may do: anything, once per key, or nothing. */
|
|
18
|
+
export type IntegrationReplayKind = IntegrationReplayDecision['kind'];
|
|
19
|
+
/** A decision that allows another attempt of the operation. */
|
|
20
|
+
export type ReplayableIntegrationDecision = Exclude<IntegrationReplayDecision, {
|
|
21
|
+
readonly kind: 'unsafe';
|
|
22
|
+
}>;
|
|
16
23
|
export type IntegrationReplay<Input> = IntegrationReplayDecision | ((input: Input) => IntegrationReplayDecision);
|
|
17
24
|
export interface IntegrationExecution {
|
|
18
25
|
readonly callId: string;
|
|
19
26
|
readonly signal: AbortSignal;
|
|
20
27
|
readonly deadline: number;
|
|
21
28
|
readonly idempotencyKey?: string;
|
|
22
|
-
/** Exact caller-bound invocation capability; absent
|
|
29
|
+
/** Exact caller-bound invocation capability; absent when the call carried no credential. */
|
|
23
30
|
readonly invoke?: BoundClientSession['invoke'];
|
|
24
|
-
/** Domain-self transport authentication; absent
|
|
31
|
+
/** Domain-self transport authentication; absent only outside a Kernel invocation. */
|
|
25
32
|
readonly auth?: IntegrationAuthentication;
|
|
26
33
|
}
|
|
27
|
-
export interface IntegrationOperation<Input = unknown, Output = unknown> {
|
|
34
|
+
export interface IntegrationOperation<Input = unknown, Output = unknown, Replay extends IntegrationReplayKind = IntegrationReplayKind> {
|
|
28
35
|
readonly replay: IntegrationReplay<Input>;
|
|
29
36
|
readonly [INTEGRATION_OPERATION]: (input: Input) => Output;
|
|
37
|
+
/** Every kind its replay decision may take, as its definition proves them. */
|
|
38
|
+
readonly [INTEGRATION_REPLAY]: Replay;
|
|
30
39
|
}
|
|
31
40
|
export type IntegrationOperations = Readonly<Record<string, IntegrationOperation<never, unknown>>>;
|
|
32
41
|
export type IntegrationInput<Operation> = Operation extends {
|
|
@@ -35,4 +44,8 @@ export type IntegrationInput<Operation> = Operation extends {
|
|
|
35
44
|
export type IntegrationOutput<Operation> = Operation extends {
|
|
36
45
|
readonly [INTEGRATION_OPERATION]: (input: never) => infer Output;
|
|
37
46
|
} ? Output : never;
|
|
47
|
+
/** The replay kinds an operation's definition proves; every kind when it proves none. */
|
|
48
|
+
export type IntegrationReplayOf<Operation> = Operation extends {
|
|
49
|
+
readonly [INTEGRATION_REPLAY]: infer Replay;
|
|
50
|
+
} ? Replay : IntegrationReplayKind;
|
|
38
51
|
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { MutationPropsInput } from '@astrale-os/kernel-core/graph/mutate';
|
|
2
2
|
import type { PropertyInputOf, ResolvedClass, ResolvedProperty } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import { PropertyValues } from '@astrale-os/kernel-dsl/v1/language';
|
|
4
|
+
import type { StoredPropertyInputOf } from '../../../platform/schema/property-input.js';
|
|
3
5
|
export type RichPropertyInput<Class> = PropertyInputOf<Class>;
|
|
4
6
|
export type RichPropertyName<Class> = Extract<keyof PropertyInputOf<Class>, string>;
|
|
5
7
|
export interface RichPropertyConditions<Class> {
|
|
6
|
-
readonly equals?:
|
|
8
|
+
readonly equals?: StoredPropertyInputOf<Class>;
|
|
7
9
|
readonly absent?: readonly RichPropertyName<Class>[];
|
|
8
10
|
}
|
|
9
11
|
export interface RichPropertyDelta<Class> {
|
|
@@ -12,11 +14,11 @@ export interface RichPropertyDelta<Class> {
|
|
|
12
14
|
}
|
|
13
15
|
export declare function properties<Class extends ResolvedClass>(selected: Class, input: RichPropertyInput<Class>): MutationPropsInput;
|
|
14
16
|
export declare function conditions<Class extends ResolvedClass>(selected: Class, input: RichPropertyConditions<Class>): Readonly<{
|
|
15
|
-
equals?:
|
|
17
|
+
equals?: PropertyValues | undefined;
|
|
16
18
|
absent?: readonly `${string}:class.${string}.property.${string}`[] | undefined;
|
|
17
19
|
}>;
|
|
18
20
|
export declare function delta<Class extends ResolvedClass>(selected: Class, input: RichPropertyDelta<Class>): Readonly<{
|
|
19
|
-
set: Readonly<Record<`${string}:class.${string}.property.${string}`, import("@astrale-os/kernel-dsl/
|
|
21
|
+
set: Readonly<Record<`${string}:class.${string}.property.${string}`, import("@astrale-os/kernel-dsl/v1/language").PropertyValue>>;
|
|
20
22
|
unset: readonly `${string}:class.${string}.property.${string}`[];
|
|
21
23
|
}>;
|
|
22
24
|
export declare function resolvedProperty<Class extends ResolvedClass>(selected: Class, name: RichPropertyName<Class>): ResolvedProperty;
|
|
@@ -1,10 +1,39 @@
|
|
|
1
1
|
import { PropertyKey } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
|
+
import { PropertyValues } from '@astrale-os/kernel-dsl/v1/language';
|
|
2
3
|
export function properties(selected, input) {
|
|
3
|
-
|
|
4
|
+
const ordinary = Object.create(null);
|
|
5
|
+
const receipts = [];
|
|
6
|
+
const sources = new Map();
|
|
7
|
+
for (const [name, value] of Object.entries(input)) {
|
|
8
|
+
const property = resolvedProperty(selected, name);
|
|
9
|
+
const previous = sources.get(property.key);
|
|
10
|
+
if (previous !== undefined) {
|
|
11
|
+
throw new TypeError(`Property ${property.key} is supplied through both ${JSON.stringify(previous)} and ${JSON.stringify(name)}.`);
|
|
12
|
+
}
|
|
13
|
+
sources.set(property.key, name);
|
|
14
|
+
if (isBlobProperty(property)) {
|
|
15
|
+
if (typeof value !== 'string') {
|
|
16
|
+
throw new TypeError(`Blob Property ${property.key} requires an upload receipt.`);
|
|
17
|
+
}
|
|
18
|
+
receipts.push([property.key, value]);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
ordinary[name] = value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Blob receipts are admitted by the Kernel executor. A property's ordinary validator expects
|
|
25
|
+
// the stored Ref, so run it only for ordinary write values before combining the two sets.
|
|
26
|
+
const admitted = selected.properties.from(ordinary);
|
|
27
|
+
return receipts.length === 0
|
|
28
|
+
? admitted
|
|
29
|
+
: PropertyValues.create([
|
|
30
|
+
...Object.entries(admitted).map(([key, value]) => [PropertyKey(key), value]),
|
|
31
|
+
...receipts,
|
|
32
|
+
]);
|
|
4
33
|
}
|
|
5
34
|
export function conditions(selected, input) {
|
|
6
35
|
return Object.freeze({
|
|
7
|
-
...(input.equals === undefined ? {} : { equals: properties(
|
|
36
|
+
...(input.equals === undefined ? {} : { equals: selected.properties.from(input.equals) }),
|
|
8
37
|
...(input.absent === undefined
|
|
9
38
|
? {}
|
|
10
39
|
: {
|
|
@@ -12,6 +41,10 @@ export function conditions(selected, input) {
|
|
|
12
41
|
}),
|
|
13
42
|
});
|
|
14
43
|
}
|
|
44
|
+
function isBlobProperty(property) {
|
|
45
|
+
const contract = property.definition.schema;
|
|
46
|
+
return (contract !== null && typeof contract === 'object' && contract['x-astrale-value-kind'] === 'blob');
|
|
47
|
+
}
|
|
15
48
|
export function delta(selected, input) {
|
|
16
49
|
return Object.freeze({
|
|
17
50
|
set: properties(selected, input.set ?? {}),
|
|
@@ -49,7 +49,10 @@ export function authorStateTransition(core, input) {
|
|
|
49
49
|
class: selectedClassKey,
|
|
50
50
|
props: conditions(selectedClass, {
|
|
51
51
|
...(suppliedAbsent === undefined ? {} : { absent: suppliedAbsent }),
|
|
52
|
-
equals: {
|
|
52
|
+
equals: {
|
|
53
|
+
...suppliedEquals,
|
|
54
|
+
...from,
|
|
55
|
+
},
|
|
53
56
|
}),
|
|
54
57
|
});
|
|
55
58
|
core.updateNode({
|
|
@@ -10,7 +10,7 @@ export async function executeMutation(client, domain, definition, input) {
|
|
|
10
10
|
const operation = realizeMutation(definition, domain);
|
|
11
11
|
try {
|
|
12
12
|
const ast = MutationAST.build((builder) => operation.build(input, richMutationBuilder(builder)));
|
|
13
|
-
return projectMutation(operation, await client.mutate(ast
|
|
13
|
+
return projectMutation(operation, await client.mutate(ast), input);
|
|
14
14
|
}
|
|
15
15
|
catch (cause) {
|
|
16
16
|
const expected = mutationFailure(cause);
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export interface KernelMutationFailure extends Error {
|
|
2
2
|
readonly code: `MUTATION_${string}`;
|
|
3
3
|
readonly outcomeKnown: boolean;
|
|
4
|
+
/**
|
|
5
|
+
* The post-state rule a `MUTATION_POST_STATE_INVALID` refusal names, such as `duplicate-key`
|
|
6
|
+
* for a value a Class key already holds. Absent when the Kernel names none, and for every other
|
|
7
|
+
* refusal.
|
|
8
|
+
*/
|
|
9
|
+
readonly rule?: string;
|
|
4
10
|
}
|
|
5
11
|
export interface StateTransitionFailure extends Error {
|
|
6
12
|
readonly code: 'STATE_TRANSITION_ILLEGAL';
|
|
@@ -13,9 +13,10 @@ export function stateTransitionFailure(from, event) {
|
|
|
13
13
|
export function mutationFailure(input) {
|
|
14
14
|
if (!(input instanceof Error))
|
|
15
15
|
return undefined;
|
|
16
|
-
const
|
|
17
|
-
if (
|
|
16
|
+
const reason = mutationReason(input);
|
|
17
|
+
if (reason === undefined)
|
|
18
18
|
return undefined;
|
|
19
|
+
const { code } = reason;
|
|
19
20
|
const explicit = input.outcomeKnown;
|
|
20
21
|
if (explicit !== undefined && typeof explicit !== 'boolean')
|
|
21
22
|
return undefined;
|
|
@@ -28,30 +29,35 @@ export function mutationFailure(input) {
|
|
|
28
29
|
return undefined;
|
|
29
30
|
return input;
|
|
30
31
|
}
|
|
32
|
+
const rule = code === 'MUTATION_POST_STATE_INVALID' ? reason.rule : undefined;
|
|
31
33
|
return Object.assign(new Error(input.message, { cause: input }), {
|
|
32
34
|
code,
|
|
33
35
|
outcomeKnown: explicit !== false && !UNKNOWN_OUTCOME_CODES.has(code),
|
|
36
|
+
...(rule === undefined ? {} : { rule }),
|
|
34
37
|
});
|
|
35
38
|
}
|
|
36
|
-
|
|
39
|
+
/**
|
|
40
|
+
* The Mutation refusal an error carries, on itself, as its Kernel reason, or as its protocol data:
|
|
41
|
+
* its code and, from the same carrier's details, the post-state rule it names.
|
|
42
|
+
*/
|
|
43
|
+
function mutationReason(input) {
|
|
37
44
|
const value = input;
|
|
38
45
|
if (value.code === 'STATE_TRANSITION_ILLEGAL')
|
|
39
|
-
return value.code;
|
|
40
|
-
for (const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
return { code: value.code };
|
|
47
|
+
for (const carrier of [value, value.reason, value.data]) {
|
|
48
|
+
const code = typeof carrier === 'string' ? carrier : field(carrier, 'code');
|
|
49
|
+
if (typeof code !== 'string' || !code.startsWith('MUTATION_'))
|
|
50
|
+
continue;
|
|
51
|
+
const rule = field(field(carrier, 'details'), 'rule');
|
|
52
|
+
return {
|
|
53
|
+
code: code,
|
|
54
|
+
...(typeof rule === 'string' ? { rule } : {}),
|
|
55
|
+
};
|
|
48
56
|
}
|
|
49
57
|
return undefined;
|
|
50
58
|
}
|
|
51
|
-
function
|
|
52
|
-
return typeof input === '
|
|
53
|
-
? input
|
|
54
|
-
:
|
|
55
|
-
? Reflect.get(input, 'code')
|
|
56
|
-
: undefined;
|
|
59
|
+
function field(input, key) {
|
|
60
|
+
return input !== null && typeof input === 'object' && !Array.isArray(input)
|
|
61
|
+
? Reflect.get(input, key)
|
|
62
|
+
: undefined;
|
|
57
63
|
}
|
|
@@ -5,4 +5,4 @@ export type { Mutation, MutationDefinition, MutationInputOf, MutationOutputOf }
|
|
|
5
5
|
export type { CreatedNode, EdgeSelector, ExistingEndpoint, MutationEndpoint, QueryPrecondition, RichMutationBuilder, RichPropertyConditions, RichPropertyDelta, RichPropertyInput, RichPropertyName, } from './authoring/index.js';
|
|
6
6
|
/** Canonical low-level Mutation documents remain available as the explicit escape hatch. */
|
|
7
7
|
export * from '@astrale-os/kernel-core/graph/mutate';
|
|
8
|
-
export type { LocalAlias
|
|
8
|
+
export type { LocalAlias } from '../../platform/graph/alias.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { definedClass } from '@astrale-os/kernel-client/graph';
|
|
1
2
|
import { Query, QueryAST as QueryDocument } from '@astrale-os/kernel-core/graph/query';
|
|
2
|
-
import { ClassKey } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
3
|
import { QueryCompositionError } from '../composite/errors.js';
|
|
4
4
|
import { collectionIdentityOf } from './identity.js';
|
|
5
5
|
import { COLLECTION_QUERY_LIMITS } from './limits.js';
|
|
@@ -80,8 +80,13 @@ export function partitionCollectionUnion(domain, compiled, values, maximumLogica
|
|
|
80
80
|
if (identities.has(identity))
|
|
81
81
|
invalid(`Collection union returned duplicate identity ${identity}.`);
|
|
82
82
|
identities.add(identity);
|
|
83
|
-
const names = memberships.
|
|
83
|
+
const names = memberships.has(value.class)
|
|
84
|
+
? memberships.get(value.class)
|
|
85
|
+
: memberNames(domain, compiled, value);
|
|
84
86
|
memberships.set(value.class, names);
|
|
87
|
+
// A Class added after this client was built belongs to no member it can name.
|
|
88
|
+
if (names === undefined)
|
|
89
|
+
continue;
|
|
85
90
|
if (names.length === 0) {
|
|
86
91
|
invalid(`Collection union returned ${value.class} outside every member extent.`);
|
|
87
92
|
}
|
|
@@ -105,9 +110,11 @@ function realizeMember(definition, domain, outputPath, name) {
|
|
|
105
110
|
}
|
|
106
111
|
}
|
|
107
112
|
function memberNames(domain, compiled, value) {
|
|
108
|
-
const exact = domain
|
|
113
|
+
const exact = definedClass(domain, value.class);
|
|
114
|
+
if (exact === undefined)
|
|
115
|
+
return undefined;
|
|
109
116
|
const kind = valueKind(value);
|
|
110
|
-
if (exact
|
|
117
|
+
if (exact.kind !== kind || exact.abstract) {
|
|
111
118
|
invalid(`Collection union returned inactive ${kind} Class ${value.class}.`);
|
|
112
119
|
}
|
|
113
120
|
const names = compiled.members.flatMap((member) => {
|
|
@@ -7,10 +7,6 @@ export declare const QUERY_COMPOSITION_LIMITS: Readonly<{
|
|
|
7
7
|
maximumDependencyDepth: 8;
|
|
8
8
|
}>;
|
|
9
9
|
export interface QueryPlanAnalysis {
|
|
10
|
-
/** @deprecated Use physicalQueries. */
|
|
11
|
-
readonly queries: number;
|
|
12
|
-
/** @deprecated Use dependencyDepth. */
|
|
13
|
-
readonly depth: number;
|
|
14
10
|
readonly logicalQueries: number;
|
|
15
11
|
readonly physicalQueries: number;
|
|
16
12
|
readonly dependencyDepth: number;
|
|
@@ -53,8 +53,6 @@ export function analyzeQueryPlan(plan) {
|
|
|
53
53
|
throw new QueryCompositionError('QUERY_COMPOSITION_LIMIT', `Composite Query exceeds ${QUERY_COMPOSITION_LIMITS.maximumPhysicalQueries} physical Queries or dependency depth ${QUERY_COMPOSITION_LIMITS.maximumDependencyDepth}.`);
|
|
54
54
|
}
|
|
55
55
|
return Object.freeze({
|
|
56
|
-
queries: physicalKeys.size,
|
|
57
|
-
depth: maximumDepth,
|
|
58
56
|
logicalQueries,
|
|
59
57
|
physicalQueries: physicalKeys.size,
|
|
60
58
|
dependencyDepth: maximumDepth,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { QueryResult } from '@astrale-os/kernel-core/graph/query';
|
|
2
|
+
import type { Edge } from '../../platform/graph/edge/index.js';
|
|
3
|
+
import type { Node } from '../../platform/graph/node/index.js';
|
|
4
|
+
import type { Domain } from '../../platform/schema/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* The members of `values` whose Class `domain` defines, in order. The Kernel answers in its active
|
|
7
|
+
* Schema, so a result may hold values of a Class added after the client was built.
|
|
8
|
+
*/
|
|
9
|
+
export declare function definedValues<Value extends Node | Edge>(domain: Domain, values: readonly Value[]): readonly Value[];
|
|
10
|
+
/**
|
|
11
|
+
* Check every value of `result` against the Domain this client was built from, by the Kernel
|
|
12
|
+
* Client's rule: a value fails only when a Property its Class defines holds an invalid value or a
|
|
13
|
+
* required one is absent. Properties and Classes the client does not know pass.
|
|
14
|
+
*/
|
|
15
|
+
export declare function requireConformance(domain: Domain, result: QueryResult): void;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { definedClass, validateDefinedProperties } from '@astrale-os/kernel-client/graph';
|
|
2
|
+
import { collectionIdentityOf } from './collection/identity.js';
|
|
3
|
+
import { QueryValueMismatchError } from './failure.js';
|
|
4
|
+
/**
|
|
5
|
+
* The members of `values` whose Class `domain` defines, in order. The Kernel answers in its active
|
|
6
|
+
* Schema, so a result may hold values of a Class added after the client was built.
|
|
7
|
+
*/
|
|
8
|
+
export function definedValues(domain, values) {
|
|
9
|
+
const defined = values.filter((value) => definedClass(domain, value.class) !== undefined);
|
|
10
|
+
return defined.length === values.length ? values : Object.freeze(defined);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check every value of `result` against the Domain this client was built from, by the Kernel
|
|
14
|
+
* Client's rule: a value fails only when a Property its Class defines holds an invalid value or a
|
|
15
|
+
* required one is absent. Properties and Classes the client does not know pass.
|
|
16
|
+
*/
|
|
17
|
+
export function requireConformance(domain, result) {
|
|
18
|
+
for (const value of valuesOf(result)) {
|
|
19
|
+
const exact = definedClass(domain, value.class);
|
|
20
|
+
if (exact === undefined)
|
|
21
|
+
continue;
|
|
22
|
+
const [diagnostic] = validateDefinedProperties(exact, value.props);
|
|
23
|
+
if (diagnostic !== undefined) {
|
|
24
|
+
throw new QueryValueMismatchError(`${collectionIdentityOf(value)} at ${diagnostic.pointer}: ${diagnostic.message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function* valuesOf(result) {
|
|
29
|
+
if (result.kind === 'graph') {
|
|
30
|
+
yield* result.graph.nodes;
|
|
31
|
+
yield* result.graph.edges;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (result.kind === 'nodes') {
|
|
35
|
+
for (const item of result.nodes)
|
|
36
|
+
if (item.kind === 'value')
|
|
37
|
+
yield item.value;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
for (const item of result.edges) {
|
|
41
|
+
for (const component of [item.edge, item.source, item.target]) {
|
|
42
|
+
if (component.kind === 'value')
|
|
43
|
+
yield component.value;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -3,6 +3,7 @@ import { isDomain } from '@astrale-os/kernel-dsl/v1/domain';
|
|
|
3
3
|
import { requireUniqueCollectionValues } from './collection/identity.js';
|
|
4
4
|
import { COLLECTION_QUERY_LIMITS } from './collection/limits.js';
|
|
5
5
|
import { realizeCollectionQuery, registerCollectionQuery, } from './collection/metadata.js';
|
|
6
|
+
import { definedValues } from './conformance.js';
|
|
6
7
|
import { queryResult } from './single/index.js';
|
|
7
8
|
const DEFAULT_PAGE_SIZE = 256;
|
|
8
9
|
const MAXIMUM_PAGES = 1_024;
|
|
@@ -27,7 +28,7 @@ export function defineCollectionQuery() {
|
|
|
27
28
|
kind: 'nodes',
|
|
28
29
|
projection: { kind: 'value' },
|
|
29
30
|
}),
|
|
30
|
-
project: (pages) => requireUniqueCollectionValues(queryResult.completeNodeValues(pages, specification.id), `Collection Query ${specification.id}`),
|
|
31
|
+
project: (pages) => definedValues(domain, requireUniqueCollectionValues(queryResult.completeNodeValues(pages, specification.id), `Collection Query ${specification.id}`)),
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
return {
|
|
@@ -38,12 +39,12 @@ export function defineCollectionQuery() {
|
|
|
38
39
|
kind: 'edges',
|
|
39
40
|
projection: { edge: 'value', source: 'reference', target: 'reference' },
|
|
40
41
|
}),
|
|
41
|
-
project: (pages) => requireUniqueCollectionValues(Object.freeze(pages.flatMap((page) => queryResult.edgeItems(page, specification.id).map((item) => {
|
|
42
|
+
project: (pages) => definedValues(domain, requireUniqueCollectionValues(Object.freeze(pages.flatMap((page) => queryResult.edgeItems(page, specification.id).map((item) => {
|
|
42
43
|
if (item.edge.kind !== 'value') {
|
|
43
44
|
throw new TypeError(`Collection Query ${specification.id} must project Edge values.`);
|
|
44
45
|
}
|
|
45
46
|
return item.edge.value;
|
|
46
|
-
}))), `Collection Query ${specification.id}`),
|
|
47
|
+
}))), `Collection Query ${specification.id}`)),
|
|
47
48
|
};
|
|
48
49
|
});
|
|
49
50
|
registerCollectionQuery(definition, project);
|
|
@@ -6,7 +6,6 @@ import type { QueryDefinition } from '../query.js';
|
|
|
6
6
|
export interface QueryClient {
|
|
7
7
|
query<Ast extends QueryAST>(ast: Ast, options: {
|
|
8
8
|
readonly page: QueryPageRequest;
|
|
9
|
-
readonly expected?: Domain['closure'];
|
|
10
9
|
}): Promise<QueryResponse<QueryResultFor<Ast>>>;
|
|
11
10
|
}
|
|
12
11
|
export declare function executeQuery<DomainValue extends Domain, Output>(client: QueryClient, domain: DomainValue, query: QueryDefinition<DomainValue, void, Output>): Promise<Output>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { COLLECTION_QUERY_LIMITS } from '../collection/limits.js';
|
|
2
2
|
import { compileCollectionUnion, partitionCollectionUnion } from '../collection/union.js';
|
|
3
3
|
import { createQueryComposition, executeQueryPlan } from '../composite/index.js';
|
|
4
|
+
import { requireConformance } from '../conformance.js';
|
|
4
5
|
import { realizeQuery } from '../define.js';
|
|
5
6
|
import { queryFailure } from '../failure.js';
|
|
6
7
|
import { completeSelection, queryResult } from '../single/index.js';
|
|
@@ -9,7 +10,12 @@ export async function executeQuery(client, domain, query, input) {
|
|
|
9
10
|
if (client === null || typeof client !== 'object' || typeof client.query !== 'function') {
|
|
10
11
|
throw new TypeError('Query execution requires a Client query capability.');
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
// The Kernel answers in its active Schema; each value is checked against this client's Domain.
|
|
14
|
+
const execute = async (ast, options) => {
|
|
15
|
+
const response = await client.query(ast, options);
|
|
16
|
+
requireConformance(domain, response.result);
|
|
17
|
+
return response;
|
|
18
|
+
};
|
|
13
19
|
const operation = realizeQuery(query, domain);
|
|
14
20
|
try {
|
|
15
21
|
if (operation.kind === 'single') {
|
|
@@ -7,4 +7,12 @@ export declare class QueryPaginationError extends Error implements QueryFailure
|
|
|
7
7
|
readonly name = "QueryPaginationError";
|
|
8
8
|
constructor(code: QueryPaginationErrorCode, message: string);
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* A value the Kernel returned does not have the shape its Class has in the Domain this client was
|
|
12
|
+
* built from: one of its Properties changed type, or a Property the client requires is absent.
|
|
13
|
+
*/
|
|
14
|
+
export declare class QueryValueMismatchError extends Error implements QueryFailure {
|
|
15
|
+
readonly name = "QueryValueMismatchError";
|
|
16
|
+
readonly code = "QUERY_VALUE_MISMATCH";
|
|
17
|
+
}
|
|
10
18
|
export declare function queryFailure(input: unknown): QueryFailure | undefined;
|
|
@@ -6,6 +6,14 @@ export class QueryPaginationError extends Error {
|
|
|
6
6
|
this.code = code;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* A value the Kernel returned does not have the shape its Class has in the Domain this client was
|
|
11
|
+
* built from: one of its Properties changed type, or a Property the client requires is absent.
|
|
12
|
+
*/
|
|
13
|
+
export class QueryValueMismatchError extends Error {
|
|
14
|
+
name = 'QueryValueMismatchError';
|
|
15
|
+
code = 'QUERY_VALUE_MISMATCH';
|
|
16
|
+
}
|
|
9
17
|
export function queryFailure(input) {
|
|
10
18
|
if (!(input instanceof Error))
|
|
11
19
|
return undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { defineCollectionQuery, defineCompositeQuery, defineQuery, realizeQuery } from './define.js';
|
|
2
2
|
export type { CollectionQuerySpec } from './collection/metadata.js';
|
|
3
3
|
export { executeQuery, type QueryClient, type QueryExecutor } from './execution/index.js';
|
|
4
|
-
export { QueryPaginationError, type QueryFailure, type QueryPaginationErrorCode, } from './failure.js';
|
|
4
|
+
export { QueryPaginationError, QueryValueMismatchError, type QueryFailure, type QueryPaginationErrorCode, } from './failure.js';
|
|
5
5
|
export type { CollectionQueryDefinition, CollectionValue, CompositeQueryDefinition, QueryAstOf, QueryDefinition, QueryInputOf, QueryOutputOf, SingleQueryDefinition, } from './query.js';
|
|
6
6
|
export { queryResult } from './single/index.js';
|
|
7
7
|
export type { CompleteQueryProjectionContext, PaginatedQuery, ProjectedQuery, QueryPages, QueryPagination, QueryProjectionContext, RawQuery, SingleQuery, } from './single/index.js';
|