@astrale-os/kernel-protocol 0.5.0-beta.7 → 0.5.0-beta.70
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/dist/artifact/index.d.ts +1 -2
- package/dist/artifact/index.js +1 -2
- package/dist/artifact/ref.d.ts +2 -1
- package/dist/artifact/ref.js +4 -4
- package/dist/codecs/codec.d.ts +0 -1
- package/dist/codecs/codec.js +0 -1
- package/dist/codecs/index.d.ts +1 -3
- package/dist/codecs/index.js +1 -3
- package/dist/codecs/json.d.ts +0 -1
- package/dist/codecs/json.js +0 -1
- package/dist/codecs/media-types.d.ts +0 -2
- package/dist/codecs/media-types.js +0 -2
- 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 +1 -1
- package/dist/errors/index.js +1 -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/errors/retry.d.ts +23 -0
- package/dist/errors/retry.js +44 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/invocation/admission.d.ts +2 -3
- package/dist/invocation/admission.js +7 -11
- package/dist/invocation/binary.d.ts +1 -1
- package/dist/invocation/binary.js +21 -5
- package/dist/invocation/binding-codecs.d.ts +1 -2
- package/dist/invocation/binding-codecs.js +1 -7
- package/dist/invocation/cancellation.d.ts +0 -1
- package/dist/invocation/cancellation.js +0 -1
- package/dist/invocation/correlation.d.ts +0 -1
- package/dist/invocation/correlation.js +0 -1
- package/dist/invocation/delegate.d.ts +1 -11
- package/dist/invocation/delegate.js +4 -19
- package/dist/invocation/http/binary.d.ts +3 -2
- package/dist/invocation/http/binary.js +6 -2
- package/dist/invocation/http/index.d.ts +2 -2
- package/dist/invocation/http/index.js +2 -2
- package/dist/invocation/http/negotiation.d.ts +0 -1
- package/dist/invocation/http/negotiation.js +3 -11
- package/dist/invocation/http/request.d.ts +9 -0
- package/dist/invocation/http/request.js +61 -0
- 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 +0 -1
- package/dist/invocation/identity.js +0 -1
- package/dist/invocation/index.d.ts +6 -4
- package/dist/invocation/index.js +5 -4
- package/dist/invocation/legacy/index.d.ts +29 -0
- package/dist/invocation/legacy/index.js +28 -0
- package/dist/invocation/legacy/route.d.ts +14 -0
- package/dist/invocation/legacy/route.js +25 -0
- package/dist/invocation/legacy/via.d.ts +30 -0
- package/dist/invocation/legacy/via.js +15 -0
- package/dist/invocation/miss.d.ts +0 -1
- package/dist/invocation/miss.js +0 -1
- package/dist/invocation/redirect.d.ts +15 -13
- package/dist/invocation/redirect.js +9 -22
- package/dist/invocation/request.d.ts +0 -1
- package/dist/invocation/request.js +2 -3
- package/dist/invocation/response.d.ts +0 -1
- package/dist/invocation/response.js +0 -1
- package/dist/invocation/routing.d.ts +19 -6
- package/dist/invocation/routing.js +50 -21
- package/dist/invocation/schema.d.ts +6 -5
- package/dist/invocation/schema.js +5 -12
- package/dist/invocation/service-reason.d.ts +21 -17
- package/dist/invocation/service-reason.js +27 -20
- package/dist/invocation/stale-route.d.ts +1 -2
- package/dist/invocation/stale-route.js +0 -1
- package/dist/invocation/stream.d.ts +0 -1
- package/dist/invocation/stream.js +0 -1
- package/dist/invocation/target.d.ts +5 -3
- package/dist/invocation/target.js +25 -4
- 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 +1 -1
- package/dist/invocation/websocket/index.d.ts +1 -2
- package/dist/invocation/websocket/index.js +1 -2
- package/dist/invocation/websocket/subprotocol.d.ts +1 -3
- package/dist/invocation/websocket/subprotocol.js +3 -5
- package/dist/issuer/claims.d.ts +7 -0
- package/dist/issuer/claims.js +7 -0
- package/dist/issuer/configuration.d.ts +0 -1
- 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 +0 -1
- package/dist/issuer/hosted.js +0 -1
- package/dist/issuer/index.d.ts +2 -1
- package/dist/issuer/index.js +2 -1
- package/dist/issuer/key-set.d.ts +0 -1
- package/dist/issuer/key-set.js +0 -1
- package/dist/issuer/paths.d.ts +2 -1
- package/dist/issuer/paths.js +1 -1
- package/dist/issuer/url.d.ts +0 -1
- package/dist/issuer/url.js +0 -1
- package/dist/issuer/workflow-engine.d.ts +18 -0
- package/dist/issuer/workflow-engine.js +59 -0
- package/dist/{publication → release}/bindings/callable.d.ts +0 -1
- package/dist/release/bindings/callable.js +34 -0
- package/dist/{publication → release}/bindings/index.d.ts +1 -2
- package/dist/{publication → release}/bindings/index.js +0 -1
- package/dist/{publication → release}/bindings/invocation.d.ts +0 -1
- package/dist/release/bindings/invocation.js +13 -0
- package/dist/release/bindings/view.d.ts +16 -0
- package/dist/release/bindings/view.js +148 -0
- package/dist/release/build.d.ts +6 -0
- package/dist/release/build.js +7 -0
- package/dist/release/bundle-admission.d.ts +21 -0
- package/dist/release/bundle-admission.js +66 -0
- package/dist/{publication → release}/bundle-descriptor.d.ts +0 -1
- package/dist/release/bundle-descriptor.js +19 -0
- package/dist/release/bundle-evidence.d.ts +3 -0
- package/dist/release/bundle-evidence.js +13 -0
- package/dist/release/bundle.d.ts +12 -0
- package/dist/{publication → release}/bundle.js +16 -11
- package/dist/{publication → release}/declaration.d.ts +0 -1
- package/dist/release/declaration.js +1 -0
- package/dist/{publication → release}/delivery/attestation.d.ts +1 -1
- package/dist/{publication → release}/delivery/attestation.js +0 -1
- package/dist/release/delivery/claims.d.ts +21 -0
- package/dist/release/delivery/claims.js +68 -0
- package/dist/release/delivery/delivery.d.ts +11 -0
- package/dist/release/delivery/delivery.js +24 -0
- package/dist/{publication → release}/delivery/error.d.ts +2 -1
- package/dist/{publication → release}/delivery/error.js +1 -1
- package/dist/{publication → release}/delivery/index.d.ts +6 -2
- package/dist/{publication → release}/delivery/index.js +5 -1
- package/dist/{publication → release}/delivery/limits.d.ts +2 -2
- package/dist/release/delivery/limits.js +5 -0
- package/dist/release/delivery/request.d.ts +21 -0
- package/dist/release/delivery/request.js +60 -0
- package/dist/{publication → release}/delivery-declaration.d.ts +0 -1
- package/dist/{publication → release}/delivery-declaration.js +4 -5
- package/dist/{publication → release}/delivery-endpoint.d.ts +0 -1
- package/dist/release/delivery-endpoint.js +22 -0
- package/dist/release/digest.d.ts +13 -0
- package/dist/{publication/etag.js → release/digest.js} +1 -7
- package/dist/release/error.d.ts +7 -0
- package/dist/release/error.js +11 -0
- package/dist/release/index.d.ts +21 -0
- package/dist/release/index.js +14 -0
- package/dist/release/issuer.d.ts +5 -0
- package/dist/release/issuer.js +34 -0
- package/dist/release/legacy/bindings.d.ts +14 -0
- package/dist/release/legacy/bindings.js +11 -0
- package/dist/release/legacy/bundle-admission.d.ts +6 -0
- package/dist/release/legacy/bundle-admission.js +10 -0
- package/dist/release/legacy/bundle-evidence.d.ts +8 -0
- package/dist/release/legacy/bundle-evidence.js +11 -0
- package/dist/release/legacy/bundle.d.ts +24 -0
- package/dist/release/legacy/bundle.js +31 -0
- package/dist/release/legacy/delivery/attestation.d.ts +6 -0
- package/dist/release/legacy/delivery/attestation.js +1 -0
- package/dist/{publication → release/legacy}/delivery/claims.d.ts +10 -2
- package/dist/{publication → release/legacy}/delivery/claims.js +7 -3
- package/dist/release/legacy/delivery/delivery.d.ts +18 -0
- package/dist/{publication → release/legacy}/delivery/delivery.js +6 -3
- package/dist/release/legacy/delivery/error.d.ts +16 -0
- package/dist/release/legacy/delivery/error.js +6 -0
- package/dist/release/legacy/delivery/index.d.ts +13 -0
- package/dist/release/legacy/delivery/index.js +13 -0
- package/dist/release/legacy/delivery/limits.d.ts +21 -0
- package/dist/release/legacy/delivery/limits.js +22 -0
- package/dist/release/legacy/delivery/request.d.ts +26 -0
- package/dist/{publication → release/legacy}/delivery/request.js +8 -4
- package/dist/release/legacy/delivery-declaration.d.ts +9 -0
- package/dist/release/legacy/delivery-declaration.js +11 -0
- package/dist/release/legacy/error.d.ts +26 -0
- package/dist/release/legacy/error.js +114 -0
- package/dist/release/legacy/etag.d.ts +12 -0
- package/dist/release/legacy/etag.js +14 -0
- package/dist/release/legacy/index.d.ts +75 -0
- package/dist/release/legacy/index.js +15 -0
- package/dist/release/legacy/profiles.d.ts +23 -0
- package/dist/release/legacy/profiles.js +36 -0
- package/dist/release/legacy/projection.d.ts +13 -0
- package/dist/release/legacy/projection.js +25 -0
- package/dist/release/legacy/publication.d.ts +90 -0
- package/dist/release/legacy/publication.js +124 -0
- package/dist/release/legacy/reference.d.ts +47 -0
- package/dist/{publication → release/legacy}/reference.js +27 -4
- package/dist/release/legacy/requirements.d.ts +30 -0
- package/dist/release/legacy/requirements.js +20 -0
- package/dist/{publication → release}/manifest.d.ts +2 -3
- package/dist/release/manifest.js +30 -0
- package/dist/release/reference.d.ts +26 -0
- package/dist/release/reference.js +70 -0
- package/dist/release/release.d.ts +60 -0
- package/dist/release/release.js +123 -0
- package/dist/release/requirements.d.ts +41 -0
- package/dist/release/requirements.js +306 -0
- package/dist/{publication → release}/route.d.ts +0 -1
- package/dist/{publication → release}/route.js +24 -25
- package/dist/{publication → release}/schema.d.ts +1 -2
- package/dist/{publication → release}/schema.js +4 -5
- package/dist/release/served.d.ts +26 -0
- package/dist/release/served.js +65 -0
- package/dist/release/shape.d.ts +8 -0
- package/dist/{publication/content.js → release/shape.js} +0 -1
- package/dist/routes/admission.d.ts +1 -2
- package/dist/routes/admission.js +7 -86
- package/dist/routes/binding.d.ts +4 -5
- package/dist/routes/binding.js +11 -22
- package/dist/routes/collision.d.ts +0 -1
- package/dist/routes/collision.js +0 -1
- package/dist/routes/compiler.d.ts +4 -5
- package/dist/routes/compiler.js +20 -13
- package/dist/routes/credential.d.ts +12 -2
- package/dist/routes/credential.js +11 -4
- package/dist/routes/decode.d.ts +6 -4
- package/dist/routes/decode.js +32 -30
- package/dist/routes/deployment-retired.d.ts +30 -0
- package/dist/routes/deployment-retired.js +96 -0
- package/dist/routes/encode.d.ts +2 -3
- package/dist/routes/encode.js +22 -20
- package/dist/routes/entries.d.ts +23 -0
- package/dist/routes/entries.js +150 -0
- 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 +4 -5
- package/dist/routes/evidence.js +8 -34
- package/dist/routes/header.d.ts +9 -0
- package/dist/routes/header.js +34 -0
- package/dist/routes/index.d.ts +5 -3
- package/dist/routes/index.js +5 -3
- package/dist/routes/legacy/index.d.ts +29 -0
- package/dist/routes/legacy/index.js +29 -0
- package/dist/routes/legacy/routing.d.ts +24 -0
- package/dist/routes/legacy/routing.js +45 -0
- package/dist/routes/legacy/table.d.ts +34 -0
- package/dist/routes/legacy/table.js +50 -0
- package/dist/routes/mapping.d.ts +1 -2
- package/dist/routes/mapping.js +4 -5
- package/dist/routes/match.d.ts +1 -2
- package/dist/routes/match.js +0 -1
- package/dist/routes/placement.d.ts +2 -3
- package/dist/routes/placement.js +1 -2
- package/dist/routes/plan.d.ts +6 -6
- package/dist/routes/plan.js +0 -1
- package/dist/routes/request.d.ts +5 -4
- package/dist/routes/request.js +0 -1
- package/dist/routes/reservation.d.ts +4 -3
- package/dist/routes/reservation.js +10 -4
- package/dist/routes/routing.d.ts +30 -7
- package/dist/routes/routing.js +34 -50
- package/dist/routes/scalar.d.ts +3 -4
- package/dist/routes/scalar.js +5 -6
- package/dist/routes/select.d.ts +1 -2
- package/dist/routes/select.js +0 -1
- package/dist/routes/stream.d.ts +0 -1
- package/dist/routes/stream.js +0 -1
- package/dist/routes/table.d.ts +3 -3
- package/dist/routes/table.js +0 -1
- package/dist/routes/target.d.ts +5 -1
- package/dist/routes/target.js +16 -1
- package/dist/routes/template.d.ts +0 -1
- package/dist/routes/template.js +0 -1
- package/dist/runtime/artifact.d.ts +8 -7
- package/dist/runtime/artifact.js +23 -11
- package/dist/runtime/index.d.ts +1 -2
- package/dist/runtime/index.js +1 -2
- package/dist/schema/index.d.ts +0 -1
- package/dist/schema/index.js +0 -1
- package/dist/schema/installation/codec.d.ts +9 -0
- package/dist/schema/installation/codec.js +74 -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 +14 -3
- package/dist/schema/installation/introspection/codec.js +323 -194
- 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 +96 -23
- package/dist/schema/installation/introspection/result.js +0 -1
- package/dist/schema/installation/legacy/index.d.ts +39 -0
- package/dist/schema/installation/legacy/index.js +39 -0
- package/dist/schema/installation/legacy/installation.d.ts +9 -0
- package/dist/schema/installation/legacy/installation.js +28 -0
- package/dist/schema/installation/legacy/introspection.d.ts +10 -0
- package/dist/schema/installation/legacy/introspection.js +70 -0
- package/dist/schema/installation/legacy/msgpack.d.ts +1 -0
- package/dist/schema/installation/legacy/msgpack.js +143 -0
- package/dist/schema/installation/result.d.ts +9 -0
- package/dist/schema/installation/result.js +1 -0
- package/package.json +78 -37
- 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 +0 -5
- package/dist/codecs/msgpack.d.ts.map +0 -1
- package/dist/codecs/msgpack.js +0 -51
- 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/identity.d.ts.map +0 -1
- package/dist/invocation/identity.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 +0 -32
- 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 +0 -14
- package/dist/publication/bindings/invocation.js.map +0 -1
- package/dist/publication/bindings/view.d.ts +0 -8
- package/dist/publication/bindings/view.d.ts.map +0 -1
- package/dist/publication/bindings/view.js +0 -29
- package/dist/publication/bindings/view.js.map +0 -1
- package/dist/publication/bundle-admission.d.ts +0 -5
- package/dist/publication/bundle-admission.d.ts.map +0 -1
- package/dist/publication/bundle-admission.js +0 -66
- package/dist/publication/bundle-admission.js.map +0 -1
- package/dist/publication/bundle-descriptor.d.ts.map +0 -1
- package/dist/publication/bundle-descriptor.js +0 -20
- package/dist/publication/bundle-descriptor.js.map +0 -1
- package/dist/publication/bundle-evidence.d.ts +0 -4
- package/dist/publication/bundle-evidence.d.ts.map +0 -1
- package/dist/publication/bundle-evidence.js +0 -14
- package/dist/publication/bundle-evidence.js.map +0 -1
- package/dist/publication/bundle.d.ts +0 -10
- package/dist/publication/bundle.d.ts.map +0 -1
- package/dist/publication/bundle.js.map +0 -1
- package/dist/publication/content.d.ts +0 -11
- package/dist/publication/content.d.ts.map +0 -1
- package/dist/publication/content.js.map +0 -1
- package/dist/publication/declaration.d.ts.map +0 -1
- package/dist/publication/declaration.js +0 -2
- package/dist/publication/declaration.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 +0 -10
- 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 +0 -5
- package/dist/publication/delivery/limits.js.map +0 -1
- package/dist/publication/delivery/request.d.ts +0 -16
- package/dist/publication/delivery/request.d.ts.map +0 -1
- package/dist/publication/delivery/request.js.map +0 -1
- package/dist/publication/delivery-declaration.d.ts.map +0 -1
- package/dist/publication/delivery-declaration.js.map +0 -1
- package/dist/publication/delivery-endpoint.d.ts.map +0 -1
- package/dist/publication/delivery-endpoint.js +0 -23
- package/dist/publication/delivery-endpoint.js.map +0 -1
- package/dist/publication/error.d.ts +0 -8
- package/dist/publication/error.d.ts.map +0 -1
- package/dist/publication/error.js +0 -12
- package/dist/publication/error.js.map +0 -1
- package/dist/publication/etag.d.ts +0 -7
- package/dist/publication/etag.d.ts.map +0 -1
- package/dist/publication/etag.js.map +0 -1
- package/dist/publication/index.d.ts +0 -18
- package/dist/publication/index.d.ts.map +0 -1
- package/dist/publication/index.js +0 -11
- package/dist/publication/index.js.map +0 -1
- package/dist/publication/manifest.d.ts.map +0 -1
- package/dist/publication/manifest.js +0 -26
- package/dist/publication/manifest.js.map +0 -1
- package/dist/publication/publication.d.ts +0 -37
- package/dist/publication/publication.d.ts.map +0 -1
- package/dist/publication/publication.js +0 -131
- package/dist/publication/publication.js.map +0 -1
- package/dist/publication/reference.d.ts +0 -18
- package/dist/publication/reference.d.ts.map +0 -1
- package/dist/publication/reference.js.map +0 -1
- package/dist/publication/requirements.d.ts +0 -27
- package/dist/publication/requirements.d.ts.map +0 -1
- package/dist/publication/requirements.js +0 -185
- 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/admission.d.ts.map +0 -1
- package/dist/routes/admission.js.map +0 -1
- package/dist/routes/binding.d.ts.map +0 -1
- package/dist/routes/binding.js.map +0 -1
- package/dist/routes/collision.d.ts.map +0 -1
- package/dist/routes/collision.js.map +0 -1
- package/dist/routes/compiler.d.ts.map +0 -1
- package/dist/routes/compiler.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/evidence.d.ts.map +0 -1
- package/dist/routes/evidence.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/placement.d.ts.map +0 -1
- package/dist/routes/placement.js.map +0 -1
- package/dist/routes/plan.d.ts.map +0 -1
- package/dist/routes/plan.js.map +0 -1
- package/dist/routes/release-unavailable.d.ts +0 -9
- package/dist/routes/release-unavailable.d.ts.map +0 -1
- package/dist/routes/release-unavailable.js +0 -33
- package/dist/routes/release-unavailable.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/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/table.d.ts.map +0 -1
- package/dist/routes/table.js.map +0 -1
- package/dist/routes/target.d.ts.map +0 -1
- package/dist/routes/target.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/routes/mapping.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { HttpRoute } from '../
|
|
1
|
+
import type { HttpRoute } from '../release/route.js';
|
|
2
2
|
export declare function validateMapping(route: HttpRoute, fields: readonly string[] | undefined, instanceMethod: boolean): void;
|
|
3
3
|
export declare function validateWireMapping(route: HttpRoute): void;
|
|
4
4
|
export declare function validateCredentialMapping(route: HttpRoute): void;
|
|
5
5
|
export declare function isReservedHeader(input: string): boolean;
|
|
6
|
-
//# sourceMappingURL=mapping.d.ts.map
|
package/dist/routes/mapping.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HTTP_IDEMPOTENCY_KEY } from '../invocation/index.js';
|
|
2
2
|
import { credentialSources } from './credential.js';
|
|
3
|
+
import { HTTP_DEPLOYMENT_RETIRED } from './deployment-retired.js';
|
|
3
4
|
import { fail } from './error.js';
|
|
4
|
-
import {
|
|
5
|
-
import { HTTP_ROUTE_ISSUER, HTTP_ROUTE_MISS, HTTP_ROUTE_PUBLICATION, HTTP_ROUTE_STALE, } from './routing.js';
|
|
5
|
+
import { HTTP_ROUTE_DIGEST, HTTP_ROUTE_ISSUER, HTTP_ROUTE_MISS, HTTP_ROUTE_STALE, } from './routing.js';
|
|
6
6
|
import { PLACEHOLDER } from './template.js';
|
|
7
7
|
export function validateMapping(route, fields, instanceMethod) {
|
|
8
8
|
if (fields === undefined) {
|
|
@@ -110,10 +110,10 @@ export function validateCredentialMapping(route) {
|
|
|
110
110
|
}
|
|
111
111
|
const RESERVED_HEADERS = new Set([
|
|
112
112
|
HTTP_IDEMPOTENCY_KEY,
|
|
113
|
+
HTTP_DEPLOYMENT_RETIRED,
|
|
114
|
+
HTTP_ROUTE_DIGEST,
|
|
113
115
|
HTTP_ROUTE_ISSUER,
|
|
114
116
|
HTTP_ROUTE_MISS,
|
|
115
|
-
HTTP_ROUTE_PUBLICATION,
|
|
116
|
-
HTTP_ROUTE_RELEASE_UNAVAILABLE,
|
|
117
117
|
HTTP_ROUTE_STALE,
|
|
118
118
|
]);
|
|
119
119
|
export function isReservedHeader(input) {
|
|
@@ -124,4 +124,3 @@ function uniqueWires(route, kind, wires) {
|
|
|
124
124
|
fail('NATIVE_ROUTE_MAPPING_AMBIGUOUS', `Route ${route.name} maps one ${kind} wire source more than once.`);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
//# sourceMappingURL=mapping.js.map
|
package/dist/routes/match.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { HttpRequest } from './request.js';
|
|
2
2
|
import type { Route, Table } from './table.js';
|
|
3
|
-
export declare function match(table: Table, request: Pick<HttpRequest, 'url' | 'method'>): Route | undefined;
|
|
3
|
+
export declare function match(table: Pick<Table, 'entries'>, request: Pick<HttpRequest, 'url' | 'method'>): Route | undefined;
|
|
4
4
|
export declare function methodMatches(entry: Route, method: string): boolean;
|
|
5
|
-
//# sourceMappingURL=match.d.ts.map
|
package/dist/routes/match.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { HttpRoute } from '../release/route.js';
|
|
2
2
|
import type { Plan } from './plan.js';
|
|
3
3
|
/** Resolve a provider-neutral Plan beneath one exact serving issuer. */
|
|
4
|
-
export declare function place(plan: Plan, issuer: string): readonly
|
|
4
|
+
export declare function place(plan: Plan, issuer: string): readonly HttpRoute[];
|
|
5
5
|
export declare function placePath(path: string, issuer: string): string;
|
|
6
|
-
//# sourceMappingURL=placement.d.ts.map
|
package/dist/routes/placement.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Resolve a provider-neutral Plan beneath one exact serving issuer. */
|
|
2
2
|
export function place(plan, issuer) {
|
|
3
3
|
return Object.freeze(plan.entries.map((entry) => {
|
|
4
|
-
const { path, target,
|
|
4
|
+
const { path, target, auth: _auth, output: _output, default: isDefault, ...wire } = entry;
|
|
5
5
|
return Object.freeze({
|
|
6
6
|
...wire,
|
|
7
7
|
href: placePath(path, issuer),
|
|
@@ -16,4 +16,3 @@ export function placePath(path, issuer) {
|
|
|
16
16
|
const base = new URL(issuer);
|
|
17
17
|
return `${base.origin}${path}`;
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=placement.js.map
|
package/dist/routes/plan.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type { Key,
|
|
2
|
-
import type {
|
|
1
|
+
import type { FunctionAuth, Key, Revision } from '@astrale-os/kernel-dsl/v1';
|
|
2
|
+
import type { OutputMode } from '@astrale-os/kernel-dsl/v1/language';
|
|
3
|
+
import type { CredentialSource, HttpMethod, RouteBody, RouteHeaders } from '../release/route.js';
|
|
3
4
|
import type { RouteTarget } from './target.js';
|
|
4
5
|
export interface PlanEntry {
|
|
5
6
|
readonly name: string;
|
|
6
7
|
readonly callable: Key.Callable;
|
|
7
8
|
readonly target: RouteTarget;
|
|
8
|
-
readonly
|
|
9
|
-
readonly output:
|
|
9
|
+
readonly auth: FunctionAuth;
|
|
10
|
+
readonly output: OutputMode;
|
|
10
11
|
readonly path: string;
|
|
11
12
|
readonly method: HttpMethod;
|
|
12
13
|
readonly requestMethod?: string;
|
|
@@ -18,7 +19,6 @@ export interface PlanEntry {
|
|
|
18
19
|
}
|
|
19
20
|
export interface Plan {
|
|
20
21
|
readonly origin: Key.Origin;
|
|
21
|
-
readonly revision:
|
|
22
|
+
readonly revision: Revision;
|
|
22
23
|
readonly entries: readonly PlanEntry[];
|
|
23
24
|
}
|
|
24
|
-
//# sourceMappingURL=plan.d.ts.map
|
package/dist/routes/plan.js
CHANGED
package/dist/routes/request.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Value } from '@astrale-os/kernel-dsl/value';
|
|
2
|
-
import type { Call, Via } from '../invocation/index.js';
|
|
3
|
-
import type { HttpMethod } from '../
|
|
2
|
+
import type { Call, PublicationVia, Via } from '../invocation/index.js';
|
|
3
|
+
import type { HttpMethod } from '../release/route.js';
|
|
4
4
|
/** Canonical invocation values presented to or returned from a native route mapping. */
|
|
5
5
|
export interface Invocation {
|
|
6
6
|
readonly call: Call;
|
|
7
7
|
readonly credential?: string;
|
|
8
|
-
|
|
8
|
+
/** The request channel that carried `credential`; `cookie` is ambient (CSRF-exposed). */
|
|
9
|
+
readonly credentialIn?: 'header' | 'cookie' | 'query';
|
|
10
|
+
readonly routing?: Via | PublicationVia;
|
|
9
11
|
readonly method?: Exclude<HttpMethod, '*'>;
|
|
10
12
|
}
|
|
11
13
|
export interface Request {
|
|
@@ -24,4 +26,3 @@ export interface HttpRequest {
|
|
|
24
26
|
export declare function bodyText(body: HttpRequest['body']): string;
|
|
25
27
|
export declare function parseJsonObject(body: HttpRequest['body']): Record<string, Value>;
|
|
26
28
|
export declare function normalizeHeaders(input: HttpRequest['headers']): Record<string, string>;
|
|
27
|
-
//# sourceMappingURL=request.d.ts.map
|
package/dist/routes/request.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DomainRelease } from '../release/release.js';
|
|
2
2
|
import type { Route } from './table.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** The fields of a served document that route binding reads, whichever document version it is. */
|
|
4
|
+
export type Placed = Pick<DomainRelease, 'origin' | 'identity' | 'schema' | 'bindings' | 'routes' | 'delivery'>;
|
|
5
|
+
export declare function rejectReserved(publication: Placed, entries: readonly Route[]): void;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as issuer from '../issuer/index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { bundleUrl } from '../release/bundle.js';
|
|
3
|
+
import { PATH as PUBLICATION_PATH } from '../release/legacy/publication.js';
|
|
4
|
+
import { PATH as RELEASE_PATH } from '../release/release.js';
|
|
3
5
|
import { fail } from './error.js';
|
|
4
6
|
import { templateUrl, templatesOverlap } from './template.js';
|
|
5
|
-
const STATIC_RESERVED_PATHS = new Set([PUBLICATION_PATH]);
|
|
7
|
+
const STATIC_RESERVED_PATHS = new Set([RELEASE_PATH, PUBLICATION_PATH]);
|
|
6
8
|
export function rejectReserved(publication, entries) {
|
|
7
9
|
const discovery = issuer.paths(publication.identity.issuer);
|
|
8
10
|
const reservedPaths = new Set([...STATIC_RESERVED_PATHS, discovery.configuration, discovery.keys]);
|
|
@@ -14,8 +16,13 @@ export function rejectReserved(publication, entries) {
|
|
|
14
16
|
...(endpoint.websocket === undefined ? [] : [httpUrlForWebSocket(endpoint.websocket)]),
|
|
15
17
|
]),
|
|
16
18
|
];
|
|
19
|
+
const addressed = bundleUrl(publication.identity.issuer, publication.schema.bundle.ref);
|
|
20
|
+
const bundlePattern = publication.schema.bundle.href === addressed
|
|
21
|
+
? `${addressed.slice(0, addressed.lastIndexOf('/') + 1)}{artifact}`
|
|
22
|
+
: undefined;
|
|
17
23
|
for (const entry of entries) {
|
|
18
|
-
const claimed =
|
|
24
|
+
const claimed = (bundlePattern !== undefined && templatesOverlap(entry.href, bundlePattern)) ||
|
|
25
|
+
[...reservedPaths].some((path) => templateClaimsPath(entry.href, path)) ||
|
|
19
26
|
reservedUrls.some((reserved) => templatesOverlap(entry.href, routeLocation(reserved)));
|
|
20
27
|
if (claimed) {
|
|
21
28
|
fail('NATIVE_ROUTE_RESERVED', `Route ${entry.name} claims reserved URL ${templateUrl(entry.href).href}.`);
|
|
@@ -35,4 +42,3 @@ function templateClaimsPath(template, path) {
|
|
|
35
42
|
const url = templateUrl(template);
|
|
36
43
|
return templatesOverlap(template, `${url.origin}${path}`);
|
|
37
44
|
}
|
|
38
|
-
//# sourceMappingURL=reservation.js.map
|
package/dist/routes/routing.d.ts
CHANGED
|
@@ -1,23 +1,46 @@
|
|
|
1
1
|
import type * as invocation from '../invocation/index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Sha256Digest } from '../release/digest.js';
|
|
3
|
+
import type { PublicationRef } from '../release/legacy/reference.js';
|
|
4
|
+
import type { ReleaseRef } from '../release/reference.js';
|
|
3
5
|
import type { HttpRequest } from './request.js';
|
|
4
6
|
export interface StaleControl {
|
|
5
7
|
readonly kind: 'stale';
|
|
6
|
-
|
|
8
|
+
/** Current Publication ETag; release-backed destinations report their frozen v3 projection's ETag. */
|
|
9
|
+
readonly current: Sha256Digest;
|
|
7
10
|
}
|
|
8
11
|
export interface MissControl {
|
|
9
12
|
readonly kind: 'miss';
|
|
10
13
|
}
|
|
11
|
-
|
|
14
|
+
/** The references one release-backed destination answers native routes for. */
|
|
15
|
+
export interface ServedReferences {
|
|
16
|
+
readonly release: ReleaseRef;
|
|
17
|
+
/**
|
|
18
|
+
* Reference of the frozen v3 projection the destination serves at `domain.json`, which a
|
|
19
|
+
* legacy native-route If-Match names by its Publication ETag.
|
|
20
|
+
*
|
|
21
|
+
* @deprecated Successor: the release digest in If-Match, emitted by the breaking release (AM-1).
|
|
22
|
+
*/
|
|
23
|
+
readonly projection: PublicationRef;
|
|
24
|
+
}
|
|
25
|
+
/** If-Match carries the routed digest of a native route request (`invocation.routedDigest`). */
|
|
26
|
+
export declare const HTTP_ROUTE_DIGEST: 'if-match';
|
|
12
27
|
export declare const HTTP_ROUTE_ISSUER: 'x-astrale-issuer';
|
|
13
28
|
export declare const HTTP_ROUTE_STALE: 'x-astrale-route-stale';
|
|
14
29
|
export declare const HTTP_ROUTE_STALE_STATUS: 412;
|
|
15
30
|
export declare const HTTP_ROUTE_MISS: 'x-astrale-route-miss';
|
|
16
31
|
export declare const HTTP_ROUTE_MISS_STATUS: 421;
|
|
17
|
-
|
|
18
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Decode the native routing pair of one request against the references a release-backed
|
|
34
|
+
* destination serves: an If-Match naming its release digest is a `Via`, one naming its projection
|
|
35
|
+
* ETag a legacy `PublicationVia`. An If-Match naming any other strong digest is stale whether or
|
|
36
|
+
* not the issuer header is present, as a Server answers before decoding; otherwise both headers
|
|
37
|
+
* are required. Stale reports the projection ETag as current, the legacy meaning every
|
|
38
|
+
* native-route value keeps until the breaking release (AM-1).
|
|
39
|
+
*/
|
|
40
|
+
export declare function decodeRouting(input: Pick<HttpRequest, 'headers'>, served: ServedReferences): invocation.Via | invocation.PublicationVia | StaleControl | undefined;
|
|
41
|
+
/** Emit the reserved stale header naming `current` (see `StaleControl.current`). */
|
|
42
|
+
export declare function staleHeaders(current: Sha256Digest): Readonly<Record<string, string>>;
|
|
19
43
|
export declare function decodeStale(status: number, headers: HttpRequest['headers']): StaleControl | undefined;
|
|
20
44
|
export declare function missHeaders(): Readonly<Record<string, string>>;
|
|
21
45
|
export declare function decodeMiss(status: number, headers: HttpRequest['headers']): MissControl | undefined;
|
|
22
|
-
export declare function encodeStrongEtag(input:
|
|
23
|
-
//# sourceMappingURL=routing.d.ts.map
|
|
46
|
+
export declare function encodeStrongEtag(input: Sha256Digest): string;
|
package/dist/routes/routing.js
CHANGED
|
@@ -1,36 +1,41 @@
|
|
|
1
|
-
import * as auth from '@astrale-os/kernel-core/auth';
|
|
2
1
|
import { fail } from './error.js';
|
|
3
|
-
|
|
2
|
+
import { acceptIssuerHeader, reservedHeader, strongDigest } from './header.js';
|
|
3
|
+
/** If-Match carries the routed digest of a native route request (`invocation.routedDigest`). */
|
|
4
|
+
export const HTTP_ROUTE_DIGEST = 'if-match';
|
|
4
5
|
export const HTTP_ROUTE_ISSUER = 'x-astrale-issuer';
|
|
5
6
|
export const HTTP_ROUTE_STALE = 'x-astrale-route-stale';
|
|
6
7
|
export const HTTP_ROUTE_STALE_STATUS = 412;
|
|
7
8
|
export const HTTP_ROUTE_MISS = 'x-astrale-route-miss';
|
|
8
9
|
export const HTTP_ROUTE_MISS_STATUS = 421;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Decode the native routing pair of one request against the references a release-backed
|
|
12
|
+
* destination serves: an If-Match naming its release digest is a `Via`, one naming its projection
|
|
13
|
+
* ETag a legacy `PublicationVia`. An If-Match naming any other strong digest is stale whether or
|
|
14
|
+
* not the issuer header is present, as a Server answers before decoding; otherwise both headers
|
|
15
|
+
* are required. Stale reports the projection ETag as current, the legacy meaning every
|
|
16
|
+
* native-route value keeps until the breaking release (AM-1).
|
|
17
|
+
*/
|
|
18
|
+
export function decodeRouting(input, served) {
|
|
19
|
+
const encodedDigest = reservedHeader(input.headers, HTTP_ROUTE_DIGEST);
|
|
20
|
+
const encodedIssuer = reservedHeader(input.headers, HTTP_ROUTE_ISSUER);
|
|
21
|
+
if (encodedDigest === undefined && encodedIssuer === undefined)
|
|
14
22
|
return undefined;
|
|
15
|
-
|
|
16
|
-
|
|
23
|
+
const named = encodedDigest === undefined ? undefined : strongDigest(encodedDigest);
|
|
24
|
+
if (named !== undefined && named !== served.release.digest && named !== served.projection.etag) {
|
|
25
|
+
return Object.freeze({ kind: 'stale', current: served.projection.etag });
|
|
17
26
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
fail('NATIVE_ROUTE_ROUTING_INVALID', 'If-Match does not name the compiled Publication.');
|
|
27
|
+
if (encodedDigest === undefined || encodedIssuer === undefined) {
|
|
28
|
+
fail('NATIVE_ROUTE_ROUTING_INVALID', `${HTTP_ROUTE_DIGEST} and ${HTTP_ROUTE_ISSUER} must occur together.`);
|
|
21
29
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
issuer = auth.issuer.accept(encodedIssuer);
|
|
30
|
+
if (named === undefined) {
|
|
31
|
+
fail('NATIVE_ROUTE_ROUTING_INVALID', 'If-Match must contain exactly one strong quoted digest.');
|
|
25
32
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
throw cause;
|
|
31
|
-
}
|
|
32
|
-
return Object.freeze({ kind: 'via', publication, issuer });
|
|
33
|
+
const issuer = acceptIssuerHeader(encodedIssuer, HTTP_ROUTE_ISSUER);
|
|
34
|
+
return named === served.release.digest
|
|
35
|
+
? Object.freeze({ kind: 'via', release: served.release, issuer })
|
|
36
|
+
: Object.freeze({ kind: 'via', publication: served.projection, issuer });
|
|
33
37
|
}
|
|
38
|
+
/** Emit the reserved stale header naming `current` (see `StaleControl.current`). */
|
|
34
39
|
export function staleHeaders(current) {
|
|
35
40
|
return Object.freeze({
|
|
36
41
|
[HTTP_ROUTE_STALE]: encodeStrongEtag(current),
|
|
@@ -38,22 +43,23 @@ export function staleHeaders(current) {
|
|
|
38
43
|
});
|
|
39
44
|
}
|
|
40
45
|
export function decodeStale(status, headers) {
|
|
41
|
-
const encoded =
|
|
46
|
+
const encoded = reservedHeader(headers, HTTP_ROUTE_STALE);
|
|
42
47
|
if (encoded === undefined)
|
|
43
48
|
return undefined;
|
|
44
49
|
if (status !== HTTP_ROUTE_STALE_STATUS) {
|
|
45
50
|
fail('NATIVE_ROUTE_ROUTING_INVALID', `Header ${HTTP_ROUTE_STALE} is reserved for status ${HTTP_ROUTE_STALE_STATUS}.`);
|
|
46
51
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
52
|
+
const current = strongDigest(encoded);
|
|
53
|
+
if (current === undefined) {
|
|
54
|
+
fail('NATIVE_ROUTE_ROUTING_INVALID', `${HTTP_ROUTE_STALE} must contain exactly one strong quoted digest.`);
|
|
55
|
+
}
|
|
56
|
+
return Object.freeze({ kind: 'stale', current });
|
|
51
57
|
}
|
|
52
58
|
export function missHeaders() {
|
|
53
59
|
return Object.freeze({ [HTTP_ROUTE_MISS]: '1', 'cache-control': 'no-store' });
|
|
54
60
|
}
|
|
55
61
|
export function decodeMiss(status, headers) {
|
|
56
|
-
const encoded =
|
|
62
|
+
const encoded = reservedHeader(headers, HTTP_ROUTE_MISS);
|
|
57
63
|
if (encoded === undefined)
|
|
58
64
|
return undefined;
|
|
59
65
|
if (status !== HTTP_ROUTE_MISS_STATUS || encoded !== '1') {
|
|
@@ -64,25 +70,3 @@ export function decodeMiss(status, headers) {
|
|
|
64
70
|
export function encodeStrongEtag(input) {
|
|
65
71
|
return `"${input}"`;
|
|
66
72
|
}
|
|
67
|
-
function decodeStrongEtag(input, label) {
|
|
68
|
-
const matched = STRONG_ETAG.exec(input);
|
|
69
|
-
if (matched === null) {
|
|
70
|
-
fail('NATIVE_ROUTE_ROUTING_INVALID', `${label} must contain exactly one strong quoted Publication ETag.`);
|
|
71
|
-
}
|
|
72
|
-
return matched[1];
|
|
73
|
-
}
|
|
74
|
-
function routingHeader(input, name) {
|
|
75
|
-
if (input instanceof Headers)
|
|
76
|
-
return input.get(name) ?? undefined;
|
|
77
|
-
let found;
|
|
78
|
-
for (const [candidate, value] of Object.entries(input ?? {})) {
|
|
79
|
-
if (candidate.toLowerCase() !== name || value === undefined)
|
|
80
|
-
continue;
|
|
81
|
-
if (found !== undefined || (Array.isArray(value) && value.length !== 1)) {
|
|
82
|
-
fail('NATIVE_ROUTE_ROUTING_INVALID', `Header ${name} must occur at most once.`);
|
|
83
|
-
}
|
|
84
|
-
found = typeof value === 'string' ? value : value[0];
|
|
85
|
-
}
|
|
86
|
-
return found;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=routing.js.map
|
package/dist/routes/scalar.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Domain } from '@astrale-os/kernel-dsl/v1';
|
|
2
2
|
import type * as portable from '@astrale-os/kernel-dsl/value';
|
|
3
3
|
import type { Route } from './table.js';
|
|
4
|
-
export declare function encodeScalar(entry: Route, name: string, value: unknown,
|
|
5
|
-
export declare function decodeScalar(entry: Route, name: string, encoded: string,
|
|
4
|
+
export declare function encodeScalar(entry: Route, name: string, value: unknown, domain: Domain): string;
|
|
5
|
+
export declare function decodeScalar(entry: Route, name: string, encoded: string, domain: Domain): portable.Value;
|
|
6
6
|
export declare function scalar(value: unknown): string;
|
|
7
7
|
export declare function asObject(value: unknown): Record<string, portable.Value>;
|
|
8
|
-
//# sourceMappingURL=scalar.d.ts.map
|
package/dist/routes/scalar.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { invalidRequest } from './error.js';
|
|
2
2
|
const JSON_NUMBER = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/u;
|
|
3
|
-
export function encodeScalar(entry, name, value,
|
|
3
|
+
export function encodeScalar(entry, name, value, domain) {
|
|
4
4
|
const encoded = scalar(value);
|
|
5
5
|
if (name === receiver(entry))
|
|
6
6
|
return encoded;
|
|
7
|
-
const decoded = decodeScalar(entry, name, encoded,
|
|
7
|
+
const decoded = decodeScalar(entry, name, encoded, domain);
|
|
8
8
|
if (!sameScalar(decoded, value)) {
|
|
9
9
|
invalidRequest(`Native route field ${name} does not round-trip through its declared value schema.`);
|
|
10
10
|
}
|
|
11
11
|
return encoded;
|
|
12
12
|
}
|
|
13
|
-
export function decodeScalar(entry, name, encoded,
|
|
13
|
+
export function decodeScalar(entry, name, encoded, domain) {
|
|
14
14
|
if (name === receiver(entry))
|
|
15
15
|
return encoded;
|
|
16
|
-
const meaning =
|
|
17
|
-
if (meaning?.
|
|
16
|
+
const meaning = domain.callable(entry.callable);
|
|
17
|
+
if (meaning?.inputFields?.includes(name) !== true) {
|
|
18
18
|
invalidRequest(`Native route maps unknown input field ${name}.`);
|
|
19
19
|
}
|
|
20
20
|
const candidates = [encoded];
|
|
@@ -59,4 +59,3 @@ function sameScalar(left, right) {
|
|
|
59
59
|
return (Object.is(left, right) ||
|
|
60
60
|
(typeof left === 'number' && typeof right === 'number' && left === 0 && right === 0));
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=scalar.js.map
|
package/dist/routes/select.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { Key } from '@astrale-os/kernel-dsl/v1';
|
|
2
2
|
import type { Route, Table } from './table.js';
|
|
3
|
-
export declare function select(table: Table, callable: Key.Callable, route?: string): Route | undefined;
|
|
4
|
-
//# sourceMappingURL=select.d.ts.map
|
|
3
|
+
export declare function select(table: Pick<Table, 'entries'>, callable: Key.Callable, route?: string): Route | undefined;
|
package/dist/routes/select.js
CHANGED
package/dist/routes/stream.d.ts
CHANGED
package/dist/routes/stream.js
CHANGED
package/dist/routes/table.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReleaseRef } from '../release/reference.js';
|
|
2
2
|
import type { PlanEntry } from './plan.js';
|
|
3
3
|
export interface Route extends Omit<PlanEntry, 'path'> {
|
|
4
4
|
readonly href: string;
|
|
5
5
|
}
|
|
6
|
+
/** Serving proof tied to one exact release and its resolved Domain. */
|
|
6
7
|
export interface Table {
|
|
7
|
-
readonly
|
|
8
|
+
readonly release: ReleaseRef;
|
|
8
9
|
readonly entries: readonly Route[];
|
|
9
10
|
}
|
|
10
|
-
//# sourceMappingURL=table.d.ts.map
|
package/dist/routes/table.js
CHANGED
package/dist/routes/target.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { Domain } from '@astrale-os/kernel-dsl/v1';
|
|
2
|
+
import type { Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
|
+
import type { MeaningFingerprint } from '@astrale-os/kernel-dsl/v1/schema/fingerprint';
|
|
1
4
|
export type RouteTarget = {
|
|
2
5
|
readonly kind: 'function';
|
|
3
6
|
} | {
|
|
@@ -11,4 +14,5 @@ export type RouteTarget = {
|
|
|
11
14
|
export declare function requiresReceiver(entry: {
|
|
12
15
|
readonly target: RouteTarget;
|
|
13
16
|
}): boolean;
|
|
14
|
-
|
|
17
|
+
/** Fingerprint of the route Domain's callable meaning, which every native route Target pins. */
|
|
18
|
+
export declare function routeFingerprint(domain: Pick<Domain, 'callable'>, callable: Key.Callable): MeaningFingerprint;
|
package/dist/routes/target.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
+
import { callableFingerprint } from '@astrale-os/kernel-dsl/v1/schema/fingerprint';
|
|
2
|
+
import { fail } from './error.js';
|
|
1
3
|
export function requiresReceiver(entry) {
|
|
2
4
|
return entry.target.kind === 'method' && entry.target.dispatch === 'instance';
|
|
3
5
|
}
|
|
4
|
-
|
|
6
|
+
const FINGERPRINTS = new WeakMap();
|
|
7
|
+
/** Fingerprint of the route Domain's callable meaning, which every native route Target pins. */
|
|
8
|
+
export function routeFingerprint(domain, callable) {
|
|
9
|
+
const meaning = domain.callable(callable);
|
|
10
|
+
if (meaning === undefined) {
|
|
11
|
+
fail('NATIVE_ROUTE_BINDING_INVALID', `Route callable ${callable} is absent from its Domain.`);
|
|
12
|
+
}
|
|
13
|
+
let fingerprint = FINGERPRINTS.get(meaning);
|
|
14
|
+
if (fingerprint === undefined) {
|
|
15
|
+
fingerprint = callableFingerprint(meaning);
|
|
16
|
+
FINGERPRINTS.set(meaning, fingerprint);
|
|
17
|
+
}
|
|
18
|
+
return fingerprint;
|
|
19
|
+
}
|
|
@@ -6,4 +6,3 @@ export declare function templatesOverlap(left: string, right: string): boolean;
|
|
|
6
6
|
export declare function matchTemplate(template: string, input: string): Record<string, string> | undefined;
|
|
7
7
|
export declare function encodeTemplate(value: unknown, catchall: string | undefined, host: boolean): string;
|
|
8
8
|
export declare function authorityEnd(input: string): number;
|
|
9
|
-
//# sourceMappingURL=template.d.ts.map
|
package/dist/routes/template.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
-
import type { Key,
|
|
2
|
+
import type { Key, Revision } from '@astrale-os/kernel-dsl/v1';
|
|
3
3
|
import type { Digest, Ref } from '../artifact/index.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { Requirements } from '../release/requirements.js';
|
|
5
5
|
export interface ExecutableDependency {
|
|
6
6
|
readonly path: string;
|
|
7
7
|
readonly ref: Ref;
|
|
@@ -24,20 +24,22 @@ export interface Export {
|
|
|
24
24
|
}
|
|
25
25
|
export interface Module {
|
|
26
26
|
readonly origin: Key.Origin;
|
|
27
|
-
readonly revision:
|
|
27
|
+
readonly revision: Revision;
|
|
28
28
|
readonly factory: Export;
|
|
29
29
|
readonly configuration: Ref | null;
|
|
30
30
|
}
|
|
31
31
|
/** Immutable portable closure selected by one local Schema installation source. */
|
|
32
32
|
export interface RuntimeArtifact {
|
|
33
33
|
readonly format: 'astrale.domain-runtime-artifact';
|
|
34
|
-
readonly version: 2;
|
|
34
|
+
readonly version: 2 | 3;
|
|
35
35
|
readonly issuer: IssuerId;
|
|
36
36
|
readonly bundle: Ref;
|
|
37
|
-
readonly requirements:
|
|
37
|
+
readonly requirements: Requirements;
|
|
38
38
|
readonly modules: readonly [Module, ...Module[]];
|
|
39
39
|
}
|
|
40
|
-
export declare const MEDIA_TYPE: 'application/vnd.astrale.domain-runtime+json;v=
|
|
40
|
+
export declare const MEDIA_TYPE: 'application/vnd.astrale.domain-runtime+json;v=3';
|
|
41
|
+
export declare const LEGACY_MEDIA_TYPE: 'application/vnd.astrale.domain-runtime+json;v=2';
|
|
42
|
+
export declare function mediaType(input: Pick<RuntimeArtifact, 'version'>): typeof MEDIA_TYPE | typeof LEGACY_MEDIA_TYPE;
|
|
41
43
|
export declare function accept(input: unknown): RuntimeArtifact;
|
|
42
44
|
export declare function encode(input: RuntimeArtifact): Uint8Array;
|
|
43
45
|
export declare function runtimeDigest(input: RuntimeArtifact): Digest;
|
|
@@ -45,4 +47,3 @@ export declare function acceptExecutable(input: unknown): Executable;
|
|
|
45
47
|
export declare function executableDigest(input: Omit<Executable, 'digest'>): Digest;
|
|
46
48
|
export declare function executableClosure(input: readonly ExecutableDependency[]): Digest;
|
|
47
49
|
export type { Digest, Ref };
|
|
48
|
-
//# sourceMappingURL=artifact.d.ts.map
|
package/dist/runtime/artifact.js
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
-
import {
|
|
2
|
+
import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
3
|
import * as portable from '@astrale-os/kernel-dsl/value';
|
|
4
4
|
import { sha256 } from '@noble/hashes/sha2.js';
|
|
5
5
|
import * as artifact from '../artifact/index.js';
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import { decodeLegacyRequirements, encodeLegacyRequirements } from '../release/legacy/profiles.js';
|
|
7
|
+
import { admitRequirements } from '../release/legacy/requirements.js';
|
|
8
|
+
export const MEDIA_TYPE = 'application/vnd.astrale.domain-runtime+json;v=3';
|
|
9
|
+
export const LEGACY_MEDIA_TYPE = 'application/vnd.astrale.domain-runtime+json;v=2';
|
|
10
|
+
export function mediaType(input) {
|
|
11
|
+
return input.version === 2 ? LEGACY_MEDIA_TYPE : MEDIA_TYPE;
|
|
12
|
+
}
|
|
8
13
|
export function accept(input) {
|
|
9
14
|
const root = record(input, 'Domain Runtime artifact');
|
|
10
15
|
exact(root, ['bundle', 'format', 'issuer', 'modules', 'requirements', 'version']);
|
|
11
|
-
if (root.format !== 'astrale.domain-runtime-artifact' ||
|
|
16
|
+
if (root.format !== 'astrale.domain-runtime-artifact' ||
|
|
17
|
+
(root.version !== 2 && root.version !== 3)) {
|
|
12
18
|
invalid('Domain Runtime artifact format or version is unsupported.');
|
|
13
19
|
}
|
|
14
20
|
if (typeof root.issuer !== 'string')
|
|
15
21
|
invalid('Domain Runtime artifact issuer is invalid.');
|
|
16
22
|
const admittedIssuer = acceptIssuer(root.issuer);
|
|
17
23
|
const bundle = artifact.accept(root.bundle);
|
|
18
|
-
const requirements =
|
|
24
|
+
const requirements = root.version === 2
|
|
25
|
+
? decodeLegacyRequirements(root.requirements)
|
|
26
|
+
: admitRequirements(root.requirements);
|
|
19
27
|
if (!Array.isArray(root.modules) || root.modules.length === 0) {
|
|
20
28
|
invalid('Domain Runtime artifact requires at least one Module.');
|
|
21
29
|
}
|
|
@@ -26,7 +34,7 @@ export function accept(input) {
|
|
|
26
34
|
}
|
|
27
35
|
return Object.freeze({
|
|
28
36
|
format: 'astrale.domain-runtime-artifact',
|
|
29
|
-
version:
|
|
37
|
+
version: root.version,
|
|
30
38
|
issuer: admittedIssuer,
|
|
31
39
|
bundle,
|
|
32
40
|
requirements,
|
|
@@ -34,10 +42,15 @@ export function accept(input) {
|
|
|
34
42
|
});
|
|
35
43
|
}
|
|
36
44
|
export function encode(input) {
|
|
37
|
-
return portable.json.encode(accept(input));
|
|
45
|
+
return portable.json.encode(wire(accept(wire(input))));
|
|
38
46
|
}
|
|
39
47
|
export function runtimeDigest(input) {
|
|
40
|
-
return digestBytes(portable.json.encode(input));
|
|
48
|
+
return digestBytes(portable.json.encode(wire(input)));
|
|
49
|
+
}
|
|
50
|
+
function wire(input) {
|
|
51
|
+
return input.version === 2
|
|
52
|
+
? { ...input, requirements: encodeLegacyRequirements(input.requirements) }
|
|
53
|
+
: input;
|
|
41
54
|
}
|
|
42
55
|
export function acceptExecutable(input) {
|
|
43
56
|
return executable(input, 0);
|
|
@@ -51,10 +64,10 @@ export function executableClosure(input) {
|
|
|
51
64
|
function module(input, index) {
|
|
52
65
|
const value = record(input, `Domain Runtime Module ${index}`);
|
|
53
66
|
exact(value, ['configuration', 'factory', 'origin', 'revision']);
|
|
54
|
-
if (typeof value.origin !== 'string' || !
|
|
67
|
+
if (typeof value.origin !== 'string' || !patterns.origin.test(value.origin)) {
|
|
55
68
|
invalid(`Domain Runtime Module ${index} origin is invalid.`);
|
|
56
69
|
}
|
|
57
|
-
if (typeof value.revision !== 'string' || !
|
|
70
|
+
if (typeof value.revision !== 'string' || !patterns.revision.test(value.revision)) {
|
|
58
71
|
invalid(`Domain Runtime Module ${index} revision is invalid.`);
|
|
59
72
|
}
|
|
60
73
|
const factory = executableExport(value.factory, index);
|
|
@@ -174,4 +187,3 @@ function exact(input, expected) {
|
|
|
174
187
|
function invalid(message) {
|
|
175
188
|
throw new TypeError(message);
|
|
176
189
|
}
|
|
177
|
-
//# sourceMappingURL=artifact.js.map
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { MEDIA_TYPE, accept, acceptExecutable, encode, executableClosure, executableDigest, runtimeDigest, type Digest, type Executable, type ExecutableDependency, type Export, type Module, type RuntimeArtifact, type Ref, } from './artifact.js';
|
|
2
|
-
//# sourceMappingURL=index.d.ts.map
|
|
1
|
+
export { MEDIA_TYPE, LEGACY_MEDIA_TYPE, mediaType, accept, acceptExecutable, encode, executableClosure, executableDigest, runtimeDigest, type Digest, type Executable, type ExecutableDependency, type Export, type Module, type RuntimeArtifact, type Ref, } from './artifact.js';
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { MEDIA_TYPE, accept, acceptExecutable, encode, executableClosure, executableDigest, runtimeDigest, } from './artifact.js';
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { MEDIA_TYPE, LEGACY_MEDIA_TYPE, mediaType, accept, acceptExecutable, encode, executableClosure, executableDigest, runtimeDigest, } from './artifact.js';
|