@astrale-os/kernel-protocol 0.5.0-beta.2 → 0.5.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/invocation/admission.d.ts +4 -2
- package/dist/invocation/admission.d.ts.map +1 -1
- package/dist/invocation/admission.js +15 -3
- package/dist/invocation/admission.js.map +1 -1
- package/dist/invocation/binary.d.ts +3 -1
- package/dist/invocation/binary.d.ts.map +1 -1
- package/dist/invocation/binary.js +5 -4
- package/dist/invocation/binary.js.map +1 -1
- package/dist/invocation/cancellation.d.ts +1 -1
- package/dist/invocation/cancellation.d.ts.map +1 -1
- package/dist/invocation/cancellation.js +3 -3
- package/dist/invocation/cancellation.js.map +1 -1
- package/dist/invocation/http/binary.d.ts +7 -0
- package/dist/invocation/http/binary.d.ts.map +1 -1
- package/dist/invocation/http/binary.js +46 -2
- package/dist/invocation/http/binary.js.map +1 -1
- package/dist/invocation/http/index.d.ts +1 -1
- package/dist/invocation/http/index.d.ts.map +1 -1
- package/dist/invocation/http/index.js +1 -1
- package/dist/invocation/http/index.js.map +1 -1
- package/dist/invocation/identity.d.ts +17 -0
- package/dist/invocation/identity.d.ts.map +1 -0
- package/dist/invocation/identity.js +56 -0
- package/dist/invocation/identity.js.map +1 -0
- package/dist/invocation/index.d.ts +4 -3
- package/dist/invocation/index.d.ts.map +1 -1
- package/dist/invocation/index.js +3 -2
- package/dist/invocation/index.js.map +1 -1
- package/dist/invocation/miss.d.ts +4 -2
- package/dist/invocation/miss.d.ts.map +1 -1
- package/dist/invocation/miss.js +10 -6
- package/dist/invocation/miss.js.map +1 -1
- package/dist/invocation/redirect.d.ts +19 -11
- package/dist/invocation/redirect.d.ts.map +1 -1
- package/dist/invocation/redirect.js +30 -16
- package/dist/invocation/redirect.js.map +1 -1
- package/dist/invocation/request.d.ts +1 -1
- package/dist/invocation/request.d.ts.map +1 -1
- package/dist/invocation/request.js +3 -3
- package/dist/invocation/request.js.map +1 -1
- package/dist/invocation/response.d.ts +9 -6
- package/dist/invocation/response.d.ts.map +1 -1
- package/dist/invocation/response.js +14 -9
- package/dist/invocation/response.js.map +1 -1
- package/dist/invocation/routing.d.ts +3 -2
- package/dist/invocation/routing.d.ts.map +1 -1
- package/dist/invocation/routing.js +4 -3
- package/dist/invocation/routing.js.map +1 -1
- package/dist/invocation/schema.d.ts +2 -2
- package/dist/invocation/schema.d.ts.map +1 -1
- package/dist/invocation/schema.js +2 -2
- package/dist/invocation/schema.js.map +1 -1
- package/dist/invocation/service-reason.d.ts +17 -9
- package/dist/invocation/service-reason.d.ts.map +1 -1
- package/dist/invocation/service-reason.js +18 -6
- package/dist/invocation/service-reason.js.map +1 -1
- package/dist/invocation/stale-route.d.ts +4 -2
- package/dist/invocation/stale-route.d.ts.map +1 -1
- package/dist/invocation/stale-route.js +7 -6
- package/dist/invocation/stale-route.js.map +1 -1
- package/dist/invocation/stream.d.ts +6 -4
- package/dist/invocation/stream.d.ts.map +1 -1
- package/dist/invocation/stream.js +17 -13
- package/dist/invocation/stream.js.map +1 -1
- package/dist/invocation/target.d.ts +2 -7
- package/dist/invocation/target.d.ts.map +1 -1
- package/dist/invocation/target.js.map +1 -1
- package/dist/invocation/websocket/binary.d.ts.map +1 -1
- package/dist/invocation/websocket/binary.js +2 -1
- package/dist/invocation/websocket/binary.js.map +1 -1
- package/dist/issuer/configuration.d.ts +1 -1
- package/dist/issuer/configuration.d.ts.map +1 -1
- package/dist/issuer/hosted.d.ts +1 -1
- package/dist/issuer/hosted.d.ts.map +1 -1
- package/dist/issuer/key-set.d.ts +1 -1
- package/dist/issuer/key-set.d.ts.map +1 -1
- package/dist/issuer/key-set.js +3 -2
- package/dist/issuer/key-set.js.map +1 -1
- package/dist/issuer/url.d.ts +1 -1
- package/dist/issuer/url.d.ts.map +1 -1
- package/dist/issuer/url.js +3 -2
- package/dist/issuer/url.js.map +1 -1
- package/dist/publication/bindings/callable.d.ts +1 -1
- package/dist/publication/bindings/callable.d.ts.map +1 -1
- package/dist/publication/bindings/callable.js +1 -1
- package/dist/publication/bindings/callable.js.map +1 -1
- package/dist/publication/bindings/view.d.ts +1 -1
- package/dist/publication/bindings/view.d.ts.map +1 -1
- package/dist/publication/bindings/view.js +1 -1
- package/dist/publication/bindings/view.js.map +1 -1
- package/dist/publication/bundle-admission.d.ts +5 -0
- package/dist/publication/bundle-admission.d.ts.map +1 -0
- package/dist/publication/bundle-admission.js +66 -0
- package/dist/publication/bundle-admission.js.map +1 -0
- package/dist/publication/bundle-descriptor.d.ts +10 -0
- package/dist/publication/bundle-descriptor.d.ts.map +1 -0
- package/dist/publication/bundle-descriptor.js +20 -0
- package/dist/publication/bundle-descriptor.js.map +1 -0
- package/dist/publication/bundle-evidence.d.ts +4 -0
- package/dist/publication/bundle-evidence.d.ts.map +1 -0
- package/dist/publication/bundle-evidence.js +14 -0
- package/dist/publication/bundle-evidence.js.map +1 -0
- package/dist/publication/bundle.d.ts +4 -10
- package/dist/publication/bundle.d.ts.map +1 -1
- package/dist/publication/bundle.js +5 -25
- package/dist/publication/bundle.js.map +1 -1
- package/dist/publication/declaration.d.ts +12 -0
- package/dist/publication/declaration.d.ts.map +1 -0
- package/dist/publication/declaration.js +2 -0
- package/dist/publication/declaration.js.map +1 -0
- package/dist/publication/delivery/claims.d.ts +8 -7
- package/dist/publication/delivery/claims.d.ts.map +1 -1
- package/dist/publication/delivery/claims.js +6 -6
- package/dist/publication/delivery/claims.js.map +1 -1
- package/dist/publication/delivery/delivery.d.ts +1 -1
- package/dist/publication/delivery/delivery.d.ts.map +1 -1
- package/dist/publication/delivery/delivery.js +1 -1
- package/dist/publication/delivery/delivery.js.map +1 -1
- package/dist/publication/delivery/request.d.ts +3 -3
- package/dist/publication/delivery/request.d.ts.map +1 -1
- package/dist/publication/delivery/request.js +4 -3
- package/dist/publication/delivery/request.js.map +1 -1
- package/dist/publication/delivery-declaration.d.ts +5 -0
- package/dist/publication/delivery-declaration.d.ts.map +1 -0
- package/dist/publication/delivery-declaration.js +26 -0
- package/dist/publication/delivery-declaration.js.map +1 -0
- package/dist/publication/index.d.ts +6 -2
- package/dist/publication/index.d.ts.map +1 -1
- package/dist/publication/index.js +4 -1
- package/dist/publication/index.js.map +1 -1
- package/dist/publication/manifest.d.ts +1 -1
- package/dist/publication/manifest.d.ts.map +1 -1
- package/dist/publication/manifest.js +1 -1
- package/dist/publication/manifest.js.map +1 -1
- package/dist/publication/publication.d.ts +3 -5
- package/dist/publication/publication.d.ts.map +1 -1
- package/dist/publication/publication.js +7 -66
- package/dist/publication/publication.js.map +1 -1
- package/dist/publication/reference.d.ts +3 -2
- package/dist/publication/reference.d.ts.map +1 -1
- package/dist/publication/reference.js +7 -6
- package/dist/publication/reference.js.map +1 -1
- package/dist/publication/requirements.d.ts +3 -2
- package/dist/publication/requirements.d.ts.map +1 -1
- package/dist/publication/requirements.js +16 -11
- package/dist/publication/requirements.js.map +1 -1
- package/dist/publication/route.d.ts +6 -1
- package/dist/publication/route.d.ts.map +1 -1
- package/dist/publication/route.js +31 -8
- package/dist/publication/route.js.map +1 -1
- package/dist/publication/schema.d.ts +3 -3
- package/dist/publication/schema.d.ts.map +1 -1
- package/dist/publication/schema.js +3 -3
- package/dist/publication/schema.js.map +1 -1
- package/dist/routes/admission.d.ts +4 -0
- package/dist/routes/admission.d.ts.map +1 -0
- package/dist/routes/admission.js +90 -0
- package/dist/routes/admission.js.map +1 -0
- package/dist/routes/binding.d.ts +7 -0
- package/dist/routes/binding.d.ts.map +1 -0
- package/dist/routes/binding.js +28 -0
- package/dist/routes/binding.js.map +1 -0
- package/dist/routes/collision.d.ts +3 -0
- package/dist/routes/collision.d.ts.map +1 -0
- package/dist/routes/collision.js +17 -0
- package/dist/routes/collision.js.map +1 -0
- package/dist/routes/compiler.d.ts +9 -0
- package/dist/routes/compiler.d.ts.map +1 -0
- package/dist/routes/compiler.js +48 -0
- package/dist/routes/compiler.js.map +1 -0
- package/dist/routes/credential.d.ts +7 -7
- package/dist/routes/credential.d.ts.map +1 -1
- package/dist/routes/credential.js +7 -7
- package/dist/routes/credential.js.map +1 -1
- package/dist/routes/decode.d.ts +4 -2
- package/dist/routes/decode.d.ts.map +1 -1
- package/dist/routes/decode.js +36 -31
- package/dist/routes/decode.js.map +1 -1
- package/dist/routes/encode.d.ts +3 -2
- package/dist/routes/encode.d.ts.map +1 -1
- package/dist/routes/encode.js +25 -22
- package/dist/routes/encode.js.map +1 -1
- package/dist/routes/evidence.d.ts +6 -0
- package/dist/routes/evidence.d.ts.map +1 -0
- package/dist/routes/evidence.js +38 -0
- package/dist/routes/evidence.js.map +1 -0
- package/dist/routes/index.d.ts +9 -2
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +6 -2
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/mapping.d.ts +1 -1
- package/dist/routes/mapping.d.ts.map +1 -1
- package/dist/routes/mapping.js +4 -12
- package/dist/routes/mapping.js.map +1 -1
- package/dist/routes/match.d.ts +3 -3
- package/dist/routes/match.d.ts.map +1 -1
- package/dist/routes/match.js +3 -4
- package/dist/routes/match.js.map +1 -1
- package/dist/routes/placement.d.ts +6 -0
- package/dist/routes/placement.d.ts.map +1 -0
- package/dist/routes/placement.js +19 -0
- package/dist/routes/placement.js.map +1 -0
- package/dist/routes/plan.d.ts +24 -0
- package/dist/routes/plan.d.ts.map +1 -0
- package/dist/routes/plan.js +2 -0
- package/dist/routes/plan.js.map +1 -0
- package/dist/routes/release-unavailable.d.ts +9 -0
- package/dist/routes/release-unavailable.d.ts.map +1 -0
- package/dist/routes/release-unavailable.js +33 -0
- package/dist/routes/release-unavailable.js.map +1 -0
- package/dist/routes/reservation.d.ts +3 -3
- package/dist/routes/reservation.d.ts.map +1 -1
- package/dist/routes/reservation.js +4 -4
- package/dist/routes/reservation.js.map +1 -1
- package/dist/routes/scalar.d.ts +4 -3
- package/dist/routes/scalar.d.ts.map +1 -1
- package/dist/routes/scalar.js +14 -10
- package/dist/routes/scalar.js.map +1 -1
- package/dist/routes/select.d.ts +2 -2
- package/dist/routes/select.d.ts.map +1 -1
- package/dist/routes/select.js +2 -2
- package/dist/routes/select.js.map +1 -1
- package/dist/routes/table.d.ts +10 -0
- package/dist/routes/table.d.ts.map +1 -0
- package/dist/routes/table.js +2 -0
- package/dist/routes/table.js.map +1 -0
- package/dist/routes/target.d.ts +14 -0
- package/dist/routes/target.d.ts.map +1 -0
- package/dist/routes/target.js +4 -0
- package/dist/routes/target.js.map +1 -0
- package/dist/runtime/artifact.d.ts +1 -1
- package/dist/runtime/artifact.d.ts.map +1 -1
- package/dist/runtime/artifact.js +2 -2
- package/dist/runtime/artifact.js.map +1 -1
- package/package.json +96 -3
- 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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAEpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAiBvC,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;QACpB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;QACpC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;KAC1B,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IAC7C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CACpB;AAOD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAuBjD;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,CACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,QAAQ,GACf,KAAK,CAcP;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAmB7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAYvE"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { acceptInvocationEndpoints } from '../publication/bindings/invocation.js';
|
|
2
|
+
import { PublicationError } from '../publication/error.js';
|
|
3
|
+
import { acceptReference } from '../publication/reference.js';
|
|
4
|
+
import { exactFields, invalid, issuerId, invocation, portableObject, requestId, required, string, } from './admission.js';
|
|
3
5
|
import { admitTrace } from './trace.js';
|
|
4
6
|
const ROUTE_FIELDS = new Set(['endpoint', 'via']);
|
|
5
7
|
const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
|
|
6
|
-
const
|
|
8
|
+
const REDIRECTION_FIELDS = new Set(['route', 'credential', 'trace']);
|
|
9
|
+
const REDIRECT_RESPONSE_FIELDS = new Set(['kind', 'requestId', 'invocation', 'redirect']);
|
|
7
10
|
export function acceptRoute(input) {
|
|
8
11
|
const object = portableObject(input, 'route');
|
|
9
12
|
exactFields(object, ROUTE_FIELDS, 'route');
|
|
@@ -15,16 +18,16 @@ export function acceptRoute(input) {
|
|
|
15
18
|
if (via.kind !== 'via')
|
|
16
19
|
invalid('route.via.kind must be "via"');
|
|
17
20
|
return Object.freeze({
|
|
18
|
-
endpoint:
|
|
21
|
+
endpoint: acceptInvocationEndpoints(object.endpoint),
|
|
19
22
|
via: Object.freeze({
|
|
20
23
|
kind: 'via',
|
|
21
|
-
publication:
|
|
24
|
+
publication: acceptReference(via.publication),
|
|
22
25
|
issuer: issuerId(via.issuer, 'route.via.issuer'),
|
|
23
26
|
}),
|
|
24
27
|
});
|
|
25
28
|
}
|
|
26
29
|
catch (cause) {
|
|
27
|
-
if (cause instanceof
|
|
30
|
+
if (cause instanceof PublicationError) {
|
|
28
31
|
return invalid(`route is invalid: ${cause.message}`);
|
|
29
32
|
}
|
|
30
33
|
throw cause;
|
|
@@ -46,23 +49,34 @@ export function remoteRoute(origin, binding, issuer) {
|
|
|
46
49
|
},
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
export function
|
|
50
|
-
const object = portableObject(input, '
|
|
51
|
-
exactFields(object,
|
|
52
|
-
required(object, ['
|
|
53
|
-
if (object.kind !== 'redirect')
|
|
54
|
-
invalid('redirect.kind must be "redirect"');
|
|
52
|
+
export function acceptRedirection(input) {
|
|
53
|
+
const object = portableObject(input, 'redirection');
|
|
54
|
+
exactFields(object, REDIRECTION_FIELDS, 'redirection');
|
|
55
|
+
required(object, ['route'], 'redirection');
|
|
55
56
|
const route = acceptRoute(object.route);
|
|
56
|
-
const credential = object.credential === undefined
|
|
57
|
+
const credential = object.credential === undefined
|
|
58
|
+
? undefined
|
|
59
|
+
: string(object.credential, 'redirection.credential');
|
|
57
60
|
const trace = object.trace === undefined ? undefined : admitTrace(object.trace);
|
|
58
61
|
if (credential !== undefined && credential.length === 0)
|
|
59
|
-
invalid('
|
|
62
|
+
invalid('redirection.credential must be non-empty');
|
|
60
63
|
return Object.freeze({
|
|
61
|
-
kind: 'redirect',
|
|
62
|
-
id: requestId(object.id, 'redirect.id'),
|
|
63
64
|
route,
|
|
64
65
|
...(credential === undefined ? {} : { credential }),
|
|
65
66
|
...(trace === undefined ? {} : { trace }),
|
|
66
67
|
});
|
|
67
68
|
}
|
|
69
|
+
export function decodeRedirectResponse(input) {
|
|
70
|
+
const object = portableObject(input, 'redirect response');
|
|
71
|
+
exactFields(object, REDIRECT_RESPONSE_FIELDS, 'redirect response');
|
|
72
|
+
required(object, ['kind', 'requestId', 'invocation', 'redirect'], 'redirect response');
|
|
73
|
+
if (object.kind !== 'redirect')
|
|
74
|
+
invalid('redirect response.kind must be "redirect"');
|
|
75
|
+
return Object.freeze({
|
|
76
|
+
kind: 'redirect',
|
|
77
|
+
requestId: requestId(object.requestId, 'redirect response.requestId'),
|
|
78
|
+
invocation: invocation(object.invocation, 'redirect response.invocation'),
|
|
79
|
+
redirect: acceptRedirection(object.redirect),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
68
82
|
//# sourceMappingURL=redirect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import type { Trace } from './trace.js';
|
|
|
8
8
|
import type { Version } from './version.js';
|
|
9
9
|
export interface Request {
|
|
10
10
|
readonly version: Version;
|
|
11
|
-
readonly
|
|
11
|
+
readonly requestId: RequestId;
|
|
12
12
|
readonly call: Call;
|
|
13
13
|
readonly credential?: string;
|
|
14
14
|
readonly delegate?: Delegate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../invocation/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAU3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../invocation/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAU3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB;AAcD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAkCrD"}
|
|
@@ -7,7 +7,7 @@ import { acceptCall } from './target.js';
|
|
|
7
7
|
import { admitTrace } from './trace.js';
|
|
8
8
|
const REQUEST_FIELDS = new Set([
|
|
9
9
|
'version',
|
|
10
|
-
'
|
|
10
|
+
'requestId',
|
|
11
11
|
'call',
|
|
12
12
|
'credential',
|
|
13
13
|
'delegate',
|
|
@@ -19,7 +19,7 @@ const REQUEST_FIELDS = new Set([
|
|
|
19
19
|
export function decodeRequest(input) {
|
|
20
20
|
const object = portableObject(input, 'request');
|
|
21
21
|
exactFields(object, REQUEST_FIELDS, 'request');
|
|
22
|
-
required(object, ['version', '
|
|
22
|
+
required(object, ['version', 'requestId', 'call'], 'request');
|
|
23
23
|
if (object.version !== 2)
|
|
24
24
|
invalid('request.version must be 2');
|
|
25
25
|
const credential = object.credential === undefined ? undefined : string(object.credential, 'request.credential');
|
|
@@ -38,7 +38,7 @@ export function decodeRequest(input) {
|
|
|
38
38
|
}
|
|
39
39
|
return Object.freeze({
|
|
40
40
|
version: 2,
|
|
41
|
-
|
|
41
|
+
requestId: requestId(object.requestId, 'request.requestId'),
|
|
42
42
|
call: acceptCall(object.call),
|
|
43
43
|
...(credential === undefined ? {} : { credential }),
|
|
44
44
|
...(delegate === undefined ? {} : { delegate }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../invocation/request.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAevC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,SAAS;IACT,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../invocation/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import type { Value } from '@astrale-os/kernel-dsl/value';
|
|
2
2
|
import type { ErrorPayload } from '../errors/index.js';
|
|
3
3
|
import type { RequestId } from './correlation.js';
|
|
4
|
+
import type { InvocationId } from './identity.js';
|
|
4
5
|
import type { Miss } from './miss.js';
|
|
5
|
-
import type {
|
|
6
|
+
import type { RedirectResponse } from './redirect.js';
|
|
6
7
|
import type { Stale } from './stale-route.js';
|
|
7
|
-
export interface
|
|
8
|
+
export interface ResponseContext {
|
|
9
|
+
readonly requestId: RequestId;
|
|
10
|
+
readonly invocation: InvocationId;
|
|
11
|
+
}
|
|
12
|
+
export interface SuccessResponse<Result extends Value = Value> extends ResponseContext {
|
|
8
13
|
readonly result: Result;
|
|
9
|
-
readonly id: RequestId;
|
|
10
14
|
}
|
|
11
|
-
export interface ErrorResponse {
|
|
15
|
+
export interface ErrorResponse extends ResponseContext {
|
|
12
16
|
readonly error: ErrorPayload;
|
|
13
|
-
readonly id: RequestId;
|
|
14
17
|
}
|
|
15
|
-
export type Response<Result extends Value = Value> = SuccessResponse<Result> | ErrorResponse |
|
|
18
|
+
export type Response<Result extends Value = Value> = SuccessResponse<Result> | ErrorResponse | RedirectResponse | Stale | Miss;
|
|
16
19
|
export declare function decodeResponse(input: unknown): Response;
|
|
17
20
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../invocation/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../invocation/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAe7C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAClC;AAED,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,eAAe;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,IAC7C,eAAe,CAAC,MAAM,CAAC,GACvB,aAAa,GACb,gBAAgB,GAChB,KAAK,GACL,IAAI,CAAA;AAKR,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CA8BvD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { errorPayload, exactFields, invalid, portableObject, requestId, required, } from './admission.js';
|
|
1
|
+
import { errorPayload, exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
2
|
import { decodeMiss } from './miss.js';
|
|
3
|
-
import {
|
|
3
|
+
import { decodeRedirectResponse } from './redirect.js';
|
|
4
4
|
import { decodeStale } from './stale-route.js';
|
|
5
|
-
const SUCCESS_FIELDS = new Set(['result', '
|
|
6
|
-
const ERROR_FIELDS = new Set(['error', '
|
|
5
|
+
const SUCCESS_FIELDS = new Set(['result', 'requestId', 'invocation']);
|
|
6
|
+
const ERROR_FIELDS = new Set(['error', 'requestId', 'invocation']);
|
|
7
7
|
export function decodeResponse(input) {
|
|
8
8
|
const object = portableObject(input, 'response');
|
|
9
9
|
const hasResult = Object.hasOwn(object, 'result');
|
|
@@ -13,18 +13,23 @@ export function decodeResponse(input) {
|
|
|
13
13
|
invalid('response must contain exactly one of result or error');
|
|
14
14
|
if (hasResult) {
|
|
15
15
|
exactFields(object, SUCCESS_FIELDS, 'response');
|
|
16
|
-
required(object, ['
|
|
17
|
-
return Object.freeze({
|
|
16
|
+
required(object, ['requestId', 'invocation'], 'response');
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
result: object.result,
|
|
19
|
+
requestId: requestId(object.requestId, 'response.requestId'),
|
|
20
|
+
invocation: invocation(object.invocation, 'response.invocation'),
|
|
21
|
+
});
|
|
18
22
|
}
|
|
19
23
|
exactFields(object, ERROR_FIELDS, 'response');
|
|
20
|
-
required(object, ['
|
|
24
|
+
required(object, ['requestId', 'error', 'invocation'], 'response');
|
|
21
25
|
return Object.freeze({
|
|
22
26
|
error: errorPayload(object.error, 'response.error'),
|
|
23
|
-
|
|
27
|
+
requestId: requestId(object.requestId, 'response.requestId'),
|
|
28
|
+
invocation: invocation(object.invocation, 'response.invocation'),
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
31
|
if (object.kind === 'redirect')
|
|
27
|
-
return
|
|
32
|
+
return decodeRedirectResponse(object);
|
|
28
33
|
if (object.kind === 'stale')
|
|
29
34
|
return decodeStale(object);
|
|
30
35
|
if (object.kind === 'miss')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../invocation/response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../invocation/response.ts"],"names":[],"mappings":"AASA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAsB9C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;AACrE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;AAElE,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,CAAC,sDAAsD,CAAC,CAAA;QAE3F,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;YAC/C,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAA;YACzD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAO;gBACtB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;gBAC5D,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC;aACjE,CAAC,CAAA;QACJ,CAAC;QAED,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QAC7C,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAA;QAClE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACnD,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;YAC5D,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;IACvD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;IACrD,OAAO,OAAO,CAAC,yEAAyE,CAAC,CAAA;AAC3F,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
2
|
-
import type { Etag
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
+
import type { Etag } from '../publication/etag.js';
|
|
3
|
+
import type { PublicationRef } from '../publication/reference.js';
|
|
3
4
|
export interface Via {
|
|
4
5
|
readonly kind: 'via';
|
|
5
6
|
readonly publication: PublicationRef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../invocation/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../invocation/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAMjE,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CACrB;AAED,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAA;AAKnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2BrD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { PublicationError } from '../publication/error.js';
|
|
2
|
+
import { acceptReference } from '../publication/reference.js';
|
|
2
3
|
import { digest, exactFields, invalid, issuerId, portableObject, required } from './admission.js';
|
|
3
4
|
const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
|
|
4
5
|
const REFRESH_FIELDS = new Set(['kind', 'stale']);
|
|
@@ -10,12 +11,12 @@ export function acceptRouting(input) {
|
|
|
10
11
|
try {
|
|
11
12
|
return Object.freeze({
|
|
12
13
|
kind: 'via',
|
|
13
|
-
publication:
|
|
14
|
+
publication: acceptReference(object.publication),
|
|
14
15
|
issuer: issuerId(object.issuer, 'via routing.issuer'),
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
18
|
catch (cause) {
|
|
18
|
-
if (cause instanceof
|
|
19
|
+
if (cause instanceof PublicationError) {
|
|
19
20
|
return invalid(`via routing.publication is invalid: ${cause.message}`);
|
|
20
21
|
}
|
|
21
22
|
throw cause;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../invocation/routing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../invocation/routing.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAejG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEjD,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;QAC9C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAA;QAClE,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC;gBAChD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;aACtD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACxE,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;QACtD,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,uBAAuB,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
|
|
2
2
|
import type { Sha256Digest } from '../publication/index.js';
|
|
3
3
|
/** Source-Kernel precondition for the active Schema Registration selected by one invocation. */
|
|
4
4
|
export type SchemaTarget = {
|
|
5
5
|
readonly target: Sha256Digest;
|
|
6
6
|
} | {
|
|
7
|
-
readonly revision:
|
|
7
|
+
readonly revision: Revision;
|
|
8
8
|
};
|
|
9
9
|
export declare function acceptSchemaTarget(input: unknown): SchemaTarget;
|
|
10
10
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../invocation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../invocation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAIhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAA;AAI9F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAe/D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
2
2
|
import { digest, exactFields, invalid, portableObject } from './admission.js';
|
|
3
3
|
const FIELDS = new Set(['target', 'revision']);
|
|
4
4
|
export function acceptSchemaTarget(input) {
|
|
@@ -12,7 +12,7 @@ export function acceptSchemaTarget(input) {
|
|
|
12
12
|
if (hasTarget) {
|
|
13
13
|
return Object.freeze({ target: digest(object.target, 'schema target.target') });
|
|
14
14
|
}
|
|
15
|
-
if (typeof object.revision !== 'string' || !
|
|
15
|
+
if (typeof object.revision !== 'string' || !patterns.revision.test(object.revision)) {
|
|
16
16
|
invalid('schema target.revision must be a Schema revision');
|
|
17
17
|
}
|
|
18
18
|
return Object.freeze({ revision: object.revision });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../invocation/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../invocation/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAI/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAK7E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;AAE9C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IACrD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACrD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,CAAC,8DAA8D,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpF,OAAO,CAAC,kDAAkD,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAoB,EAAE,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1,37 +1,45 @@
|
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
|
|
2
|
+
import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
|
|
1
3
|
import type { Object as ValueObject } from '@astrale-os/kernel-dsl/value';
|
|
2
|
-
import
|
|
3
|
-
import { schema as dslSchema, type Key } from '@astrale-os/kernel-dsl/v1';
|
|
4
|
+
import { type Key } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
4
5
|
import type { ErrorPayload, ErrorReason } from '../errors/index.js';
|
|
5
6
|
import { CODES } from '../errors/index.js';
|
|
6
7
|
export declare const SCHEMA_UPGRADE_REQUIRED: 'SCHEMA_UPGRADE_REQUIRED';
|
|
8
|
+
export declare const SCHEMA_REVISION_MISMATCH: 'SCHEMA_REVISION_MISMATCH';
|
|
7
9
|
export declare const SERVICE_TRUST_REQUIRED: 'SERVICE_TRUST_REQUIRED';
|
|
8
10
|
export declare const SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE';
|
|
9
11
|
export declare const SERVICE_CANDIDATE_INVALID: 'SERVICE_CANDIDATE_INVALID';
|
|
10
12
|
export type SchemaUpgradeRequiredDetails = ValueObject & {
|
|
11
13
|
readonly origin: Key.Origin;
|
|
12
|
-
readonly installedRevision:
|
|
13
|
-
readonly candidateRevision:
|
|
14
|
+
readonly installedRevision: Revision;
|
|
15
|
+
readonly candidateRevision: Revision;
|
|
16
|
+
};
|
|
17
|
+
export type SchemaRevisionMismatchDetails = ValueObject & {
|
|
18
|
+
readonly origin: Key.Origin;
|
|
19
|
+
readonly expectedRevision: Revision;
|
|
20
|
+
readonly installedRevision: Revision;
|
|
14
21
|
};
|
|
15
22
|
export type ServiceTrustRequiredDetails = ValueObject & {
|
|
16
23
|
readonly origin: Key.Origin;
|
|
17
|
-
readonly installedIssuer:
|
|
18
|
-
readonly candidateIssuer:
|
|
24
|
+
readonly installedIssuer: IssuerId;
|
|
25
|
+
readonly candidateIssuer: IssuerId;
|
|
19
26
|
};
|
|
20
27
|
export type ServiceUnavailableDetails = ValueObject & {
|
|
21
28
|
readonly origin: Key.Origin;
|
|
22
|
-
readonly revision:
|
|
29
|
+
readonly revision: Revision;
|
|
23
30
|
};
|
|
24
31
|
export type ServiceCandidateInvalidDetails = ValueObject & {
|
|
25
32
|
readonly origin: Key.Origin;
|
|
26
33
|
};
|
|
27
34
|
export type SchemaUpgradeRequiredReason = ErrorReason<typeof SCHEMA_UPGRADE_REQUIRED, SchemaUpgradeRequiredDetails>;
|
|
35
|
+
export type SchemaRevisionMismatchReason = ErrorReason<typeof SCHEMA_REVISION_MISMATCH, SchemaRevisionMismatchDetails>;
|
|
28
36
|
export type ServiceTrustRequiredReason = ErrorReason<typeof SERVICE_TRUST_REQUIRED, ServiceTrustRequiredDetails>;
|
|
29
37
|
export type ServiceUnavailableReason = ErrorReason<typeof SERVICE_UNAVAILABLE, ServiceUnavailableDetails>;
|
|
30
38
|
export type ServiceCandidateInvalidReason = ErrorReason<typeof SERVICE_CANDIDATE_INVALID, ServiceCandidateInvalidDetails>;
|
|
31
|
-
export type ServiceReason = SchemaUpgradeRequiredReason | ServiceTrustRequiredReason | ServiceUnavailableReason | ServiceCandidateInvalidReason;
|
|
39
|
+
export type ServiceReason = SchemaRevisionMismatchReason | SchemaUpgradeRequiredReason | ServiceTrustRequiredReason | ServiceUnavailableReason | ServiceCandidateInvalidReason;
|
|
32
40
|
export type ServiceErrorPayload = (Omit<ErrorPayload, 'code' | 'data'> & {
|
|
33
41
|
readonly code: typeof CODES.CONFLICT;
|
|
34
|
-
readonly data: SchemaUpgradeRequiredReason | ServiceTrustRequiredReason;
|
|
42
|
+
readonly data: SchemaRevisionMismatchReason | SchemaUpgradeRequiredReason | ServiceTrustRequiredReason;
|
|
35
43
|
}) | (Omit<ErrorPayload, 'code' | 'data'> & {
|
|
36
44
|
readonly code: typeof CODES.BACKEND_UNAVAILABLE;
|
|
37
45
|
readonly data: ServiceUnavailableReason | ServiceCandidateInvalidReason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-reason.d.ts","sourceRoot":"","sources":["../../invocation/service-reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"service-reason.d.ts","sourceRoot":"","sources":["../../invocation/service-reason.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
|
|
2
|
+
import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
|
|
3
|
+
import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
4
|
import { CODES, reasonOf } from '../errors/index.js';
|
|
4
5
|
export const SCHEMA_UPGRADE_REQUIRED = 'SCHEMA_UPGRADE_REQUIRED';
|
|
6
|
+
export const SCHEMA_REVISION_MISMATCH = 'SCHEMA_REVISION_MISMATCH';
|
|
5
7
|
export const SERVICE_TRUST_REQUIRED = 'SERVICE_TRUST_REQUIRED';
|
|
6
8
|
export const SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE';
|
|
7
9
|
export const SERVICE_CANDIDATE_INVALID = 'SERVICE_CANDIDATE_INVALID';
|
|
@@ -11,6 +13,10 @@ export function serviceErrorOf(input) {
|
|
|
11
13
|
if (reason === undefined)
|
|
12
14
|
return undefined;
|
|
13
15
|
switch (reason.code) {
|
|
16
|
+
case SCHEMA_REVISION_MISMATCH:
|
|
17
|
+
return input.code === CODES.CONFLICT && schemaRevisionMismatchDetails(reason.details)
|
|
18
|
+
? input
|
|
19
|
+
: undefined;
|
|
14
20
|
case SCHEMA_UPGRADE_REQUIRED:
|
|
15
21
|
return input.code === CODES.CONFLICT && schemaUpgradeDetails(reason.details)
|
|
16
22
|
? input
|
|
@@ -31,6 +37,12 @@ export function serviceErrorOf(input) {
|
|
|
31
37
|
return undefined;
|
|
32
38
|
}
|
|
33
39
|
}
|
|
40
|
+
function schemaRevisionMismatchDetails(input) {
|
|
41
|
+
return (exact(input, ['origin', 'expectedRevision', 'installedRevision']) &&
|
|
42
|
+
isOrigin(input.origin) &&
|
|
43
|
+
isRevision(input.expectedRevision) &&
|
|
44
|
+
isRevision(input.installedRevision));
|
|
45
|
+
}
|
|
34
46
|
function schemaUpgradeDetails(input) {
|
|
35
47
|
return (exact(input, ['origin', 'installedRevision', 'candidateRevision']) &&
|
|
36
48
|
isOrigin(input.origin) &&
|
|
@@ -54,19 +66,19 @@ function exact(input, fields) {
|
|
|
54
66
|
fields.every((field) => Object.hasOwn(input, field)));
|
|
55
67
|
}
|
|
56
68
|
function isOrigin(input) {
|
|
57
|
-
return typeof input === 'string' &&
|
|
69
|
+
return typeof input === 'string' && patterns.origin.test(input);
|
|
58
70
|
}
|
|
59
71
|
function isRevision(input) {
|
|
60
|
-
return typeof input === 'string' &&
|
|
72
|
+
return typeof input === 'string' && patterns.revision.test(input);
|
|
61
73
|
}
|
|
62
74
|
function isIssuer(input) {
|
|
63
75
|
if (typeof input !== 'string')
|
|
64
76
|
return false;
|
|
65
77
|
try {
|
|
66
|
-
return
|
|
78
|
+
return acceptIssuer(input) === input;
|
|
67
79
|
}
|
|
68
80
|
catch (cause) {
|
|
69
|
-
if (cause instanceof
|
|
81
|
+
if (cause instanceof AuthValueError)
|
|
70
82
|
return false;
|
|
71
83
|
throw cause;
|
|
72
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-reason.js","sourceRoot":"","sources":["../../invocation/service-reason.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service-reason.js","sourceRoot":"","sources":["../../invocation/service-reason.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAY,MAAM,sCAAsC,CAAA;AAIzE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAkC,CAAA;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAAmC,CAAA;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAiC,CAAA;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAA8B,CAAA;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAAoC,CAAA;AAsE7E,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAE1C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,wBAAwB;YAC3B,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,6BAA6B,CAAC,MAAM,CAAC,OAAO,CAAC;gBACnF,CAAC,CAAE,KAA6B;gBAChC,CAAC,CAAC,SAAS,CAAA;QACf,KAAK,uBAAuB;YAC1B,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC1E,CAAC,CAAE,KAA6B;gBAChC,CAAC,CAAC,SAAS,CAAA;QACf,KAAK,sBAAsB;YACzB,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzE,CAAC,CAAE,KAA6B;gBAChC,CAAC,CAAC,SAAS,CAAA;QACf,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,mBAAmB,IAAI,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC1F,CAAC,CAAE,KAA6B;gBAChC,CAAC,CAAC,SAAS,CAAA;QACf,KAAK,yBAAyB;YAC5B,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,mBAAmB,IAAI,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxF,CAAC,CAAE,KAA6B;gBAChC,CAAC,CAAC,SAAS,CAAA;QACf;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAkB;IACvD,OAAO,CACL,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;QACjE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACpC,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAkB;IAC9C,OAAO,CACL,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACnC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACpC,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkB;IAC7C,OAAO,CACL,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC9D,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC;QAC/B,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAChC,CAAA;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAkB;IACnD,OAAO,CACL,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC7F,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAkB;IACjD,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,KAAK,CAAC,KAAkB,EAAE,MAAyB;IAC1D,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACrD,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc;YAAE,OAAO,KAAK,CAAA;QACjD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Etag } from '../publication/index.js';
|
|
2
2
|
import type { RequestId } from './correlation.js';
|
|
3
|
+
import type { InvocationId } from './identity.js';
|
|
3
4
|
/** Reserved pre-handler routing control; never an application ErrorResponse. */
|
|
4
5
|
export interface Stale {
|
|
5
6
|
readonly kind: 'stale';
|
|
6
|
-
readonly
|
|
7
|
+
readonly requestId: RequestId;
|
|
8
|
+
readonly invocation: InvocationId;
|
|
7
9
|
readonly current: Etag;
|
|
8
10
|
}
|
|
9
11
|
export declare function decodeStale(input: unknown): Stale;
|
|
10
|
-
export declare function stale(
|
|
12
|
+
export declare function stale(requestId: RequestId, assigned: InvocationId, current: Etag): Stale;
|
|
11
13
|
//# sourceMappingURL=stale-route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stale-route.d.ts","sourceRoot":"","sources":["../../invocation/stale-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"stale-route.d.ts","sourceRoot":"","sources":["../../invocation/stale-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAYjD,gFAAgF;AAChF,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;CACvB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAajD;AAED,wBAAgB,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,CAExF"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { digest, exactFields, invalid, portableObject, requestId, required } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['kind', '
|
|
1
|
+
import { digest, exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
|
+
const FIELDS = new Set(['kind', 'requestId', 'invocation', 'current']);
|
|
3
3
|
export function decodeStale(input) {
|
|
4
4
|
const object = portableObject(input, 'stale control');
|
|
5
5
|
exactFields(object, FIELDS, 'stale control');
|
|
6
|
-
required(object, ['kind', '
|
|
6
|
+
required(object, ['kind', 'requestId', 'invocation', 'current'], 'stale control');
|
|
7
7
|
if (object.kind !== 'stale') {
|
|
8
8
|
invalid('stale control.kind must be "stale"');
|
|
9
9
|
}
|
|
10
10
|
return Object.freeze({
|
|
11
11
|
kind: 'stale',
|
|
12
|
-
|
|
12
|
+
requestId: requestId(object.requestId, 'stale control.requestId'),
|
|
13
|
+
invocation: invocation(object.invocation, 'stale control.invocation'),
|
|
13
14
|
current: digest(object.current, 'stale control.current'),
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
|
-
export function stale(
|
|
17
|
-
return
|
|
17
|
+
export function stale(requestId, assigned, current) {
|
|
18
|
+
return decodeStale({ kind: 'stale', requestId, invocation: assigned, current });
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=stale-route.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stale-route.js","sourceRoot":"","sources":["../../invocation/stale-route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stale-route.js","sourceRoot":"","sources":["../../invocation/stale-route.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAUvB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;AAEtE,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IACrD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAA;IACjF,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,oCAAoC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;QACjE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC;QACrE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;KACzD,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,SAAoB,EAAE,QAAsB,EAAE,OAAa;IAC/E,OAAO,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AACjF,CAAC"}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
import type { Value } from '@astrale-os/kernel-dsl/value';
|
|
2
2
|
import type { ErrorPayload } from '../errors/index.js';
|
|
3
3
|
import type { RequestId } from './correlation.js';
|
|
4
|
+
import type { InvocationId } from './identity.js';
|
|
4
5
|
export interface StreamStartFrame {
|
|
5
6
|
readonly kind: 'stream.start';
|
|
6
|
-
readonly
|
|
7
|
+
readonly requestId: RequestId;
|
|
8
|
+
readonly invocation: InvocationId;
|
|
7
9
|
}
|
|
8
10
|
export interface StreamItemFrame {
|
|
9
11
|
readonly kind: 'stream.item';
|
|
10
|
-
readonly
|
|
12
|
+
readonly requestId: RequestId;
|
|
11
13
|
readonly index: number;
|
|
12
14
|
readonly value: Value;
|
|
13
15
|
}
|
|
14
16
|
export interface StreamEndFrame {
|
|
15
17
|
readonly kind: 'stream.end';
|
|
16
|
-
readonly
|
|
18
|
+
readonly requestId: RequestId;
|
|
17
19
|
readonly count: number;
|
|
18
20
|
}
|
|
19
21
|
export interface StreamErrorFrame {
|
|
20
22
|
readonly kind: 'stream.error';
|
|
21
|
-
readonly
|
|
23
|
+
readonly requestId: RequestId;
|
|
22
24
|
readonly error: ErrorPayload;
|
|
23
25
|
}
|
|
24
26
|
export type StreamFrame = StreamStartFrame | StreamItemFrame | StreamEndFrame | StreamErrorFrame;
|