@astrale-os/kernel-protocol 0.5.0-beta.2
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/LICENSE +202 -0
- package/dist/artifact/index.d.ts +2 -0
- package/dist/artifact/index.d.ts.map +1 -0
- package/dist/artifact/index.js +2 -0
- package/dist/artifact/index.js.map +1 -0
- package/dist/artifact/ref.d.ts +11 -0
- package/dist/artifact/ref.d.ts.map +1 -0
- package/dist/artifact/ref.js +71 -0
- package/dist/artifact/ref.js.map +1 -0
- package/dist/codecs/codec.d.ts +14 -0
- package/dist/codecs/codec.d.ts.map +1 -0
- package/dist/codecs/codec.js +7 -0
- package/dist/codecs/codec.js.map +1 -0
- package/dist/codecs/index.d.ts +5 -0
- package/dist/codecs/index.d.ts.map +1 -0
- package/dist/codecs/index.js +5 -0
- package/dist/codecs/index.js.map +1 -0
- package/dist/codecs/json.d.ts +3 -0
- package/dist/codecs/json.d.ts.map +1 -0
- package/dist/codecs/json.js +21 -0
- package/dist/codecs/json.js.map +1 -0
- package/dist/codecs/media-types.d.ts +3 -0
- package/dist/codecs/media-types.d.ts.map +1 -0
- package/dist/codecs/media-types.js +3 -0
- package/dist/codecs/media-types.js.map +1 -0
- package/dist/codecs/msgpack.d.ts +5 -0
- package/dist/codecs/msgpack.d.ts.map +1 -0
- package/dist/codecs/msgpack.js +51 -0
- package/dist/codecs/msgpack.js.map +1 -0
- package/dist/errors/codes.d.ts +24 -0
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/codes.js +23 -0
- package/dist/errors/codes.js.map +1 -0
- package/dist/errors/http-status.d.ts +3 -0
- package/dist/errors/http-status.d.ts.map +1 -0
- package/dist/errors/http-status.js +26 -0
- package/dist/errors/http-status.js.map +1 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +6 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/payload.d.ts +9 -0
- package/dist/errors/payload.d.ts.map +1 -0
- package/dist/errors/payload.js +37 -0
- package/dist/errors/payload.js.map +1 -0
- package/dist/errors/protocol-error.d.ts +7 -0
- package/dist/errors/protocol-error.d.ts.map +1 -0
- package/dist/errors/protocol-error.js +10 -0
- package/dist/errors/protocol-error.js.map +1 -0
- package/dist/errors/reason.d.ts +8 -0
- package/dist/errors/reason.d.ts.map +1 -0
- package/dist/errors/reason.js +44 -0
- package/dist/errors/reason.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/invocation/admission.d.ts +22 -0
- package/dist/invocation/admission.d.ts.map +1 -0
- package/dist/invocation/admission.js +169 -0
- package/dist/invocation/admission.js.map +1 -0
- package/dist/invocation/binary.d.ts +10 -0
- package/dist/invocation/binary.d.ts.map +1 -0
- package/dist/invocation/binary.js +24 -0
- package/dist/invocation/binary.js.map +1 -0
- package/dist/invocation/binding-codecs.d.ts +9 -0
- package/dist/invocation/binding-codecs.d.ts.map +1 -0
- package/dist/invocation/binding-codecs.js +28 -0
- package/dist/invocation/binding-codecs.js.map +1 -0
- package/dist/invocation/cancellation.d.ts +9 -0
- package/dist/invocation/cancellation.d.ts.map +1 -0
- package/dist/invocation/cancellation.js +17 -0
- package/dist/invocation/cancellation.js.map +1 -0
- package/dist/invocation/correlation.d.ts +3 -0
- package/dist/invocation/correlation.d.ts.map +1 -0
- package/dist/invocation/correlation.js +8 -0
- package/dist/invocation/correlation.js.map +1 -0
- package/dist/invocation/delegate.d.ts +25 -0
- package/dist/invocation/delegate.d.ts.map +1 -0
- package/dist/invocation/delegate.js +44 -0
- package/dist/invocation/delegate.js.map +1 -0
- package/dist/invocation/http/binary.d.ts +6 -0
- package/dist/invocation/http/binary.d.ts.map +1 -0
- package/dist/invocation/http/binary.js +89 -0
- package/dist/invocation/http/binary.js.map +1 -0
- package/dist/invocation/http/index.d.ts +5 -0
- package/dist/invocation/http/index.d.ts.map +1 -0
- package/dist/invocation/http/index.js +5 -0
- package/dist/invocation/http/index.js.map +1 -0
- package/dist/invocation/http/negotiation.d.ts +4 -0
- package/dist/invocation/http/negotiation.d.ts.map +1 -0
- package/dist/invocation/http/negotiation.js +208 -0
- package/dist/invocation/http/negotiation.js.map +1 -0
- package/dist/invocation/http/stream.d.ts +6 -0
- package/dist/invocation/http/stream.d.ts.map +1 -0
- package/dist/invocation/http/stream.js +16 -0
- package/dist/invocation/http/stream.js.map +1 -0
- package/dist/invocation/http/trace.d.ts +7 -0
- package/dist/invocation/http/trace.d.ts.map +1 -0
- package/dist/invocation/http/trace.js +25 -0
- package/dist/invocation/http/trace.js.map +1 -0
- package/dist/invocation/idempotency.d.ts +11 -0
- package/dist/invocation/idempotency.d.ts.map +1 -0
- package/dist/invocation/idempotency.js +14 -0
- package/dist/invocation/idempotency.js.map +1 -0
- package/dist/invocation/index.d.ts +20 -0
- package/dist/invocation/index.d.ts.map +1 -0
- package/dist/invocation/index.js +20 -0
- package/dist/invocation/index.js.map +1 -0
- package/dist/invocation/miss.d.ts +8 -0
- package/dist/invocation/miss.d.ts.map +1 -0
- package/dist/invocation/miss.js +14 -0
- package/dist/invocation/miss.js.map +1 -0
- package/dist/invocation/redirect.d.ts +33 -0
- package/dist/invocation/redirect.d.ts.map +1 -0
- package/dist/invocation/redirect.js +68 -0
- package/dist/invocation/redirect.js.map +1 -0
- package/dist/invocation/request.d.ts +22 -0
- package/dist/invocation/request.d.ts.map +1 -0
- package/dist/invocation/request.js +55 -0
- package/dist/invocation/request.js.map +1 -0
- package/dist/invocation/response.d.ts +17 -0
- package/dist/invocation/response.d.ts.map +1 -0
- package/dist/invocation/response.js +34 -0
- package/dist/invocation/response.js.map +1 -0
- package/dist/invocation/routing.d.ts +14 -0
- package/dist/invocation/routing.d.ts.map +1 -0
- package/dist/invocation/routing.js +34 -0
- package/dist/invocation/routing.js.map +1 -0
- package/dist/invocation/schema.d.ts +10 -0
- package/dist/invocation/schema.d.ts.map +1 -0
- package/dist/invocation/schema.js +20 -0
- package/dist/invocation/schema.js.map +1 -0
- package/dist/invocation/service-reason.d.ts +41 -0
- package/dist/invocation/service-reason.d.ts.map +1 -0
- package/dist/invocation/service-reason.js +74 -0
- package/dist/invocation/service-reason.js.map +1 -0
- package/dist/invocation/stale-route.d.ts +11 -0
- package/dist/invocation/stale-route.d.ts.map +1 -0
- package/dist/invocation/stale-route.js +19 -0
- package/dist/invocation/stale-route.js.map +1 -0
- package/dist/invocation/stream.d.ts +26 -0
- package/dist/invocation/stream.d.ts.map +1 -0
- package/dist/invocation/stream.js +41 -0
- package/dist/invocation/stream.js.map +1 -0
- package/dist/invocation/target.d.ts +9 -0
- package/dist/invocation/target.d.ts.map +1 -0
- package/dist/invocation/target.js +12 -0
- package/dist/invocation/target.js.map +1 -0
- package/dist/invocation/trace.d.ts +10 -0
- package/dist/invocation/trace.d.ts.map +1 -0
- package/dist/invocation/trace.js +87 -0
- package/dist/invocation/trace.js.map +1 -0
- package/dist/invocation/version.d.ts +3 -0
- package/dist/invocation/version.d.ts.map +1 -0
- package/dist/invocation/version.js +2 -0
- package/dist/invocation/version.js.map +1 -0
- package/dist/invocation/websocket/binary.d.ts +4 -0
- package/dist/invocation/websocket/binary.d.ts.map +1 -0
- package/dist/invocation/websocket/binary.js +71 -0
- package/dist/invocation/websocket/binary.js.map +1 -0
- package/dist/invocation/websocket/index.d.ts +3 -0
- package/dist/invocation/websocket/index.d.ts.map +1 -0
- package/dist/invocation/websocket/index.js +3 -0
- package/dist/invocation/websocket/index.js.map +1 -0
- package/dist/invocation/websocket/subprotocol.d.ts +11 -0
- package/dist/invocation/websocket/subprotocol.d.ts.map +1 -0
- package/dist/invocation/websocket/subprotocol.js +30 -0
- package/dist/invocation/websocket/subprotocol.js.map +1 -0
- package/dist/issuer/configuration.d.ts +15 -0
- package/dist/issuer/configuration.d.ts.map +1 -0
- package/dist/issuer/configuration.js +87 -0
- package/dist/issuer/configuration.js.map +1 -0
- package/dist/issuer/error.d.ts +8 -0
- package/dist/issuer/error.d.ts.map +1 -0
- package/dist/issuer/error.js +12 -0
- package/dist/issuer/error.js.map +1 -0
- package/dist/issuer/exchange.d.ts +26 -0
- package/dist/issuer/exchange.d.ts.map +1 -0
- package/dist/issuer/exchange.js +130 -0
- package/dist/issuer/exchange.js.map +1 -0
- package/dist/issuer/hosted.d.ts +3 -0
- package/dist/issuer/hosted.d.ts.map +1 -0
- package/dist/issuer/hosted.js +8 -0
- package/dist/issuer/hosted.js.map +1 -0
- package/dist/issuer/index.d.ts +7 -0
- package/dist/issuer/index.d.ts.map +1 -0
- package/dist/issuer/index.js +7 -0
- package/dist/issuer/index.js.map +1 -0
- package/dist/issuer/key-set.d.ts +7 -0
- package/dist/issuer/key-set.d.ts.map +1 -0
- package/dist/issuer/key-set.js +48 -0
- package/dist/issuer/key-set.js.map +1 -0
- package/dist/issuer/paths.d.ts +7 -0
- package/dist/issuer/paths.d.ts.map +1 -0
- package/dist/issuer/paths.js +11 -0
- package/dist/issuer/paths.js.map +1 -0
- package/dist/issuer/url.d.ts +3 -0
- package/dist/issuer/url.d.ts.map +1 -0
- package/dist/issuer/url.js +34 -0
- package/dist/issuer/url.js.map +1 -0
- package/dist/publication/bindings/callable.d.ts +9 -0
- package/dist/publication/bindings/callable.d.ts.map +1 -0
- package/dist/publication/bindings/callable.js +32 -0
- package/dist/publication/bindings/callable.js.map +1 -0
- package/dist/publication/bindings/index.d.ts +4 -0
- package/dist/publication/bindings/index.d.ts.map +1 -0
- package/dist/publication/bindings/index.js +4 -0
- package/dist/publication/bindings/index.js.map +1 -0
- package/dist/publication/bindings/invocation.d.ts +6 -0
- package/dist/publication/bindings/invocation.d.ts.map +1 -0
- package/dist/publication/bindings/invocation.js +14 -0
- package/dist/publication/bindings/invocation.js.map +1 -0
- package/dist/publication/bindings/view.d.ts +8 -0
- package/dist/publication/bindings/view.d.ts.map +1 -0
- package/dist/publication/bindings/view.js +29 -0
- package/dist/publication/bindings/view.js.map +1 -0
- package/dist/publication/bundle.d.ts +16 -0
- package/dist/publication/bundle.d.ts.map +1 -0
- package/dist/publication/bundle.js +65 -0
- package/dist/publication/bundle.js.map +1 -0
- package/dist/publication/content.d.ts +11 -0
- package/dist/publication/content.d.ts.map +1 -0
- package/dist/publication/content.js +56 -0
- package/dist/publication/content.js.map +1 -0
- package/dist/publication/delivery/attestation.d.ts +7 -0
- package/dist/publication/delivery/attestation.d.ts.map +1 -0
- package/dist/publication/delivery/attestation.js +11 -0
- package/dist/publication/delivery/attestation.js.map +1 -0
- package/dist/publication/delivery/claims.d.ts +16 -0
- package/dist/publication/delivery/claims.d.ts.map +1 -0
- package/dist/publication/delivery/claims.js +62 -0
- package/dist/publication/delivery/claims.js.map +1 -0
- package/dist/publication/delivery/delivery.d.ts +10 -0
- package/dist/publication/delivery/delivery.d.ts.map +1 -0
- package/dist/publication/delivery/delivery.js +30 -0
- package/dist/publication/delivery/delivery.js.map +1 -0
- package/dist/publication/delivery/error.d.ts +8 -0
- package/dist/publication/delivery/error.d.ts.map +1 -0
- package/dist/publication/delivery/error.js +12 -0
- package/dist/publication/delivery/error.js.map +1 -0
- package/dist/publication/delivery/index.d.ts +7 -0
- package/dist/publication/delivery/index.d.ts.map +1 -0
- package/dist/publication/delivery/index.js +7 -0
- package/dist/publication/delivery/index.js.map +1 -0
- package/dist/publication/delivery/limits.d.ts +5 -0
- package/dist/publication/delivery/limits.d.ts.map +1 -0
- package/dist/publication/delivery/limits.js +5 -0
- package/dist/publication/delivery/limits.js.map +1 -0
- package/dist/publication/delivery/request.d.ts +16 -0
- package/dist/publication/delivery/request.d.ts.map +1 -0
- package/dist/publication/delivery/request.js +52 -0
- package/dist/publication/delivery/request.js.map +1 -0
- package/dist/publication/delivery-endpoint.d.ts +12 -0
- package/dist/publication/delivery-endpoint.d.ts.map +1 -0
- package/dist/publication/delivery-endpoint.js +23 -0
- package/dist/publication/delivery-endpoint.js.map +1 -0
- package/dist/publication/error.d.ts +8 -0
- package/dist/publication/error.d.ts.map +1 -0
- package/dist/publication/error.js +12 -0
- package/dist/publication/error.js.map +1 -0
- package/dist/publication/etag.d.ts +7 -0
- package/dist/publication/etag.d.ts.map +1 -0
- package/dist/publication/etag.js +80 -0
- package/dist/publication/etag.js.map +1 -0
- package/dist/publication/index.d.ts +14 -0
- package/dist/publication/index.d.ts.map +1 -0
- package/dist/publication/index.js +8 -0
- package/dist/publication/index.js.map +1 -0
- package/dist/publication/manifest.d.ts +7 -0
- package/dist/publication/manifest.d.ts.map +1 -0
- package/dist/publication/manifest.js +26 -0
- package/dist/publication/manifest.js.map +1 -0
- package/dist/publication/publication.d.ts +39 -0
- package/dist/publication/publication.d.ts.map +1 -0
- package/dist/publication/publication.js +190 -0
- package/dist/publication/publication.js.map +1 -0
- package/dist/publication/reference.d.ts +17 -0
- package/dist/publication/reference.d.ts.map +1 -0
- package/dist/publication/reference.js +68 -0
- package/dist/publication/reference.js.map +1 -0
- package/dist/publication/requirements.d.ts +26 -0
- package/dist/publication/requirements.d.ts.map +1 -0
- package/dist/publication/requirements.js +180 -0
- package/dist/publication/requirements.js.map +1 -0
- package/dist/publication/route.d.ts +33 -0
- package/dist/publication/route.d.ts.map +1 -0
- package/dist/publication/route.js +132 -0
- package/dist/publication/route.js.map +1 -0
- package/dist/publication/schema.d.ts +8 -0
- package/dist/publication/schema.d.ts.map +1 -0
- package/dist/publication/schema.js +16 -0
- package/dist/publication/schema.js.map +1 -0
- package/dist/routes/compile.d.ts +5 -0
- package/dist/routes/compile.d.ts.map +1 -0
- package/dist/routes/compile.js +69 -0
- package/dist/routes/compile.js.map +1 -0
- package/dist/routes/credential.d.ts +9 -0
- package/dist/routes/credential.d.ts.map +1 -0
- package/dist/routes/credential.js +119 -0
- package/dist/routes/credential.js.map +1 -0
- package/dist/routes/decode.d.ts +4 -0
- package/dist/routes/decode.d.ts.map +1 -0
- package/dist/routes/decode.js +147 -0
- package/dist/routes/decode.js.map +1 -0
- package/dist/routes/encode.d.ts +4 -0
- package/dist/routes/encode.d.ts.map +1 -0
- package/dist/routes/encode.js +147 -0
- package/dist/routes/encode.js.map +1 -0
- package/dist/routes/error-response.d.ts +6 -0
- package/dist/routes/error-response.d.ts.map +1 -0
- package/dist/routes/error-response.js +32 -0
- package/dist/routes/error-response.js.map +1 -0
- package/dist/routes/error.d.ts +9 -0
- package/dist/routes/error.d.ts.map +1 -0
- package/dist/routes/error.js +15 -0
- package/dist/routes/error.js.map +1 -0
- package/dist/routes/index.d.ts +13 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +13 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/mapping.d.ts +6 -0
- package/dist/routes/mapping.d.ts.map +1 -0
- package/dist/routes/mapping.js +135 -0
- package/dist/routes/mapping.js.map +1 -0
- package/dist/routes/match.d.ts +5 -0
- package/dist/routes/match.d.ts.map +1 -0
- package/dist/routes/match.js +9 -0
- package/dist/routes/match.js.map +1 -0
- package/dist/routes/request.d.ts +27 -0
- package/dist/routes/request.d.ts.map +1 -0
- package/dist/routes/request.js +52 -0
- package/dist/routes/request.js.map +1 -0
- package/dist/routes/reservation.d.ts +4 -0
- package/dist/routes/reservation.d.ts.map +1 -0
- package/dist/routes/reservation.js +34 -0
- package/dist/routes/reservation.js.map +1 -0
- package/dist/routes/route.d.ts +13 -0
- package/dist/routes/route.d.ts.map +1 -0
- package/dist/routes/route.js +6 -0
- package/dist/routes/route.js.map +1 -0
- package/dist/routes/routing.d.ts +23 -0
- package/dist/routes/routing.d.ts.map +1 -0
- package/dist/routes/routing.js +88 -0
- package/dist/routes/routing.js.map +1 -0
- package/dist/routes/scalar.d.ts +7 -0
- package/dist/routes/scalar.d.ts.map +1 -0
- package/dist/routes/scalar.js +58 -0
- package/dist/routes/scalar.js.map +1 -0
- package/dist/routes/select.d.ts +4 -0
- package/dist/routes/select.d.ts.map +1 -0
- package/dist/routes/select.js +17 -0
- package/dist/routes/select.js.map +1 -0
- package/dist/routes/stream.d.ts +15 -0
- package/dist/routes/stream.d.ts.map +1 -0
- package/dist/routes/stream.js +51 -0
- package/dist/routes/stream.js.map +1 -0
- package/dist/routes/template.d.ts +9 -0
- package/dist/routes/template.d.ts.map +1 -0
- package/dist/routes/template.js +228 -0
- package/dist/routes/template.js.map +1 -0
- package/dist/runtime/artifact.d.ts +48 -0
- package/dist/runtime/artifact.d.ts.map +1 -0
- package/dist/runtime/artifact.js +177 -0
- package/dist/runtime/artifact.js.map +1 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +2 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/installation/index.d.ts +2 -0
- package/dist/schema/installation/index.d.ts.map +1 -0
- package/dist/schema/installation/index.js +2 -0
- package/dist/schema/installation/index.js.map +1 -0
- package/dist/schema/installation/introspection/codec.d.ts +6 -0
- package/dist/schema/installation/introspection/codec.d.ts.map +1 -0
- package/dist/schema/installation/introspection/codec.js +273 -0
- package/dist/schema/installation/introspection/codec.js.map +1 -0
- package/dist/schema/installation/introspection/index.d.ts +3 -0
- package/dist/schema/installation/introspection/index.d.ts.map +1 -0
- package/dist/schema/installation/introspection/index.js +2 -0
- package/dist/schema/installation/introspection/index.js.map +1 -0
- package/dist/schema/installation/introspection/result.d.ts +34 -0
- package/dist/schema/installation/introspection/result.d.ts.map +1 -0
- package/dist/schema/installation/introspection/result.js +2 -0
- package/dist/schema/installation/introspection/result.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as auth from '@astrale-os/kernel-core/auth';
|
|
2
|
+
import { schema as dslSchema } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import { fail } from './error.js';
|
|
4
|
+
import { NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
|
|
5
|
+
export function acceptClaims(input) {
|
|
6
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
7
|
+
fail('DELIVERY_CLAIMS_INVALID', 'Expected delivery claims.');
|
|
8
|
+
}
|
|
9
|
+
const value = input;
|
|
10
|
+
const expected = ['purpose', 'iss', 'sub', 'aud', 'nonce', 'etag', 'schemaRevision', 'exp'];
|
|
11
|
+
if (Object.keys(value).some((field) => !expected.includes(field))) {
|
|
12
|
+
fail('DELIVERY_CLAIMS_INVALID', 'Delivery claims contain unknown fields.');
|
|
13
|
+
}
|
|
14
|
+
if (value.purpose !== PURPOSE ||
|
|
15
|
+
typeof value.sub !== 'string' ||
|
|
16
|
+
value.sub.length === 0 ||
|
|
17
|
+
typeof value.nonce !== 'string' ||
|
|
18
|
+
value.nonce.length < NONCE_MIN_LENGTH ||
|
|
19
|
+
value.nonce.length > NONCE_MAX_LENGTH ||
|
|
20
|
+
typeof value.exp !== 'number' ||
|
|
21
|
+
!Number.isSafeInteger(value.exp)) {
|
|
22
|
+
fail('DELIVERY_CLAIMS_INVALID', 'Delivery claims are invalid.');
|
|
23
|
+
}
|
|
24
|
+
const iss = acceptIssuer(value.iss);
|
|
25
|
+
const aud = acceptIssuer(value.aud);
|
|
26
|
+
if (typeof value.etag !== 'string' || !/^sha256:[0-9a-f]{64}$/u.test(value.etag)) {
|
|
27
|
+
fail('DELIVERY_CLAIMS_INVALID', 'Delivery claims ETag is invalid.');
|
|
28
|
+
}
|
|
29
|
+
if (typeof value.schemaRevision !== 'string' ||
|
|
30
|
+
!dslSchema.patterns.revision.test(value.schemaRevision)) {
|
|
31
|
+
fail('DELIVERY_CLAIMS_INVALID', 'Schema revision is invalid.');
|
|
32
|
+
}
|
|
33
|
+
return deepFreeze({
|
|
34
|
+
purpose: PURPOSE,
|
|
35
|
+
iss,
|
|
36
|
+
sub: value.sub,
|
|
37
|
+
aud,
|
|
38
|
+
nonce: value.nonce,
|
|
39
|
+
etag: value.etag,
|
|
40
|
+
schemaRevision: value.schemaRevision,
|
|
41
|
+
exp: value.exp,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function acceptIssuer(input) {
|
|
45
|
+
try {
|
|
46
|
+
return auth.issuer.accept(String(input));
|
|
47
|
+
}
|
|
48
|
+
catch (cause) {
|
|
49
|
+
if (cause instanceof auth.AuthValueError) {
|
|
50
|
+
return fail('DELIVERY_CLAIMS_INVALID', 'Delivery claims issuer is invalid.', cause);
|
|
51
|
+
}
|
|
52
|
+
throw cause;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function deepFreeze(value) {
|
|
56
|
+
if (value === null || typeof value !== 'object' || Object.isFrozen(value))
|
|
57
|
+
return value;
|
|
58
|
+
for (const nested of Object.values(value))
|
|
59
|
+
deepFreeze(nested);
|
|
60
|
+
return Object.freeze(value);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../publication/delivery/claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Publication } from '../index.js';
|
|
2
|
+
import type { Attestation } from './attestation.js';
|
|
3
|
+
export interface Delivery {
|
|
4
|
+
readonly format: 'astrale.domain.delivery';
|
|
5
|
+
readonly version: 1;
|
|
6
|
+
readonly publication: Publication;
|
|
7
|
+
readonly attestation: Attestation;
|
|
8
|
+
}
|
|
9
|
+
export declare function accept(input: unknown): Delivery;
|
|
10
|
+
//# sourceMappingURL=delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../publication/delivery/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAMnD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAClC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAmB/C"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { accept as acceptPublication } from '../index.js';
|
|
2
|
+
import { acceptAttestation } from './attestation.js';
|
|
3
|
+
import { fail } from './error.js';
|
|
4
|
+
export function accept(input) {
|
|
5
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
6
|
+
fail('DELIVERY_INVALID', 'Expected a Delivery object.');
|
|
7
|
+
}
|
|
8
|
+
const value = input;
|
|
9
|
+
const expected = new Set(['format', 'version', 'publication', 'attestation']);
|
|
10
|
+
if (Object.keys(value).some((field) => !expected.has(field))) {
|
|
11
|
+
fail('DELIVERY_INVALID', 'Delivery contains unknown fields.');
|
|
12
|
+
}
|
|
13
|
+
if (value.format !== 'astrale.domain.delivery' || value.version !== 1) {
|
|
14
|
+
fail('DELIVERY_INVALID', 'Unsupported Delivery format or version.');
|
|
15
|
+
}
|
|
16
|
+
return deepFreeze({
|
|
17
|
+
format: 'astrale.domain.delivery',
|
|
18
|
+
version: 1,
|
|
19
|
+
publication: acceptPublication(value.publication),
|
|
20
|
+
attestation: acceptAttestation(value.attestation),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function deepFreeze(value) {
|
|
24
|
+
if (value === null || typeof value !== 'object' || Object.isFrozen(value))
|
|
25
|
+
return value;
|
|
26
|
+
for (const nested of Object.values(value))
|
|
27
|
+
deepFreeze(nested);
|
|
28
|
+
return Object.freeze(value);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../publication/delivery/delivery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AASjC,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,KAAK,GAAG,KAAgC,CAAA;IAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;IAC7E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,yBAAyB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,kBAAkB,EAAE,yCAAyC,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,UAAU,CAAC;QAChB,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;QACjD,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;KAClD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACvF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC;QAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACxF,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type DeliveryErrorCode = 'DELIVERY_INVALID' | 'DELIVERY_REQUEST_INVALID' | 'DELIVERY_CLAIMS_INVALID';
|
|
2
|
+
export declare class DeliveryError extends Error {
|
|
3
|
+
readonly code: DeliveryErrorCode;
|
|
4
|
+
readonly name = "DeliveryError";
|
|
5
|
+
constructor(code: DeliveryErrorCode, message: string, options?: ErrorOptions);
|
|
6
|
+
}
|
|
7
|
+
export declare function fail(code: DeliveryErrorCode, message: string, cause?: unknown): never;
|
|
8
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../publication/delivery/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,0BAA0B,GAC1B,yBAAyB,CAAA;AAE7B,qBAAa,aAAc,SAAQ,KAAK;IAIpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB;IAHlC,SAAkB,IAAI,mBAAkB;IAExC,YACW,IAAI,EAAE,iBAAiB,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAGvB;CACF;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAErF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class DeliveryError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
name = 'DeliveryError';
|
|
4
|
+
constructor(code, message, options) {
|
|
5
|
+
super(message, options);
|
|
6
|
+
this.code = code;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function fail(code, message, cause) {
|
|
10
|
+
throw new DeliveryError(code, message, cause === undefined ? undefined : { cause });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../publication/delivery/error.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAI3B,IAAI;IAHG,IAAI,GAAG,eAAe,CAAA;IAExC,YACW,IAAuB,EAChC,OAAe,EACf,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBAJd,IAAI;IAKf,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAAC,IAAuB,EAAE,OAAe,EAAE,KAAe;IAC5E,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACrF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { type Attestation } from './attestation.js';
|
|
2
|
+
export { acceptClaims, type Claims } from './claims.js';
|
|
3
|
+
export { DeliveryError as Error, type DeliveryErrorCode as ErrorCode } from './error.js';
|
|
4
|
+
export { accept, type Delivery } from './delivery.js';
|
|
5
|
+
export { ATTESTATION_MAX_BYTES, NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
|
|
6
|
+
export { acceptRequest, type Token, type Request } from './request.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../publication/delivery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE,KAAK,iBAAiB,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export {} from './attestation.js';
|
|
2
|
+
export { acceptClaims } from './claims.js';
|
|
3
|
+
export { DeliveryError as Error } from './error.js';
|
|
4
|
+
export { accept } from './delivery.js';
|
|
5
|
+
export { ATTESTATION_MAX_BYTES, NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
|
|
6
|
+
export { acceptRequest } from './request.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../publication/delivery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,IAAI,KAAK,EAAuC,MAAM,YAAY,CAAA;AACxF,OAAO,EAAE,MAAM,EAAiB,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAChG,OAAO,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../../publication/delivery/limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,EAAG,4BAAqC,CAAA;AAC5D,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAClC,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,eAAO,MAAM,qBAAqB,QAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../publication/delivery/limits.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,4BAAqC,CAAA;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as auth from '@astrale-os/kernel-core/auth';
|
|
2
|
+
import type { Etag } from '../index.js';
|
|
3
|
+
export interface Request {
|
|
4
|
+
readonly version: 1;
|
|
5
|
+
readonly kernel: auth.IssuerId;
|
|
6
|
+
readonly nonce: string;
|
|
7
|
+
readonly etag: Etag;
|
|
8
|
+
}
|
|
9
|
+
/** Exact bearer credential admitted by a Delivery transport boundary. */
|
|
10
|
+
export interface Token {
|
|
11
|
+
readonly kind: 'bearer';
|
|
12
|
+
readonly token: string;
|
|
13
|
+
}
|
|
14
|
+
/** Admit the exact request representation accepted by a Delivery transport boundary. */
|
|
15
|
+
export declare function acceptRequest(input: unknown): Request;
|
|
16
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../publication/delivery/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAA;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAKvC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CACpB;AAED,yEAAyE;AACzE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiDrD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as auth from '@astrale-os/kernel-core/auth';
|
|
2
|
+
import { fail } from './error.js';
|
|
3
|
+
import { NONCE_MAX_LENGTH, NONCE_MIN_LENGTH } from './limits.js';
|
|
4
|
+
/** Admit the exact request representation accepted by a Delivery transport boundary. */
|
|
5
|
+
export function acceptRequest(input) {
|
|
6
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
7
|
+
fail('DELIVERY_REQUEST_INVALID', 'Expected a Delivery request.');
|
|
8
|
+
}
|
|
9
|
+
const expected = ['version', 'kernel', 'nonce', 'etag'];
|
|
10
|
+
const value = {};
|
|
11
|
+
const fields = Reflect.ownKeys(input);
|
|
12
|
+
if (fields.length !== expected.length) {
|
|
13
|
+
fail('DELIVERY_REQUEST_INVALID', 'Delivery request is invalid.');
|
|
14
|
+
}
|
|
15
|
+
for (const field of fields) {
|
|
16
|
+
if (typeof field !== 'string' || !expected.includes(field)) {
|
|
17
|
+
fail('DELIVERY_REQUEST_INVALID', 'Delivery request is invalid.');
|
|
18
|
+
}
|
|
19
|
+
const descriptor = Object.getOwnPropertyDescriptor(input, field);
|
|
20
|
+
if (descriptor === undefined || !descriptor.enumerable || !('value' in descriptor)) {
|
|
21
|
+
fail('DELIVERY_REQUEST_INVALID', 'Delivery request is invalid.');
|
|
22
|
+
}
|
|
23
|
+
value[field] = descriptor.value;
|
|
24
|
+
}
|
|
25
|
+
if (expected.some((field) => !Object.hasOwn(value, field)) ||
|
|
26
|
+
value.version !== 1 ||
|
|
27
|
+
typeof value.kernel !== 'string' ||
|
|
28
|
+
typeof value.nonce !== 'string' ||
|
|
29
|
+
value.nonce.length < NONCE_MIN_LENGTH ||
|
|
30
|
+
value.nonce.length > NONCE_MAX_LENGTH ||
|
|
31
|
+
typeof value.etag !== 'string' ||
|
|
32
|
+
!/^sha256:[0-9a-f]{64}$/u.test(value.etag)) {
|
|
33
|
+
fail('DELIVERY_REQUEST_INVALID', 'Delivery request is invalid.');
|
|
34
|
+
}
|
|
35
|
+
let kernel;
|
|
36
|
+
try {
|
|
37
|
+
kernel = auth.issuer.accept(value.kernel);
|
|
38
|
+
}
|
|
39
|
+
catch (cause) {
|
|
40
|
+
if (cause instanceof auth.AuthValueError) {
|
|
41
|
+
return fail('DELIVERY_REQUEST_INVALID', 'Delivery request issuer is invalid.', cause);
|
|
42
|
+
}
|
|
43
|
+
throw cause;
|
|
44
|
+
}
|
|
45
|
+
return Object.freeze({
|
|
46
|
+
version: 1,
|
|
47
|
+
kernel,
|
|
48
|
+
nonce: value.nonce,
|
|
49
|
+
etag: value.etag,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../publication/delivery/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAA;AAIpD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAehE,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACvD,MAAM,KAAK,GAA4B,EAAE,CAAA;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAA;IAClE,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAChE,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAA;QAClE,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAA;IACjC,CAAC;IACD,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,KAAK,CAAC,OAAO,KAAK,CAAC;QACnB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB;QACrC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB;QACrC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC1C,CAAC;QACD,IAAI,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAA;IAClE,CAAC;IAED,IAAI,MAAqB,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,0BAA0B,EAAE,qCAAqC,EAAE,KAAK,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC;QACV,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAY;KACzB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type Authentication = {
|
|
2
|
+
readonly kind: 'public';
|
|
3
|
+
} | {
|
|
4
|
+
readonly kind: 'bearer';
|
|
5
|
+
};
|
|
6
|
+
export interface Endpoint {
|
|
7
|
+
readonly href: string;
|
|
8
|
+
readonly method: 'POST';
|
|
9
|
+
readonly authentication: Authentication;
|
|
10
|
+
}
|
|
11
|
+
export declare function admitEndpoint(input: unknown, publicUrl: string): Endpoint | undefined;
|
|
12
|
+
//# sourceMappingURL=delivery-endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-endpoint.d.ts","sourceRoot":"","sources":["../../publication/delivery-endpoint.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;CACxC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAyBrF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { absoluteHttpUrl, exact, record } from './content.js';
|
|
2
|
+
import { fail } from './error.js';
|
|
3
|
+
export function admitEndpoint(input, publicUrl) {
|
|
4
|
+
if (input === undefined)
|
|
5
|
+
return undefined;
|
|
6
|
+
const value = record(input, 'PUBLICATION_INVALID', 'Delivery endpoint is invalid.');
|
|
7
|
+
exact(value, ['href', 'method', 'authentication'], 'PUBLICATION_INVALID');
|
|
8
|
+
const href = absoluteHttpUrl(value.href, true, 'PUBLICATION_INVALID');
|
|
9
|
+
if (new URL(href).origin !== new URL(publicUrl).origin || value.method !== 'POST') {
|
|
10
|
+
fail('PUBLICATION_INVALID', 'Delivery endpoint must be same-origin POST.');
|
|
11
|
+
}
|
|
12
|
+
const authentication = record(value.authentication, 'PUBLICATION_INVALID', 'Delivery authentication is invalid.');
|
|
13
|
+
exact(authentication, ['kind'], 'PUBLICATION_INVALID');
|
|
14
|
+
if (authentication.kind !== 'public' && authentication.kind !== 'bearer') {
|
|
15
|
+
fail('PUBLICATION_INVALID', 'Delivery authentication kind is invalid.');
|
|
16
|
+
}
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
href,
|
|
19
|
+
method: 'POST',
|
|
20
|
+
authentication: Object.freeze({ kind: authentication.kind }),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=delivery-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-endpoint.js","sourceRoot":"","sources":["../../publication/delivery-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAUjC,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,SAAiB;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE,+BAA+B,CAAC,CAAA;IACnF,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACzE,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAA;IACrE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAClF,IAAI,CAAC,qBAAqB,EAAE,6CAA6C,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAC3B,KAAK,CAAC,cAAc,EACpB,qBAAqB,EACrB,qCAAqC,CACtC,CAAA;IACD,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACtD,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzE,IAAI,CAAC,qBAAqB,EAAE,0CAA0C,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI;QACJ,MAAM,EAAE,MAAM;QACd,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;KAC7D,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type PublicationErrorCode = 'PUBLICATION_INVALID' | 'PUBLICATION_ETAG_MISMATCH' | 'PUBLICATION_BINDING_INVALID' | 'PUBLICATION_ROUTE_INVALID' | 'PUBLICATION_VIEW_INVALID';
|
|
2
|
+
export declare class PublicationError extends Error {
|
|
3
|
+
readonly code: PublicationErrorCode;
|
|
4
|
+
readonly name = "PublicationError";
|
|
5
|
+
constructor(code: PublicationErrorCode, message: string, options?: ErrorOptions);
|
|
6
|
+
}
|
|
7
|
+
export declare function fail(code: PublicationErrorCode, message: string, cause?: unknown): never;
|
|
8
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../publication/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,2BAA2B,GAC3B,6BAA6B,GAC7B,2BAA2B,GAC3B,0BAA0B,CAAA;AAE9B,qBAAa,gBAAiB,SAAQ,KAAK;IAIvC,QAAQ,CAAC,IAAI,EAAE,oBAAoB;IAHrC,SAAkB,IAAI,sBAAqB;IAE3C,YACW,IAAI,EAAE,oBAAoB,EACnC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAGvB;CACF;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAExF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class PublicationError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
name = 'PublicationError';
|
|
4
|
+
constructor(code, message, options) {
|
|
5
|
+
super(message, options);
|
|
6
|
+
this.code = code;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function fail(code, message, cause) {
|
|
10
|
+
throw new PublicationError(code, message, cause === undefined ? undefined : { cause });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../publication/error.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAI9B,IAAI;IAHG,IAAI,GAAG,kBAAkB,CAAA;IAE3C,YACW,IAA0B,EACnC,OAAe,EACf,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBAJd,IAAI;IAKf,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAAC,IAA0B,EAAE,OAAe,EAAE,KAAe;IAC/E,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACxF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Content } from './content.js';
|
|
2
|
+
export type Sha256Digest = `sha256:${string}`;
|
|
3
|
+
export type Etag = Sha256Digest;
|
|
4
|
+
export declare function admitDigest(input: unknown): Sha256Digest;
|
|
5
|
+
export declare function computeEtag(input: Content): Etag;
|
|
6
|
+
export declare function sha256Hex(input: Uint8Array): string;
|
|
7
|
+
//# sourceMappingURL=etag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"etag.d.ts","sourceRoot":"","sources":["../../publication/etag.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAI3C,MAAM,MAAM,YAAY,GAAG,UAAU,MAAM,EAAE,CAAA;AAC7C,MAAM,MAAM,IAAI,GAAG,YAAY,CAAA;AAI/B,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAKxD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAGhD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAmDnD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as portable from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import { fail } from './error.js';
|
|
3
|
+
const DIGEST = /^sha256:[0-9a-f]{64}$/u;
|
|
4
|
+
export function admitDigest(input) {
|
|
5
|
+
if (typeof input !== 'string' || !DIGEST.test(input)) {
|
|
6
|
+
fail('PUBLICATION_INVALID', 'Digest is invalid.');
|
|
7
|
+
}
|
|
8
|
+
return input;
|
|
9
|
+
}
|
|
10
|
+
export function computeEtag(input) {
|
|
11
|
+
const bytes = portable.json.encode(input);
|
|
12
|
+
return `sha256:${sha256Hex(bytes)}`;
|
|
13
|
+
}
|
|
14
|
+
export function sha256Hex(input) {
|
|
15
|
+
const bitLength = input.length * 8;
|
|
16
|
+
const paddedLength = Math.ceil((input.length + 9) / 64) * 64;
|
|
17
|
+
const bytes = new Uint8Array(paddedLength);
|
|
18
|
+
bytes.set(input);
|
|
19
|
+
bytes[input.length] = 0x80;
|
|
20
|
+
const view = new DataView(bytes.buffer);
|
|
21
|
+
view.setUint32(paddedLength - 8, Math.floor(bitLength / 0x1_0000_0000), false);
|
|
22
|
+
view.setUint32(paddedLength - 4, bitLength >>> 0, false);
|
|
23
|
+
const state = new Uint32Array(INITIAL);
|
|
24
|
+
const words = new Uint32Array(64);
|
|
25
|
+
for (let offset = 0; offset < paddedLength; offset += 64) {
|
|
26
|
+
for (let index = 0; index < 16; index += 1) {
|
|
27
|
+
words[index] = view.getUint32(offset + index * 4, false);
|
|
28
|
+
}
|
|
29
|
+
for (let index = 16; index < 64; index += 1) {
|
|
30
|
+
const x = words[index - 15];
|
|
31
|
+
const y = words[index - 2];
|
|
32
|
+
const s0 = rotate(x, 7) ^ rotate(x, 18) ^ (x >>> 3);
|
|
33
|
+
const s1 = rotate(y, 17) ^ rotate(y, 19) ^ (y >>> 10);
|
|
34
|
+
words[index] = (words[index - 16] + s0 + words[index - 7] + s1) >>> 0;
|
|
35
|
+
}
|
|
36
|
+
let [a, b, c, d, e, f, g, h] = state;
|
|
37
|
+
for (let index = 0; index < 64; index += 1) {
|
|
38
|
+
const s1 = rotate(e, 6) ^ rotate(e, 11) ^ rotate(e, 25);
|
|
39
|
+
const choice = (e & f) ^ (~e & g);
|
|
40
|
+
const temporary1 = (h + s1 + choice + ROUND[index] + words[index]) >>> 0;
|
|
41
|
+
const s0 = rotate(a, 2) ^ rotate(a, 13) ^ rotate(a, 22);
|
|
42
|
+
const majority = (a & b) ^ (a & c) ^ (b & c);
|
|
43
|
+
const temporary2 = (s0 + majority) >>> 0;
|
|
44
|
+
h = g;
|
|
45
|
+
g = f;
|
|
46
|
+
f = e;
|
|
47
|
+
e = (d + temporary1) >>> 0;
|
|
48
|
+
d = c;
|
|
49
|
+
c = b;
|
|
50
|
+
b = a;
|
|
51
|
+
a = (temporary1 + temporary2) >>> 0;
|
|
52
|
+
}
|
|
53
|
+
state[0] = (state[0] + a) >>> 0;
|
|
54
|
+
state[1] = (state[1] + b) >>> 0;
|
|
55
|
+
state[2] = (state[2] + c) >>> 0;
|
|
56
|
+
state[3] = (state[3] + d) >>> 0;
|
|
57
|
+
state[4] = (state[4] + e) >>> 0;
|
|
58
|
+
state[5] = (state[5] + f) >>> 0;
|
|
59
|
+
state[6] = (state[6] + g) >>> 0;
|
|
60
|
+
state[7] = (state[7] + h) >>> 0;
|
|
61
|
+
}
|
|
62
|
+
return [...state].map((word) => word.toString(16).padStart(8, '0')).join('');
|
|
63
|
+
}
|
|
64
|
+
function rotate(value, count) {
|
|
65
|
+
return (value >>> count) | (value << (32 - count));
|
|
66
|
+
}
|
|
67
|
+
const INITIAL = new Uint32Array([
|
|
68
|
+
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
|
|
69
|
+
]);
|
|
70
|
+
const ROUND = new Uint32Array([
|
|
71
|
+
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
|
|
72
|
+
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
|
|
73
|
+
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
74
|
+
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
|
|
75
|
+
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
|
|
76
|
+
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
77
|
+
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
|
|
78
|
+
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
|
|
79
|
+
]);
|
|
80
|
+
//# sourceMappingURL=etag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"etag.js","sourceRoot":"","sources":["../../publication/etag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { MEDIA_TYPE, PATH, url, seal, accept, encode, acceptBundle, decodeBundle, type Publication, } from './publication.js';
|
|
2
|
+
export { BUNDLE_MEDIA_TYPE, describeBundle, type BundleDescriptor } from './bundle.js';
|
|
3
|
+
export type { Content } from './content.js';
|
|
4
|
+
export type { Etag, Sha256Digest } from './etag.js';
|
|
5
|
+
export { PublicationError, type PublicationErrorCode } from './error.js';
|
|
6
|
+
export * as delivery from './delivery/index.js';
|
|
7
|
+
export type { Authentication as DeliveryAuthentication, Endpoint as DeliveryEndpoint, } from './delivery-endpoint.js';
|
|
8
|
+
export type { Manifest } from './manifest.js';
|
|
9
|
+
export { ClassOperationOrder, admitRequirements, validateRequirements, type CapabilityAdminRequirements, type CapabilityRequirements, type ClassCapabilityRequirement, type ClassOperation, type NonEmpty, type PublicationRequirements, } from './requirements.js';
|
|
10
|
+
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';
|
|
12
|
+
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../publication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACtF,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,YAAY,EACV,cAAc,IAAI,sBAAsB,EACxC,QAAQ,IAAI,gBAAgB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,4BAA4B,GAClC,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,sBAAsB,GACvB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EACL,yBAAyB,EACzB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { MEDIA_TYPE, PATH, url, seal, accept, encode, acceptBundle, decodeBundle, } from './publication.js';
|
|
2
|
+
export { BUNDLE_MEDIA_TYPE, describeBundle } from './bundle.js';
|
|
3
|
+
export { PublicationError } from './error.js';
|
|
4
|
+
export * as delivery from './delivery/index.js';
|
|
5
|
+
export { ClassOperationOrder, admitRequirements, validateRequirements, } from './requirements.js';
|
|
6
|
+
export { acceptReference, compareReference, compareReferences, matchesReference, reference, } from './reference.js';
|
|
7
|
+
export { acceptInvocationEndpoints, } from './bindings/index.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../publication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,GAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAA;AAGtF,OAAO,EAAE,gBAAgB,EAA6B,MAAM,YAAY,CAAA;AACxE,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAM/C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GAOrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GAGV,MAAM,gBAAgB,CAAA;AAWvB,OAAO,EACL,yBAAyB,GAI1B,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../publication/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAK/C,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,CAAA;CAC/B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAyBlE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Ref } from '@astrale-os/kernel-dsl/v1';
|
|
2
|
+
import { exact, record } from './content.js';
|
|
3
|
+
import { fail } from './error.js';
|
|
4
|
+
export function admitManifest(input) {
|
|
5
|
+
if (input === undefined)
|
|
6
|
+
return undefined;
|
|
7
|
+
const value = record(input, 'PUBLICATION_INVALID', 'Manifest is invalid.');
|
|
8
|
+
exact(value, ['logo', 'entrypoint'], 'PUBLICATION_INVALID');
|
|
9
|
+
if (value.logo !== undefined && typeof value.logo !== 'string') {
|
|
10
|
+
fail('PUBLICATION_INVALID', 'Manifest logo must be a string.');
|
|
11
|
+
}
|
|
12
|
+
let entrypoint;
|
|
13
|
+
if (value.entrypoint !== undefined) {
|
|
14
|
+
if (typeof value.entrypoint !== 'string' ||
|
|
15
|
+
!Ref.isDefinition(value.entrypoint) ||
|
|
16
|
+
!value.entrypoint.startsWith('view.')) {
|
|
17
|
+
fail('PUBLICATION_INVALID', 'Manifest entrypoint must be a root View reference.');
|
|
18
|
+
}
|
|
19
|
+
entrypoint = value.entrypoint;
|
|
20
|
+
}
|
|
21
|
+
return Object.freeze({
|
|
22
|
+
...(value.logo === undefined ? {} : { logo: value.logo }),
|
|
23
|
+
...(entrypoint === undefined ? {} : { entrypoint }),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../publication/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOjC,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAA;IAC1E,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAA;IAE3D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,IAAI,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,UAAgC,CAAA;IACpC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,IACE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;YACpC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;YACnC,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,IAAI,CAAC,qBAAqB,EAAE,oDAAoD,CAAC,CAAA;QACnF,CAAC;QACD,UAAU,GAAG,KAAK,CAAC,UAAsB,CAAA;IAC3C,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as auth from '@astrale-os/kernel-core/auth';
|
|
2
|
+
import { Key, bundle as dslBundle } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import type { CallableBinding, ViewBinding } from './bindings/index.js';
|
|
4
|
+
import type { Content } from './content.js';
|
|
5
|
+
import type { Endpoint as DeliveryEndpoint } from './delivery-endpoint.js';
|
|
6
|
+
import type { Etag } from './etag.js';
|
|
7
|
+
import type { Manifest } from './manifest.js';
|
|
8
|
+
import type { PublicationRequirements } from './requirements.js';
|
|
9
|
+
import type { HttpRoute } from './route.js';
|
|
10
|
+
import type { Schema } from './schema.js';
|
|
11
|
+
export declare const PATH: '/.well-known/astrale/domain.json';
|
|
12
|
+
export declare const MEDIA_TYPE: 'application/vnd.astrale.domain-publication+json;v=2';
|
|
13
|
+
/** Resolve the canonical Publication URL beneath one exact HTTP(S) serving issuer. */
|
|
14
|
+
export declare function url(input: string): string;
|
|
15
|
+
export interface Publication {
|
|
16
|
+
readonly format: 'astrale.domain.publication';
|
|
17
|
+
readonly version: 2;
|
|
18
|
+
readonly origin: Key.Origin;
|
|
19
|
+
readonly identity: {
|
|
20
|
+
readonly issuer: auth.IssuerId;
|
|
21
|
+
readonly subject: string;
|
|
22
|
+
};
|
|
23
|
+
readonly etag: Etag;
|
|
24
|
+
readonly schema: Schema;
|
|
25
|
+
readonly requirements: PublicationRequirements;
|
|
26
|
+
readonly manifest?: Manifest;
|
|
27
|
+
readonly bindings: {
|
|
28
|
+
readonly callables: readonly CallableBinding[];
|
|
29
|
+
readonly views: readonly ViewBinding[];
|
|
30
|
+
};
|
|
31
|
+
readonly routes: readonly HttpRoute[];
|
|
32
|
+
readonly delivery?: DeliveryEndpoint;
|
|
33
|
+
}
|
|
34
|
+
export declare function seal(input: Content): Publication;
|
|
35
|
+
export declare function accept(input: unknown): Publication;
|
|
36
|
+
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../publication/publication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAA;AACpD,OAAO,EACL,GAAG,EAEH,MAAM,IAAI,SAAS,EAGpB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAazC,eAAO,MAAM,IAAI,EAAG,kCAA2C,CAAA;AAC/D,eAAO,MAAM,UAAU,EAAG,qDAA8D,CAAA;AAExF,sFAAsF;AACtF,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBzC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAA;QAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACzB,CAAA;IACD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAA;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;QAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;KACvC,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CACrC;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAEhD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAMlD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAErD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC,MAAM,CAKpF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAIpF"}
|