@procedures/client 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/README.md +62 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/http/client/transport.d.ts +2 -1
- package/dist/adapters/http/client/transport.d.ts.map +1 -1
- package/dist/adapters/http/client/transport.js +9 -2
- package/dist/adapters/http/client/transport.js.map +1 -1
- package/dist/adapters/http/server/transport.d.ts +3 -1
- package/dist/adapters/http/server/transport.d.ts.map +1 -1
- package/dist/adapters/http/server/transport.js +8 -6
- package/dist/adapters/http/server/transport.js.map +1 -1
- package/dist/adapters/local/client/transport.d.ts +2 -1
- package/dist/adapters/local/client/transport.d.ts.map +1 -1
- package/dist/adapters/local/client/transport.js +12 -4
- package/dist/adapters/local/client/transport.js.map +1 -1
- package/dist/adapters/local/client/types.d.ts +6 -0
- package/dist/adapters/local/client/types.d.ts.map +1 -1
- package/dist/adapters/local/client/types.js.map +1 -1
- package/dist/adapters/sequence.d.ts +36 -0
- package/dist/adapters/sequence.d.ts.map +1 -0
- package/dist/adapters/sequence.js +55 -0
- package/dist/adapters/sequence.js.map +1 -0
- package/dist/adapters/websocket/client/node.d.ts +30 -0
- package/dist/adapters/websocket/client/node.d.ts.map +1 -0
- package/dist/adapters/websocket/client/node.js +32 -0
- package/dist/adapters/websocket/client/node.js.map +1 -0
- package/dist/adapters/websocket/client/transport.d.ts +39 -1
- package/dist/adapters/websocket/client/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/client/transport.js +119 -16
- package/dist/adapters/websocket/client/transport.js.map +1 -1
- package/dist/adapters/websocket/client/types.d.ts +15 -5
- package/dist/adapters/websocket/client/types.d.ts.map +1 -1
- package/dist/adapters/websocket/client/types.js.map +1 -1
- package/dist/adapters/websocket/server/transport.d.ts +22 -1
- package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/server/transport.js +29 -1
- package/dist/adapters/websocket/server/transport.js.map +1 -1
- package/dist/adapters/websocket/server/types.d.ts +6 -0
- package/dist/adapters/websocket/server/types.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.d.ts +4 -3
- package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.js +18 -9
- package/dist/adapters/websocket/shared/rpc.js.map +1 -1
- package/dist/browser.d.ts +3 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +4 -0
- package/dist/browser.js.map +1 -1
- package/dist/client/errors/http-errors.d.ts.map +1 -1
- package/dist/client/errors/http-errors.js +6 -0
- package/dist/client/errors/http-errors.js.map +1 -1
- package/dist/client/errors/index.d.ts +1 -1
- package/dist/client/errors/index.js +1 -1
- package/dist/client/errors/registry.d.ts +2 -1
- package/dist/client/errors/registry.d.ts.map +1 -1
- package/dist/client/errors/registry.js +73 -22
- package/dist/client/errors/registry.js.map +1 -1
- package/dist/client/middleware/rate-limit.d.ts.map +1 -1
- package/dist/client/middleware/rate-limit.js +0 -1
- package/dist/client/middleware/rate-limit.js.map +1 -1
- package/dist/client/middleware/timeout.d.ts.map +1 -1
- package/dist/client/middleware/timeout.js +2 -9
- package/dist/client/middleware/timeout.js.map +1 -1
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/publisher.d.ts +95 -0
- package/dist/events/publisher.d.ts.map +1 -0
- package/dist/events/publisher.js +268 -0
- package/dist/events/publisher.js.map +1 -0
- package/dist/events/remote.d.ts +164 -0
- package/dist/events/remote.d.ts.map +1 -0
- package/dist/events/remote.js +250 -0
- package/dist/events/remote.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +11 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +10 -0
- package/dist/node.js.map +1 -0
- package/dist/procedures/collection/index.d.ts +1 -1
- package/dist/procedures/collection/index.d.ts.map +1 -1
- package/dist/procedures/collection/index.js.map +1 -1
- package/dist/procedures/collection/procedures.d.ts.map +1 -1
- package/dist/procedures/collection/procedures.js +6 -1
- package/dist/procedures/collection/procedures.js.map +1 -1
- package/dist/procedures/collection/schemas.d.ts +16 -1
- package/dist/procedures/collection/schemas.d.ts.map +1 -1
- package/dist/procedures/collection/schemas.js +13 -2
- package/dist/procedures/collection/schemas.js.map +1 -1
- package/dist/procedures/collection/storage.d.ts +14 -2
- package/dist/procedures/collection/storage.d.ts.map +1 -1
- package/dist/procedures/core/array.d.ts +1 -1
- package/dist/procedures/core/array.d.ts.map +1 -1
- package/dist/procedures/core/array.js +56 -15
- package/dist/procedures/core/array.js.map +1 -1
- package/dist/procedures/core/index.d.ts.map +1 -1
- package/dist/procedures/core/index.js +9 -2
- package/dist/procedures/core/index.js.map +1 -1
- package/dist/procedures/core/logic.js +1 -1
- package/dist/procedures/core/logic.js.map +1 -1
- package/dist/procedures/core/math.d.ts.map +1 -1
- package/dist/procedures/core/math.js +5 -1
- package/dist/procedures/core/math.js.map +1 -1
- package/dist/procedures/core/meta.d.ts.map +1 -1
- package/dist/procedures/core/meta.js +41 -7
- package/dist/procedures/core/meta.js.map +1 -1
- package/dist/procedures/core/type.d.ts.map +1 -1
- package/dist/procedures/core/type.js +4 -2
- package/dist/procedures/core/type.js.map +1 -1
- package/dist/procedures/discovery.d.ts +4 -6
- package/dist/procedures/discovery.d.ts.map +1 -1
- package/dist/procedures/discovery.js +4 -6
- package/dist/procedures/discovery.js.map +1 -1
- package/dist/procedures/invoke.d.ts +4 -2
- package/dist/procedures/invoke.d.ts.map +1 -1
- package/dist/procedures/invoke.js +1 -1
- package/dist/procedures/invoke.js.map +1 -1
- package/dist/procedures/ref.d.ts +4 -2
- package/dist/procedures/ref.d.ts.map +1 -1
- package/dist/procedures/ref.js +2 -1
- package/dist/procedures/ref.js.map +1 -1
- package/dist/protocol.d.ts +10 -3
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +13 -2
- package/dist/protocol.js.map +1 -1
- package/dist/server/host-policy.d.ts +11 -0
- package/dist/server/host-policy.d.ts.map +1 -1
- package/dist/server/host-policy.js +5 -0
- package/dist/server/host-policy.js.map +1 -1
- package/dist/server/procedure-server.d.ts +26 -3
- package/dist/server/procedure-server.d.ts.map +1 -1
- package/dist/server/procedure-server.js +38 -6
- package/dist/server/procedure-server.js.map +1 -1
- package/package.json +7 -6
- package/src/adapters/http/client/transport.ts +9 -2
- package/src/adapters/http/server/transport.ts +8 -6
- package/src/adapters/local/client/transport.ts +12 -4
- package/src/adapters/local/client/types.ts +7 -0
- package/src/adapters/sequence.ts +55 -0
- package/src/adapters/websocket/client/node.ts +34 -0
- package/src/adapters/websocket/client/transport.ts +128 -16
- package/src/adapters/websocket/client/types.ts +16 -5
- package/src/adapters/websocket/server/transport.ts +43 -1
- package/src/adapters/websocket/server/types.ts +7 -0
- package/src/adapters/websocket/shared/rpc.ts +19 -9
- package/src/browser.ts +15 -0
- package/src/client/errors/README.md +2 -0
- package/src/client/errors/http-errors.ts +5 -0
- package/src/client/errors/index.ts +1 -1
- package/src/client/errors/registry.ts +80 -22
- package/src/client/middleware/rate-limit.ts +0 -2
- package/src/client/middleware/timeout.ts +2 -9
- package/src/events/index.ts +16 -0
- package/src/events/publisher.ts +314 -0
- package/src/events/remote.ts +369 -0
- package/src/index.ts +4 -0
- package/src/node.ts +11 -0
- package/src/procedures/collection/index.ts +1 -0
- package/src/procedures/collection/procedures.ts +6 -1
- package/src/procedures/collection/schemas.ts +28 -2
- package/src/procedures/collection/storage.ts +14 -2
- package/src/procedures/core/array.ts +53 -16
- package/src/procedures/core/index.ts +9 -2
- package/src/procedures/core/logic.ts +1 -1
- package/src/procedures/core/math.ts +5 -1
- package/src/procedures/core/meta.ts +43 -7
- package/src/procedures/core/type.ts +4 -2
- package/src/procedures/discovery.ts +4 -6
- package/src/procedures/invoke.ts +4 -2
- package/src/procedures/ref.ts +4 -2
- package/src/protocol.ts +16 -3
- package/src/server/host-policy.ts +14 -0
- package/src/server/procedure-server.ts +45 -8
- package/dist/procedures/cli/announce.d.ts +0 -67
- package/dist/procedures/cli/announce.d.ts.map +0 -1
- package/dist/procedures/cli/announce.js +0 -392
- package/dist/procedures/cli/announce.js.map +0 -1
- package/dist/procedures/cli/discover.d.ts +0 -66
- package/dist/procedures/cli/discover.d.ts.map +0 -1
- package/dist/procedures/cli/discover.js +0 -310
- package/dist/procedures/cli/discover.js.map +0 -1
- package/dist/procedures/cli/index.d.ts +0 -13
- package/dist/procedures/cli/index.d.ts.map +0 -1
- package/dist/procedures/cli/index.js +0 -203
- package/dist/procedures/cli/index.js.map +0 -1
- package/dist/procedures/cli/init.d.ts +0 -17
- package/dist/procedures/cli/init.d.ts.map +0 -1
- package/dist/procedures/cli/init.js +0 -336
- package/dist/procedures/cli/init.js.map +0 -1
- package/src/procedures/cli/announce.ts +0 -470
- package/src/procedures/cli/discover.ts +0 -390
- package/src/procedures/cli/index.ts +0 -231
- package/src/procedures/cli/init.ts +0 -370
|
@@ -49,7 +49,8 @@ export declare class HttpTransport implements Transport {
|
|
|
49
49
|
/**
|
|
50
50
|
* The items of an NDJSON stream response: `{"type":"item"}` lines, then `{"type":"done"}`,
|
|
51
51
|
* or an `{"type":"error"}` line. A stream that ends without one of the last two is an error
|
|
52
|
-
* that a retry can repair (the connection broke).
|
|
52
|
+
* that a retry can repair (the connection broke). An `item` or a `done` line whose `seq` is not
|
|
53
|
+
* above the last one gives nothing. The item after a gap has `stream-gap` in its metadata.
|
|
53
54
|
*/
|
|
54
55
|
private readNdjson;
|
|
55
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqBvD,OAAO,EACL,IAAI,EAcL,MAAM,oBAAoB,CAAC;AAI5B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,CAAQ;IAElC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,YAAY,OAAO,EAAE,oBAAoB,EASxC;IAED;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EACpB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACrB,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAqHnC;IAED;;;;;OAKG;YACY,UAAU;IAiEzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;CACF"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* shared utilities and injectable strategies.
|
|
6
6
|
*/
|
|
7
7
|
import { DELIVERY_METADATA_KEY, RETRY_AFTER_METADATA_KEY, isNotSentError } from "../../../client/middleware/items.js";
|
|
8
|
+
import { StreamSequence, itemMetadata } from "../../sequence.js";
|
|
8
9
|
/**
|
|
9
10
|
* The wait that an error response asks for, in milliseconds: `retryAfterMs` of the body of the
|
|
10
11
|
* server transport, or else the Retry-After header (seconds, or an HTTP date).
|
|
@@ -191,11 +192,13 @@ export class HttpTransport {
|
|
|
191
192
|
/**
|
|
192
193
|
* The items of an NDJSON stream response: `{"type":"item"}` lines, then `{"type":"done"}`,
|
|
193
194
|
* or an `{"type":"error"}` line. A stream that ends without one of the last two is an error
|
|
194
|
-
* that a retry can repair (the connection broke).
|
|
195
|
+
* that a retry can repair (the connection broke). An `item` or a `done` line whose `seq` is not
|
|
196
|
+
* above the last one gives nothing. The item after a gap has `stream-gap` in its metadata.
|
|
195
197
|
*/
|
|
196
198
|
async *readNdjson(id, body, metadata, onEnd, onFirstItem) {
|
|
197
199
|
const reader = body.getReader();
|
|
198
200
|
const decoder = new TextDecoder();
|
|
201
|
+
const order = new StreamSequence();
|
|
199
202
|
let buffer = "";
|
|
200
203
|
try {
|
|
201
204
|
for (;;) {
|
|
@@ -211,8 +214,12 @@ export class HttpTransport {
|
|
|
211
214
|
continue;
|
|
212
215
|
const frame = JSON.parse(line);
|
|
213
216
|
onFirstItem();
|
|
217
|
+
// A duplicate or a late line: its item came before, or the delivery is at most once
|
|
218
|
+
const gap = frame.type === "item" || frame.type === "done" ? order.next(frame.seq, id) : 0;
|
|
219
|
+
if (gap < 0)
|
|
220
|
+
continue;
|
|
214
221
|
if (frame.type === "item") {
|
|
215
|
-
yield { id, status: { type: "success", code: 200 }, payload: frame.payload, metadata };
|
|
222
|
+
yield { id, status: { type: "success", code: 200 }, payload: frame.payload, metadata: itemMetadata(metadata, gap) };
|
|
216
223
|
}
|
|
217
224
|
else if (frame.type === "done") {
|
|
218
225
|
onEnd();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACtH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjE;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAqB,EAAE,IAAa;IAC1D,MAAM,QAAQ,GAAI,IAAsD,EAAE,YAAY,CAAC;IACvF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,OAAO,GAAG,IAAI,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,wEAAwE;AACxE,MAAM,MAAM,GAAG,sBAAsB,CAAC;AAEtC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EAIX,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAgB,IAAI,CAAC;IAEjB,OAAO,CAAS;IAChB,WAAW,CAAc;IACzB,kBAAkB,CAAqB;IACvC,eAAe,CAAkB;IACjC,cAAc,CAAyB;IACvC,OAAO,CAAqB;IAE7C,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,kBAAkB;YACrB,OAAO,CAAC,kBAAkB,IAAI,gBAAgB,CAAC;QACjD,IAAI,CAAC,eAAe;YAClB,OAAO,CAAC,eAAe,IAAI,4BAA4B,EAAE,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,IAAI,CACT,OAAsB;QAEtB,uBAAuB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3D,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3D,yFAAyF;QACzF,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QAChD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO;YAC1B,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;gBACd,QAAQ,GAAG,IAAI,CAAC;gBAChB,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;YAClB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC,CAAC;QACF,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC;YACH,oFAAoF;YACpF,kCAAkC;YAClC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEjF,sBAAsB;YACtB,MAAM,YAAY,GAAgB;gBAChC,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE;oBACP,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,kBAAkB;oBAC9C,wEAAwE;oBACxE,MAAM,EAAE,GAAG,MAAM,oBAAoB;oBACrC,oDAAoD;oBACpD,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBAC3C,GAAG,IAAI,CAAC,cAAc;oBACtB,GAAG,eAAe;iBACnB;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;YAEF,yFAAyF;YACzF,4EAA4E;YAC5E,IAAI,UAAU,KAAK,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;YAED,uBAAuB;YACvB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE1E,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtF,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAO,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;gBACtG,OAAO;YACT,CAAC;YAED,sBAAsB;YACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5D,SAAS,EAAE,CAAC;YAEZ,wFAAwF;YACxF,yFAAyF;YACzF,qDAAqD;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAoB,EAAE,YAAY,CAAC,CAAC;YACvF,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;gBACrF,IAAI,UAAU,KAAK,SAAS;oBAAE,QAAQ,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAC;gBAC9E,gDAAgD;gBAChD,MAAM,MAAM,GAAI,YAAwD,EAAE,MAAM,CAAC;gBACjF,IAAI,OAAO,MAAM,KAAK,QAAQ;oBAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAC9D,CAAC;YAED,6BAA6B;YAC7B,MAAM;gBACJ,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM;gBACN,OAAO,EAAE,YAAoB;gBAC7B,QAAQ;aACT,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,CAAC;YAChB,mDAAmD;YACnD,MAAM,IAAI,GAAI,KAAwC,EAAE,IAAI,CAAC;YAC7D,MAAM,YAAY,GAAG,QAAQ;gBAC3B,CAAC,CAAC,4EAA4E;oBAC5E,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,IAAI,CAAC,OAAO,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC7F,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,YAAY,KAAK;oBACvD,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;oBACpD,CAAC,CAAC,KAAK,YAAY,KAAK;wBACtB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;wBAC7B,CAAC,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAE7D,MAAM;gBACJ,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,YAAY,CAAC,IAAI;oBACvB,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;iBAClC;gBACD,OAAO,EAAE,IAAY;gBACrB,qFAAqF;gBACrF,6DAA6D;gBAC7D,QAAQ,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE;aAC5F,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtD,qEAAqE;YACrE,IAAI,CAAC,QAAQ;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,CAAC,UAAU,CACvB,EAAU,EACV,IAAgC,EAChC,QAAwC,EACxC,KAAiB,EACjB,WAAuB;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,IAAI,OAAe,CAAC;gBACpB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC7C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAK5B,CAAC;oBACF,WAAW,EAAE,CAAC;oBACd,oFAAoF;oBACpF,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3F,IAAI,GAAG,GAAG,CAAC;wBAAE,SAAS;oBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC1B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAe,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC9H,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACjC,KAAK,EAAE,CAAC;wBACR,OAAO;oBACT,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAClC,KAAK,EAAE,CAAC;wBACR,MAAM;4BACJ,EAAE;4BACF,MAAM,EAAE;gCACN,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,eAAe;gCAC1C,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe;gCAChD,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK;6BAC3C;4BACD,OAAO,EAAE,IAAY;4BACrB,QAAQ;yBACT,CAAC;wBACF,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YACD,KAAK,EAAE,CAAC;YACR,MAAM;gBACJ,EAAE;gBACF,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,uCAAuC,EAAE,SAAS,EAAE,IAAI,EAAE;gBAClH,OAAO,EAAE,IAAY;gBACrB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE;aACpE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,UAAsB,EACtB,IAAc;QAEd,gBAAgB;QAChB,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GACf,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAiE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7H,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO,WAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI;YAClF,OAAO,EAAE,OAAO,WAAW,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;YAC1F,SAAS,EAAE,OAAO,WAAW,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS;SACxG,CAAC;IACJ,CAAC;IAGD;;OAEG;IACK,eAAe,CAAC,KAAY;QAClC,kBAAkB;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QAED,kCAAkC;QAClC,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEnE,2FAA2F;QAC3F,4FAA4F;QAC5F,uFAAuF;QACvF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,yFAAyF;QACzF,sBAAsB;QACtB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,0DAA0D;IAC5D,CAAC;CACF"}
|
|
@@ -43,7 +43,9 @@ export declare class HttpServerTransport implements ServerTransport {
|
|
|
43
43
|
* Send a stream response.
|
|
44
44
|
*
|
|
45
45
|
* A client that accepts `application/x-ndjson` gets one JSON line for each item
|
|
46
|
-
* (`{"type":"item","payload":...}`), then `{"type":"done"
|
|
46
|
+
* (`{"type":"item","seq":1,"payload":...}`), then `{"type":"done","seq":...}`, or
|
|
47
|
+
* `{"type":"error","error":...}`. The `seq` of the lines counts from 1, as in the `stream`
|
|
48
|
+
* frames of WebSocket.
|
|
47
49
|
* Another client (curl, a browser fetch without the header) gets the last item as plain JSON,
|
|
48
50
|
* the "sponge" mode, so a streaming procedure does not change its response format.
|
|
49
51
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,0BAA0B,CAAC;AAE/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,0BAA0B,CAAC;AAE/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAuF7D,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAQb;IACF,OAAO,CAAC,MAAM,CAAiB;IAC/B,yFAAyF;IACzF,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAE5C,YAAY,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,0BAA+B,EAiC3E;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IAgFnB;;;OAGG;YACW,iBAAiB;IAuE/B;;;;;OAKG;YACW,QAAQ;IAoBtB;;OAEG;IACH;;;;;;;;;OASG;YACW,YAAY;IAmF1B,OAAO,CAAC,mBAAmB;IAoG3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyDtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B3B;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB1B;IAED,SAAS,IAAI,OAAO,CAEnB;CACF"}
|
|
@@ -10,7 +10,7 @@ import { ERROR_REGISTRY } from "../../../client/errors/index.js";
|
|
|
10
10
|
import { createPatternServerUrlStrategy } from "./strategies.js";
|
|
11
11
|
import { checkBrowserRequest } from "../../../server/browser-guard.js";
|
|
12
12
|
import { bearerOf, withoutSecretHeaders } from "../../../server/request-auth.js";
|
|
13
|
-
import { PROTOCOL_HEADER, PROTOCOL_VERSION, httpStatusOf, protocolVersionOf } from "../../../protocol.js";
|
|
13
|
+
import { PROTOCOL_HEADER, PROTOCOL_VERSION, errorCodeOf, httpStatusOf, protocolVersionOf } from "../../../protocol.js";
|
|
14
14
|
/** The media type of a stream response: one JSON value on each line. */
|
|
15
15
|
const NDJSON = "application/x-ndjson";
|
|
16
16
|
/** True when a stream response can run without an end (`STREAM_METADATA_KEY` of procedure-server.ts). */
|
|
@@ -29,10 +29,9 @@ class BodyError extends Error {
|
|
|
29
29
|
}
|
|
30
30
|
/** The code and message of a thrown error, with its retryable flag (deep dive TRN-7). */
|
|
31
31
|
function errorOf(error) {
|
|
32
|
-
const code = error?.code;
|
|
33
32
|
const retryable = error?.retryable;
|
|
34
33
|
return {
|
|
35
|
-
code:
|
|
34
|
+
code: errorCodeOf(error),
|
|
36
35
|
message: error instanceof Error ? error.message : String(error),
|
|
37
36
|
retryable: typeof retryable === "boolean" ? retryable : false,
|
|
38
37
|
};
|
|
@@ -312,7 +311,9 @@ export class HttpServerTransport {
|
|
|
312
311
|
* Send a stream response.
|
|
313
312
|
*
|
|
314
313
|
* A client that accepts `application/x-ndjson` gets one JSON line for each item
|
|
315
|
-
* (`{"type":"item","payload":...}`), then `{"type":"done"
|
|
314
|
+
* (`{"type":"item","seq":1,"payload":...}`), then `{"type":"done","seq":...}`, or
|
|
315
|
+
* `{"type":"error","error":...}`. The `seq` of the lines counts from 1, as in the `stream`
|
|
316
|
+
* frames of WebSocket.
|
|
316
317
|
* Another client (curl, a browser fetch without the header) gets the last item as plain JSON,
|
|
317
318
|
* the "sponge" mode, so a streaming procedure does not change its response format.
|
|
318
319
|
*/
|
|
@@ -365,11 +366,12 @@ export class HttpServerTransport {
|
|
|
365
366
|
res.end(JSON.stringify({ type: "error", error: { code: "ABORTED", message: "The server stopped the request", retryable: true } }) + "\n");
|
|
366
367
|
}
|
|
367
368
|
};
|
|
369
|
+
let seq = 0;
|
|
368
370
|
try {
|
|
369
371
|
for await (const item of stream) {
|
|
370
372
|
if (signal.aborted)
|
|
371
373
|
break;
|
|
372
|
-
await write(res, JSON.stringify({ type: "item", payload: item }) + "\n", signal);
|
|
374
|
+
await write(res, JSON.stringify({ type: "item", seq: ++seq, payload: item }) + "\n", signal);
|
|
373
375
|
if (signal.aborted)
|
|
374
376
|
break;
|
|
375
377
|
}
|
|
@@ -377,7 +379,7 @@ export class HttpServerTransport {
|
|
|
377
379
|
endAborted();
|
|
378
380
|
return;
|
|
379
381
|
}
|
|
380
|
-
res.end(JSON.stringify({ type: "done" }) + "\n");
|
|
382
|
+
res.end(JSON.stringify({ type: "done", seq: ++seq }) + "\n");
|
|
381
383
|
}
|
|
382
384
|
catch (error) {
|
|
383
385
|
if (signal.aborted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/http/server/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ export declare class LocalTransport implements Transport {
|
|
|
39
39
|
private readonly interceptors;
|
|
40
40
|
private readonly capability;
|
|
41
41
|
private readonly clearanceOrder;
|
|
42
|
+
private readonly events;
|
|
42
43
|
constructor(options?: LocalTransportOptions);
|
|
43
44
|
/**
|
|
44
45
|
* Register a handler for a method.
|
|
@@ -59,7 +60,7 @@ export declare class LocalTransport implements Transport {
|
|
|
59
60
|
* @param method - Method to check
|
|
60
61
|
*/
|
|
61
62
|
has(method: Method): boolean;
|
|
62
|
-
/** The procedure of the registry at the path of a method. */
|
|
63
|
+
/** The procedure of the registry at the path of a method, or `events.subscribe` of the publisher. */
|
|
63
64
|
private procedureFor;
|
|
64
65
|
/**
|
|
65
66
|
* Send message to local handler.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAkDjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,cAAe,YAAW,SAAS;IAC9C,QAAQ,CAAC,IAAI,WAAW;IAExB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAEpD,YAAY,OAAO,GAAE,qBAA0B,EAe9C;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAEvE;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/B;IAED;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED,qGAAqG;IACrG,OAAO,CAAC,YAAY;IAOpB;;;;;;;;OAQG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAoFjF;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAGD;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE,CAErB;CACF"}
|
|
@@ -8,6 +8,7 @@ import { InvocationError, invokeProcedure, isAsyncIterable } from "../../../proc
|
|
|
8
8
|
import { TIMEOUT_METADATA_KEY } from "../../../client/deadline.js";
|
|
9
9
|
import { narrowCapability } from "../../../procedures/capability.js";
|
|
10
10
|
import { methodToPath } from "../../../server/method.js";
|
|
11
|
+
import { errorCodeOf } from "../../../protocol.js";
|
|
11
12
|
/** The value of `untilAborted` when the signal aborts first. */
|
|
12
13
|
const ABORTED = Symbol("aborted");
|
|
13
14
|
/** The value of a promise, or ABORTED when the signal aborts first. The promise runs on. */
|
|
@@ -74,12 +75,14 @@ export class LocalTransport {
|
|
|
74
75
|
interceptors;
|
|
75
76
|
capability;
|
|
76
77
|
clearanceOrder;
|
|
78
|
+
events;
|
|
77
79
|
constructor(options = {}) {
|
|
78
80
|
this.throwOnMissing = options.throwOnMissing !== false;
|
|
79
81
|
this.registry = options.registry;
|
|
80
82
|
this.interceptors = options.interceptors;
|
|
81
83
|
this.capability = options.capability;
|
|
82
84
|
this.clearanceOrder = options.clearanceOrder;
|
|
85
|
+
this.events = options.events;
|
|
83
86
|
// Register pre-configured handlers. A key without a version ("users.get") gets the
|
|
84
87
|
// empty version, as methodKey() makes it: before, such a key was never found.
|
|
85
88
|
if (options.handlers) {
|
|
@@ -113,11 +116,14 @@ export class LocalTransport {
|
|
|
113
116
|
has(method) {
|
|
114
117
|
return this.handlers.has(methodKey(method)) || this.procedureFor(method) !== undefined;
|
|
115
118
|
}
|
|
116
|
-
/** The procedure of the registry at the path of a method. */
|
|
119
|
+
/** The procedure of the registry at the path of a method, or `events.subscribe` of the publisher. */
|
|
117
120
|
procedureFor(method) {
|
|
121
|
+
const path = methodToPath(method);
|
|
122
|
+
if (this.events && path.join(".") === "events.subscribe")
|
|
123
|
+
return this.events.procedure;
|
|
118
124
|
if (!this.registry)
|
|
119
125
|
return undefined;
|
|
120
|
-
return this.registry.get(
|
|
126
|
+
return this.registry.get(path);
|
|
121
127
|
}
|
|
122
128
|
/**
|
|
123
129
|
* Send message to local handler.
|
|
@@ -162,6 +168,7 @@ export class LocalTransport {
|
|
|
162
168
|
...(this.interceptors ? { interceptors: this.interceptors } : {}),
|
|
163
169
|
...(capability ? { capability } : {}),
|
|
164
170
|
...(this.clearanceOrder ? { clearanceOrder: this.clearanceOrder } : {}),
|
|
171
|
+
...(this.events ? { bus: this.events.bus } : {}),
|
|
165
172
|
}), message.signal);
|
|
166
173
|
if (output === ABORTED) {
|
|
167
174
|
// The caller stops waiting at once, as over HTTP and WebSocket (the conformance suite
|
|
@@ -203,8 +210,9 @@ export class LocalTransport {
|
|
|
203
210
|
}
|
|
204
211
|
}
|
|
205
212
|
catch (error) {
|
|
206
|
-
// The handler threw, or the invocation failed (its code: VALIDATION_ERROR, ABORTED and so
|
|
207
|
-
|
|
213
|
+
// The handler threw, or the invocation failed (its code: VALIDATION_ERROR, ABORTED and so
|
|
214
|
+
// on). A handler error keeps its own code, as on the other faces (WIRE-PROTOCOL.md).
|
|
215
|
+
const code = errorCodeOf(error);
|
|
208
216
|
const item = errorItem(message.id, code, error instanceof Error ? error.message : "Unknown error");
|
|
209
217
|
// The reason of a FORBIDDEN error travels on each face (roadmap R25)
|
|
210
218
|
if (error instanceof InvocationError && error.reason)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAoB,MAAM,+BAA+B,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import type { Message, Method } from "../../../client/types.js";
|
|
|
7
7
|
import type { ProcedureRegistry } from "../../../procedures/registry.js";
|
|
8
8
|
import type { Interceptor } from "../../../procedures/invoke.js";
|
|
9
9
|
import type { Capability, ClearanceOrder } from "../../../procedures/types.js";
|
|
10
|
+
import type { EventPublisher } from "../../../events/publisher.js";
|
|
10
11
|
/**
|
|
11
12
|
* Handler function for a method.
|
|
12
13
|
*/
|
|
@@ -50,5 +51,10 @@ export interface LocalTransportOptions {
|
|
|
50
51
|
capability?: Capability | undefined;
|
|
51
52
|
/** The order of the clearance values of the capability. */
|
|
52
53
|
clearanceOrder?: ClearanceOrder | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* The publisher of the remote events (`documentation/EVENTS.md`). The transport serves its
|
|
56
|
+
* procedure `events.subscribe`, and its procedures get its bus as `ctx.bus`.
|
|
57
|
+
*/
|
|
58
|
+
events?: EventPublisher | undefined;
|
|
53
59
|
}
|
|
54
60
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,IAAI,CACpD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KACnB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAEhD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAC;IAElD;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAEpC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The sequence numbers of the stream frames (wire protocol v1, `documentation/WIRE-PROTOCOL.md`).
|
|
3
|
+
*
|
|
4
|
+
* - The callee writes `seq` in each `stream` frame of a call: 1 in the first frame, and one more
|
|
5
|
+
* in each next frame. The end frame has a number too. An NDJSON line `item` or `done` has the
|
|
6
|
+
* same field.
|
|
7
|
+
* - The caller drops a frame whose `seq` is not above the last one. Thus a duplicate frame or a
|
|
8
|
+
* late frame gives no item.
|
|
9
|
+
* - A gap is a loss. The delivery is at most once, so the stream continues. The next item has the
|
|
10
|
+
* number of lost frames in its metadata key `stream-gap`, and the caller writes a warning. The
|
|
11
|
+
* caller also gives back the credit of the lost frames.
|
|
12
|
+
* - A frame without `seq` comes from an older peer. The caller takes it as before.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The metadata key of a stream item after a gap: the number of frames that did not arrive
|
|
16
|
+
* immediately before this item. The receiver sets it. It does not cross the wire.
|
|
17
|
+
*/
|
|
18
|
+
export declare const STREAM_GAP_METADATA_KEY = "stream-gap";
|
|
19
|
+
/** The order of the stream frames of one call, at the side that receives them. */
|
|
20
|
+
export declare class StreamSequence {
|
|
21
|
+
private last;
|
|
22
|
+
/**
|
|
23
|
+
* This function examines the `seq` of a frame. It gives -1 for a frame to drop: its `seq` is
|
|
24
|
+
* not above the last one. Else it gives the number of frames that did not arrive before this
|
|
25
|
+
* frame. A frame without a valid `seq` gives 0.
|
|
26
|
+
*/
|
|
27
|
+
next(seq: unknown, id: string): number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* This function gives the metadata of a stream item. The key `stream-gap` has the gap of the
|
|
31
|
+
* receiver only: the receiver removes a key of the same name that the peer sent.
|
|
32
|
+
*/
|
|
33
|
+
export declare function itemMetadata(metadata: Record<string, unknown> | undefined, gap: number): Record<string, unknown>;
|
|
34
|
+
/** The number of frames that did not arrive immediately before an item: 0 without a gap. */
|
|
35
|
+
export declare function gapOf(metadata: Record<string, unknown> | undefined): number;
|
|
36
|
+
//# sourceMappingURL=sequence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/adapters/sequence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAe,CAAC;AAEpD,kFAAkF;AAClF,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAK;IAEjB;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAOrC;CACF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKhH;AAED,4FAA4F;AAC5F,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAG3E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The sequence numbers of the stream frames (wire protocol v1, `documentation/WIRE-PROTOCOL.md`).
|
|
3
|
+
*
|
|
4
|
+
* - The callee writes `seq` in each `stream` frame of a call: 1 in the first frame, and one more
|
|
5
|
+
* in each next frame. The end frame has a number too. An NDJSON line `item` or `done` has the
|
|
6
|
+
* same field.
|
|
7
|
+
* - The caller drops a frame whose `seq` is not above the last one. Thus a duplicate frame or a
|
|
8
|
+
* late frame gives no item.
|
|
9
|
+
* - A gap is a loss. The delivery is at most once, so the stream continues. The next item has the
|
|
10
|
+
* number of lost frames in its metadata key `stream-gap`, and the caller writes a warning. The
|
|
11
|
+
* caller also gives back the credit of the lost frames.
|
|
12
|
+
* - A frame without `seq` comes from an older peer. The caller takes it as before.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The metadata key of a stream item after a gap: the number of frames that did not arrive
|
|
16
|
+
* immediately before this item. The receiver sets it. It does not cross the wire.
|
|
17
|
+
*/
|
|
18
|
+
export const STREAM_GAP_METADATA_KEY = "stream-gap";
|
|
19
|
+
/** The order of the stream frames of one call, at the side that receives them. */
|
|
20
|
+
export class StreamSequence {
|
|
21
|
+
last = 0;
|
|
22
|
+
/**
|
|
23
|
+
* This function examines the `seq` of a frame. It gives -1 for a frame to drop: its `seq` is
|
|
24
|
+
* not above the last one. Else it gives the number of frames that did not arrive before this
|
|
25
|
+
* frame. A frame without a valid `seq` gives 0.
|
|
26
|
+
*/
|
|
27
|
+
next(seq, id) {
|
|
28
|
+
if (typeof seq !== "number" || !Number.isSafeInteger(seq) || seq < 1)
|
|
29
|
+
return 0;
|
|
30
|
+
if (seq <= this.last)
|
|
31
|
+
return -1;
|
|
32
|
+
const gap = seq - this.last - 1;
|
|
33
|
+
this.last = seq;
|
|
34
|
+
if (gap > 0)
|
|
35
|
+
console.warn(`[stream] Frames lost before seq ${seq} of the call ${id}: ${gap}`);
|
|
36
|
+
return gap;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* This function gives the metadata of a stream item. The key `stream-gap` has the gap of the
|
|
41
|
+
* receiver only: the receiver removes a key of the same name that the peer sent.
|
|
42
|
+
*/
|
|
43
|
+
export function itemMetadata(metadata, gap) {
|
|
44
|
+
const out = { ...metadata };
|
|
45
|
+
delete out[STREAM_GAP_METADATA_KEY];
|
|
46
|
+
if (gap > 0)
|
|
47
|
+
out[STREAM_GAP_METADATA_KEY] = gap;
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
/** The number of frames that did not arrive immediately before an item: 0 without a gap. */
|
|
51
|
+
export function gapOf(metadata) {
|
|
52
|
+
const gap = metadata?.[STREAM_GAP_METADATA_KEY];
|
|
53
|
+
return typeof gap === "number" ? gap : 0;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=sequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/adapters/sequence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAEpD,kFAAkF;AAClF,MAAM,OAAO,cAAc;IACjB,IAAI,GAAG,CAAC,CAAC;IAEjB;;;;OAIG;IACH,IAAI,CAAC,GAAY,EAAE,EAAU;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,gBAAgB,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;QAC9F,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAA6C,EAAE,GAAW;IACrF,MAAM,GAAG,GAA4B,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrD,OAAO,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,CAAC;QAAE,GAAG,CAAC,uBAAuB,CAAC,GAAG,GAAG,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,KAAK,CAAC,QAA6C;IACjE,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC,uBAAuB,CAAC,CAAC;IAChD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WebSocket client transport for Node (finding of roadmap R36).
|
|
3
|
+
*
|
|
4
|
+
* This class is the `WebSocketTransport` of the browser entry with one other default: its sockets
|
|
5
|
+
* are of the `WebSocket` class of the `ws` package. A drop by the heartbeat or by the time limit
|
|
6
|
+
* of the handshake then ends the socket at once with `terminate()`. The global `WebSocket` of Node
|
|
7
|
+
* has only `close()`, which waits for the answer of the peer. With a dead peer, that socket stays
|
|
8
|
+
* open until the kernel stops it: 924.6 seconds in the harness cells of R36.
|
|
9
|
+
*
|
|
10
|
+
* Only the Node entry `@procedures/client/node` exports this class. The browser entry does not
|
|
11
|
+
* import `ws`.
|
|
12
|
+
*/
|
|
13
|
+
import { WebSocketTransport as PortableWebSocketTransport } from "./transport.js";
|
|
14
|
+
import type { WebSocketTransportOptions } from "./types.js";
|
|
15
|
+
/**
|
|
16
|
+
* The WebSocket client transport with the `WebSocket` class of the `ws` package as the default
|
|
17
|
+
* class of its sockets. The option `webSocket` gives another class.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { Client } from "@procedures/client";
|
|
22
|
+
* import { WebSocketTransport } from "@procedures/client/node";
|
|
23
|
+
*
|
|
24
|
+
* const client = new Client({ transport: new WebSocketTransport({ url: "ws://localhost:3000/ws" }) });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class WebSocketTransport extends PortableWebSocketTransport {
|
|
28
|
+
constructor(options: WebSocketTransportOptions);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,0BAA0B;IAChE,YAAY,OAAO,EAAE,yBAAyB,EAE7C;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WebSocket client transport for Node (finding of roadmap R36).
|
|
3
|
+
*
|
|
4
|
+
* This class is the `WebSocketTransport` of the browser entry with one other default: its sockets
|
|
5
|
+
* are of the `WebSocket` class of the `ws` package. A drop by the heartbeat or by the time limit
|
|
6
|
+
* of the handshake then ends the socket at once with `terminate()`. The global `WebSocket` of Node
|
|
7
|
+
* has only `close()`, which waits for the answer of the peer. With a dead peer, that socket stays
|
|
8
|
+
* open until the kernel stops it: 924.6 seconds in the harness cells of R36.
|
|
9
|
+
*
|
|
10
|
+
* Only the Node entry `@procedures/client/node` exports this class. The browser entry does not
|
|
11
|
+
* import `ws`.
|
|
12
|
+
*/
|
|
13
|
+
import { WebSocket as NodeWebSocket } from "ws";
|
|
14
|
+
import { WebSocketTransport as PortableWebSocketTransport } from "./transport.js";
|
|
15
|
+
/**
|
|
16
|
+
* The WebSocket client transport with the `WebSocket` class of the `ws` package as the default
|
|
17
|
+
* class of its sockets. The option `webSocket` gives another class.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { Client } from "@procedures/client";
|
|
22
|
+
* import { WebSocketTransport } from "@procedures/client/node";
|
|
23
|
+
*
|
|
24
|
+
* const client = new Client({ transport: new WebSocketTransport({ url: "ws://localhost:3000/ws" }) });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class WebSocketTransport extends PortableWebSocketTransport {
|
|
28
|
+
constructor(options) {
|
|
29
|
+
super({ ...options, webSocket: options.webSocket ?? NodeWebSocket });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAGlF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAmB,SAAQ,0BAA0B;IAChE,YAAY,OAAkC;QAC5C,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IACvE,CAAC;CACF"}
|