@astrale-os/kernel-protocol 0.5.0-beta.2 → 0.5.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +476 -0
- package/dist/artifact/index.d.ts +0 -1
- package/dist/artifact/index.js +0 -1
- package/dist/artifact/ref.d.ts +0 -1
- package/dist/artifact/ref.js +0 -1
- package/dist/codecs/codec.d.ts +0 -1
- package/dist/codecs/codec.js +0 -1
- package/dist/codecs/index.d.ts +0 -1
- package/dist/codecs/index.js +0 -1
- package/dist/codecs/json.d.ts +0 -1
- package/dist/codecs/json.js +0 -1
- package/dist/codecs/media-types.d.ts +0 -1
- package/dist/codecs/media-types.js +0 -1
- package/dist/codecs/msgpack.d.ts +0 -1
- package/dist/codecs/msgpack.js +1 -5
- package/dist/errors/codes.d.ts +0 -1
- package/dist/errors/codes.js +0 -1
- package/dist/errors/http-status.d.ts +0 -1
- package/dist/errors/http-status.js +0 -1
- package/dist/errors/index.d.ts +0 -1
- package/dist/errors/index.js +0 -1
- package/dist/errors/payload.d.ts +0 -1
- package/dist/errors/payload.js +3 -3
- package/dist/errors/protocol-error.d.ts +0 -1
- package/dist/errors/protocol-error.js +4 -3
- package/dist/errors/reason.d.ts +0 -1
- package/dist/errors/reason.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/invocation/admission.d.ts +4 -3
- package/dist/invocation/admission.js +16 -8
- package/dist/invocation/binary.d.ts +4 -2
- package/dist/invocation/binary.js +18 -5
- package/dist/invocation/binding-codecs.d.ts +0 -1
- package/dist/invocation/binding-codecs.js +0 -1
- package/dist/invocation/cancellation.d.ts +1 -2
- package/dist/invocation/cancellation.js +3 -4
- package/dist/invocation/correlation.d.ts +0 -1
- package/dist/invocation/correlation.js +0 -1
- package/dist/invocation/delegate.d.ts +0 -1
- package/dist/invocation/delegate.js +0 -1
- package/dist/invocation/http/binary.d.ts +9 -1
- package/dist/invocation/http/binary.js +49 -3
- package/dist/invocation/http/index.d.ts +1 -2
- package/dist/invocation/http/index.js +1 -2
- package/dist/invocation/http/negotiation.d.ts +0 -1
- package/dist/invocation/http/negotiation.js +0 -1
- package/dist/invocation/http/stream.d.ts +0 -1
- package/dist/invocation/http/stream.js +0 -1
- package/dist/invocation/http/trace.d.ts +0 -1
- package/dist/invocation/http/trace.js +0 -1
- package/dist/invocation/idempotency.d.ts +0 -1
- package/dist/invocation/idempotency.js +0 -1
- package/dist/invocation/identity.d.ts +16 -0
- package/dist/invocation/identity.js +55 -0
- package/dist/invocation/index.d.ts +4 -4
- package/dist/invocation/index.js +3 -3
- package/dist/invocation/miss.d.ts +4 -3
- package/dist/invocation/miss.js +10 -7
- package/dist/invocation/redirect.d.ts +19 -12
- package/dist/invocation/redirect.js +30 -17
- package/dist/invocation/request.d.ts +1 -2
- package/dist/invocation/request.js +3 -4
- package/dist/invocation/response.d.ts +9 -7
- package/dist/invocation/response.js +14 -10
- package/dist/invocation/routing.d.ts +3 -3
- package/dist/invocation/routing.js +4 -4
- package/dist/invocation/schema.d.ts +2 -3
- package/dist/invocation/schema.js +2 -3
- package/dist/invocation/service-reason.d.ts +13 -13
- package/dist/invocation/service-reason.js +14 -14
- package/dist/invocation/stale-route.d.ts +4 -3
- package/dist/invocation/stale-route.js +7 -7
- package/dist/invocation/stream.d.ts +6 -5
- package/dist/invocation/stream.js +17 -14
- package/dist/invocation/target.d.ts +2 -8
- package/dist/invocation/target.js +0 -1
- package/dist/invocation/trace.d.ts +0 -1
- package/dist/invocation/trace.js +0 -1
- package/dist/invocation/version.d.ts +0 -1
- package/dist/invocation/version.js +0 -1
- package/dist/invocation/websocket/binary.d.ts +0 -1
- package/dist/invocation/websocket/binary.js +4 -3
- package/dist/invocation/websocket/index.d.ts +0 -1
- package/dist/invocation/websocket/index.js +0 -1
- package/dist/invocation/websocket/subprotocol.d.ts +0 -1
- package/dist/invocation/websocket/subprotocol.js +0 -1
- package/dist/issuer/configuration.d.ts +1 -2
- package/dist/issuer/configuration.js +0 -1
- package/dist/issuer/error.d.ts +0 -1
- package/dist/issuer/error.js +0 -1
- package/dist/issuer/exchange.d.ts +0 -1
- package/dist/issuer/exchange.js +0 -1
- package/dist/issuer/hosted.d.ts +1 -2
- package/dist/issuer/hosted.js +0 -1
- package/dist/issuer/index.d.ts +0 -1
- package/dist/issuer/index.js +0 -1
- package/dist/issuer/key-set.d.ts +1 -2
- package/dist/issuer/key-set.js +3 -3
- package/dist/issuer/paths.d.ts +0 -1
- package/dist/issuer/paths.js +0 -1
- package/dist/issuer/url.d.ts +1 -2
- package/dist/issuer/url.js +3 -3
- package/dist/publication/bindings/callable.d.ts +1 -2
- package/dist/publication/bindings/callable.js +8 -6
- package/dist/publication/bindings/index.d.ts +0 -1
- package/dist/publication/bindings/index.js +0 -1
- package/dist/publication/bindings/invocation.d.ts +0 -1
- package/dist/publication/bindings/invocation.js +0 -1
- package/dist/publication/bindings/view.d.ts +1 -2
- package/dist/publication/bindings/view.js +2 -3
- package/dist/publication/bundle-admission.d.ts +4 -0
- package/dist/publication/bundle-admission.js +65 -0
- package/dist/publication/bundle-descriptor.d.ts +9 -0
- package/dist/publication/bundle-descriptor.js +19 -0
- package/dist/publication/bundle-evidence.d.ts +3 -0
- package/dist/publication/bundle-evidence.js +13 -0
- package/dist/publication/bundle.d.ts +5 -12
- package/dist/publication/bundle.js +8 -29
- package/dist/publication/content.d.ts +0 -1
- package/dist/publication/content.js +0 -1
- package/dist/publication/declaration.d.ts +11 -0
- package/dist/publication/declaration.js +1 -0
- package/dist/publication/delivery/attestation.d.ts +0 -1
- package/dist/publication/delivery/attestation.js +0 -1
- package/dist/publication/delivery/claims.d.ts +8 -8
- package/dist/publication/delivery/claims.js +6 -7
- package/dist/publication/delivery/delivery.d.ts +1 -2
- package/dist/publication/delivery/delivery.js +1 -2
- package/dist/publication/delivery/error.d.ts +0 -1
- package/dist/publication/delivery/error.js +0 -1
- package/dist/publication/delivery/index.d.ts +0 -1
- package/dist/publication/delivery/index.js +0 -1
- package/dist/publication/delivery/limits.d.ts +0 -1
- package/dist/publication/delivery/limits.js +0 -1
- package/dist/publication/delivery/request.d.ts +3 -4
- package/dist/publication/delivery/request.js +4 -4
- package/dist/publication/delivery-declaration.d.ts +4 -0
- package/dist/publication/delivery-declaration.js +25 -0
- package/dist/publication/delivery-endpoint.d.ts +0 -1
- package/dist/publication/delivery-endpoint.js +0 -1
- package/dist/publication/error.d.ts +0 -1
- package/dist/publication/error.js +0 -1
- package/dist/publication/etag.d.ts +0 -1
- package/dist/publication/etag.js +0 -1
- package/dist/publication/index.d.ts +6 -3
- package/dist/publication/index.js +4 -2
- package/dist/publication/manifest.d.ts +2 -3
- package/dist/publication/manifest.js +10 -6
- package/dist/publication/publication.d.ts +3 -6
- package/dist/publication/publication.js +11 -68
- package/dist/publication/reference.d.ts +3 -3
- package/dist/publication/reference.js +7 -7
- package/dist/publication/requirements.d.ts +4 -4
- package/dist/publication/requirements.js +34 -34
- package/dist/publication/route.d.ts +6 -2
- package/dist/publication/route.js +31 -9
- package/dist/publication/schema.d.ts +3 -4
- package/dist/publication/schema.js +3 -4
- package/dist/routes/admission.d.ts +3 -0
- package/dist/routes/admission.js +89 -0
- package/dist/routes/binding.d.ts +6 -0
- package/dist/routes/binding.js +27 -0
- package/dist/routes/collision.d.ts +2 -0
- package/dist/routes/collision.js +16 -0
- package/dist/routes/compiler.d.ts +8 -0
- package/dist/routes/compiler.js +50 -0
- package/dist/routes/credential.d.ts +7 -8
- package/dist/routes/credential.js +7 -8
- package/dist/routes/decode.d.ts +4 -3
- package/dist/routes/decode.js +42 -42
- package/dist/routes/encode.d.ts +3 -3
- package/dist/routes/encode.js +31 -33
- package/dist/routes/error-response.d.ts +0 -1
- package/dist/routes/error-response.js +0 -1
- package/dist/routes/error.d.ts +0 -1
- package/dist/routes/error.js +0 -1
- package/dist/routes/evidence.d.ts +5 -0
- package/dist/routes/evidence.js +38 -0
- package/dist/routes/index.d.ts +9 -3
- package/dist/routes/index.js +6 -3
- package/dist/routes/mapping.d.ts +1 -2
- package/dist/routes/mapping.js +4 -13
- package/dist/routes/match.d.ts +3 -4
- package/dist/routes/match.js +3 -5
- package/dist/routes/placement.d.ts +5 -0
- package/dist/routes/placement.js +18 -0
- package/dist/routes/plan.d.ts +24 -0
- package/dist/routes/plan.js +1 -0
- package/dist/routes/release-unavailable.d.ts +8 -0
- package/dist/routes/release-unavailable.js +32 -0
- package/dist/routes/request.d.ts +0 -1
- package/dist/routes/request.js +3 -2
- package/dist/routes/reservation.d.ts +3 -4
- package/dist/routes/reservation.js +8 -5
- package/dist/routes/routing.d.ts +0 -1
- package/dist/routes/routing.js +0 -1
- package/dist/routes/scalar.d.ts +4 -4
- package/dist/routes/scalar.js +14 -11
- package/dist/routes/select.d.ts +2 -3
- package/dist/routes/select.js +2 -3
- package/dist/routes/stream.d.ts +0 -1
- package/dist/routes/stream.js +0 -1
- package/dist/routes/table.d.ts +9 -0
- package/dist/routes/table.js +1 -0
- package/dist/routes/target.d.ts +13 -0
- package/dist/routes/target.js +3 -0
- package/dist/routes/template.d.ts +0 -1
- package/dist/routes/template.js +0 -1
- package/dist/runtime/artifact.d.ts +3 -4
- package/dist/runtime/artifact.js +5 -6
- package/dist/runtime/index.d.ts +0 -1
- package/dist/runtime/index.js +0 -1
- package/dist/schema/index.d.ts +0 -1
- package/dist/schema/index.js +0 -1
- package/dist/schema/installation/codec.d.ts +4 -0
- package/dist/schema/installation/codec.js +70 -0
- package/dist/schema/installation/index.d.ts +2 -1
- package/dist/schema/installation/index.js +1 -1
- package/dist/schema/installation/introspection/codec.d.ts +3 -3
- package/dist/schema/installation/introspection/codec.js +144 -204
- package/dist/schema/installation/introspection/index.d.ts +2 -3
- package/dist/schema/installation/introspection/index.js +1 -2
- package/dist/schema/installation/introspection/result.d.ts +18 -23
- package/dist/schema/installation/introspection/result.js +0 -1
- package/dist/schema/installation/result.d.ts +9 -0
- package/dist/schema/installation/result.js +1 -0
- package/package.json +116 -13
- package/dist/artifact/index.d.ts.map +0 -1
- package/dist/artifact/index.js.map +0 -1
- package/dist/artifact/ref.d.ts.map +0 -1
- package/dist/artifact/ref.js.map +0 -1
- package/dist/codecs/codec.d.ts.map +0 -1
- package/dist/codecs/codec.js.map +0 -1
- package/dist/codecs/index.d.ts.map +0 -1
- package/dist/codecs/index.js.map +0 -1
- package/dist/codecs/json.d.ts.map +0 -1
- package/dist/codecs/json.js.map +0 -1
- package/dist/codecs/media-types.d.ts.map +0 -1
- package/dist/codecs/media-types.js.map +0 -1
- package/dist/codecs/msgpack.d.ts.map +0 -1
- package/dist/codecs/msgpack.js.map +0 -1
- package/dist/errors/codes.d.ts.map +0 -1
- package/dist/errors/codes.js.map +0 -1
- package/dist/errors/http-status.d.ts.map +0 -1
- package/dist/errors/http-status.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/payload.d.ts.map +0 -1
- package/dist/errors/payload.js.map +0 -1
- package/dist/errors/protocol-error.d.ts.map +0 -1
- package/dist/errors/protocol-error.js.map +0 -1
- package/dist/errors/reason.d.ts.map +0 -1
- package/dist/errors/reason.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/invocation/admission.d.ts.map +0 -1
- package/dist/invocation/admission.js.map +0 -1
- package/dist/invocation/binary.d.ts.map +0 -1
- package/dist/invocation/binary.js.map +0 -1
- package/dist/invocation/binding-codecs.d.ts.map +0 -1
- package/dist/invocation/binding-codecs.js.map +0 -1
- package/dist/invocation/cancellation.d.ts.map +0 -1
- package/dist/invocation/cancellation.js.map +0 -1
- package/dist/invocation/correlation.d.ts.map +0 -1
- package/dist/invocation/correlation.js.map +0 -1
- package/dist/invocation/delegate.d.ts.map +0 -1
- package/dist/invocation/delegate.js.map +0 -1
- package/dist/invocation/http/binary.d.ts.map +0 -1
- package/dist/invocation/http/binary.js.map +0 -1
- package/dist/invocation/http/index.d.ts.map +0 -1
- package/dist/invocation/http/index.js.map +0 -1
- package/dist/invocation/http/negotiation.d.ts.map +0 -1
- package/dist/invocation/http/negotiation.js.map +0 -1
- package/dist/invocation/http/stream.d.ts.map +0 -1
- package/dist/invocation/http/stream.js.map +0 -1
- package/dist/invocation/http/trace.d.ts.map +0 -1
- package/dist/invocation/http/trace.js.map +0 -1
- package/dist/invocation/idempotency.d.ts.map +0 -1
- package/dist/invocation/idempotency.js.map +0 -1
- package/dist/invocation/index.d.ts.map +0 -1
- package/dist/invocation/index.js.map +0 -1
- package/dist/invocation/miss.d.ts.map +0 -1
- package/dist/invocation/miss.js.map +0 -1
- package/dist/invocation/redirect.d.ts.map +0 -1
- package/dist/invocation/redirect.js.map +0 -1
- package/dist/invocation/request.d.ts.map +0 -1
- package/dist/invocation/request.js.map +0 -1
- package/dist/invocation/response.d.ts.map +0 -1
- package/dist/invocation/response.js.map +0 -1
- package/dist/invocation/routing.d.ts.map +0 -1
- package/dist/invocation/routing.js.map +0 -1
- package/dist/invocation/schema.d.ts.map +0 -1
- package/dist/invocation/schema.js.map +0 -1
- package/dist/invocation/service-reason.d.ts.map +0 -1
- package/dist/invocation/service-reason.js.map +0 -1
- package/dist/invocation/stale-route.d.ts.map +0 -1
- package/dist/invocation/stale-route.js.map +0 -1
- package/dist/invocation/stream.d.ts.map +0 -1
- package/dist/invocation/stream.js.map +0 -1
- package/dist/invocation/target.d.ts.map +0 -1
- package/dist/invocation/target.js.map +0 -1
- package/dist/invocation/trace.d.ts.map +0 -1
- package/dist/invocation/trace.js.map +0 -1
- package/dist/invocation/version.d.ts.map +0 -1
- package/dist/invocation/version.js.map +0 -1
- package/dist/invocation/websocket/binary.d.ts.map +0 -1
- package/dist/invocation/websocket/binary.js.map +0 -1
- package/dist/invocation/websocket/index.d.ts.map +0 -1
- package/dist/invocation/websocket/index.js.map +0 -1
- package/dist/invocation/websocket/subprotocol.d.ts.map +0 -1
- package/dist/invocation/websocket/subprotocol.js.map +0 -1
- package/dist/issuer/configuration.d.ts.map +0 -1
- package/dist/issuer/configuration.js.map +0 -1
- package/dist/issuer/error.d.ts.map +0 -1
- package/dist/issuer/error.js.map +0 -1
- package/dist/issuer/exchange.d.ts.map +0 -1
- package/dist/issuer/exchange.js.map +0 -1
- package/dist/issuer/hosted.d.ts.map +0 -1
- package/dist/issuer/hosted.js.map +0 -1
- package/dist/issuer/index.d.ts.map +0 -1
- package/dist/issuer/index.js.map +0 -1
- package/dist/issuer/key-set.d.ts.map +0 -1
- package/dist/issuer/key-set.js.map +0 -1
- package/dist/issuer/paths.d.ts.map +0 -1
- package/dist/issuer/paths.js.map +0 -1
- package/dist/issuer/url.d.ts.map +0 -1
- package/dist/issuer/url.js.map +0 -1
- package/dist/publication/bindings/callable.d.ts.map +0 -1
- package/dist/publication/bindings/callable.js.map +0 -1
- package/dist/publication/bindings/index.d.ts.map +0 -1
- package/dist/publication/bindings/index.js.map +0 -1
- package/dist/publication/bindings/invocation.d.ts.map +0 -1
- package/dist/publication/bindings/invocation.js.map +0 -1
- package/dist/publication/bindings/view.d.ts.map +0 -1
- package/dist/publication/bindings/view.js.map +0 -1
- package/dist/publication/bundle.d.ts.map +0 -1
- package/dist/publication/bundle.js.map +0 -1
- package/dist/publication/content.d.ts.map +0 -1
- package/dist/publication/content.js.map +0 -1
- package/dist/publication/delivery/attestation.d.ts.map +0 -1
- package/dist/publication/delivery/attestation.js.map +0 -1
- package/dist/publication/delivery/claims.d.ts.map +0 -1
- package/dist/publication/delivery/claims.js.map +0 -1
- package/dist/publication/delivery/delivery.d.ts.map +0 -1
- package/dist/publication/delivery/delivery.js.map +0 -1
- package/dist/publication/delivery/error.d.ts.map +0 -1
- package/dist/publication/delivery/error.js.map +0 -1
- package/dist/publication/delivery/index.d.ts.map +0 -1
- package/dist/publication/delivery/index.js.map +0 -1
- package/dist/publication/delivery/limits.d.ts.map +0 -1
- package/dist/publication/delivery/limits.js.map +0 -1
- package/dist/publication/delivery/request.d.ts.map +0 -1
- package/dist/publication/delivery/request.js.map +0 -1
- package/dist/publication/delivery-endpoint.d.ts.map +0 -1
- package/dist/publication/delivery-endpoint.js.map +0 -1
- package/dist/publication/error.d.ts.map +0 -1
- package/dist/publication/error.js.map +0 -1
- package/dist/publication/etag.d.ts.map +0 -1
- package/dist/publication/etag.js.map +0 -1
- package/dist/publication/index.d.ts.map +0 -1
- package/dist/publication/index.js.map +0 -1
- package/dist/publication/manifest.d.ts.map +0 -1
- package/dist/publication/manifest.js.map +0 -1
- package/dist/publication/publication.d.ts.map +0 -1
- package/dist/publication/publication.js.map +0 -1
- package/dist/publication/reference.d.ts.map +0 -1
- package/dist/publication/reference.js.map +0 -1
- package/dist/publication/requirements.d.ts.map +0 -1
- package/dist/publication/requirements.js.map +0 -1
- package/dist/publication/route.d.ts.map +0 -1
- package/dist/publication/route.js.map +0 -1
- package/dist/publication/schema.d.ts.map +0 -1
- package/dist/publication/schema.js.map +0 -1
- package/dist/routes/compile.d.ts +0 -5
- package/dist/routes/compile.d.ts.map +0 -1
- package/dist/routes/compile.js +0 -69
- package/dist/routes/compile.js.map +0 -1
- package/dist/routes/credential.d.ts.map +0 -1
- package/dist/routes/credential.js.map +0 -1
- package/dist/routes/decode.d.ts.map +0 -1
- package/dist/routes/decode.js.map +0 -1
- package/dist/routes/encode.d.ts.map +0 -1
- package/dist/routes/encode.js.map +0 -1
- package/dist/routes/error-response.d.ts.map +0 -1
- package/dist/routes/error-response.js.map +0 -1
- package/dist/routes/error.d.ts.map +0 -1
- package/dist/routes/error.js.map +0 -1
- package/dist/routes/index.d.ts.map +0 -1
- package/dist/routes/index.js.map +0 -1
- package/dist/routes/mapping.d.ts.map +0 -1
- package/dist/routes/mapping.js.map +0 -1
- package/dist/routes/match.d.ts.map +0 -1
- package/dist/routes/match.js.map +0 -1
- package/dist/routes/request.d.ts.map +0 -1
- package/dist/routes/request.js.map +0 -1
- package/dist/routes/reservation.d.ts.map +0 -1
- package/dist/routes/reservation.js.map +0 -1
- package/dist/routes/route.d.ts +0 -13
- package/dist/routes/route.d.ts.map +0 -1
- package/dist/routes/route.js +0 -6
- package/dist/routes/route.js.map +0 -1
- package/dist/routes/routing.d.ts.map +0 -1
- package/dist/routes/routing.js.map +0 -1
- package/dist/routes/scalar.d.ts.map +0 -1
- package/dist/routes/scalar.js.map +0 -1
- package/dist/routes/select.d.ts.map +0 -1
- package/dist/routes/select.js.map +0 -1
- package/dist/routes/stream.d.ts.map +0 -1
- package/dist/routes/stream.js.map +0 -1
- package/dist/routes/template.d.ts.map +0 -1
- package/dist/routes/template.js.map +0 -1
- package/dist/runtime/artifact.d.ts.map +0 -1
- package/dist/runtime/artifact.js.map +0 -1
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js.map +0 -1
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/installation/index.d.ts.map +0 -1
- package/dist/schema/installation/index.js.map +0 -1
- package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
- package/dist/schema/installation/introspection/codec.js.map +0 -1
- package/dist/schema/installation/introspection/index.d.ts.map +0 -1
- package/dist/schema/installation/introspection/index.js.map +0 -1
- package/dist/schema/installation/introspection/result.d.ts.map +0 -1
- package/dist/schema/installation/introspection/result.js.map +0 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { acceptInvocationEndpoints } from '../publication/bindings/invocation.js';
|
|
2
|
+
import { PublicationError } from '../publication/error.js';
|
|
3
|
+
import { acceptReference } from '../publication/reference.js';
|
|
4
|
+
import { exactFields, invalid, issuerId, invocation, portableObject, requestId, required, string, } from './admission.js';
|
|
3
5
|
import { admitTrace } from './trace.js';
|
|
4
6
|
const ROUTE_FIELDS = new Set(['endpoint', 'via']);
|
|
5
7
|
const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
|
|
6
|
-
const
|
|
8
|
+
const REDIRECTION_FIELDS = new Set(['route', 'credential', 'trace']);
|
|
9
|
+
const REDIRECT_RESPONSE_FIELDS = new Set(['kind', 'requestId', 'invocation', 'redirect']);
|
|
7
10
|
export function acceptRoute(input) {
|
|
8
11
|
const object = portableObject(input, 'route');
|
|
9
12
|
exactFields(object, ROUTE_FIELDS, 'route');
|
|
@@ -15,16 +18,16 @@ export function acceptRoute(input) {
|
|
|
15
18
|
if (via.kind !== 'via')
|
|
16
19
|
invalid('route.via.kind must be "via"');
|
|
17
20
|
return Object.freeze({
|
|
18
|
-
endpoint:
|
|
21
|
+
endpoint: acceptInvocationEndpoints(object.endpoint),
|
|
19
22
|
via: Object.freeze({
|
|
20
23
|
kind: 'via',
|
|
21
|
-
publication:
|
|
24
|
+
publication: acceptReference(via.publication),
|
|
22
25
|
issuer: issuerId(via.issuer, 'route.via.issuer'),
|
|
23
26
|
}),
|
|
24
27
|
});
|
|
25
28
|
}
|
|
26
29
|
catch (cause) {
|
|
27
|
-
if (cause instanceof
|
|
30
|
+
if (cause instanceof PublicationError) {
|
|
28
31
|
return invalid(`route is invalid: ${cause.message}`);
|
|
29
32
|
}
|
|
30
33
|
throw cause;
|
|
@@ -46,23 +49,33 @@ export function remoteRoute(origin, binding, issuer) {
|
|
|
46
49
|
},
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
export function
|
|
50
|
-
const object = portableObject(input, '
|
|
51
|
-
exactFields(object,
|
|
52
|
-
required(object, ['
|
|
53
|
-
if (object.kind !== 'redirect')
|
|
54
|
-
invalid('redirect.kind must be "redirect"');
|
|
52
|
+
export function acceptRedirection(input) {
|
|
53
|
+
const object = portableObject(input, 'redirection');
|
|
54
|
+
exactFields(object, REDIRECTION_FIELDS, 'redirection');
|
|
55
|
+
required(object, ['route'], 'redirection');
|
|
55
56
|
const route = acceptRoute(object.route);
|
|
56
|
-
const credential = object.credential === undefined
|
|
57
|
+
const credential = object.credential === undefined
|
|
58
|
+
? undefined
|
|
59
|
+
: string(object.credential, 'redirection.credential');
|
|
57
60
|
const trace = object.trace === undefined ? undefined : admitTrace(object.trace);
|
|
58
61
|
if (credential !== undefined && credential.length === 0)
|
|
59
|
-
invalid('
|
|
62
|
+
invalid('redirection.credential must be non-empty');
|
|
60
63
|
return Object.freeze({
|
|
61
|
-
kind: 'redirect',
|
|
62
|
-
id: requestId(object.id, 'redirect.id'),
|
|
63
64
|
route,
|
|
64
65
|
...(credential === undefined ? {} : { credential }),
|
|
65
66
|
...(trace === undefined ? {} : { trace }),
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
+
export function decodeRedirectResponse(input) {
|
|
70
|
+
const object = portableObject(input, 'redirect response');
|
|
71
|
+
exactFields(object, REDIRECT_RESPONSE_FIELDS, 'redirect response');
|
|
72
|
+
required(object, ['kind', 'requestId', 'invocation', 'redirect'], 'redirect response');
|
|
73
|
+
if (object.kind !== 'redirect')
|
|
74
|
+
invalid('redirect response.kind must be "redirect"');
|
|
75
|
+
return Object.freeze({
|
|
76
|
+
kind: 'redirect',
|
|
77
|
+
requestId: requestId(object.requestId, 'redirect response.requestId'),
|
|
78
|
+
invocation: invocation(object.invocation, 'redirect response.invocation'),
|
|
79
|
+
redirect: acceptRedirection(object.redirect),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
@@ -8,7 +8,7 @@ import type { Trace } from './trace.js';
|
|
|
8
8
|
import type { Version } from './version.js';
|
|
9
9
|
export interface Request {
|
|
10
10
|
readonly version: Version;
|
|
11
|
-
readonly
|
|
11
|
+
readonly requestId: RequestId;
|
|
12
12
|
readonly call: Call;
|
|
13
13
|
readonly credential?: string;
|
|
14
14
|
readonly delegate?: Delegate;
|
|
@@ -19,4 +19,3 @@ export interface Request {
|
|
|
19
19
|
readonly trace?: Trace;
|
|
20
20
|
}
|
|
21
21
|
export declare function decodeRequest(input: unknown): Request;
|
|
22
|
-
//# sourceMappingURL=request.d.ts.map
|
|
@@ -7,7 +7,7 @@ import { acceptCall } from './target.js';
|
|
|
7
7
|
import { admitTrace } from './trace.js';
|
|
8
8
|
const REQUEST_FIELDS = new Set([
|
|
9
9
|
'version',
|
|
10
|
-
'
|
|
10
|
+
'requestId',
|
|
11
11
|
'call',
|
|
12
12
|
'credential',
|
|
13
13
|
'delegate',
|
|
@@ -19,7 +19,7 @@ const REQUEST_FIELDS = new Set([
|
|
|
19
19
|
export function decodeRequest(input) {
|
|
20
20
|
const object = portableObject(input, 'request');
|
|
21
21
|
exactFields(object, REQUEST_FIELDS, 'request');
|
|
22
|
-
required(object, ['version', '
|
|
22
|
+
required(object, ['version', 'requestId', 'call'], 'request');
|
|
23
23
|
if (object.version !== 2)
|
|
24
24
|
invalid('request.version must be 2');
|
|
25
25
|
const credential = object.credential === undefined ? undefined : string(object.credential, 'request.credential');
|
|
@@ -38,7 +38,7 @@ export function decodeRequest(input) {
|
|
|
38
38
|
}
|
|
39
39
|
return Object.freeze({
|
|
40
40
|
version: 2,
|
|
41
|
-
|
|
41
|
+
requestId: requestId(object.requestId, 'request.requestId'),
|
|
42
42
|
call: acceptCall(object.call),
|
|
43
43
|
...(credential === undefined ? {} : { credential }),
|
|
44
44
|
...(delegate === undefined ? {} : { delegate }),
|
|
@@ -52,4 +52,3 @@ export function decodeRequest(input) {
|
|
|
52
52
|
...(trace === undefined ? {} : { trace }),
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=request.js.map
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import type { Value } from '@astrale-os/kernel-dsl/value';
|
|
2
2
|
import type { ErrorPayload } from '../errors/index.js';
|
|
3
3
|
import type { RequestId } from './correlation.js';
|
|
4
|
+
import type { InvocationId } from './identity.js';
|
|
4
5
|
import type { Miss } from './miss.js';
|
|
5
|
-
import type {
|
|
6
|
+
import type { RedirectResponse } from './redirect.js';
|
|
6
7
|
import type { Stale } from './stale-route.js';
|
|
7
|
-
export interface
|
|
8
|
+
export interface ResponseContext {
|
|
9
|
+
readonly requestId: RequestId;
|
|
10
|
+
readonly invocation: InvocationId;
|
|
11
|
+
}
|
|
12
|
+
export interface SuccessResponse<Result extends Value = Value> extends ResponseContext {
|
|
8
13
|
readonly result: Result;
|
|
9
|
-
readonly id: RequestId;
|
|
10
14
|
}
|
|
11
|
-
export interface ErrorResponse {
|
|
15
|
+
export interface ErrorResponse extends ResponseContext {
|
|
12
16
|
readonly error: ErrorPayload;
|
|
13
|
-
readonly id: RequestId;
|
|
14
17
|
}
|
|
15
|
-
export type Response<Result extends Value = Value> = SuccessResponse<Result> | ErrorResponse |
|
|
18
|
+
export type Response<Result extends Value = Value> = SuccessResponse<Result> | ErrorResponse | RedirectResponse | Stale | Miss;
|
|
16
19
|
export declare function decodeResponse(input: unknown): Response;
|
|
17
|
-
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { errorPayload, exactFields, invalid, portableObject, requestId, required, } from './admission.js';
|
|
1
|
+
import { errorPayload, exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
2
|
import { decodeMiss } from './miss.js';
|
|
3
|
-
import {
|
|
3
|
+
import { decodeRedirectResponse } from './redirect.js';
|
|
4
4
|
import { decodeStale } from './stale-route.js';
|
|
5
|
-
const SUCCESS_FIELDS = new Set(['result', '
|
|
6
|
-
const ERROR_FIELDS = new Set(['error', '
|
|
5
|
+
const SUCCESS_FIELDS = new Set(['result', 'requestId', 'invocation']);
|
|
6
|
+
const ERROR_FIELDS = new Set(['error', 'requestId', 'invocation']);
|
|
7
7
|
export function decodeResponse(input) {
|
|
8
8
|
const object = portableObject(input, 'response');
|
|
9
9
|
const hasResult = Object.hasOwn(object, 'result');
|
|
@@ -13,22 +13,26 @@ export function decodeResponse(input) {
|
|
|
13
13
|
invalid('response must contain exactly one of result or error');
|
|
14
14
|
if (hasResult) {
|
|
15
15
|
exactFields(object, SUCCESS_FIELDS, 'response');
|
|
16
|
-
required(object, ['
|
|
17
|
-
return Object.freeze({
|
|
16
|
+
required(object, ['requestId', 'invocation'], 'response');
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
result: object.result,
|
|
19
|
+
requestId: requestId(object.requestId, 'response.requestId'),
|
|
20
|
+
invocation: invocation(object.invocation, 'response.invocation'),
|
|
21
|
+
});
|
|
18
22
|
}
|
|
19
23
|
exactFields(object, ERROR_FIELDS, 'response');
|
|
20
|
-
required(object, ['
|
|
24
|
+
required(object, ['requestId', 'error', 'invocation'], 'response');
|
|
21
25
|
return Object.freeze({
|
|
22
26
|
error: errorPayload(object.error, 'response.error'),
|
|
23
|
-
|
|
27
|
+
requestId: requestId(object.requestId, 'response.requestId'),
|
|
28
|
+
invocation: invocation(object.invocation, 'response.invocation'),
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
31
|
if (object.kind === 'redirect')
|
|
27
|
-
return
|
|
32
|
+
return decodeRedirectResponse(object);
|
|
28
33
|
if (object.kind === 'stale')
|
|
29
34
|
return decodeStale(object);
|
|
30
35
|
if (object.kind === 'miss')
|
|
31
36
|
return decodeMiss(object);
|
|
32
37
|
return invalid('response must contain a result, error, redirect, stale, or miss control');
|
|
33
38
|
}
|
|
34
|
-
//# sourceMappingURL=response.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
2
|
-
import type { Etag
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
+
import type { Etag } from '../publication/etag.js';
|
|
3
|
+
import type { PublicationRef } from '../publication/reference.js';
|
|
3
4
|
export interface Via {
|
|
4
5
|
readonly kind: 'via';
|
|
5
6
|
readonly publication: PublicationRef;
|
|
@@ -11,4 +12,3 @@ export interface Refresh {
|
|
|
11
12
|
}
|
|
12
13
|
export type Routing = Via | Refresh;
|
|
13
14
|
export declare function acceptRouting(input: unknown): Routing;
|
|
14
|
-
//# sourceMappingURL=routing.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { PublicationError } from '../publication/error.js';
|
|
2
|
+
import { acceptReference } from '../publication/reference.js';
|
|
2
3
|
import { digest, exactFields, invalid, issuerId, portableObject, required } from './admission.js';
|
|
3
4
|
const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
|
|
4
5
|
const REFRESH_FIELDS = new Set(['kind', 'stale']);
|
|
@@ -10,12 +11,12 @@ export function acceptRouting(input) {
|
|
|
10
11
|
try {
|
|
11
12
|
return Object.freeze({
|
|
12
13
|
kind: 'via',
|
|
13
|
-
publication:
|
|
14
|
+
publication: acceptReference(object.publication),
|
|
14
15
|
issuer: issuerId(object.issuer, 'via routing.issuer'),
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
18
|
catch (cause) {
|
|
18
|
-
if (cause instanceof
|
|
19
|
+
if (cause instanceof PublicationError) {
|
|
19
20
|
return invalid(`via routing.publication is invalid: ${cause.message}`);
|
|
20
21
|
}
|
|
21
22
|
throw cause;
|
|
@@ -31,4 +32,3 @@ export function acceptRouting(input) {
|
|
|
31
32
|
}
|
|
32
33
|
return invalid('routing.kind must be "via" or "refresh"');
|
|
33
34
|
}
|
|
34
|
-
//# sourceMappingURL=routing.js.map
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
2
|
import type { Sha256Digest } from '../publication/index.js';
|
|
3
3
|
/** Source-Kernel precondition for the active Schema Registration selected by one invocation. */
|
|
4
4
|
export type SchemaTarget = {
|
|
5
5
|
readonly target: Sha256Digest;
|
|
6
6
|
} | {
|
|
7
|
-
readonly revision:
|
|
7
|
+
readonly revision: Revision;
|
|
8
8
|
};
|
|
9
9
|
export declare function acceptSchemaTarget(input: unknown): SchemaTarget;
|
|
10
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
2
|
import { digest, exactFields, invalid, portableObject } from './admission.js';
|
|
3
3
|
const FIELDS = new Set(['target', 'revision']);
|
|
4
4
|
export function acceptSchemaTarget(input) {
|
|
@@ -12,9 +12,8 @@ export function acceptSchemaTarget(input) {
|
|
|
12
12
|
if (hasTarget) {
|
|
13
13
|
return Object.freeze({ target: digest(object.target, 'schema target.target') });
|
|
14
14
|
}
|
|
15
|
-
if (typeof object.revision !== 'string' || !
|
|
15
|
+
if (typeof object.revision !== 'string' || !patterns.revision.test(object.revision)) {
|
|
16
16
|
invalid('schema target.revision must be a Schema revision');
|
|
17
17
|
}
|
|
18
18
|
return Object.freeze({ revision: object.revision });
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
+
import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
1
3
|
import type { Object as ValueObject } from '@astrale-os/kernel-dsl/value';
|
|
2
|
-
import
|
|
3
|
-
import { schema as dslSchema, type Key } from '@astrale-os/kernel-dsl/v1';
|
|
4
|
+
import { type Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
4
5
|
import type { ErrorPayload, ErrorReason } from '../errors/index.js';
|
|
5
6
|
import { CODES } from '../errors/index.js';
|
|
6
|
-
export declare const
|
|
7
|
+
export declare const SCHEMA_REVISION_MISMATCH: 'SCHEMA_REVISION_MISMATCH';
|
|
7
8
|
export declare const SERVICE_TRUST_REQUIRED: 'SERVICE_TRUST_REQUIRED';
|
|
8
9
|
export declare const SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE';
|
|
9
10
|
export declare const SERVICE_CANDIDATE_INVALID: 'SERVICE_CANDIDATE_INVALID';
|
|
10
|
-
export type
|
|
11
|
+
export type SchemaRevisionMismatchDetails = ValueObject & {
|
|
11
12
|
readonly origin: Key.Origin;
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
13
|
+
readonly expectedRevision: Revision;
|
|
14
|
+
readonly installedRevision: Revision;
|
|
14
15
|
};
|
|
15
16
|
export type ServiceTrustRequiredDetails = ValueObject & {
|
|
16
17
|
readonly origin: Key.Origin;
|
|
17
|
-
readonly installedIssuer:
|
|
18
|
-
readonly candidateIssuer:
|
|
18
|
+
readonly installedIssuer: IssuerId;
|
|
19
|
+
readonly candidateIssuer: IssuerId;
|
|
19
20
|
};
|
|
20
21
|
export type ServiceUnavailableDetails = ValueObject & {
|
|
21
22
|
readonly origin: Key.Origin;
|
|
22
|
-
readonly revision:
|
|
23
|
+
readonly revision: Revision;
|
|
23
24
|
};
|
|
24
25
|
export type ServiceCandidateInvalidDetails = ValueObject & {
|
|
25
26
|
readonly origin: Key.Origin;
|
|
26
27
|
};
|
|
27
|
-
export type
|
|
28
|
+
export type SchemaRevisionMismatchReason = ErrorReason<typeof SCHEMA_REVISION_MISMATCH, SchemaRevisionMismatchDetails>;
|
|
28
29
|
export type ServiceTrustRequiredReason = ErrorReason<typeof SERVICE_TRUST_REQUIRED, ServiceTrustRequiredDetails>;
|
|
29
30
|
export type ServiceUnavailableReason = ErrorReason<typeof SERVICE_UNAVAILABLE, ServiceUnavailableDetails>;
|
|
30
31
|
export type ServiceCandidateInvalidReason = ErrorReason<typeof SERVICE_CANDIDATE_INVALID, ServiceCandidateInvalidDetails>;
|
|
31
|
-
export type ServiceReason =
|
|
32
|
+
export type ServiceReason = SchemaRevisionMismatchReason | ServiceTrustRequiredReason | ServiceUnavailableReason | ServiceCandidateInvalidReason;
|
|
32
33
|
export type ServiceErrorPayload = (Omit<ErrorPayload, 'code' | 'data'> & {
|
|
33
34
|
readonly code: typeof CODES.CONFLICT;
|
|
34
|
-
readonly data:
|
|
35
|
+
readonly data: SchemaRevisionMismatchReason | ServiceTrustRequiredReason;
|
|
35
36
|
}) | (Omit<ErrorPayload, 'code' | 'data'> & {
|
|
36
37
|
readonly code: typeof CODES.BACKEND_UNAVAILABLE;
|
|
37
38
|
readonly data: ServiceUnavailableReason | ServiceCandidateInvalidReason;
|
|
38
39
|
});
|
|
39
40
|
/** Recognize only exact outer-code, reason-code, and detail-shape combinations. */
|
|
40
41
|
export declare function serviceErrorOf(input: ErrorPayload): ServiceErrorPayload | undefined;
|
|
41
|
-
//# sourceMappingURL=service-reason.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
|
|
2
|
+
import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
|
|
3
|
+
import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
4
|
import { CODES, reasonOf } from '../errors/index.js';
|
|
4
|
-
export const
|
|
5
|
+
export const SCHEMA_REVISION_MISMATCH = 'SCHEMA_REVISION_MISMATCH';
|
|
5
6
|
export const SERVICE_TRUST_REQUIRED = 'SERVICE_TRUST_REQUIRED';
|
|
6
7
|
export const SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE';
|
|
7
8
|
export const SERVICE_CANDIDATE_INVALID = 'SERVICE_CANDIDATE_INVALID';
|
|
@@ -11,8 +12,8 @@ export function serviceErrorOf(input) {
|
|
|
11
12
|
if (reason === undefined)
|
|
12
13
|
return undefined;
|
|
13
14
|
switch (reason.code) {
|
|
14
|
-
case
|
|
15
|
-
return input.code === CODES.CONFLICT &&
|
|
15
|
+
case SCHEMA_REVISION_MISMATCH:
|
|
16
|
+
return input.code === CODES.CONFLICT && schemaRevisionMismatchDetails(reason.details)
|
|
16
17
|
? input
|
|
17
18
|
: undefined;
|
|
18
19
|
case SERVICE_TRUST_REQUIRED:
|
|
@@ -31,11 +32,11 @@ export function serviceErrorOf(input) {
|
|
|
31
32
|
return undefined;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
|
-
function
|
|
35
|
-
return (exact(input, ['origin', '
|
|
35
|
+
function schemaRevisionMismatchDetails(input) {
|
|
36
|
+
return (exact(input, ['origin', 'expectedRevision', 'installedRevision']) &&
|
|
36
37
|
isOrigin(input.origin) &&
|
|
37
|
-
isRevision(input.
|
|
38
|
-
isRevision(input.
|
|
38
|
+
isRevision(input.expectedRevision) &&
|
|
39
|
+
isRevision(input.installedRevision));
|
|
39
40
|
}
|
|
40
41
|
function serviceTrustDetails(input) {
|
|
41
42
|
return (exact(input, ['origin', 'installedIssuer', 'candidateIssuer']) &&
|
|
@@ -54,21 +55,20 @@ function exact(input, fields) {
|
|
|
54
55
|
fields.every((field) => Object.hasOwn(input, field)));
|
|
55
56
|
}
|
|
56
57
|
function isOrigin(input) {
|
|
57
|
-
return typeof input === 'string' &&
|
|
58
|
+
return typeof input === 'string' && patterns.origin.test(input);
|
|
58
59
|
}
|
|
59
60
|
function isRevision(input) {
|
|
60
|
-
return typeof input === 'string' &&
|
|
61
|
+
return typeof input === 'string' && patterns.revision.test(input);
|
|
61
62
|
}
|
|
62
63
|
function isIssuer(input) {
|
|
63
64
|
if (typeof input !== 'string')
|
|
64
65
|
return false;
|
|
65
66
|
try {
|
|
66
|
-
return
|
|
67
|
+
return acceptIssuer(input) === input;
|
|
67
68
|
}
|
|
68
69
|
catch (cause) {
|
|
69
|
-
if (cause instanceof
|
|
70
|
+
if (cause instanceof AuthValueError)
|
|
70
71
|
return false;
|
|
71
72
|
throw cause;
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
//# sourceMappingURL=service-reason.js.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { Etag } from '../publication/index.js';
|
|
2
2
|
import type { RequestId } from './correlation.js';
|
|
3
|
+
import type { InvocationId } from './identity.js';
|
|
3
4
|
/** Reserved pre-handler routing control; never an application ErrorResponse. */
|
|
4
5
|
export interface Stale {
|
|
5
6
|
readonly kind: 'stale';
|
|
6
|
-
readonly
|
|
7
|
+
readonly requestId: RequestId;
|
|
8
|
+
readonly invocation: InvocationId;
|
|
7
9
|
readonly current: Etag;
|
|
8
10
|
}
|
|
9
11
|
export declare function decodeStale(input: unknown): Stale;
|
|
10
|
-
export declare function stale(
|
|
11
|
-
//# sourceMappingURL=stale-route.d.ts.map
|
|
12
|
+
export declare function stale(requestId: RequestId, assigned: InvocationId, current: Etag): Stale;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { digest, exactFields, invalid, portableObject, requestId, required } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['kind', '
|
|
1
|
+
import { digest, exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
|
+
const FIELDS = new Set(['kind', 'requestId', 'invocation', 'current']);
|
|
3
3
|
export function decodeStale(input) {
|
|
4
4
|
const object = portableObject(input, 'stale control');
|
|
5
5
|
exactFields(object, FIELDS, 'stale control');
|
|
6
|
-
required(object, ['kind', '
|
|
6
|
+
required(object, ['kind', 'requestId', 'invocation', 'current'], 'stale control');
|
|
7
7
|
if (object.kind !== 'stale') {
|
|
8
8
|
invalid('stale control.kind must be "stale"');
|
|
9
9
|
}
|
|
10
10
|
return Object.freeze({
|
|
11
11
|
kind: 'stale',
|
|
12
|
-
|
|
12
|
+
requestId: requestId(object.requestId, 'stale control.requestId'),
|
|
13
|
+
invocation: invocation(object.invocation, 'stale control.invocation'),
|
|
13
14
|
current: digest(object.current, 'stale control.current'),
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
|
-
export function stale(
|
|
17
|
-
return
|
|
17
|
+
export function stale(requestId, assigned, current) {
|
|
18
|
+
return decodeStale({ kind: 'stale', requestId, invocation: assigned, current });
|
|
18
19
|
}
|
|
19
|
-
//# sourceMappingURL=stale-route.js.map
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
import type { Value } from '@astrale-os/kernel-dsl/value';
|
|
2
2
|
import type { ErrorPayload } from '../errors/index.js';
|
|
3
3
|
import type { RequestId } from './correlation.js';
|
|
4
|
+
import type { InvocationId } from './identity.js';
|
|
4
5
|
export interface StreamStartFrame {
|
|
5
6
|
readonly kind: 'stream.start';
|
|
6
|
-
readonly
|
|
7
|
+
readonly requestId: RequestId;
|
|
8
|
+
readonly invocation: InvocationId;
|
|
7
9
|
}
|
|
8
10
|
export interface StreamItemFrame {
|
|
9
11
|
readonly kind: 'stream.item';
|
|
10
|
-
readonly
|
|
12
|
+
readonly requestId: RequestId;
|
|
11
13
|
readonly index: number;
|
|
12
14
|
readonly value: Value;
|
|
13
15
|
}
|
|
14
16
|
export interface StreamEndFrame {
|
|
15
17
|
readonly kind: 'stream.end';
|
|
16
|
-
readonly
|
|
18
|
+
readonly requestId: RequestId;
|
|
17
19
|
readonly count: number;
|
|
18
20
|
}
|
|
19
21
|
export interface StreamErrorFrame {
|
|
20
22
|
readonly kind: 'stream.error';
|
|
21
|
-
readonly
|
|
23
|
+
readonly requestId: RequestId;
|
|
22
24
|
readonly error: ErrorPayload;
|
|
23
25
|
}
|
|
24
26
|
export type StreamFrame = StreamStartFrame | StreamItemFrame | StreamEndFrame | StreamErrorFrame;
|
|
25
27
|
export declare function decodeStreamFrame(input: unknown): StreamFrame;
|
|
26
|
-
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { count, errorPayload, exactFields, invalid, portableObject, requestId, required, } from './admission.js';
|
|
1
|
+
import { count, errorPayload, exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
2
|
export function decodeStreamFrame(input) {
|
|
3
3
|
const object = portableObject(input, 'stream frame');
|
|
4
4
|
const kind = object.kind;
|
|
@@ -6,36 +6,39 @@ export function decodeStreamFrame(input) {
|
|
|
6
6
|
invalid('stream frame.kind must be a string');
|
|
7
7
|
switch (kind) {
|
|
8
8
|
case 'stream.start':
|
|
9
|
-
exactFields(object, new Set(['kind', '
|
|
10
|
-
required(object, ['
|
|
11
|
-
return Object.freeze({
|
|
9
|
+
exactFields(object, new Set(['kind', 'requestId', 'invocation']), 'stream.start');
|
|
10
|
+
required(object, ['requestId', 'invocation'], 'stream.start');
|
|
11
|
+
return Object.freeze({
|
|
12
|
+
kind,
|
|
13
|
+
requestId: requestId(object.requestId, 'stream.start.requestId'),
|
|
14
|
+
invocation: invocation(object.invocation, 'stream.start.invocation'),
|
|
15
|
+
});
|
|
12
16
|
case 'stream.item':
|
|
13
|
-
exactFields(object, new Set(['kind', '
|
|
14
|
-
required(object, ['
|
|
17
|
+
exactFields(object, new Set(['kind', 'requestId', 'index', 'value']), 'stream.item');
|
|
18
|
+
required(object, ['requestId', 'index', 'value'], 'stream.item');
|
|
15
19
|
return Object.freeze({
|
|
16
20
|
kind,
|
|
17
|
-
|
|
21
|
+
requestId: requestId(object.requestId, 'stream.item.requestId'),
|
|
18
22
|
index: count(object.index, 'stream.item.index'),
|
|
19
23
|
value: object.value,
|
|
20
24
|
});
|
|
21
25
|
case 'stream.end':
|
|
22
|
-
exactFields(object, new Set(['kind', '
|
|
23
|
-
required(object, ['
|
|
26
|
+
exactFields(object, new Set(['kind', 'requestId', 'count']), 'stream.end');
|
|
27
|
+
required(object, ['requestId', 'count'], 'stream.end');
|
|
24
28
|
return Object.freeze({
|
|
25
29
|
kind,
|
|
26
|
-
|
|
30
|
+
requestId: requestId(object.requestId, 'stream.end.requestId'),
|
|
27
31
|
count: count(object.count, 'stream.end.count'),
|
|
28
32
|
});
|
|
29
33
|
case 'stream.error':
|
|
30
|
-
exactFields(object, new Set(['kind', '
|
|
31
|
-
required(object, ['
|
|
34
|
+
exactFields(object, new Set(['kind', 'requestId', 'error']), 'stream.error');
|
|
35
|
+
required(object, ['requestId', 'error'], 'stream.error');
|
|
32
36
|
return Object.freeze({
|
|
33
37
|
kind,
|
|
34
|
-
|
|
38
|
+
requestId: requestId(object.requestId, 'stream.error.requestId'),
|
|
35
39
|
error: errorPayload(object.error, 'stream.error.error'),
|
|
36
40
|
});
|
|
37
41
|
default:
|
|
38
42
|
return invalid(`unsupported stream frame kind ${JSON.stringify(kind)}`);
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
|
-
//# sourceMappingURL=stream.js.map
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
/** One portable invocation meaning. Resolution remains Runtime-owned. */
|
|
4
|
-
export interface Call {
|
|
5
|
-
readonly target: NodePath;
|
|
6
|
-
readonly input: Value;
|
|
7
|
-
}
|
|
1
|
+
import type { Call } from '@astrale-os/kernel-core/callable';
|
|
2
|
+
export type { Call } from '@astrale-os/kernel-core/callable';
|
|
8
3
|
export declare function acceptCall(input: unknown): Call;
|
|
9
|
-
//# sourceMappingURL=target.d.ts.map
|
package/dist/invocation/trace.js
CHANGED
|
@@ -4,15 +4,17 @@ const MAGIC = new Uint8Array([0x41, 0x53, 0x54, 0x42, 0x01]);
|
|
|
4
4
|
const LENGTH_BYTES = 4;
|
|
5
5
|
const MAXIMUM_METADATA_BYTES = 65_536;
|
|
6
6
|
const encoder = new TextEncoder();
|
|
7
|
-
const decoder = new TextDecoder('utf-8', { fatal: true });
|
|
7
|
+
const decoder = new TextDecoder('utf-8', { fatal: true, ignoreBOM: false });
|
|
8
8
|
export function encodeBinary(response) {
|
|
9
9
|
const headers = response.headers === undefined
|
|
10
10
|
? undefined
|
|
11
11
|
: Object.fromEntries(Object.entries(response.headers).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0));
|
|
12
12
|
const metadata = encoder.encode(JSON.stringify({
|
|
13
13
|
kind: response.kind,
|
|
14
|
-
|
|
14
|
+
requestId: response.requestId,
|
|
15
|
+
invocation: response.invocation,
|
|
15
16
|
mediaType: response.mediaType,
|
|
17
|
+
status: response.status,
|
|
16
18
|
...(headers === undefined ? {} : { headers }),
|
|
17
19
|
}));
|
|
18
20
|
if (metadata.byteLength > MAXIMUM_METADATA_BYTES)
|
|
@@ -68,4 +70,3 @@ function invalid() {
|
|
|
68
70
|
message: 'WebSocket binary response is invalid.',
|
|
69
71
|
});
|
|
70
72
|
}
|
|
71
|
-
//# sourceMappingURL=binary.js.map
|
|
@@ -8,4 +8,3 @@ export interface SubprotocolSelection {
|
|
|
8
8
|
}
|
|
9
9
|
export declare function subprotocolFor(codec: Codec): Subprotocol;
|
|
10
10
|
export declare function selectSubprotocol(offered: string | null, supported: readonly Codec[]): SubprotocolSelection | undefined;
|
|
11
|
-
//# sourceMappingURL=subprotocol.d.ts.map
|