@astrale-os/kernel-protocol 0.5.0-beta.3 → 0.5.0-beta.31
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 +683 -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 +2 -3
- package/dist/invocation/admission.js +5 -8
- package/dist/invocation/binary.d.ts +1 -1
- package/dist/invocation/binary.js +14 -2
- package/dist/invocation/binding-codecs.d.ts +0 -1
- package/dist/invocation/binding-codecs.js +0 -1
- 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 +0 -1
- package/dist/invocation/delegate.js +0 -1
- package/dist/invocation/http/binary.d.ts +3 -2
- package/dist/invocation/http/binary.js +4 -2
- 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 +0 -1
- package/dist/invocation/identity.js +0 -1
- package/dist/invocation/index.d.ts +1 -2
- package/dist/invocation/index.js +1 -2
- package/dist/invocation/miss.d.ts +0 -1
- package/dist/invocation/miss.js +0 -1
- package/dist/invocation/redirect.d.ts +9 -8
- package/dist/invocation/redirect.js +6 -5
- package/dist/invocation/request.d.ts +0 -1
- package/dist/invocation/request.js +0 -1
- package/dist/invocation/response.d.ts +0 -1
- package/dist/invocation/response.js +0 -1
- 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 +0 -1
- 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 +2 -3
- 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 +2 -2
- 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 +1 -2
- 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 +8 -2
- package/dist/publication/bindings/view.js +112 -4
- 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 +8 -5
- 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 +13 -6
- package/dist/publication/publication.js +50 -71
- package/dist/publication/reference.d.ts +3 -3
- package/dist/publication/reference.js +7 -7
- package/dist/publication/requirements.d.ts +15 -7
- package/dist/publication/requirements.js +137 -47
- 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/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.map +0 -1
- package/dist/publication/bindings/index.d.ts.map +0 -1
- package/dist/publication/bindings/index.js.map +0 -1
- package/dist/publication/bindings/invocation.d.ts.map +0 -1
- package/dist/publication/bindings/invocation.js.map +0 -1
- package/dist/publication/bindings/view.d.ts.map +0 -1
- package/dist/publication/bindings/view.js.map +0 -1
- package/dist/publication/bundle.d.ts.map +0 -1
- package/dist/publication/bundle.js.map +0 -1
- package/dist/publication/content.d.ts.map +0 -1
- package/dist/publication/content.js.map +0 -1
- package/dist/publication/delivery/attestation.d.ts.map +0 -1
- package/dist/publication/delivery/attestation.js.map +0 -1
- package/dist/publication/delivery/claims.d.ts.map +0 -1
- package/dist/publication/delivery/claims.js.map +0 -1
- package/dist/publication/delivery/delivery.d.ts.map +0 -1
- package/dist/publication/delivery/delivery.js.map +0 -1
- package/dist/publication/delivery/error.d.ts.map +0 -1
- package/dist/publication/delivery/error.js.map +0 -1
- package/dist/publication/delivery/index.d.ts.map +0 -1
- package/dist/publication/delivery/index.js.map +0 -1
- package/dist/publication/delivery/limits.d.ts.map +0 -1
- package/dist/publication/delivery/limits.js.map +0 -1
- package/dist/publication/delivery/request.d.ts.map +0 -1
- package/dist/publication/delivery/request.js.map +0 -1
- package/dist/publication/delivery-endpoint.d.ts.map +0 -1
- package/dist/publication/delivery-endpoint.js.map +0 -1
- package/dist/publication/error.d.ts.map +0 -1
- package/dist/publication/error.js.map +0 -1
- package/dist/publication/etag.d.ts.map +0 -1
- package/dist/publication/etag.js.map +0 -1
- package/dist/publication/index.d.ts.map +0 -1
- package/dist/publication/index.js.map +0 -1
- package/dist/publication/manifest.d.ts.map +0 -1
- package/dist/publication/manifest.js.map +0 -1
- package/dist/publication/publication.d.ts.map +0 -1
- package/dist/publication/publication.js.map +0 -1
- package/dist/publication/reference.d.ts.map +0 -1
- package/dist/publication/reference.js.map +0 -1
- package/dist/publication/requirements.d.ts.map +0 -1
- package/dist/publication/requirements.js.map +0 -1
- package/dist/publication/route.d.ts.map +0 -1
- package/dist/publication/route.js.map +0 -1
- package/dist/publication/schema.d.ts.map +0 -1
- package/dist/publication/schema.js.map +0 -1
- package/dist/routes/compile.d.ts +0 -5
- package/dist/routes/compile.d.ts.map +0 -1
- package/dist/routes/compile.js +0 -69
- package/dist/routes/compile.js.map +0 -1
- package/dist/routes/credential.d.ts.map +0 -1
- package/dist/routes/credential.js.map +0 -1
- package/dist/routes/decode.d.ts.map +0 -1
- package/dist/routes/decode.js.map +0 -1
- package/dist/routes/encode.d.ts.map +0 -1
- package/dist/routes/encode.js.map +0 -1
- package/dist/routes/error-response.d.ts.map +0 -1
- package/dist/routes/error-response.js.map +0 -1
- package/dist/routes/error.d.ts.map +0 -1
- package/dist/routes/error.js.map +0 -1
- package/dist/routes/index.d.ts.map +0 -1
- package/dist/routes/index.js.map +0 -1
- package/dist/routes/mapping.d.ts.map +0 -1
- package/dist/routes/mapping.js.map +0 -1
- package/dist/routes/match.d.ts.map +0 -1
- package/dist/routes/match.js.map +0 -1
- package/dist/routes/request.d.ts.map +0 -1
- package/dist/routes/request.js.map +0 -1
- package/dist/routes/reservation.d.ts.map +0 -1
- package/dist/routes/reservation.js.map +0 -1
- package/dist/routes/route.d.ts +0 -13
- package/dist/routes/route.d.ts.map +0 -1
- package/dist/routes/route.js +0 -6
- package/dist/routes/route.js.map +0 -1
- package/dist/routes/routing.d.ts.map +0 -1
- package/dist/routes/routing.js.map +0 -1
- package/dist/routes/scalar.d.ts.map +0 -1
- package/dist/routes/scalar.js.map +0 -1
- package/dist/routes/select.d.ts.map +0 -1
- package/dist/routes/select.js.map +0 -1
- package/dist/routes/stream.d.ts.map +0 -1
- package/dist/routes/stream.js.map +0 -1
- package/dist/routes/template.d.ts.map +0 -1
- package/dist/routes/template.js.map +0 -1
- package/dist/runtime/artifact.d.ts.map +0 -1
- package/dist/runtime/artifact.js.map +0 -1
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js.map +0 -1
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/installation/index.d.ts.map +0 -1
- package/dist/schema/installation/index.js.map +0 -1
- package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
- package/dist/schema/installation/introspection/codec.js.map +0 -1
- package/dist/schema/installation/introspection/index.d.ts.map +0 -1
- package/dist/schema/installation/introspection/index.js.map +0 -1
- package/dist/schema/installation/introspection/result.d.ts.map +0 -1
- package/dist/schema/installation/introspection/result.js.map +0 -1
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
export { MEDIA_TYPE, PATH, url, seal, accept,
|
|
1
|
+
export { MEDIA_TYPE, PATH, url, seal, accept, acceptStored, encode, type Publication, type StoredPublication, } from './publication.js';
|
|
2
|
+
export { acceptBundle, decodeBundle } from './bundle-admission.js';
|
|
2
3
|
export { BUNDLE_MEDIA_TYPE, describeBundle, type BundleDescriptor } from './bundle.js';
|
|
4
|
+
export { verifyBundleBytes } from './bundle-evidence.js';
|
|
3
5
|
export type { Content } from './content.js';
|
|
6
|
+
export type { Declaration, DeliveryDeclaration } from './declaration.js';
|
|
7
|
+
export { placeDelivery } from './delivery-declaration.js';
|
|
4
8
|
export type { Etag, Sha256Digest } from './etag.js';
|
|
5
9
|
export { PublicationError, type PublicationErrorCode } from './error.js';
|
|
6
10
|
export * as delivery from './delivery/index.js';
|
|
7
11
|
export type { Authentication as DeliveryAuthentication, Endpoint as DeliveryEndpoint, } from './delivery-endpoint.js';
|
|
8
12
|
export type { Manifest } from './manifest.js';
|
|
9
|
-
export { ClassOperationOrder, admitRequirements, validateRequirements, type
|
|
13
|
+
export { ClassOperationOrder, admitRequirements, validateRequirements, type CapabilityAuthorityRequirements, type CapabilityProfileRequirement, type CapabilityRequirements, type ClassCapabilityRequirement, type ClassOperation, type NonEmpty, type PublicationRequirements, } from './requirements.js';
|
|
10
14
|
export { acceptReference, compareReference, compareReferences, matchesReference, reference, type PublicationRef, type PublicationReferenceRelation, } from './reference.js';
|
|
11
|
-
export type { BodyPick, CredentialSource, HttpMethod, HttpRoute, RouteBody, RouteHeaders, SingleCredentialSource, } from './route.js';
|
|
15
|
+
export type { BodyPick, CredentialSource, HttpMethod, HttpRoute, HttpRouteDeclaration, RouteBody, RouteHeaders, SingleCredentialSource, } from './route.js';
|
|
12
16
|
export type { Schema } from './schema.js';
|
|
13
|
-
export { acceptInvocationEndpoints, type CallableBinding, type InvocationEndpoints, type ViewBinding, } from './bindings/index.js';
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
17
|
+
export { acceptInvocationEndpoints, type CallableBinding, type IframeRequirements, type InvocationEndpoints, type ViewBinding, } from './bindings/index.js';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
export { MEDIA_TYPE, PATH, url, seal, accept,
|
|
1
|
+
export { MEDIA_TYPE, PATH, url, seal, accept, acceptStored, encode, } from './publication.js';
|
|
2
|
+
export { acceptBundle, decodeBundle } from './bundle-admission.js';
|
|
2
3
|
export { BUNDLE_MEDIA_TYPE, describeBundle } from './bundle.js';
|
|
4
|
+
export { verifyBundleBytes } from './bundle-evidence.js';
|
|
5
|
+
export { placeDelivery } from './delivery-declaration.js';
|
|
3
6
|
export { PublicationError } from './error.js';
|
|
4
7
|
export * as delivery from './delivery/index.js';
|
|
5
8
|
export { ClassOperationOrder, admitRequirements, validateRequirements, } from './requirements.js';
|
|
6
9
|
export { acceptReference, compareReference, compareReferences, matchesReference, reference, } from './reference.js';
|
|
7
10
|
export { acceptInvocationEndpoints, } from './bindings/index.js';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type ViewRef } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
2
|
export interface Manifest {
|
|
3
3
|
readonly logo?: string;
|
|
4
|
-
readonly entrypoint?:
|
|
4
|
+
readonly entrypoint?: ViewRef;
|
|
5
5
|
}
|
|
6
6
|
export declare function admitManifest(input: unknown): Manifest | undefined;
|
|
7
|
-
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { acceptDefinitionRef } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
2
|
import { exact, record } from './content.js';
|
|
3
3
|
import { fail } from './error.js';
|
|
4
4
|
export function admitManifest(input) {
|
|
@@ -11,16 +11,20 @@ export function admitManifest(input) {
|
|
|
11
11
|
}
|
|
12
12
|
let entrypoint;
|
|
13
13
|
if (value.entrypoint !== undefined) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
let ref;
|
|
15
|
+
try {
|
|
16
|
+
ref = acceptDefinitionRef(value.entrypoint);
|
|
17
|
+
}
|
|
18
|
+
catch (cause) {
|
|
19
|
+
return fail('PUBLICATION_INVALID', 'Manifest entrypoint must be a root View reference.', cause);
|
|
20
|
+
}
|
|
21
|
+
if (ref.kind !== 'view') {
|
|
17
22
|
fail('PUBLICATION_INVALID', 'Manifest entrypoint must be a root View reference.');
|
|
18
23
|
}
|
|
19
|
-
entrypoint =
|
|
24
|
+
entrypoint = ref;
|
|
20
25
|
}
|
|
21
26
|
return Object.freeze({
|
|
22
27
|
...(value.logo === undefined ? {} : { logo: value.logo }),
|
|
23
28
|
...(entrypoint === undefined ? {} : { entrypoint }),
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
|
-
//# sourceMappingURL=manifest.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Key
|
|
1
|
+
import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
+
import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
3
|
import type { CallableBinding, ViewBinding } from './bindings/index.js';
|
|
4
4
|
import type { Content } from './content.js';
|
|
5
5
|
import type { Endpoint as DeliveryEndpoint } from './delivery-endpoint.js';
|
|
@@ -17,7 +17,7 @@ export interface Publication {
|
|
|
17
17
|
readonly version: 2;
|
|
18
18
|
readonly origin: Key.Origin;
|
|
19
19
|
readonly identity: {
|
|
20
|
-
readonly issuer:
|
|
20
|
+
readonly issuer: IssuerId;
|
|
21
21
|
readonly subject: string;
|
|
22
22
|
};
|
|
23
23
|
readonly etag: Etag;
|
|
@@ -31,9 +31,16 @@ export interface Publication {
|
|
|
31
31
|
readonly routes: readonly HttpRoute[];
|
|
32
32
|
readonly delivery?: DeliveryEndpoint;
|
|
33
33
|
}
|
|
34
|
+
/** Canonical semantic Publication plus its exact coordinate in durable storage. */
|
|
35
|
+
export interface StoredPublication {
|
|
36
|
+
readonly publication: Publication;
|
|
37
|
+
readonly deployedEtag: Etag;
|
|
38
|
+
}
|
|
34
39
|
export declare function seal(input: Content): Publication;
|
|
35
40
|
export declare function accept(input: unknown): Publication;
|
|
41
|
+
/**
|
|
42
|
+
* Admit a canonical Publication retained before the admin-to-authority vocabulary cutover.
|
|
43
|
+
* Network admission remains strict; this one-way reader exists only for already-trusted storage.
|
|
44
|
+
*/
|
|
45
|
+
export declare function acceptStored(input: unknown): StoredPublication;
|
|
36
46
|
export declare function encode(input: Publication): Uint8Array;
|
|
37
|
-
export declare function acceptBundle(input: Publication, artifact: unknown): dslBundle.Bundle;
|
|
38
|
-
export declare function decodeBundle(input: Publication, bytes: Uint8Array): dslBundle.Bundle;
|
|
39
|
-
//# sourceMappingURL=publication.d.ts.map
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
|
|
2
|
+
import { accept as acceptIssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
3
|
+
import { Key, patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
4
|
import * as portable from '@astrale-os/kernel-dsl/value';
|
|
4
5
|
import { admitCallableBinding, admitViewBinding } from './bindings/index.js';
|
|
5
|
-
import {
|
|
6
|
+
import { canonicalizeViewBinding } from './bindings/view.js';
|
|
6
7
|
import { array, deepFreeze, exact, record, unique } from './content.js';
|
|
7
8
|
import { admitEndpoint as admitDeliveryEndpoint } from './delivery-endpoint.js';
|
|
8
9
|
import { fail } from './error.js';
|
|
9
10
|
import { admitDigest, computeEtag } from './etag.js';
|
|
10
11
|
import { admitManifest } from './manifest.js';
|
|
11
|
-
import { admitRequirements
|
|
12
|
+
import { admitRequirements } from './requirements.js';
|
|
12
13
|
import { admitRoute } from './route.js';
|
|
13
14
|
import { admitSchema } from './schema.js';
|
|
14
15
|
export const PATH = '/.well-known/astrale/domain.json';
|
|
@@ -33,7 +34,8 @@ export function url(input) {
|
|
|
33
34
|
return `${admitted.replace(/\/+$/u, '')}${PATH}`;
|
|
34
35
|
}
|
|
35
36
|
export function seal(input) {
|
|
36
|
-
|
|
37
|
+
const canonical = withoutEtag(acceptPublication({ ...input, etag: 'canonicalizing' }, false, true));
|
|
38
|
+
return acceptPublication({ ...canonical, etag: computeEtag(canonical) }, false);
|
|
37
39
|
}
|
|
38
40
|
export function accept(input) {
|
|
39
41
|
const publication = acceptPublication(input, true);
|
|
@@ -42,21 +44,44 @@ export function accept(input) {
|
|
|
42
44
|
}
|
|
43
45
|
return publication;
|
|
44
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Admit a canonical Publication retained before the admin-to-authority vocabulary cutover.
|
|
49
|
+
* Network admission remains strict; this one-way reader exists only for already-trusted storage.
|
|
50
|
+
*/
|
|
51
|
+
export function acceptStored(input) {
|
|
52
|
+
try {
|
|
53
|
+
const publication = accept(input);
|
|
54
|
+
return deepFreeze({ publication, deployedEtag: publication.etag });
|
|
55
|
+
}
|
|
56
|
+
catch (currentFailure) {
|
|
57
|
+
const value = record(input, 'PUBLICATION_INVALID', 'Expected a Publication object.');
|
|
58
|
+
const requirements = record(value.requirements, 'PUBLICATION_INVALID', 'Publication requirements are invalid.');
|
|
59
|
+
const capabilities = record(requirements.capabilities, 'PUBLICATION_INVALID', 'Publication capability requirements are invalid.');
|
|
60
|
+
if (capabilities.admin === undefined)
|
|
61
|
+
throw currentFailure;
|
|
62
|
+
if (capabilities.authority !== undefined) {
|
|
63
|
+
fail('PUBLICATION_INVALID', 'Publication cannot mix admin and authority requirements.');
|
|
64
|
+
}
|
|
65
|
+
const { etag, ...content } = value;
|
|
66
|
+
const admittedEtag = admitDigest(etag);
|
|
67
|
+
if (admittedEtag !== computeEtag(content)) {
|
|
68
|
+
fail('PUBLICATION_ETAG_MISMATCH', 'Publication ETag does not match its canonical content.');
|
|
69
|
+
}
|
|
70
|
+
const { admin, ...currentCapabilities } = capabilities;
|
|
71
|
+
const admitted = acceptPublication({
|
|
72
|
+
...value,
|
|
73
|
+
requirements: {
|
|
74
|
+
...requirements,
|
|
75
|
+
capabilities: { ...currentCapabilities, authority: admin },
|
|
76
|
+
},
|
|
77
|
+
}, true);
|
|
78
|
+
return deepFreeze({ publication: seal(withoutEtag(admitted)), deployedEtag: admittedEtag });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
45
81
|
export function encode(input) {
|
|
46
82
|
return portable.json.encode(input);
|
|
47
83
|
}
|
|
48
|
-
|
|
49
|
-
const accepted = acceptBundleValue(artifact);
|
|
50
|
-
verifyBundleBytes(input, dslBundle.encode(accepted));
|
|
51
|
-
validateBundleInventory(input, accepted);
|
|
52
|
-
return accepted;
|
|
53
|
-
}
|
|
54
|
-
export function decodeBundle(input, bytes) {
|
|
55
|
-
const decoded = decodeBundleValue(input, bytes);
|
|
56
|
-
validateBundleInventory(input, decoded);
|
|
57
|
-
return decoded;
|
|
58
|
-
}
|
|
59
|
-
function acceptPublication(input, requireEtag) {
|
|
84
|
+
function acceptPublication(input, requireEtag, canonicalizeViews = false) {
|
|
60
85
|
const value = record(input, 'PUBLICATION_INVALID', 'Expected a Publication object.');
|
|
61
86
|
exact(value, [
|
|
62
87
|
'format',
|
|
@@ -74,7 +99,7 @@ function acceptPublication(input, requireEtag) {
|
|
|
74
99
|
if (value.format !== 'astrale.domain.publication' || value.version !== 2) {
|
|
75
100
|
fail('PUBLICATION_INVALID', 'Unsupported Publication format or version.');
|
|
76
101
|
}
|
|
77
|
-
if (typeof value.origin !== 'string' || !
|
|
102
|
+
if (typeof value.origin !== 'string' || !patterns.origin.test(value.origin)) {
|
|
78
103
|
fail('PUBLICATION_INVALID', 'Publication origin is invalid.');
|
|
79
104
|
}
|
|
80
105
|
const origin = value.origin;
|
|
@@ -91,7 +116,7 @@ function acceptPublication(input, requireEtag) {
|
|
|
91
116
|
exact(bindingSet, ['callables', 'views'], 'PUBLICATION_BINDING_INVALID');
|
|
92
117
|
const callables = array(bindingSet.callables, 'PUBLICATION_BINDING_INVALID').map((entry) => admitCallableBinding(entry, origin));
|
|
93
118
|
unique(callables.map(({ callable }) => callable), 'PUBLICATION_BINDING_INVALID', 'callable binding');
|
|
94
|
-
const views = array(bindingSet.views, 'PUBLICATION_VIEW_INVALID').map((entry) => admitViewBinding(entry, origin));
|
|
119
|
+
const views = array(bindingSet.views, 'PUBLICATION_VIEW_INVALID').map((entry) => canonicalizeViews ? canonicalizeViewBinding(entry, origin) : admitViewBinding(entry, origin));
|
|
95
120
|
unique(views.map(({ view }) => view), 'PUBLICATION_VIEW_INVALID', 'View binding');
|
|
96
121
|
const routes = array(value.routes, 'PUBLICATION_ROUTE_INVALID').map((entry) => admitRoute(entry, origin));
|
|
97
122
|
unique(routes.map(({ name }) => name), 'PUBLICATION_ROUTE_INVALID', 'route name');
|
|
@@ -101,7 +126,10 @@ function acceptPublication(input, requireEtag) {
|
|
|
101
126
|
}
|
|
102
127
|
}
|
|
103
128
|
if (manifest?.entrypoint !== undefined) {
|
|
104
|
-
|
|
129
|
+
if (manifest.entrypoint.origin !== origin) {
|
|
130
|
+
fail('PUBLICATION_VIEW_INVALID', 'Manifest entrypoint must belong to the root origin.');
|
|
131
|
+
}
|
|
132
|
+
const key = Key.of(manifest.entrypoint);
|
|
105
133
|
if (!views.some(({ view }) => view === key)) {
|
|
106
134
|
fail('PUBLICATION_VIEW_INVALID', 'Manifest entrypoint must have a published View binding.');
|
|
107
135
|
}
|
|
@@ -124,60 +152,12 @@ function acceptPublication(input, requireEtag) {
|
|
|
124
152
|
...(delivery === undefined ? {} : { delivery }),
|
|
125
153
|
});
|
|
126
154
|
}
|
|
127
|
-
function validateBundleInventory(publication, bundle) {
|
|
128
|
-
const root = bundle.root;
|
|
129
|
-
if (root.origin !== publication.origin ||
|
|
130
|
-
dslSchema.revision(root) !== publication.schema.revision) {
|
|
131
|
-
fail('PUBLICATION_INVALID', 'Bundle root does not match the Publication schema.');
|
|
132
|
-
}
|
|
133
|
-
validateRequirements(root, bundle.closure, publication.requirements);
|
|
134
|
-
const callables = concreteCallables(root);
|
|
135
|
-
const publishedCallables = new Set(publication.bindings.callables.map(({ callable }) => callable));
|
|
136
|
-
if (publishedCallables.size !== callables.size ||
|
|
137
|
-
[...callables].some((key) => !publishedCallables.has(key))) {
|
|
138
|
-
fail('PUBLICATION_BINDING_INVALID', 'Callable bindings must exhaust the root Domain.');
|
|
139
|
-
}
|
|
140
|
-
const views = new Set(Object.keys(root.views).map((name) => Key.of(root.origin, Ref.definition('view', name))));
|
|
141
|
-
const publishedViews = new Set(publication.bindings.views.map(({ view }) => view));
|
|
142
|
-
if (publishedViews.size !== views.size || [...views].some((key) => !publishedViews.has(key))) {
|
|
143
|
-
fail('PUBLICATION_VIEW_INVALID', 'View bindings must exhaust the root Domain.');
|
|
144
|
-
}
|
|
145
|
-
if (publication.manifest?.entrypoint !== undefined &&
|
|
146
|
-
root.views[Ref.member(publication.manifest.entrypoint)] === undefined) {
|
|
147
|
-
fail('PUBLICATION_INVALID', 'Manifest entrypoint does not exist in the root schema.');
|
|
148
|
-
}
|
|
149
|
-
for (const route of publication.routes) {
|
|
150
|
-
if (!callables.has(route.callable)) {
|
|
151
|
-
fail('PUBLICATION_ROUTE_INVALID', `Route ${route.name} names an unknown callable.`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
function concreteCallables(root) {
|
|
156
|
-
const result = new Set();
|
|
157
|
-
for (const name of Object.keys(root.functions)) {
|
|
158
|
-
result.add(Key.of(root.origin, Ref.definition('function', name)));
|
|
159
|
-
}
|
|
160
|
-
addConcreteMethods(result, root.origin, 'class', root.classes);
|
|
161
|
-
addConcreteMethods(result, root.origin, 'interface', root.interfaces);
|
|
162
|
-
return result;
|
|
163
|
-
}
|
|
164
|
-
function addConcreteMethods(result, origin, kind, definitions) {
|
|
165
|
-
for (const [owner, declaration] of Object.entries(definitions)) {
|
|
166
|
-
if (declaration.family !== 'node')
|
|
167
|
-
continue;
|
|
168
|
-
for (const [name, method] of Object.entries(declaration.methods)) {
|
|
169
|
-
if (method.inheritance === 'abstract')
|
|
170
|
-
continue;
|
|
171
|
-
result.add(Key.of(origin, Ref.method(Ref.definition(kind, owner), name)));
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
155
|
function admitIssuer(input) {
|
|
176
156
|
try {
|
|
177
|
-
return
|
|
157
|
+
return acceptIssuerId(String(input));
|
|
178
158
|
}
|
|
179
159
|
catch (cause) {
|
|
180
|
-
if (cause instanceof
|
|
160
|
+
if (cause instanceof AuthValueError) {
|
|
181
161
|
return fail('PUBLICATION_INVALID', 'Publication issuer is invalid.', cause);
|
|
182
162
|
}
|
|
183
163
|
throw cause;
|
|
@@ -187,4 +167,3 @@ function withoutEtag(input) {
|
|
|
187
167
|
const { etag: _etag, ...content } = input;
|
|
188
168
|
return content;
|
|
189
169
|
}
|
|
190
|
-
//# sourceMappingURL=publication.js.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
|
+
import { type Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
3
|
import type { Etag } from './etag.js';
|
|
3
4
|
import type { Publication } from './publication.js';
|
|
4
5
|
/** Compact untrusted projection that witnesses one exact Publication. */
|
|
5
6
|
export interface PublicationRef {
|
|
6
7
|
readonly origin: Key.Origin;
|
|
7
8
|
readonly identity: Publication['identity'];
|
|
8
|
-
readonly revision:
|
|
9
|
+
readonly revision: Revision;
|
|
9
10
|
readonly etag: Etag;
|
|
10
11
|
}
|
|
11
12
|
export type PublicationReferenceRelation = 'exact' | 'same-schema' | 'schema-drift' | 'identity-drift' | 'origin-drift';
|
|
@@ -14,4 +15,3 @@ export declare function acceptReference(input: unknown): PublicationRef;
|
|
|
14
15
|
export declare function compareReferences(input: PublicationRef, expected: PublicationRef): PublicationReferenceRelation;
|
|
15
16
|
export declare function compareReference(input: Publication, expected: PublicationRef): PublicationReferenceRelation;
|
|
16
17
|
export declare function matchesReference(input: Publication, expected: PublicationRef): boolean;
|
|
17
|
-
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
|
|
2
|
+
import { accept as acceptIssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
3
|
+
import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
4
|
import { deepFreeze, exact, record } from './content.js';
|
|
4
5
|
import { fail } from './error.js';
|
|
5
6
|
import { admitDigest } from './etag.js';
|
|
@@ -14,7 +15,7 @@ export function reference(input) {
|
|
|
14
15
|
export function acceptReference(input) {
|
|
15
16
|
const value = record(input, 'PUBLICATION_INVALID', 'Publication reference is invalid.');
|
|
16
17
|
exact(value, ['origin', 'identity', 'revision', 'etag'], 'PUBLICATION_INVALID');
|
|
17
|
-
if (typeof value.origin !== 'string' || !
|
|
18
|
+
if (typeof value.origin !== 'string' || !patterns.origin.test(value.origin)) {
|
|
18
19
|
fail('PUBLICATION_INVALID', 'Publication reference origin is invalid.');
|
|
19
20
|
}
|
|
20
21
|
const origin = value.origin;
|
|
@@ -24,7 +25,7 @@ export function acceptReference(input) {
|
|
|
24
25
|
if (identity.subject !== origin) {
|
|
25
26
|
fail('PUBLICATION_INVALID', 'Publication reference subject must equal its root origin.');
|
|
26
27
|
}
|
|
27
|
-
if (typeof value.revision !== 'string' || !
|
|
28
|
+
if (typeof value.revision !== 'string' || !patterns.revision.test(value.revision)) {
|
|
28
29
|
fail('PUBLICATION_INVALID', 'Publication reference revision is invalid.');
|
|
29
30
|
}
|
|
30
31
|
return deepFreeze({
|
|
@@ -56,13 +57,12 @@ function acceptIssuer(input) {
|
|
|
56
57
|
fail('PUBLICATION_INVALID', 'Publication reference issuer is invalid.');
|
|
57
58
|
}
|
|
58
59
|
try {
|
|
59
|
-
return
|
|
60
|
+
return acceptIssuerId(input);
|
|
60
61
|
}
|
|
61
62
|
catch (cause) {
|
|
62
|
-
if (cause instanceof
|
|
63
|
+
if (cause instanceof AuthValueError) {
|
|
63
64
|
return fail('PUBLICATION_INVALID', 'Publication reference issuer is invalid.', cause);
|
|
64
65
|
}
|
|
65
66
|
throw cause;
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
|
-
//# sourceMappingURL=reference.js.map
|
|
@@ -1,20 +1,29 @@
|
|
|
1
|
-
import type { AuthorityOperation } from '@astrale-os/kernel-core/schema';
|
|
2
|
-
import type {
|
|
1
|
+
import type { AuthorityOperation } from '@astrale-os/kernel-core/schema/authority/operation';
|
|
2
|
+
import type { schema as schemaLanguage } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import type { ClassRef, CoreRef, Key as SemanticKey } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
4
|
export type NonEmpty<Value> = readonly [Value, ...Value[]];
|
|
4
5
|
export declare const ClassOperationOrder: readonly ["create", "read", "traverse", "update", "delete"];
|
|
5
6
|
export type ClassOperation = (typeof ClassOperationOrder)[number];
|
|
6
7
|
export interface ClassCapabilityRequirement {
|
|
7
|
-
readonly class:
|
|
8
|
+
readonly class: ClassRef;
|
|
8
9
|
readonly operations: NonEmpty<ClassOperation>;
|
|
9
10
|
}
|
|
10
|
-
export interface
|
|
11
|
+
export interface CapabilityAuthorityRequirements {
|
|
11
12
|
readonly grant?: NonEmpty<AuthorityOperation>;
|
|
12
13
|
readonly revoke?: NonEmpty<AuthorityOperation>;
|
|
13
14
|
}
|
|
14
15
|
export interface CapabilityRequirements {
|
|
15
16
|
readonly functions?: NonEmpty<SemanticKey.Callable>;
|
|
16
17
|
readonly classes?: NonEmpty<ClassCapabilityRequirement>;
|
|
17
|
-
readonly
|
|
18
|
+
readonly authority?: CapabilityAuthorityRequirements;
|
|
19
|
+
readonly profiles?: NonEmpty<CapabilityProfileRequirement>;
|
|
20
|
+
}
|
|
21
|
+
/** Installation-owned authority materialized onto one local Core Identity. */
|
|
22
|
+
export interface CapabilityProfileRequirement {
|
|
23
|
+
readonly subject: CoreRef;
|
|
24
|
+
readonly functions?: NonEmpty<SemanticKey.Callable>;
|
|
25
|
+
readonly classes?: NonEmpty<ClassCapabilityRequirement>;
|
|
26
|
+
readonly authority?: CapabilityAuthorityRequirements;
|
|
18
27
|
}
|
|
19
28
|
export interface PublicationRequirements {
|
|
20
29
|
readonly capabilities: CapabilityRequirements;
|
|
@@ -22,5 +31,4 @@ export interface PublicationRequirements {
|
|
|
22
31
|
/** Admit the exact closed Publication v2 requirements object. */
|
|
23
32
|
export declare function admitRequirements(input: unknown): PublicationRequirements;
|
|
24
33
|
/** Bind explicit capability targets to exact functional dependencies in the bundle closure. */
|
|
25
|
-
export declare function validateRequirements(root:
|
|
26
|
-
//# sourceMappingURL=requirements.d.ts.map
|
|
34
|
+
export declare function validateRequirements(root: schemaLanguage.DomainSchema, closure: readonly schemaLanguage.DomainSchema[], requirements: PublicationRequirements): void;
|