@astrale-os/kernel-protocol 0.5.0-beta.2 → 0.5.0-beta.3
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 +2 -0
- package/dist/invocation/admission.d.ts.map +1 -1
- package/dist/invocation/admission.js +11 -0
- 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 +3 -2
- package/dist/invocation/index.d.ts.map +1 -1
- package/dist/invocation/index.js +2 -1
- 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 +10 -4
- package/dist/invocation/redirect.d.ts.map +1 -1
- package/dist/invocation/redirect.js +24 -12
- 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/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/package.json +3 -3
|
@@ -5,11 +5,13 @@ import { type Object as ValueObject } from '@astrale-os/kernel-dsl/value';
|
|
|
5
5
|
import type { ErrorPayload } from '../errors/index.js';
|
|
6
6
|
import type { Etag } from '../publication/index.js';
|
|
7
7
|
import { type RequestId } from './correlation.js';
|
|
8
|
+
import { type InvocationId } from './identity.js';
|
|
8
9
|
export declare function portableObject(input: unknown, label: string): ValueObject;
|
|
9
10
|
export declare function exactDataObject(input: unknown, label: string): Record<string, unknown>;
|
|
10
11
|
export declare function exactFields(object: Record<string, unknown>, allowed: ReadonlySet<string>, label: string): void;
|
|
11
12
|
export declare function required(object: Record<string, unknown>, fields: readonly string[], label: string): void;
|
|
12
13
|
export declare function requestId(input: unknown, label: string): RequestId;
|
|
14
|
+
export declare function invocation(input: unknown, label: string): InvocationId;
|
|
13
15
|
export declare function nodePath(input: unknown, label: string): NodePath;
|
|
14
16
|
export declare function issuerId(input: unknown, label: string): IssuerId;
|
|
15
17
|
export declare function string(input: unknown, label: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../invocation/admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAa,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,GAAG,EAAO,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAGL,KAAK,MAAM,IAAI,WAAW,EAE3B,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAGnD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../invocation/admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAa,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,GAAG,EAAO,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAGL,KAAK,MAAM,IAAI,WAAW,EAE3B,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAGnD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAEtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAYzE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBtF;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,MAAM,GACZ,IAAI,CAIN;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,MAAM,GACZ,IAAI,CAIN;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAOlE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAOtE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAQhE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAShE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,QAAQ,CAavE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAOxE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqB9E;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE9C"}
|
|
@@ -4,6 +4,7 @@ import { Key, Ref } from '@astrale-os/kernel-dsl/v1';
|
|
|
4
4
|
import { accept as acceptValue, BoundaryError, } from '@astrale-os/kernel-dsl/value';
|
|
5
5
|
import { CODES, acceptPayload, ProtocolError } from '../errors/index.js';
|
|
6
6
|
import { acceptRequestId } from './correlation.js';
|
|
7
|
+
import { acceptInvocationId, InvocationError } from './identity.js';
|
|
7
8
|
export function portableObject(input, label) {
|
|
8
9
|
let cloned;
|
|
9
10
|
try {
|
|
@@ -61,6 +62,16 @@ export function requestId(input, label) {
|
|
|
61
62
|
throw cause;
|
|
62
63
|
}
|
|
63
64
|
}
|
|
65
|
+
export function invocation(input, label) {
|
|
66
|
+
try {
|
|
67
|
+
return acceptInvocationId(input);
|
|
68
|
+
}
|
|
69
|
+
catch (cause) {
|
|
70
|
+
if (cause instanceof InvocationError)
|
|
71
|
+
return invalid(`${label} must be a valid Invocation`);
|
|
72
|
+
throw cause;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
64
75
|
export function nodePath(input, label) {
|
|
65
76
|
if (typeof input !== 'string')
|
|
66
77
|
invalid(`${label} must be a NodePath string`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admission.js","sourceRoot":"","sources":["../../invocation/admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAiB,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EACL,MAAM,IAAI,WAAW,EACrB,aAAa,GAGd,MAAM,8BAA8B,CAAA;AAKrC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"admission.js","sourceRoot":"","sources":["../../invocation/admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAiB,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EACL,MAAM,IAAI,WAAW,EACrB,aAAa,GAGd,MAAM,8BAA8B,CAAA;AAKrC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAA;AAEtF,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,MAAa,CAAA;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAA;IACjE,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,KAAa;IAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,KAAK,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAA;QAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9D,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YACnF,OAAO,CAAC,GAAG,KAAK,IAAI,GAAG,mCAAmC,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAA;IAChC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAA+B,EAC/B,OAA4B,EAC5B,KAAa;IAEb,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,KAAK,8BAA8B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,MAA+B,EAC/B,MAAyB,EACzB,KAAa;IAEb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,KAAK,IAAI,KAAK,cAAc,CAAC,CAAA;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,KAAa;IACrD,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,KAAa;IACtD,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe;YAAE,OAAO,OAAO,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAA;QAC3F,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,KAAa;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAA;IAC5E,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAA;QACnF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,KAAa;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAA;IAC/E,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc;YACjC,OAAO,OAAO,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAA;QAC9D,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAA;IACnE,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,KAAe,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,KAAa;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAA;IACvF,OAAO,KAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,KAAa;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,KAAK,gCAAgC,CAAC,CAAA;IAChF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAiB,CAAA;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAA;QACvF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,KAAa;IACxD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAA;IAChE,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,2BAA2B,IAAI,EAAE,CAAC,CAAA;QACjE,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAChC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACjF,CAAC;QACD,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC1F,OAAO,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IACxB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,CAAA;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,WAAW,GAAG,gCAAgC,CAAA;AAEpD,SAAS,mBAAmB,CAAC,KAAa;IACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;IAChD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { RequestId } from './correlation.js';
|
|
2
|
+
import type { InvocationId } from './identity.js';
|
|
2
3
|
export interface BinaryResponse {
|
|
3
4
|
readonly kind: 'binary';
|
|
4
|
-
readonly
|
|
5
|
+
readonly requestId: RequestId;
|
|
6
|
+
readonly invocation: InvocationId;
|
|
5
7
|
readonly body: Uint8Array;
|
|
6
8
|
readonly mediaType: string;
|
|
7
9
|
readonly headers?: Readonly<Record<string, string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../invocation/binary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../invocation/binary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAajD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACpD;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAmBnE"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { acceptHeaders, exactDataObject, exactFields, invalid, requestId, required, string, } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['kind', '
|
|
1
|
+
import { acceptHeaders, exactDataObject, exactFields, invalid, invocation, requestId, required, string, } from './admission.js';
|
|
2
|
+
const FIELDS = new Set(['kind', 'requestId', 'invocation', 'body', 'mediaType', 'headers']);
|
|
3
3
|
const MEDIA_TYPE = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
|
|
4
4
|
export function decodeBinaryResponse(input) {
|
|
5
5
|
const object = exactDataObject(input, 'binary response');
|
|
6
6
|
exactFields(object, FIELDS, 'binary response');
|
|
7
|
-
required(object, ['kind', '
|
|
7
|
+
required(object, ['kind', 'requestId', 'invocation', 'body', 'mediaType'], 'binary response');
|
|
8
8
|
if (object.kind !== 'binary')
|
|
9
9
|
invalid('binary response.kind must be "binary"');
|
|
10
10
|
if (!(object.body instanceof Uint8Array))
|
|
@@ -15,7 +15,8 @@ export function decodeBinaryResponse(input) {
|
|
|
15
15
|
const headers = object.headers === undefined ? undefined : acceptHeaders(object.headers);
|
|
16
16
|
return Object.freeze({
|
|
17
17
|
kind: 'binary',
|
|
18
|
-
|
|
18
|
+
requestId: requestId(object.requestId, 'binary response.requestId'),
|
|
19
|
+
invocation: invocation(object.invocation, 'binary response.invocation'),
|
|
19
20
|
body: new Uint8Array(object.body),
|
|
20
21
|
mediaType,
|
|
21
22
|
...(headers === undefined ? {} : { headers }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../invocation/binary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../invocation/binary.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,MAAM,GACP,MAAM,gBAAgB,CAAA;AAWvB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;AAC3F,MAAM,UAAU,GAAG,6DAA6D,CAAA;AAEhF,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;IACxD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAC7F,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,uCAAuC,CAAC,CAAA;IAC9E,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,UAAU,CAAC;QAAE,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAE9F,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,sCAAsC,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAExF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,2BAA2B,CAAC;QACnE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC;QACvE,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,SAAS;QACT,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -3,7 +3,7 @@ import type { Version } from './version.js';
|
|
|
3
3
|
export interface CancelRequest {
|
|
4
4
|
readonly version: Version;
|
|
5
5
|
readonly kind: 'cancel';
|
|
6
|
-
readonly
|
|
6
|
+
readonly requestId: RequestId;
|
|
7
7
|
}
|
|
8
8
|
export declare function decodeCancelRequest(input: unknown): CancelRequest;
|
|
9
9
|
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../../invocation/cancellation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAI3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../../invocation/cancellation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAI3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAC9B;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAWjE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { exactFields, invalid, portableObject, requestId, required } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['version', 'kind', '
|
|
2
|
+
const FIELDS = new Set(['version', 'kind', 'requestId']);
|
|
3
3
|
export function decodeCancelRequest(input) {
|
|
4
4
|
const object = portableObject(input, 'cancel request');
|
|
5
5
|
exactFields(object, FIELDS, 'cancel request');
|
|
6
|
-
required(object, ['version', 'kind', '
|
|
6
|
+
required(object, ['version', 'kind', 'requestId'], 'cancel request');
|
|
7
7
|
if (object.version !== 2)
|
|
8
8
|
invalid('cancel request.version must be 2');
|
|
9
9
|
if (object.kind !== 'cancel')
|
|
@@ -11,7 +11,7 @@ export function decodeCancelRequest(input) {
|
|
|
11
11
|
return Object.freeze({
|
|
12
12
|
version: 2,
|
|
13
13
|
kind: 'cancel',
|
|
14
|
-
|
|
14
|
+
requestId: requestId(object.requestId, 'cancel request.requestId'),
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=cancellation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../invocation/cancellation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAQ1F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../invocation/cancellation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAQ1F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AAExD,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;IACtD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAA;IACpE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,CAAC,kCAAkC,CAAC,CAAA;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,sCAAsC,CAAC,CAAA;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KACnE,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { type InvocationId } from '../identity.js';
|
|
1
2
|
export declare const BINARY_HEADERS_FIELD: 'x-astrale-binary-headers';
|
|
2
3
|
export declare const REQUEST_ID_FIELD: 'x-astrale-request-id';
|
|
4
|
+
export declare const INVOCATION_FIELD: 'x-astrale-invocation';
|
|
5
|
+
export declare const MAXIMUM_INVOCATION_FIELD_BYTES = 8192;
|
|
6
|
+
/** Encode one admitted InvocationId as percent-encoded source plus opaque ID. */
|
|
7
|
+
export declare function encodeInvocationId(input: InvocationId): string;
|
|
8
|
+
/** Decode one complete finite-binary InvocationId field. */
|
|
9
|
+
export declare function decodeInvocationId(input: string | null): InvocationId;
|
|
3
10
|
export declare function isApplicationBinaryHeader(name: string): boolean;
|
|
4
11
|
export declare function encodeBinaryHeaderNames(headers: Readonly<Record<string, string>> | undefined): string;
|
|
5
12
|
export declare function decodeBinaryHeaderNames(input: string | null): readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../invocation/http/binary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../invocation/http/binary.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEtE,eAAO,MAAM,oBAAoB,EAAG,0BAAmC,CAAA;AACvE,eAAO,MAAM,gBAAgB,EAAG,sBAA+B,CAAA;AAC/D,eAAO,MAAM,gBAAgB,EAAG,sBAA+B,CAAA;AAC/D,eAAO,MAAM,8BAA8B,OAAQ,CAAA;AAqCnD,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAY9D;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,CAuBrE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ/D;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACpD,MAAM,CAcR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,MAAM,EAAE,CAgB/E"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { CODES, ProtocolError } from '../../errors/index.js';
|
|
2
|
+
import { acceptInvocationId } from '../identity.js';
|
|
2
3
|
export const BINARY_HEADERS_FIELD = 'x-astrale-binary-headers';
|
|
3
4
|
export const REQUEST_ID_FIELD = 'x-astrale-request-id';
|
|
5
|
+
export const INVOCATION_FIELD = 'x-astrale-invocation';
|
|
6
|
+
export const MAXIMUM_INVOCATION_FIELD_BYTES = 8_192;
|
|
4
7
|
const HEADER_NAME = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
|
|
5
8
|
const MAXIMUM_MANIFEST_BYTES = 8_192;
|
|
6
9
|
const MAXIMUM_MANIFEST_NAMES = 128;
|
|
@@ -30,9 +33,50 @@ const RESERVED = new Set([
|
|
|
30
33
|
'www-authenticate',
|
|
31
34
|
EMPTY_MANIFEST,
|
|
32
35
|
BINARY_HEADERS_FIELD,
|
|
36
|
+
INVOCATION_FIELD,
|
|
33
37
|
REQUEST_ID_FIELD,
|
|
34
38
|
'x-astrale-stream-framing',
|
|
35
39
|
]);
|
|
40
|
+
/** Encode one admitted InvocationId as percent-encoded source plus opaque ID. */
|
|
41
|
+
export function encodeInvocationId(input) {
|
|
42
|
+
let source;
|
|
43
|
+
try {
|
|
44
|
+
source = encodeURIComponent(input.source);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
48
|
+
}
|
|
49
|
+
const encoded = `${source};${input.id}`;
|
|
50
|
+
if (new TextEncoder().encode(encoded).byteLength > MAXIMUM_INVOCATION_FIELD_BYTES) {
|
|
51
|
+
invalid('HTTP binary InvocationId field is invalid.');
|
|
52
|
+
}
|
|
53
|
+
return encoded;
|
|
54
|
+
}
|
|
55
|
+
/** Decode one complete finite-binary InvocationId field. */
|
|
56
|
+
export function decodeInvocationId(input) {
|
|
57
|
+
if (input === null ||
|
|
58
|
+
input.length === 0 ||
|
|
59
|
+
new TextEncoder().encode(input).byteLength > MAXIMUM_INVOCATION_FIELD_BYTES) {
|
|
60
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
61
|
+
}
|
|
62
|
+
const separator = input.indexOf(';');
|
|
63
|
+
if (separator < 1 || input.indexOf(';', separator + 1) !== -1) {
|
|
64
|
+
invalid('HTTP binary InvocationId field is invalid.');
|
|
65
|
+
}
|
|
66
|
+
let source;
|
|
67
|
+
try {
|
|
68
|
+
source = decodeURIComponent(input.slice(0, separator));
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
return acceptInvocationId({ source, id: input.slice(separator + 1) });
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return invalid('HTTP binary InvocationId field is invalid.');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
36
80
|
export function isApplicationBinaryHeader(name) {
|
|
37
81
|
const normalized = name.toLowerCase();
|
|
38
82
|
return (HEADER_NAME.test(normalized) &&
|
|
@@ -80,10 +124,10 @@ export function decodeBinaryHeaderNames(input) {
|
|
|
80
124
|
}
|
|
81
125
|
return Object.freeze(admitted);
|
|
82
126
|
}
|
|
83
|
-
function invalid() {
|
|
127
|
+
function invalid(message = 'HTTP binary application-header manifest is invalid.') {
|
|
84
128
|
throw new ProtocolError({
|
|
85
129
|
code: CODES.INVALID_REQUEST,
|
|
86
|
-
message
|
|
130
|
+
message,
|
|
87
131
|
});
|
|
88
132
|
}
|
|
89
133
|
//# sourceMappingURL=binary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../invocation/http/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../invocation/http/binary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, encodeBinaryHeaderNames, isApplicationBinaryHeader, REQUEST_ID_FIELD, } from './binary.js';
|
|
1
|
+
export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, decodeInvocationId, encodeBinaryHeaderNames, encodeInvocationId, isApplicationBinaryHeader, MAXIMUM_INVOCATION_FIELD_BYTES, INVOCATION_FIELD, REQUEST_ID_FIELD, } from './binary.js';
|
|
2
2
|
export { codecForContentType, negotiateResponseCodec } from './negotiation.js';
|
|
3
3
|
export { encodeStreamFrame, LENGTH_PREFIX_V1, STREAM_FRAMING_FIELD } from './stream.js';
|
|
4
4
|
export { BAGGAGE_FIELD, decodeTraceHeaders, encodeTraceHeaders, TRACEPARENT_FIELD, TRACESTATE_FIELD, } from './trace.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../invocation/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../invocation/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, encodeBinaryHeaderNames, isApplicationBinaryHeader, REQUEST_ID_FIELD, } from './binary.js';
|
|
1
|
+
export { BINARY_HEADERS_FIELD, decodeBinaryHeaderNames, decodeInvocationId, encodeBinaryHeaderNames, encodeInvocationId, isApplicationBinaryHeader, MAXIMUM_INVOCATION_FIELD_BYTES, INVOCATION_FIELD, REQUEST_ID_FIELD, } from './binary.js';
|
|
2
2
|
export { codecForContentType, negotiateResponseCodec } from './negotiation.js';
|
|
3
3
|
export { encodeStreamFrame, LENGTH_PREFIX_V1, STREAM_FRAMING_FIELD } from './stream.js';
|
|
4
4
|
export { BAGGAGE_FIELD, decodeTraceHeaders, encodeTraceHeaders, TRACEPARENT_FIELD, TRACESTATE_FIELD, } from './trace.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../invocation/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../invocation/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
2
|
+
export declare const MAXIMUM_INVOCATION_ID_LENGTH = 255;
|
|
3
|
+
/** Portable identity of one source-owned Invocation attempt; it grants no authority. */
|
|
4
|
+
export interface InvocationId {
|
|
5
|
+
readonly source: IssuerId;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class InvocationError extends TypeError {
|
|
9
|
+
readonly input: unknown;
|
|
10
|
+
readonly code: 'INVOCATION_INVALID';
|
|
11
|
+
constructor(input: unknown, message?: string, options?: ErrorOptions);
|
|
12
|
+
}
|
|
13
|
+
/** Admit, canonicalize, detach, and freeze one exact source-qualified Invocation identity. */
|
|
14
|
+
export declare function acceptInvocationId(input: unknown): InvocationId;
|
|
15
|
+
/** Compare both canonical coordinate fields exactly. */
|
|
16
|
+
export declare function sameInvocationId(left: InvocationId, right: InvocationId): boolean;
|
|
17
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../invocation/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAI5D,eAAO,MAAM,4BAA4B,MAAM,CAAA;AAM/C,wFAAwF;AACxF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,eAAgB,SAAQ,SAAS;IAI1C,QAAQ,CAAC,KAAK,EAAE,OAAO;IAHzB,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAS;IAE7C,YACW,KAAK,EAAE,OAAO,EACvB,OAAO,SAA2B,EAClC,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CA2B/D;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAEjF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { issuer } from '@astrale-os/kernel-core/auth';
|
|
2
|
+
export const MAXIMUM_INVOCATION_ID_LENGTH = 255;
|
|
3
|
+
const INVALID_ID_CHARACTER = /[^A-Za-z0-9._-]/u;
|
|
4
|
+
const ID_ERROR_MESSAGE = 'InvocationId must contain 1-255 ASCII characters drawn from [A-Za-z0-9._-].';
|
|
5
|
+
export class InvocationError extends TypeError {
|
|
6
|
+
input;
|
|
7
|
+
code = 'INVOCATION_INVALID';
|
|
8
|
+
constructor(input, message = 'Invocation is invalid.', options) {
|
|
9
|
+
super(message, options);
|
|
10
|
+
this.input = input;
|
|
11
|
+
this.name = 'InvocationError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Admit, canonicalize, detach, and freeze one exact source-qualified Invocation identity. */
|
|
15
|
+
export function acceptInvocationId(input) {
|
|
16
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input))
|
|
17
|
+
invalid(input);
|
|
18
|
+
const candidate = input;
|
|
19
|
+
const source = Object.getOwnPropertyDescriptor(candidate, 'source');
|
|
20
|
+
const id = Object.getOwnPropertyDescriptor(candidate, 'id');
|
|
21
|
+
if (Reflect.ownKeys(candidate).some((key) => key !== 'source' && key !== 'id') ||
|
|
22
|
+
source === undefined ||
|
|
23
|
+
id === undefined ||
|
|
24
|
+
!source.enumerable ||
|
|
25
|
+
!id.enumerable ||
|
|
26
|
+
!('value' in source) ||
|
|
27
|
+
!('value' in id) ||
|
|
28
|
+
typeof source.value !== 'string' ||
|
|
29
|
+
typeof id.value !== 'string') {
|
|
30
|
+
invalid(input);
|
|
31
|
+
}
|
|
32
|
+
let admittedSource;
|
|
33
|
+
try {
|
|
34
|
+
admittedSource = issuer.accept(source.value);
|
|
35
|
+
}
|
|
36
|
+
catch (cause) {
|
|
37
|
+
throw new InvocationError(input, 'Invocation source is invalid.', { cause });
|
|
38
|
+
}
|
|
39
|
+
if (!isLocalInvocationId(id.value))
|
|
40
|
+
throw new InvocationError(input, ID_ERROR_MESSAGE);
|
|
41
|
+
return Object.freeze({ source: admittedSource, id: id.value });
|
|
42
|
+
}
|
|
43
|
+
/** Compare both canonical coordinate fields exactly. */
|
|
44
|
+
export function sameInvocationId(left, right) {
|
|
45
|
+
return left.source === right.source && left.id === right.id;
|
|
46
|
+
}
|
|
47
|
+
function isLocalInvocationId(input) {
|
|
48
|
+
return (typeof input === 'string' &&
|
|
49
|
+
input.length > 0 &&
|
|
50
|
+
input.length <= MAXIMUM_INVOCATION_ID_LENGTH &&
|
|
51
|
+
!INVALID_ID_CHARACTER.test(input));
|
|
52
|
+
}
|
|
53
|
+
function invalid(input) {
|
|
54
|
+
throw new InvocationError(input);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../invocation/identity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAA;AAE/C,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAC/C,MAAM,gBAAgB,GACpB,6EAA6E,CAAA;AAQ/E,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAIjC,KAAK;IAHP,IAAI,GAAG,oBAA6B,CAAA;IAE7C,YACW,KAAc,EACvB,OAAO,GAAG,wBAAwB,EAClC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;qBAJd,KAAK;QAKd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACvF,MAAM,SAAS,GAAG,KAAe,CAAA;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACnE,MAAM,EAAE,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC3D,IACE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;QAC1E,MAAM,KAAK,SAAS;QACpB,EAAE,KAAK,SAAS;QAChB,CAAC,MAAM,CAAC,UAAU;QAClB,CAAC,EAAE,CAAC,UAAU;QACd,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;QACpB,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAChC,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,EAC5B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,cAAwB,CAAA;IAC5B,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,+BAA+B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;IACtF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;AAChE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,IAAkB,EAAE,KAAmB;IACtE,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAA;AAC7D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,MAAM,IAAI,4BAA4B;QAC5C,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAClC,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -2,15 +2,16 @@ export { decodeBinaryResponse, type BinaryResponse } from './binary.js';
|
|
|
2
2
|
export { decodeCancelRequest, type CancelRequest } from './cancellation.js';
|
|
3
3
|
export { type RequestId } from './correlation.js';
|
|
4
4
|
export { acceptIdempotencyKey, HTTP_IDEMPOTENCY_KEY, MAXIMUM_IDEMPOTENCY_KEY_LENGTH, type IdempotencyKey, } from './idempotency.js';
|
|
5
|
+
export { acceptInvocationId, InvocationError, MAXIMUM_INVOCATION_ID_LENGTH, sameInvocationId, type InvocationId, } from './identity.js';
|
|
5
6
|
export * as http from './http/index.js';
|
|
6
7
|
export { acceptDelegate, type Delegate } from './delegate.js';
|
|
7
8
|
export { decodeMiss, miss, type Miss } from './miss.js';
|
|
8
|
-
export { acceptRoute,
|
|
9
|
+
export { acceptRoute, acceptRedirection, decodeRedirectResponse, remoteRoute, type RemoteBindingInput, type Redirection, type RedirectResponse, type Route, } from './redirect.js';
|
|
9
10
|
export { decodeRequest, type Request } from './request.js';
|
|
10
11
|
export { admitTrace, MAXIMUM_TRACEPARENT_BYTES, MAXIMUM_TRACESTATE_BYTES, MAXIMUM_TRACESTATE_MEMBERS, type Trace, } from './trace.js';
|
|
11
12
|
export { acceptRouting, type Refresh, type Routing, type Via } from './routing.js';
|
|
12
13
|
export { acceptSchemaTarget, type SchemaTarget } from './schema.js';
|
|
13
|
-
export { decodeResponse, type ErrorResponse, type Response, type SuccessResponse, } from './response.js';
|
|
14
|
+
export { decodeResponse, type ErrorResponse, type Response, type ResponseContext, type SuccessResponse, } from './response.js';
|
|
14
15
|
export { SCHEMA_UPGRADE_REQUIRED, SERVICE_CANDIDATE_INVALID, SERVICE_TRUST_REQUIRED, SERVICE_UNAVAILABLE, serviceErrorOf, type SchemaUpgradeRequiredDetails, type SchemaUpgradeRequiredReason, type ServiceCandidateInvalidDetails, type ServiceCandidateInvalidReason, type ServiceErrorPayload, type ServiceReason, type ServiceTrustRequiredDetails, type ServiceTrustRequiredReason, type ServiceUnavailableDetails, type ServiceUnavailableReason, } from './service-reason.js';
|
|
15
16
|
export { decodeStale, stale, type Stale } from './stale-route.js';
|
|
16
17
|
export { decodeStreamFrame, type StreamEndFrame, type StreamErrorFrame, type StreamFrame, type StreamItemFrame, type StreamStartFrame, } from './stream.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../invocation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EACL,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../invocation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,4BAA4B,EAC5B,gBAAgB,EAChB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,KAAK,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,KAAK,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA"}
|
package/dist/invocation/index.js
CHANGED
|
@@ -2,10 +2,11 @@ export { decodeBinaryResponse } from './binary.js';
|
|
|
2
2
|
export { decodeCancelRequest } from './cancellation.js';
|
|
3
3
|
export {} from './correlation.js';
|
|
4
4
|
export { acceptIdempotencyKey, HTTP_IDEMPOTENCY_KEY, MAXIMUM_IDEMPOTENCY_KEY_LENGTH, } from './idempotency.js';
|
|
5
|
+
export { acceptInvocationId, InvocationError, MAXIMUM_INVOCATION_ID_LENGTH, sameInvocationId, } from './identity.js';
|
|
5
6
|
export * as http from './http/index.js';
|
|
6
7
|
export { acceptDelegate } from './delegate.js';
|
|
7
8
|
export { decodeMiss, miss } from './miss.js';
|
|
8
|
-
export { acceptRoute,
|
|
9
|
+
export { acceptRoute, acceptRedirection, decodeRedirectResponse, remoteRoute, } from './redirect.js';
|
|
9
10
|
export { decodeRequest } from './request.js';
|
|
10
11
|
export { admitTrace, MAXIMUM_TRACEPARENT_BYTES, MAXIMUM_TRACESTATE_BYTES, MAXIMUM_TRACESTATE_MEMBERS, } from './trace.js';
|
|
11
12
|
export { acceptRouting } from './routing.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../invocation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAkB,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,GAE/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAa,MAAM,WAAW,CAAA;AACvD,OAAO,EACL,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../invocation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAkB,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,GAE/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,4BAA4B,EAC5B,gBAAgB,GAEjB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAa,MAAM,WAAW,CAAA;AACvD,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,GAKZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,GAE3B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,EAAwC,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,aAAa,CAAA;AACnE,OAAO,EACL,cAAc,GAKf,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GAWf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAc,MAAM,kBAAkB,CAAA;AACjE,OAAO,EACL,iBAAiB,GAMlB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { RequestId } from './correlation.js';
|
|
2
|
+
import type { InvocationId } from './identity.js';
|
|
2
3
|
export interface Miss {
|
|
3
4
|
readonly kind: 'miss';
|
|
4
|
-
readonly
|
|
5
|
+
readonly requestId: RequestId;
|
|
6
|
+
readonly invocation: InvocationId;
|
|
5
7
|
}
|
|
6
8
|
export declare function decodeMiss(input: unknown): Miss;
|
|
7
|
-
export declare function miss(
|
|
9
|
+
export declare function miss(requestId: RequestId, assigned: InvocationId): Miss;
|
|
8
10
|
//# sourceMappingURL=miss.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miss.d.ts","sourceRoot":"","sources":["../../invocation/miss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"miss.d.ts","sourceRoot":"","sources":["../../invocation/miss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAWjD,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAClC;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAU/C;AAED,wBAAgB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAEvE"}
|
package/dist/invocation/miss.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { exactFields, invalid, portableObject, requestId, required } from './admission.js';
|
|
2
|
-
const FIELDS = new Set(['kind', '
|
|
1
|
+
import { exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
|
+
const FIELDS = new Set(['kind', 'requestId', 'invocation']);
|
|
3
3
|
export function decodeMiss(input) {
|
|
4
4
|
const object = portableObject(input, 'miss control');
|
|
5
5
|
exactFields(object, FIELDS, 'miss control');
|
|
6
|
-
required(object, ['kind', '
|
|
6
|
+
required(object, ['kind', 'requestId', 'invocation'], 'miss control');
|
|
7
7
|
if (object.kind !== 'miss')
|
|
8
8
|
invalid('miss control.kind must be "miss"');
|
|
9
|
-
return Object.freeze({
|
|
9
|
+
return Object.freeze({
|
|
10
|
+
kind: 'miss',
|
|
11
|
+
requestId: requestId(object.requestId, 'miss control.requestId'),
|
|
12
|
+
invocation: invocation(object.invocation, 'miss control.invocation'),
|
|
13
|
+
});
|
|
10
14
|
}
|
|
11
|
-
export function miss(
|
|
12
|
-
return
|
|
15
|
+
export function miss(requestId, assigned) {
|
|
16
|
+
return decodeMiss({ kind: 'miss', requestId, invocation: assigned });
|
|
13
17
|
}
|
|
14
18
|
//# sourceMappingURL=miss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miss.js","sourceRoot":"","sources":["../../invocation/miss.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"miss.js","sourceRoot":"","sources":["../../invocation/miss.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAQvB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;AAE3D,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACpD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,kCAAkC,CAAC,CAAA;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;QAChE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;KACrE,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,SAAoB,EAAE,QAAsB;IAC/D,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;AACtE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
2
2
|
import type { Key } from '@astrale-os/kernel-dsl/v1';
|
|
3
3
|
import type { RequestId } from './correlation.js';
|
|
4
|
+
import type { InvocationId } from './identity.js';
|
|
4
5
|
import type { Trace } from './trace.js';
|
|
5
6
|
import * as publication from '../publication/index.js';
|
|
6
7
|
export interface Route {
|
|
@@ -11,14 +12,18 @@ export interface Route {
|
|
|
11
12
|
readonly issuer: IssuerId;
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
|
-
export interface
|
|
15
|
-
readonly kind: 'redirect';
|
|
16
|
-
readonly id: RequestId;
|
|
15
|
+
export interface Redirection {
|
|
17
16
|
readonly route: Route;
|
|
18
17
|
readonly credential?: string;
|
|
19
18
|
/** Ephemeral one-hop correlation hint; never cached or treated as authority. */
|
|
20
19
|
readonly trace?: Trace;
|
|
21
20
|
}
|
|
21
|
+
export interface RedirectResponse {
|
|
22
|
+
readonly kind: 'redirect';
|
|
23
|
+
readonly requestId: RequestId;
|
|
24
|
+
readonly invocation: InvocationId;
|
|
25
|
+
readonly redirect: Redirection;
|
|
26
|
+
}
|
|
22
27
|
export interface RemoteBindingInput {
|
|
23
28
|
readonly endpoint: publication.InvocationEndpoints;
|
|
24
29
|
readonly issuer: IssuerId;
|
|
@@ -29,5 +34,6 @@ export interface RemoteBindingInput {
|
|
|
29
34
|
export declare function acceptRoute(input: unknown): Route;
|
|
30
35
|
/** Project one semantic remote binding into its admitted protocol route representation. */
|
|
31
36
|
export declare function remoteRoute(origin: Key.Origin, binding: RemoteBindingInput, issuer: IssuerId): Route;
|
|
32
|
-
export declare function
|
|
37
|
+
export declare function acceptRedirection(input: unknown): Redirection;
|
|
38
|
+
export declare function decodeRedirectResponse(input: unknown): RedirectResponse;
|
|
33
39
|
//# sourceMappingURL=redirect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAEpD,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;AAEvC,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAatD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,mBAAmB,CAAA;IAClD,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;QACpB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,cAAc,CAAA;QAChD,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,WAAW,CAAC,mBAAmB,CAAA;IAClD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAA;CAChC;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,10 @@
|
|
|
1
1
|
import * as publication from '../publication/index.js';
|
|
2
|
-
import { exactFields, invalid, issuerId, portableObject, requestId, required, string, } from './admission.js';
|
|
2
|
+
import { exactFields, invalid, issuerId, invocation, portableObject, requestId, required, string, } from './admission.js';
|
|
3
3
|
import { admitTrace } from './trace.js';
|
|
4
4
|
const ROUTE_FIELDS = new Set(['endpoint', 'via']);
|
|
5
5
|
const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
|
|
6
|
-
const
|
|
6
|
+
const REDIRECTION_FIELDS = new Set(['route', 'credential', 'trace']);
|
|
7
|
+
const REDIRECT_RESPONSE_FIELDS = new Set(['kind', 'requestId', 'invocation', 'redirect']);
|
|
7
8
|
export function acceptRoute(input) {
|
|
8
9
|
const object = portableObject(input, 'route');
|
|
9
10
|
exactFields(object, ROUTE_FIELDS, 'route');
|
|
@@ -46,23 +47,34 @@ export function remoteRoute(origin, binding, issuer) {
|
|
|
46
47
|
},
|
|
47
48
|
});
|
|
48
49
|
}
|
|
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"');
|
|
50
|
+
export function acceptRedirection(input) {
|
|
51
|
+
const object = portableObject(input, 'redirection');
|
|
52
|
+
exactFields(object, REDIRECTION_FIELDS, 'redirection');
|
|
53
|
+
required(object, ['route'], 'redirection');
|
|
55
54
|
const route = acceptRoute(object.route);
|
|
56
|
-
const credential = object.credential === undefined
|
|
55
|
+
const credential = object.credential === undefined
|
|
56
|
+
? undefined
|
|
57
|
+
: string(object.credential, 'redirection.credential');
|
|
57
58
|
const trace = object.trace === undefined ? undefined : admitTrace(object.trace);
|
|
58
59
|
if (credential !== undefined && credential.length === 0)
|
|
59
|
-
invalid('
|
|
60
|
+
invalid('redirection.credential must be non-empty');
|
|
60
61
|
return Object.freeze({
|
|
61
|
-
kind: 'redirect',
|
|
62
|
-
id: requestId(object.id, 'redirect.id'),
|
|
63
62
|
route,
|
|
64
63
|
...(credential === undefined ? {} : { credential }),
|
|
65
64
|
...(trace === undefined ? {} : { trace }),
|
|
66
65
|
});
|
|
67
66
|
}
|
|
67
|
+
export function decodeRedirectResponse(input) {
|
|
68
|
+
const object = portableObject(input, 'redirect response');
|
|
69
|
+
exactFields(object, REDIRECT_RESPONSE_FIELDS, 'redirect response');
|
|
70
|
+
required(object, ['kind', 'requestId', 'invocation', 'redirect'], 'redirect response');
|
|
71
|
+
if (object.kind !== 'redirect')
|
|
72
|
+
invalid('redirect response.kind must be "redirect"');
|
|
73
|
+
return Object.freeze({
|
|
74
|
+
kind: 'redirect',
|
|
75
|
+
requestId: requestId(object.requestId, 'redirect response.requestId'),
|
|
76
|
+
invocation: invocation(object.invocation, 'redirect response.invocation'),
|
|
77
|
+
redirect: acceptRedirection(object.redirect),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
68
80
|
//# 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":"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,WAAW;IACX,MAAM;IACN,YAAY;IACZ,UAAU;IACV,SAAS;IACT,QAAQ;IACR,gBAAgB;IAChB,OAAO;CACR,CAAC,CAAA;AAEF,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC/C,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAE9D,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;IAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/E,IAAI,OAAO,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5B,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,uDAAuD,CAAC,CAAA;QAC5F,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,4DAA4D,CAAC,CAAA;IACjG,CAAC;SAAM,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,0DAA0D,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;QAC3D,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7B,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,cAAc,EAAE,oBAAoB,CAAC,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC;aACtF,CAAC;QACN,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -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,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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../invocation/stream.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;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../invocation/stream.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;AAajD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAEhG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CA0C7D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { count, errorPayload, exactFields, invalid, portableObject, requestId, required, } from './admission.js';
|
|
1
|
+
import { count, errorPayload, exactFields, invalid, invocation, portableObject, requestId, required, } from './admission.js';
|
|
2
2
|
export function decodeStreamFrame(input) {
|
|
3
3
|
const object = portableObject(input, 'stream frame');
|
|
4
4
|
const kind = object.kind;
|
|
@@ -6,32 +6,36 @@ export function decodeStreamFrame(input) {
|
|
|
6
6
|
invalid('stream frame.kind must be a string');
|
|
7
7
|
switch (kind) {
|
|
8
8
|
case 'stream.start':
|
|
9
|
-
exactFields(object, new Set(['kind', '
|
|
10
|
-
required(object, ['
|
|
11
|
-
return Object.freeze({
|
|
9
|
+
exactFields(object, new Set(['kind', 'requestId', 'invocation']), 'stream.start');
|
|
10
|
+
required(object, ['requestId', 'invocation'], 'stream.start');
|
|
11
|
+
return Object.freeze({
|
|
12
|
+
kind,
|
|
13
|
+
requestId: requestId(object.requestId, 'stream.start.requestId'),
|
|
14
|
+
invocation: invocation(object.invocation, 'stream.start.invocation'),
|
|
15
|
+
});
|
|
12
16
|
case 'stream.item':
|
|
13
|
-
exactFields(object, new Set(['kind', '
|
|
14
|
-
required(object, ['
|
|
17
|
+
exactFields(object, new Set(['kind', 'requestId', 'index', 'value']), 'stream.item');
|
|
18
|
+
required(object, ['requestId', 'index', 'value'], 'stream.item');
|
|
15
19
|
return Object.freeze({
|
|
16
20
|
kind,
|
|
17
|
-
|
|
21
|
+
requestId: requestId(object.requestId, 'stream.item.requestId'),
|
|
18
22
|
index: count(object.index, 'stream.item.index'),
|
|
19
23
|
value: object.value,
|
|
20
24
|
});
|
|
21
25
|
case 'stream.end':
|
|
22
|
-
exactFields(object, new Set(['kind', '
|
|
23
|
-
required(object, ['
|
|
26
|
+
exactFields(object, new Set(['kind', 'requestId', 'count']), 'stream.end');
|
|
27
|
+
required(object, ['requestId', 'count'], 'stream.end');
|
|
24
28
|
return Object.freeze({
|
|
25
29
|
kind,
|
|
26
|
-
|
|
30
|
+
requestId: requestId(object.requestId, 'stream.end.requestId'),
|
|
27
31
|
count: count(object.count, 'stream.end.count'),
|
|
28
32
|
});
|
|
29
33
|
case 'stream.error':
|
|
30
|
-
exactFields(object, new Set(['kind', '
|
|
31
|
-
required(object, ['
|
|
34
|
+
exactFields(object, new Set(['kind', 'requestId', 'error']), 'stream.error');
|
|
35
|
+
required(object, ['requestId', 'error'], 'stream.error');
|
|
32
36
|
return Object.freeze({
|
|
33
37
|
kind,
|
|
34
|
-
|
|
38
|
+
requestId: requestId(object.requestId, 'stream.error.requestId'),
|
|
35
39
|
error: errorPayload(object.error, 'stream.error.error'),
|
|
36
40
|
});
|
|
37
41
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../invocation/stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../invocation/stream.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AA6BvB,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,oCAAoC,CAAC,CAAA;IAE3E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;YACjF,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;YAC7D,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;gBAChE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;aACrE,CAAC,CAAA;QACJ,KAAK,aAAa;YAChB,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YACpF,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;YAChE,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAC/D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC;gBAC/C,KAAK,EAAE,MAAM,CAAC,KAAM;aACrB,CAAC,CAAA;QACJ,KAAK,YAAY;YACf,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;YAC1E,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;YACtD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;gBAC9D,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;aAC/C,CAAC,CAAA;QACJ,KAAK,cAAc;YACjB,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;YAC5E,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAA;YACxD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;gBAChE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC;aACxD,CAAC,CAAA;QACJ;YACE,OAAO,OAAO,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
/** One portable invocation meaning. Resolution remains Runtime-owned. */
|
|
4
|
-
export interface Call {
|
|
5
|
-
readonly target: NodePath;
|
|
6
|
-
readonly input: Value;
|
|
7
|
-
}
|
|
1
|
+
import type { Call } from '@astrale-os/kernel-core/domain';
|
|
2
|
+
export type { Call } from '@astrale-os/kernel-core/domain';
|
|
8
3
|
export declare function acceptCall(input: unknown): Call;
|
|
9
4
|
//# sourceMappingURL=target.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../invocation/target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../invocation/target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAA;AAI1D,YAAY,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAA;AAI1D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQ/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../invocation/target.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../invocation/target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIhF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AAEhD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5C,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC,KAAM;KACrB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../invocation/websocket/binary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAWlD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../invocation/websocket/binary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAWlD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,CA2BjE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAgC1E"}
|
|
@@ -11,7 +11,8 @@ export function encodeBinary(response) {
|
|
|
11
11
|
: Object.fromEntries(Object.entries(response.headers).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0));
|
|
12
12
|
const metadata = encoder.encode(JSON.stringify({
|
|
13
13
|
kind: response.kind,
|
|
14
|
-
|
|
14
|
+
requestId: response.requestId,
|
|
15
|
+
invocation: response.invocation,
|
|
15
16
|
mediaType: response.mediaType,
|
|
16
17
|
...(headers === undefined ? {} : { headers }),
|
|
17
18
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../invocation/websocket/binary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEnD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAC5D,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AACjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAEzD,MAAM,UAAU,YAAY,CAAC,QAAwB;IACnD,MAAM,OAAO,GACX,QAAQ,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACxD,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzC,CACF,CAAA;IACP,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,IAAI,CAAC,SAAS,CAAC;QACb,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,EAAE,EAAE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../invocation/websocket/binary.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrale-os/kernel-protocol",
|
|
3
|
-
"version": "0.5.0-beta.
|
|
3
|
+
"version": "0.5.0-beta.3",
|
|
4
4
|
"description": "Portable Astrale invocation, publication, installation, routing, and issuer protocols",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"files": [
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@noble/hashes": "2.2.0",
|
|
32
|
-
"@astrale-os/kernel-
|
|
33
|
-
"@astrale-os/kernel-
|
|
32
|
+
"@astrale-os/kernel-dsl": "^0.2.0-beta.2",
|
|
33
|
+
"@astrale-os/kernel-core": "^0.9.0-beta.3"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@astrale/typescript-config": "npm:@jsr/astrale__typescript-config@~1.1.0",
|