@astrale-os/kernel-protocol 0.5.0-beta.2 → 0.5.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +467 -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
package/dist/index.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { type IssuerId } from '@astrale-os/kernel-core/auth';
|
|
1
|
+
import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
2
|
import { NodePath } from '@astrale-os/kernel-core/path';
|
|
3
|
-
import { Key } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
4
4
|
import { type Object as ValueObject } from '@astrale-os/kernel-dsl/value';
|
|
5
5
|
import type { ErrorPayload } from '../errors/index.js';
|
|
6
6
|
import type { Etag } from '../publication/index.js';
|
|
7
7
|
import { type RequestId } from './correlation.js';
|
|
8
|
+
import { type InvocationId } from './identity.js';
|
|
8
9
|
export declare function portableObject(input: unknown, label: string): ValueObject;
|
|
9
10
|
export declare function exactDataObject(input: unknown, label: string): Record<string, unknown>;
|
|
10
11
|
export declare function exactFields(object: Record<string, unknown>, allowed: ReadonlySet<string>, label: string): void;
|
|
11
12
|
export declare function required(object: Record<string, unknown>, fields: readonly string[], label: string): void;
|
|
12
13
|
export declare function requestId(input: unknown, label: string): RequestId;
|
|
14
|
+
export declare function invocation(input: unknown, label: string): InvocationId;
|
|
13
15
|
export declare function nodePath(input: unknown, label: string): NodePath;
|
|
14
16
|
export declare function issuerId(input: unknown, label: string): IssuerId;
|
|
15
17
|
export declare function string(input: unknown, label: string): string;
|
|
@@ -19,4 +21,3 @@ export declare function callableKey(input: unknown, label: string): Key.Callable
|
|
|
19
21
|
export declare function errorPayload(input: unknown, label: string): ErrorPayload;
|
|
20
22
|
export declare function acceptHeaders(input: unknown): Readonly<Record<string, string>>;
|
|
21
23
|
export declare function invalid(message: string): never;
|
|
22
|
-
//# sourceMappingURL=admission.d.ts.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { AuthValueError
|
|
1
|
+
import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
|
|
2
|
+
import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
3
|
import { NodePath, PathError } from '@astrale-os/kernel-core/path';
|
|
3
|
-
import {
|
|
4
|
+
import { callableAddress, Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
4
5
|
import { accept as acceptValue, BoundaryError, } from '@astrale-os/kernel-dsl/value';
|
|
5
6
|
import { CODES, acceptPayload, ProtocolError } from '../errors/index.js';
|
|
6
7
|
import { acceptRequestId } from './correlation.js';
|
|
8
|
+
import { acceptInvocationId, InvocationError } from './identity.js';
|
|
7
9
|
export function portableObject(input, label) {
|
|
8
10
|
let cloned;
|
|
9
11
|
try {
|
|
@@ -61,6 +63,16 @@ export function requestId(input, label) {
|
|
|
61
63
|
throw cause;
|
|
62
64
|
}
|
|
63
65
|
}
|
|
66
|
+
export function invocation(input, label) {
|
|
67
|
+
try {
|
|
68
|
+
return acceptInvocationId(input);
|
|
69
|
+
}
|
|
70
|
+
catch (cause) {
|
|
71
|
+
if (cause instanceof InvocationError)
|
|
72
|
+
return invalid(`${label} must be a valid Invocation`);
|
|
73
|
+
throw cause;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
64
76
|
export function nodePath(input, label) {
|
|
65
77
|
if (typeof input !== 'string')
|
|
66
78
|
invalid(`${label} must be a NodePath string`);
|
|
@@ -77,7 +89,7 @@ export function issuerId(input, label) {
|
|
|
77
89
|
if (typeof input !== 'string')
|
|
78
90
|
invalid(`${label} must be an issuer identifier`);
|
|
79
91
|
try {
|
|
80
|
-
return
|
|
92
|
+
return acceptIssuer(input);
|
|
81
93
|
}
|
|
82
94
|
catch (cause) {
|
|
83
95
|
if (cause instanceof AuthValueError)
|
|
@@ -107,10 +119,7 @@ export function callableKey(input, label) {
|
|
|
107
119
|
invalid(`${label} must be a callable Key string`);
|
|
108
120
|
try {
|
|
109
121
|
const callable = Key(input);
|
|
110
|
-
|
|
111
|
-
if (!reference.startsWith('function.') && !Ref.isMethod(reference)) {
|
|
112
|
-
invalid(`${label} must name a Function or Method`);
|
|
113
|
-
}
|
|
122
|
+
callableAddress(callable);
|
|
114
123
|
return callable;
|
|
115
124
|
}
|
|
116
125
|
catch (cause) {
|
|
@@ -166,4 +175,3 @@ function hasControlCharacter(input) {
|
|
|
166
175
|
}
|
|
167
176
|
return false;
|
|
168
177
|
}
|
|
169
|
-
//# sourceMappingURL=admission.js.map
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { RequestId } from './correlation.js';
|
|
2
|
+
import type { InvocationId } from './identity.js';
|
|
2
3
|
export interface BinaryResponse {
|
|
3
4
|
readonly kind: 'binary';
|
|
4
|
-
readonly
|
|
5
|
+
readonly requestId: RequestId;
|
|
6
|
+
readonly invocation: InvocationId;
|
|
5
7
|
readonly body: Uint8Array;
|
|
6
8
|
readonly mediaType: string;
|
|
9
|
+
readonly status: number;
|
|
7
10
|
readonly headers?: Readonly<Record<string, string>>;
|
|
8
11
|
}
|
|
9
12
|
export declare function decodeBinaryResponse(input: unknown): BinaryResponse;
|
|
10
|
-
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { acceptHeaders, exactDataObject, exactFields, invalid, requestId, required, string, } from './admission.js';
|
|
2
|
-
const FIELDS = new Set([
|
|
1
|
+
import { acceptHeaders, exactDataObject, exactFields, invalid, invocation, requestId, required, string, } from './admission.js';
|
|
2
|
+
const FIELDS = new Set([
|
|
3
|
+
'kind',
|
|
4
|
+
'requestId',
|
|
5
|
+
'invocation',
|
|
6
|
+
'body',
|
|
7
|
+
'mediaType',
|
|
8
|
+
'status',
|
|
9
|
+
'headers',
|
|
10
|
+
]);
|
|
3
11
|
const MEDIA_TYPE = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
|
|
4
12
|
export function decodeBinaryResponse(input) {
|
|
5
13
|
const object = exactDataObject(input, 'binary response');
|
|
6
14
|
exactFields(object, FIELDS, 'binary response');
|
|
7
|
-
required(object, ['kind', '
|
|
15
|
+
required(object, ['kind', 'requestId', 'invocation', 'body', 'mediaType'], 'binary response');
|
|
8
16
|
if (object.kind !== 'binary')
|
|
9
17
|
invalid('binary response.kind must be "binary"');
|
|
10
18
|
if (!(object.body instanceof Uint8Array))
|
|
@@ -12,13 +20,18 @@ export function decodeBinaryResponse(input) {
|
|
|
12
20
|
const mediaType = string(object.mediaType, 'binary response.mediaType');
|
|
13
21
|
if (!MEDIA_TYPE.test(mediaType))
|
|
14
22
|
invalid('binary response.mediaType is invalid');
|
|
23
|
+
const status = object.status ?? 200;
|
|
24
|
+
if (!Number.isInteger(status) || status < 200 || status > 599) {
|
|
25
|
+
invalid('binary response.status is invalid');
|
|
26
|
+
}
|
|
15
27
|
const headers = object.headers === undefined ? undefined : acceptHeaders(object.headers);
|
|
16
28
|
return Object.freeze({
|
|
17
29
|
kind: 'binary',
|
|
18
|
-
|
|
30
|
+
requestId: requestId(object.requestId, 'binary response.requestId'),
|
|
31
|
+
invocation: invocation(object.invocation, 'binary response.invocation'),
|
|
19
32
|
body: new Uint8Array(object.body),
|
|
20
33
|
mediaType,
|
|
34
|
+
status: status,
|
|
21
35
|
...(headers === undefined ? {} : { headers }),
|
|
22
36
|
});
|
|
23
37
|
}
|
|
24
|
-
//# sourceMappingURL=binary.js.map
|
|
@@ -3,7 +3,6 @@ import type { Version } from './version.js';
|
|
|
3
3
|
export interface CancelRequest {
|
|
4
4
|
readonly version: Version;
|
|
5
5
|
readonly kind: 'cancel';
|
|
6
|
-
readonly
|
|
6
|
+
readonly requestId: RequestId;
|
|
7
7
|
}
|
|
8
8
|
export declare function decodeCancelRequest(input: unknown): CancelRequest;
|
|
9
|
-
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { exactFields, invalid, portableObject, requestId, required } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['version', 'kind', '
|
|
2
|
+
const FIELDS = new Set(['version', 'kind', 'requestId']);
|
|
3
3
|
export function decodeCancelRequest(input) {
|
|
4
4
|
const object = portableObject(input, 'cancel request');
|
|
5
5
|
exactFields(object, FIELDS, 'cancel request');
|
|
6
|
-
required(object, ['version', 'kind', '
|
|
6
|
+
required(object, ['version', 'kind', 'requestId'], 'cancel request');
|
|
7
7
|
if (object.version !== 2)
|
|
8
8
|
invalid('cancel request.version must be 2');
|
|
9
9
|
if (object.kind !== 'cancel')
|
|
@@ -11,7 +11,6 @@ export function decodeCancelRequest(input) {
|
|
|
11
11
|
return Object.freeze({
|
|
12
12
|
version: 2,
|
|
13
13
|
kind: 'cancel',
|
|
14
|
-
|
|
14
|
+
requestId: requestId(object.requestId, 'cancel request.requestId'),
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=cancellation.js.map
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { type InvocationId } from '../identity.js';
|
|
1
2
|
export declare const BINARY_HEADERS_FIELD: 'x-astrale-binary-headers';
|
|
3
|
+
export declare const BINARY_DELIVERY_FIELD: 'x-astrale-binary-delivery';
|
|
4
|
+
export declare const STREAMING_BINARY_DELIVERY: 'streaming';
|
|
2
5
|
export declare const REQUEST_ID_FIELD: 'x-astrale-request-id';
|
|
6
|
+
export declare const INVOCATION_FIELD: 'x-astrale-invocation';
|
|
7
|
+
export declare const MAXIMUM_INVOCATION_FIELD_BYTES = 8192;
|
|
8
|
+
/** Encode one admitted InvocationId as percent-encoded source plus opaque ID. */
|
|
9
|
+
export declare function encodeInvocationId(input: InvocationId): string;
|
|
10
|
+
/** Decode one complete binary InvocationId field. */
|
|
11
|
+
export declare function decodeInvocationId(input: string | null): InvocationId;
|
|
3
12
|
export declare function isApplicationBinaryHeader(name: string): boolean;
|
|
4
13
|
export declare function encodeBinaryHeaderNames(headers: Readonly<Record<string, string>> | undefined): string;
|
|
5
14
|
export declare function decodeBinaryHeaderNames(input: string | null): readonly string[];
|
|
6
|
-
//# sourceMappingURL=binary.d.ts.map
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { CODES, ProtocolError } from '../../errors/index.js';
|
|
2
|
+
import { acceptInvocationId } from '../identity.js';
|
|
2
3
|
export const BINARY_HEADERS_FIELD = 'x-astrale-binary-headers';
|
|
4
|
+
export const BINARY_DELIVERY_FIELD = 'x-astrale-binary-delivery';
|
|
5
|
+
export const STREAMING_BINARY_DELIVERY = 'streaming';
|
|
3
6
|
export const REQUEST_ID_FIELD = 'x-astrale-request-id';
|
|
7
|
+
export const INVOCATION_FIELD = 'x-astrale-invocation';
|
|
8
|
+
export const MAXIMUM_INVOCATION_FIELD_BYTES = 8_192;
|
|
4
9
|
const HEADER_NAME = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
|
|
5
10
|
const MAXIMUM_MANIFEST_BYTES = 8_192;
|
|
6
11
|
const MAXIMUM_MANIFEST_NAMES = 128;
|
|
@@ -30,9 +35,51 @@ const RESERVED = new Set([
|
|
|
30
35
|
'www-authenticate',
|
|
31
36
|
EMPTY_MANIFEST,
|
|
32
37
|
BINARY_HEADERS_FIELD,
|
|
38
|
+
BINARY_DELIVERY_FIELD,
|
|
39
|
+
INVOCATION_FIELD,
|
|
33
40
|
REQUEST_ID_FIELD,
|
|
34
41
|
'x-astrale-stream-framing',
|
|
35
42
|
]);
|
|
43
|
+
/** Encode one admitted InvocationId as percent-encoded source plus opaque ID. */
|
|
44
|
+
export function encodeInvocationId(input) {
|
|
45
|
+
let source;
|
|
46
|
+
try {
|
|
47
|
+
source = encodeURIComponent(input.source);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
51
|
+
}
|
|
52
|
+
const encoded = `${source};${input.id}`;
|
|
53
|
+
if (new TextEncoder().encode(encoded).byteLength > MAXIMUM_INVOCATION_FIELD_BYTES) {
|
|
54
|
+
invalid('HTTP binary InvocationId field is invalid.');
|
|
55
|
+
}
|
|
56
|
+
return encoded;
|
|
57
|
+
}
|
|
58
|
+
/** Decode one complete binary InvocationId field. */
|
|
59
|
+
export function decodeInvocationId(input) {
|
|
60
|
+
if (input === null ||
|
|
61
|
+
input.length === 0 ||
|
|
62
|
+
new TextEncoder().encode(input).byteLength > MAXIMUM_INVOCATION_FIELD_BYTES) {
|
|
63
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
64
|
+
}
|
|
65
|
+
const separator = input.indexOf(';');
|
|
66
|
+
if (separator < 1 || input.indexOf(';', separator + 1) !== -1) {
|
|
67
|
+
invalid('HTTP binary InvocationId field is invalid.');
|
|
68
|
+
}
|
|
69
|
+
let source;
|
|
70
|
+
try {
|
|
71
|
+
source = decodeURIComponent(input.slice(0, separator));
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
return acceptInvocationId({ source, id: input.slice(separator + 1) });
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
36
83
|
export function isApplicationBinaryHeader(name) {
|
|
37
84
|
const normalized = name.toLowerCase();
|
|
38
85
|
return (HEADER_NAME.test(normalized) &&
|
|
@@ -80,10 +127,9 @@ export function decodeBinaryHeaderNames(input) {
|
|
|
80
127
|
}
|
|
81
128
|
return Object.freeze(admitted);
|
|
82
129
|
}
|
|
83
|
-
function invalid() {
|
|
130
|
+
function invalid(message = 'HTTP binary application-header manifest is invalid.') {
|
|
84
131
|
throw new ProtocolError({
|
|
85
132
|
code: CODES.INVALID_REQUEST,
|
|
86
|
-
message
|
|
133
|
+
message,
|
|
87
134
|
});
|
|
88
135
|
}
|
|
89
|
-
//# sourceMappingURL=binary.js.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, encodeBinaryHeaderNames, isApplicationBinaryHeader, REQUEST_ID_FIELD, } from './binary.js';
|
|
1
|
+
export { BINARY_DELIVERY_FIELD, BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, decodeInvocationId, encodeBinaryHeaderNames, encodeInvocationId, isApplicationBinaryHeader, MAXIMUM_INVOCATION_FIELD_BYTES, INVOCATION_FIELD, REQUEST_ID_FIELD, STREAMING_BINARY_DELIVERY, } from './binary.js';
|
|
2
2
|
export { codecForContentType, negotiateResponseCodec } from './negotiation.js';
|
|
3
3
|
export { encodeStreamFrame, LENGTH_PREFIX_V1, STREAM_FRAMING_FIELD } from './stream.js';
|
|
4
4
|
export { BAGGAGE_FIELD, decodeTraceHeaders, encodeTraceHeaders, TRACEPARENT_FIELD, TRACESTATE_FIELD, } from './trace.js';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, encodeBinaryHeaderNames, isApplicationBinaryHeader, REQUEST_ID_FIELD, } from './binary.js';
|
|
1
|
+
export { BINARY_DELIVERY_FIELD, BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, decodeInvocationId, encodeBinaryHeaderNames, encodeInvocationId, isApplicationBinaryHeader, MAXIMUM_INVOCATION_FIELD_BYTES, INVOCATION_FIELD, REQUEST_ID_FIELD, STREAMING_BINARY_DELIVERY, } from './binary.js';
|
|
2
2
|
export { codecForContentType, negotiateResponseCodec } from './negotiation.js';
|
|
3
3
|
export { encodeStreamFrame, LENGTH_PREFIX_V1, STREAM_FRAMING_FIELD } from './stream.js';
|
|
4
4
|
export { BAGGAGE_FIELD, decodeTraceHeaders, encodeTraceHeaders, TRACEPARENT_FIELD, TRACESTATE_FIELD, } from './trace.js';
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { Codec } from '../../codecs/index.js';
|
|
2
2
|
export declare function codecForContentType(contentType: string | null, supported: readonly Codec[]): Codec | undefined;
|
|
3
3
|
export declare function negotiateResponseCodec(accept: string | null, requestCodec: Codec, supported: readonly Codec[]): Codec | undefined;
|
|
4
|
-
//# sourceMappingURL=negotiation.d.ts.map
|
|
@@ -3,4 +3,3 @@ import type { StreamFrame } from '../stream.js';
|
|
|
3
3
|
export declare const STREAM_FRAMING_FIELD: 'x-astrale-stream-framing';
|
|
4
4
|
export declare const LENGTH_PREFIX_V1: 'length-prefix-v1';
|
|
5
5
|
export declare function encodeStreamFrame(codec: Codec, frame: StreamFrame): Uint8Array;
|
|
6
|
-
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -4,4 +4,3 @@ export declare const TRACESTATE_FIELD = "tracestate";
|
|
|
4
4
|
export declare const BAGGAGE_FIELD = "baggage";
|
|
5
5
|
export declare function decodeTraceHeaders(traceparent: string | null, tracestate: string | null): Trace | undefined;
|
|
6
6
|
export declare function encodeTraceHeaders(carrier: Trace | undefined): Readonly<Record<string, string>>;
|
|
7
|
-
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -8,4 +8,3 @@ export declare const MAXIMUM_IDEMPOTENCY_KEY_LENGTH = 128;
|
|
|
8
8
|
/** Admit an opaque URL-safe ASCII key without assigning it semantic structure. */
|
|
9
9
|
export declare function acceptIdempotencyKey(input: unknown, label?: string): IdempotencyKey;
|
|
10
10
|
export {};
|
|
11
|
-
//# sourceMappingURL=idempotency.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
2
|
+
export declare const MAXIMUM_INVOCATION_ID_LENGTH = 255;
|
|
3
|
+
/** Portable identity of one source-owned Invocation attempt; it grants no authority. */
|
|
4
|
+
export interface InvocationId {
|
|
5
|
+
readonly source: IssuerId;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class InvocationError extends TypeError {
|
|
9
|
+
readonly input: unknown;
|
|
10
|
+
readonly code: 'INVOCATION_INVALID';
|
|
11
|
+
constructor(input: unknown, message?: string, options?: ErrorOptions);
|
|
12
|
+
}
|
|
13
|
+
/** Admit, canonicalize, detach, and freeze one exact source-qualified Invocation identity. */
|
|
14
|
+
export declare function acceptInvocationId(input: unknown): InvocationId;
|
|
15
|
+
/** Compare both canonical coordinate fields exactly. */
|
|
16
|
+
export declare function sameInvocationId(left: InvocationId, right: InvocationId): boolean;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { issuer } from '@astrale-os/kernel-core/auth';
|
|
2
|
+
export const MAXIMUM_INVOCATION_ID_LENGTH = 255;
|
|
3
|
+
const INVALID_ID_CHARACTER = /[^A-Za-z0-9._-]/u;
|
|
4
|
+
const ID_ERROR_MESSAGE = 'InvocationId must contain 1-255 ASCII characters drawn from [A-Za-z0-9._-].';
|
|
5
|
+
export class InvocationError extends TypeError {
|
|
6
|
+
input;
|
|
7
|
+
code = 'INVOCATION_INVALID';
|
|
8
|
+
constructor(input, message = 'Invocation is invalid.', options) {
|
|
9
|
+
super(message, options);
|
|
10
|
+
this.input = input;
|
|
11
|
+
this.name = 'InvocationError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Admit, canonicalize, detach, and freeze one exact source-qualified Invocation identity. */
|
|
15
|
+
export function acceptInvocationId(input) {
|
|
16
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input))
|
|
17
|
+
invalid(input);
|
|
18
|
+
const candidate = input;
|
|
19
|
+
const source = Object.getOwnPropertyDescriptor(candidate, 'source');
|
|
20
|
+
const id = Object.getOwnPropertyDescriptor(candidate, 'id');
|
|
21
|
+
if (Reflect.ownKeys(candidate).some((key) => key !== 'source' && key !== 'id') ||
|
|
22
|
+
source === undefined ||
|
|
23
|
+
id === undefined ||
|
|
24
|
+
!source.enumerable ||
|
|
25
|
+
!id.enumerable ||
|
|
26
|
+
!('value' in source) ||
|
|
27
|
+
!('value' in id) ||
|
|
28
|
+
typeof source.value !== 'string' ||
|
|
29
|
+
typeof id.value !== 'string') {
|
|
30
|
+
invalid(input);
|
|
31
|
+
}
|
|
32
|
+
let admittedSource;
|
|
33
|
+
try {
|
|
34
|
+
admittedSource = issuer.accept(source.value);
|
|
35
|
+
}
|
|
36
|
+
catch (cause) {
|
|
37
|
+
throw new InvocationError(input, 'Invocation source is invalid.', { cause });
|
|
38
|
+
}
|
|
39
|
+
if (!isLocalInvocationId(id.value))
|
|
40
|
+
throw new InvocationError(input, ID_ERROR_MESSAGE);
|
|
41
|
+
return Object.freeze({ source: admittedSource, id: id.value });
|
|
42
|
+
}
|
|
43
|
+
/** Compare both canonical coordinate fields exactly. */
|
|
44
|
+
export function sameInvocationId(left, right) {
|
|
45
|
+
return left.source === right.source && left.id === right.id;
|
|
46
|
+
}
|
|
47
|
+
function isLocalInvocationId(input) {
|
|
48
|
+
return (typeof input === 'string' &&
|
|
49
|
+
input.length > 0 &&
|
|
50
|
+
input.length <= MAXIMUM_INVOCATION_ID_LENGTH &&
|
|
51
|
+
!INVALID_ID_CHARACTER.test(input));
|
|
52
|
+
}
|
|
53
|
+
function invalid(input) {
|
|
54
|
+
throw new InvocationError(input);
|
|
55
|
+
}
|
|
@@ -2,19 +2,19 @@ export { decodeBinaryResponse, type BinaryResponse } from './binary.js';
|
|
|
2
2
|
export { decodeCancelRequest, type CancelRequest } from './cancellation.js';
|
|
3
3
|
export { type RequestId } from './correlation.js';
|
|
4
4
|
export { acceptIdempotencyKey, HTTP_IDEMPOTENCY_KEY, MAXIMUM_IDEMPOTENCY_KEY_LENGTH, type IdempotencyKey, } from './idempotency.js';
|
|
5
|
+
export { acceptInvocationId, InvocationError, MAXIMUM_INVOCATION_ID_LENGTH, sameInvocationId, type InvocationId, } from './identity.js';
|
|
5
6
|
export * as http from './http/index.js';
|
|
6
7
|
export { acceptDelegate, type Delegate } from './delegate.js';
|
|
7
8
|
export { decodeMiss, miss, type Miss } from './miss.js';
|
|
8
|
-
export { acceptRoute,
|
|
9
|
+
export { acceptRoute, acceptRedirection, decodeRedirectResponse, remoteRoute, type RemoteBindingInput, type Redirection, type RedirectResponse, type Route, } from './redirect.js';
|
|
9
10
|
export { decodeRequest, type Request } from './request.js';
|
|
10
11
|
export { admitTrace, MAXIMUM_TRACEPARENT_BYTES, MAXIMUM_TRACESTATE_BYTES, MAXIMUM_TRACESTATE_MEMBERS, type Trace, } from './trace.js';
|
|
11
12
|
export { acceptRouting, type Refresh, type Routing, type Via } from './routing.js';
|
|
12
13
|
export { acceptSchemaTarget, type SchemaTarget } from './schema.js';
|
|
13
|
-
export { decodeResponse, type ErrorResponse, type Response, type SuccessResponse, } from './response.js';
|
|
14
|
-
export {
|
|
14
|
+
export { decodeResponse, type ErrorResponse, type Response, type ResponseContext, type SuccessResponse, } from './response.js';
|
|
15
|
+
export { SCHEMA_REVISION_MISMATCH, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, type SchemaRevisionMismatchDetails, type SchemaRevisionMismatchReason, type ServiceCandidateInvalidDetails, type ServiceCandidateInvalidReason, type ServiceErrorPayload, type ServiceReason, type ServiceTrustRequiredDetails, type ServiceTrustRequiredReason, type ServiceUnavailableDetails, type ServiceUnavailableReason, } from './service-reason.js';
|
|
15
16
|
export { decodeStale, stale, type Stale } from './stale-route.js';
|
|
16
17
|
export { decodeStreamFrame, type StreamEndFrame, type StreamErrorFrame, type StreamFrame, type StreamItemFrame, type StreamStartFrame, } from './stream.js';
|
|
17
18
|
export { acceptCall, type Call } from './target.js';
|
|
18
19
|
export { VERSION, type Version } from './version.js';
|
|
19
20
|
export * as websocket from './websocket/index.js';
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/invocation/index.js
CHANGED
|
@@ -2,19 +2,19 @@ export { decodeBinaryResponse } from './binary.js';
|
|
|
2
2
|
export { decodeCancelRequest } from './cancellation.js';
|
|
3
3
|
export {} from './correlation.js';
|
|
4
4
|
export { acceptIdempotencyKey, HTTP_IDEMPOTENCY_KEY, MAXIMUM_IDEMPOTENCY_KEY_LENGTH, } from './idempotency.js';
|
|
5
|
+
export { acceptInvocationId, InvocationError, MAXIMUM_INVOCATION_ID_LENGTH, sameInvocationId, } from './identity.js';
|
|
5
6
|
export * as http from './http/index.js';
|
|
6
7
|
export { acceptDelegate } from './delegate.js';
|
|
7
8
|
export { decodeMiss, miss } from './miss.js';
|
|
8
|
-
export { acceptRoute,
|
|
9
|
+
export { acceptRoute, acceptRedirection, decodeRedirectResponse, remoteRoute, } from './redirect.js';
|
|
9
10
|
export { decodeRequest } from './request.js';
|
|
10
11
|
export { admitTrace, MAXIMUM_TRACEPARENT_BYTES, MAXIMUM_TRACESTATE_BYTES, MAXIMUM_TRACESTATE_MEMBERS, } from './trace.js';
|
|
11
12
|
export { acceptRouting } from './routing.js';
|
|
12
13
|
export { acceptSchemaTarget } from './schema.js';
|
|
13
14
|
export { decodeResponse, } from './response.js';
|
|
14
|
-
export {
|
|
15
|
+
export { SCHEMA_REVISION_MISMATCH, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, } from './service-reason.js';
|
|
15
16
|
export { decodeStale, stale } from './stale-route.js';
|
|
16
17
|
export { decodeStreamFrame, } from './stream.js';
|
|
17
18
|
export { acceptCall } from './target.js';
|
|
18
19
|
export { VERSION } from './version.js';
|
|
19
20
|
export * as websocket from './websocket/index.js';
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { RequestId } from './correlation.js';
|
|
2
|
+
import type { InvocationId } from './identity.js';
|
|
2
3
|
export interface Miss {
|
|
3
4
|
readonly kind: 'miss';
|
|
4
|
-
readonly
|
|
5
|
+
readonly requestId: RequestId;
|
|
6
|
+
readonly invocation: InvocationId;
|
|
5
7
|
}
|
|
6
8
|
export declare function decodeMiss(input: unknown): Miss;
|
|
7
|
-
export declare function miss(
|
|
8
|
-
//# sourceMappingURL=miss.d.ts.map
|
|
9
|
+
export declare function miss(requestId: RequestId, assigned: InvocationId): Miss;
|
package/dist/invocation/miss.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { exactFields, invalid, portableObject, requestId, required } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['kind', '
|
|
1
|
+
import { exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
|
+
const FIELDS = new Set(['kind', 'requestId', 'invocation']);
|
|
3
3
|
export function decodeMiss(input) {
|
|
4
4
|
const object = portableObject(input, 'miss control');
|
|
5
5
|
exactFields(object, FIELDS, 'miss control');
|
|
6
|
-
required(object, ['kind', '
|
|
6
|
+
required(object, ['kind', 'requestId', 'invocation'], 'miss control');
|
|
7
7
|
if (object.kind !== 'miss')
|
|
8
8
|
invalid('miss control.kind must be "miss"');
|
|
9
|
-
return Object.freeze({
|
|
9
|
+
return Object.freeze({
|
|
10
|
+
kind: 'miss',
|
|
11
|
+
requestId: requestId(object.requestId, 'miss control.requestId'),
|
|
12
|
+
invocation: invocation(object.invocation, 'miss control.invocation'),
|
|
13
|
+
});
|
|
10
14
|
}
|
|
11
|
-
export function miss(
|
|
12
|
-
return
|
|
15
|
+
export function miss(requestId, assigned) {
|
|
16
|
+
return decodeMiss({ kind: 'miss', requestId, invocation: assigned });
|
|
13
17
|
}
|
|
14
|
-
//# sourceMappingURL=miss.js.map
|
|
@@ -1,33 +1,40 @@
|
|
|
1
|
-
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
2
|
import type { Key } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import type { InvocationEndpoints } from '../publication/bindings/invocation.js';
|
|
4
|
+
import type { Etag } from '../publication/etag.js';
|
|
5
|
+
import type { PublicationRef } from '../publication/reference.js';
|
|
3
6
|
import type { RequestId } from './correlation.js';
|
|
7
|
+
import type { InvocationId } from './identity.js';
|
|
4
8
|
import type { Trace } from './trace.js';
|
|
5
|
-
import * as publication from '../publication/index.js';
|
|
6
9
|
export interface Route {
|
|
7
|
-
readonly endpoint:
|
|
10
|
+
readonly endpoint: InvocationEndpoints;
|
|
8
11
|
readonly via: {
|
|
9
12
|
readonly kind: 'via';
|
|
10
|
-
readonly publication:
|
|
13
|
+
readonly publication: PublicationRef;
|
|
11
14
|
readonly issuer: IssuerId;
|
|
12
15
|
};
|
|
13
16
|
}
|
|
14
|
-
export interface
|
|
15
|
-
readonly kind: 'redirect';
|
|
16
|
-
readonly id: RequestId;
|
|
17
|
+
export interface Redirection {
|
|
17
18
|
readonly route: Route;
|
|
18
19
|
readonly credential?: string;
|
|
19
20
|
/** Ephemeral one-hop correlation hint; never cached or treated as authority. */
|
|
20
21
|
readonly trace?: Trace;
|
|
21
22
|
}
|
|
23
|
+
export interface RedirectResponse {
|
|
24
|
+
readonly kind: 'redirect';
|
|
25
|
+
readonly requestId: RequestId;
|
|
26
|
+
readonly invocation: InvocationId;
|
|
27
|
+
readonly redirect: Redirection;
|
|
28
|
+
}
|
|
22
29
|
export interface RemoteBindingInput {
|
|
23
|
-
readonly endpoint:
|
|
30
|
+
readonly endpoint: InvocationEndpoints;
|
|
24
31
|
readonly issuer: IssuerId;
|
|
25
32
|
readonly subject: string;
|
|
26
|
-
readonly revision:
|
|
27
|
-
readonly etag:
|
|
33
|
+
readonly revision: PublicationRef['revision'];
|
|
34
|
+
readonly etag: Etag;
|
|
28
35
|
}
|
|
29
36
|
export declare function acceptRoute(input: unknown): Route;
|
|
30
37
|
/** Project one semantic remote binding into its admitted protocol route representation. */
|
|
31
38
|
export declare function remoteRoute(origin: Key.Origin, binding: RemoteBindingInput, issuer: IssuerId): Route;
|
|
32
|
-
export declare function
|
|
33
|
-
|
|
39
|
+
export declare function acceptRedirection(input: unknown): Redirection;
|
|
40
|
+
export declare function decodeRedirectResponse(input: unknown): RedirectResponse;
|