@procedures/client 0.2.3 → 0.3.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 +65 -0
- package/README.md +61 -38
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/http/client/transport.d.ts.map +1 -1
- package/dist/adapters/http/client/transport.js +35 -3
- package/dist/adapters/http/client/transport.js.map +1 -1
- package/dist/adapters/http/client/types.d.ts +3 -2
- package/dist/adapters/http/client/types.d.ts.map +1 -1
- package/dist/adapters/http/server/transport.d.ts +2 -2
- package/dist/adapters/http/server/transport.d.ts.map +1 -1
- package/dist/adapters/http/server/transport.js +53 -20
- package/dist/adapters/http/server/transport.js.map +1 -1
- package/dist/adapters/http/shared/headers.d.ts +1 -1
- package/dist/adapters/http/shared/headers.d.ts.map +1 -1
- package/dist/adapters/http/shared/headers.js +7 -6
- package/dist/adapters/http/shared/headers.js.map +1 -1
- package/dist/adapters/local/client/transport.d.ts +3 -0
- package/dist/adapters/local/client/transport.d.ts.map +1 -1
- package/dist/adapters/local/client/transport.js +63 -4
- package/dist/adapters/local/client/transport.js.map +1 -1
- package/dist/adapters/local/client/types.d.ts +15 -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/mock/client/transport.d.ts +3 -2
- package/dist/adapters/mock/client/transport.d.ts.map +1 -1
- package/dist/adapters/mock/client/transport.js +8 -5
- package/dist/adapters/mock/client/transport.js.map +1 -1
- package/dist/adapters/mock/client/types.d.ts +7 -6
- package/dist/adapters/mock/client/types.d.ts.map +1 -1
- package/dist/adapters/port/transport.d.ts +62 -0
- package/dist/adapters/port/transport.d.ts.map +1 -0
- package/dist/adapters/port/transport.js +94 -0
- package/dist/adapters/port/transport.js.map +1 -0
- package/dist/adapters/websocket/client/index.d.ts +1 -1
- package/dist/adapters/websocket/client/index.d.ts.map +1 -1
- package/dist/adapters/websocket/client/index.js.map +1 -1
- package/dist/adapters/websocket/client/transport.d.ts +47 -7
- package/dist/adapters/websocket/client/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/client/transport.js +213 -67
- package/dist/adapters/websocket/client/transport.js.map +1 -1
- package/dist/adapters/websocket/client/types.d.ts +70 -21
- 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 +65 -24
- package/dist/adapters/websocket/server/transport.d.ts.map +1 -1
- package/dist/adapters/websocket/server/transport.js +192 -263
- package/dist/adapters/websocket/server/transport.js.map +1 -1
- package/dist/adapters/websocket/server/types.d.ts +20 -1
- package/dist/adapters/websocket/server/types.d.ts.map +1 -1
- package/dist/adapters/websocket/shared/rpc.d.ts +129 -0
- package/dist/adapters/websocket/shared/rpc.d.ts.map +1 -0
- package/dist/adapters/websocket/shared/rpc.js +425 -0
- package/dist/adapters/websocket/shared/rpc.js.map +1 -0
- package/dist/browser.d.ts +29 -7
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +26 -3
- package/dist/browser.js.map +1 -1
- package/dist/client/call-types.d.ts +10 -10
- package/dist/client/call-types.d.ts.map +1 -1
- package/dist/client/call-types.js +1 -6
- package/dist/client/call-types.js.map +1 -1
- package/dist/client/client.d.ts +6 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +23 -9
- package/dist/client/client.js.map +1 -1
- package/dist/client/deadline.d.ts +38 -0
- package/dist/client/deadline.d.ts.map +1 -0
- package/dist/client/deadline.js +60 -0
- package/dist/client/deadline.js.map +1 -0
- package/dist/client/errors/factory.d.ts.map +1 -1
- package/dist/client/errors/factory.js +11 -7
- package/dist/client/errors/factory.js.map +1 -1
- package/dist/client/index.d.ts +9 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +8 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/middleware/cache.d.ts +19 -5
- package/dist/client/middleware/cache.d.ts.map +1 -1
- package/dist/client/middleware/cache.js +106 -18
- package/dist/client/middleware/cache.js.map +1 -1
- package/dist/client/middleware/circuit-breaker.d.ts +28 -10
- package/dist/client/middleware/circuit-breaker.d.ts.map +1 -1
- package/dist/client/middleware/circuit-breaker.js +35 -24
- package/dist/client/middleware/circuit-breaker.js.map +1 -1
- package/dist/client/middleware/contexts.d.ts +16 -10
- package/dist/client/middleware/contexts.d.ts.map +1 -1
- package/dist/client/middleware/contexts.js.map +1 -1
- package/dist/client/middleware/items.d.ts +31 -2
- package/dist/client/middleware/items.d.ts.map +1 -1
- package/dist/client/middleware/items.js +86 -6
- package/dist/client/middleware/items.js.map +1 -1
- package/dist/client/middleware/lru.d.ts +2 -0
- package/dist/client/middleware/lru.d.ts.map +1 -1
- package/dist/client/middleware/lru.js +11 -0
- package/dist/client/middleware/lru.js.map +1 -1
- package/dist/client/middleware/rate-limit.d.ts +7 -6
- package/dist/client/middleware/rate-limit.d.ts.map +1 -1
- package/dist/client/middleware/rate-limit.js +9 -6
- package/dist/client/middleware/rate-limit.js.map +1 -1
- package/dist/client/middleware/resilience.d.ts +61 -0
- package/dist/client/middleware/resilience.d.ts.map +1 -0
- package/dist/client/middleware/resilience.js +59 -0
- package/dist/client/middleware/resilience.js.map +1 -0
- package/dist/client/middleware/retry.d.ts +45 -11
- package/dist/client/middleware/retry.d.ts.map +1 -1
- package/dist/client/middleware/retry.js +102 -22
- package/dist/client/middleware/retry.js.map +1 -1
- package/dist/client/middleware/timeout.d.ts +15 -12
- package/dist/client/middleware/timeout.d.ts.map +1 -1
- package/dist/client/middleware/timeout.js +46 -37
- package/dist/client/middleware/timeout.js.map +1 -1
- package/dist/client/middleware/tracing.d.ts.map +1 -1
- package/dist/client/middleware/tracing.js +11 -3
- package/dist/client/middleware/tracing.js.map +1 -1
- package/dist/client/types.d.ts +9 -1
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js.map +1 -1
- package/dist/clock.d.ts +19 -0
- package/dist/clock.d.ts.map +1 -0
- package/dist/clock.js +18 -0
- package/dist/clock.js.map +1 -0
- package/dist/duration.d.ts +37 -0
- package/dist/duration.d.ts.map +1 -0
- package/dist/duration.js +44 -0
- package/dist/duration.js.map +1 -0
- package/dist/machines.d.ts +90 -0
- package/dist/machines.d.ts.map +1 -0
- package/dist/machines.js +127 -0
- package/dist/machines.js.map +1 -0
- package/dist/procedures/capability.d.ts +3 -6
- package/dist/procedures/capability.d.ts.map +1 -1
- package/dist/procedures/capability.js +7 -8
- package/dist/procedures/capability.js.map +1 -1
- package/dist/procedures/collection/index.d.ts +3 -3
- package/dist/procedures/collection/index.d.ts.map +1 -1
- package/dist/procedures/collection/index.js +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 +49 -1
- package/dist/procedures/collection/procedures.js.map +1 -1
- package/dist/procedures/collection/schemas.d.ts +33 -0
- package/dist/procedures/collection/schemas.d.ts.map +1 -1
- package/dist/procedures/collection/schemas.js +68 -0
- package/dist/procedures/collection/schemas.js.map +1 -1
- package/dist/procedures/collection/storage.d.ts +37 -0
- package/dist/procedures/collection/storage.d.ts.map +1 -1
- package/dist/procedures/core/array.d.ts.map +1 -1
- package/dist/procedures/core/array.js +26 -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 +8 -0
- package/dist/procedures/core/index.js.map +1 -1
- package/dist/procedures/core/meta.d.ts.map +1 -1
- package/dist/procedures/core/meta.js +2 -1
- package/dist/procedures/core/meta.js.map +1 -1
- package/dist/procedures/core/object.d.ts.map +1 -1
- package/dist/procedures/core/object.js +42 -13
- package/dist/procedures/core/object.js.map +1 -1
- package/dist/procedures/core/operands.d.ts.map +1 -1
- package/dist/procedures/core/operands.js +6 -1
- package/dist/procedures/core/operands.js.map +1 -1
- package/dist/procedures/core/string.d.ts.map +1 -1
- package/dist/procedures/core/string.js +4 -2
- package/dist/procedures/core/string.js.map +1 -1
- package/dist/procedures/define-procedure.d.ts +19 -7
- package/dist/procedures/define-procedure.d.ts.map +1 -1
- package/dist/procedures/define-procedure.js +57 -17
- package/dist/procedures/define-procedure.js.map +1 -1
- package/dist/procedures/effects.d.ts +16 -0
- package/dist/procedures/effects.d.ts.map +1 -1
- package/dist/procedures/effects.js +33 -0
- package/dist/procedures/effects.js.map +1 -1
- package/dist/procedures/idempotency.d.ts +73 -0
- package/dist/procedures/idempotency.d.ts.map +1 -0
- package/dist/procedures/idempotency.js +131 -0
- package/dist/procedures/idempotency.js.map +1 -0
- package/dist/procedures/index.d.ts +7 -3
- package/dist/procedures/index.d.ts.map +1 -1
- package/dist/procedures/index.js +6 -2
- package/dist/procedures/index.js.map +1 -1
- package/dist/procedures/interceptors.d.ts +17 -4
- package/dist/procedures/interceptors.d.ts.map +1 -1
- package/dist/procedures/interceptors.js +18 -7
- package/dist/procedures/interceptors.js.map +1 -1
- package/dist/procedures/invoke.d.ts +15 -3
- package/dist/procedures/invoke.d.ts.map +1 -1
- package/dist/procedures/invoke.js +8 -3
- package/dist/procedures/invoke.js.map +1 -1
- package/dist/procedures/manifest.d.ts +83 -0
- package/dist/procedures/manifest.d.ts.map +1 -0
- package/dist/procedures/manifest.js +90 -0
- package/dist/procedures/manifest.js.map +1 -0
- package/dist/procedures/runtime-programs.d.ts +19 -0
- package/dist/procedures/runtime-programs.d.ts.map +1 -0
- package/dist/procedures/runtime-programs.js +24 -0
- package/dist/procedures/runtime-programs.js.map +1 -0
- package/dist/procedures/types.d.ts +16 -0
- package/dist/procedures/types.d.ts.map +1 -1
- package/dist/procedures/types.js.map +1 -1
- package/dist/protocol.d.ts +40 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +58 -0
- package/dist/protocol.js.map +1 -0
- package/dist/server/host-policy.d.ts +4 -3
- package/dist/server/host-policy.d.ts.map +1 -1
- package/dist/server/host-policy.js +6 -3
- package/dist/server/host-policy.js.map +1 -1
- package/dist/server/host-procedures.d.ts +31 -0
- package/dist/server/host-procedures.d.ts.map +1 -0
- package/dist/server/host-procedures.js +75 -0
- package/dist/server/host-procedures.js.map +1 -0
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/procedure-server.d.ts +110 -4
- package/dist/server/procedure-server.d.ts.map +1 -1
- package/dist/server/procedure-server.js +269 -17
- package/dist/server/procedure-server.js.map +1 -1
- package/dist/server/request-auth.d.ts +19 -0
- package/dist/server/request-auth.d.ts.map +1 -0
- package/dist/server/request-auth.js +32 -0
- package/dist/server/request-auth.js.map +1 -0
- package/dist/server/types.d.ts +32 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js.map +1 -1
- package/dist/timers.d.ts +60 -0
- package/dist/timers.d.ts.map +1 -0
- package/dist/timers.js +33 -0
- package/dist/timers.js.map +1 -0
- package/dist/tracing/traceparent.d.ts +26 -0
- package/dist/tracing/traceparent.d.ts.map +1 -0
- package/dist/tracing/traceparent.js +53 -0
- package/dist/tracing/traceparent.js.map +1 -0
- package/package.json +7 -1
- package/src/adapters/http/client/transport.ts +31 -3
- package/src/adapters/http/client/types.ts +3 -2
- package/src/adapters/http/server/transport.ts +60 -24
- package/src/adapters/http/shared/headers.ts +7 -6
- package/src/adapters/local/client/transport.ts +70 -5
- package/src/adapters/local/client/types.ts +18 -0
- package/src/adapters/mock/client/transport.ts +9 -6
- package/src/adapters/mock/client/types.ts +7 -6
- package/src/adapters/port/transport.ts +124 -0
- package/src/adapters/websocket/client/index.ts +1 -0
- package/src/adapters/websocket/client/transport.ts +232 -73
- package/src/adapters/websocket/client/types.ts +80 -21
- package/src/adapters/websocket/server/transport.ts +199 -301
- package/src/adapters/websocket/server/types.ts +20 -1
- package/src/adapters/websocket/shared/rpc.ts +453 -0
- package/src/browser.ts +51 -3
- package/src/client/call-types.ts +10 -14
- package/src/client/client.ts +28 -9
- package/src/client/deadline.ts +64 -0
- package/src/client/errors/factory.ts +12 -8
- package/src/client/index.ts +21 -3
- package/src/client/middleware/cache.ts +120 -23
- package/src/client/middleware/circuit-breaker.ts +65 -35
- package/src/client/middleware/contexts.ts +17 -10
- package/src/client/middleware/items.ts +101 -6
- package/src/client/middleware/lru.ts +12 -0
- package/src/client/middleware/rate-limit.ts +9 -7
- package/src/client/middleware/resilience.ts +81 -0
- package/src/client/middleware/retry.ts +146 -34
- package/src/client/middleware/timeout.ts +55 -46
- package/src/client/middleware/tracing.ts +13 -4
- package/src/client/types.ts +9 -1
- package/src/clock.ts +21 -0
- package/src/duration.ts +56 -0
- package/src/machines.ts +186 -0
- package/src/procedures/capability.ts +7 -8
- package/src/procedures/collection/index.ts +9 -1
- package/src/procedures/collection/procedures.ts +57 -0
- package/src/procedures/collection/schemas.ts +110 -0
- package/src/procedures/collection/storage.ts +38 -0
- package/src/procedures/core/array.ts +27 -16
- package/src/procedures/core/index.ts +8 -0
- package/src/procedures/core/meta.ts +2 -1
- package/src/procedures/core/object.ts +48 -14
- package/src/procedures/core/operands.ts +7 -0
- package/src/procedures/core/string.ts +4 -2
- package/src/procedures/define-procedure.ts +73 -20
- package/src/procedures/effects.ts +35 -0
- package/src/procedures/idempotency.ts +152 -0
- package/src/procedures/index.ts +18 -2
- package/src/procedures/interceptors.ts +28 -11
- package/src/procedures/invoke.ts +19 -5
- package/src/procedures/manifest.ts +158 -0
- package/src/procedures/runtime-programs.ts +27 -0
- package/src/procedures/types.ts +16 -0
- package/src/protocol.ts +97 -0
- package/src/server/host-policy.ts +8 -5
- package/src/server/host-procedures.ts +102 -0
- package/src/server/index.ts +5 -2
- package/src/server/procedure-server.ts +324 -10
- package/src/server/request-auth.ts +35 -0
- package/src/server/types.ts +37 -0
- package/src/timers.ts +82 -0
- package/src/tracing/traceparent.ts +61 -0
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/local/client/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Message, Method } from "../../../client/types.js";
|
|
7
7
|
import type { ProcedureRegistry } from "../../../procedures/registry.js";
|
|
8
|
+
import type { Interceptor } from "../../../procedures/invoke.js";
|
|
9
|
+
import type { Capability, ClearanceOrder } from "../../../procedures/types.js";
|
|
8
10
|
/**
|
|
9
11
|
* Handler function for a method.
|
|
10
12
|
*/
|
|
@@ -35,5 +37,18 @@ export interface LocalTransportOptions {
|
|
|
35
37
|
* The procedure runs through `invokeProcedure()`, as on a server.
|
|
36
38
|
*/
|
|
37
39
|
registry?: ProcedureRegistry;
|
|
40
|
+
/**
|
|
41
|
+
* The interceptors of each procedure that the transport runs, as on a server: policy, tracing,
|
|
42
|
+
* timeouts, metrics (roadmap R14). Before, a local call had none.
|
|
43
|
+
*/
|
|
44
|
+
interceptors?: readonly Interceptor[] | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* The capability of each call. The remaining time that a call sends (`procedure-timeout`)
|
|
47
|
+
* makes its deadline earlier, as on a server: a `Client` with a timeout gives a local call a
|
|
48
|
+
* deadline too (roadmap R14).
|
|
49
|
+
*/
|
|
50
|
+
capability?: Capability | undefined;
|
|
51
|
+
/** The order of the clearance values of the capability. */
|
|
52
|
+
clearanceOrder?: ClearanceOrder | undefined;
|
|
38
53
|
}
|
|
39
54
|
//# 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;
|
|
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;AAE/E;;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;CAC7C"}
|
|
@@ -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;AAeH;;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"}
|
|
@@ -19,8 +19,8 @@ import type { MockResponse, ResponseMatcher, MockTransportOptions, CallHistoryEn
|
|
|
19
19
|
* ```typescript
|
|
20
20
|
* // Create mock transport with latency
|
|
21
21
|
* const mock = new MockTransport({
|
|
22
|
-
* minLatency: 10,
|
|
23
|
-
* maxLatency: 50,
|
|
22
|
+
* minLatency: ms(10),
|
|
23
|
+
* maxLatency: ms(50),
|
|
24
24
|
* });
|
|
25
25
|
*
|
|
26
26
|
* // Mock a specific response
|
|
@@ -49,6 +49,7 @@ import type { MockResponse, ResponseMatcher, MockTransportOptions, CallHistoryEn
|
|
|
49
49
|
*/
|
|
50
50
|
export declare class MockTransport implements Transport {
|
|
51
51
|
readonly name = "mock";
|
|
52
|
+
/** The options, with the latencies in milliseconds */
|
|
52
53
|
private options;
|
|
53
54
|
private responses;
|
|
54
55
|
private history;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,IAAI,UAAU;IAEvB,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAiH;IAChI,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAY,OAAO,GAAE,oBAAyB,EAS7C;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,IAAI,GAAG,OAAO,EACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,GAC3B,IAAI,CAEN;IAED;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,GAAG,OAAO,EACxB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,IAAI,EACb,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,IAAI,CAYN;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIzD;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAI,GAAG,OAAO,EACvB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAC1B,IAAI,CAEN;IAED;;OAEG;IACH,UAAU,IAAI,IAAI,CAEjB;IAED;;;;OAIG;IACH,QAAQ,IAAI,gBAAgB,EAAE,CAE7B;IAED;;;;;OAKG;IACH,gBAAgB,CACd,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,GAC9C,gBAAgB,EAAE,CAEpB;IAED;;;;OAIG;IACH,WAAW,IAAI,gBAAgB,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EACpB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACrB,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAiFnC;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;OAEG;YACW,eAAe;IAY7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,UAAU;CAuBnB"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* In-memory transport that simulates network behavior for testing.
|
|
5
5
|
*/
|
|
6
|
+
import { optionalMs } from "../../../duration.js";
|
|
6
7
|
/**
|
|
7
8
|
* Mock transport implementation for testing.
|
|
8
9
|
*
|
|
@@ -17,8 +18,8 @@
|
|
|
17
18
|
* ```typescript
|
|
18
19
|
* // Create mock transport with latency
|
|
19
20
|
* const mock = new MockTransport({
|
|
20
|
-
* minLatency: 10,
|
|
21
|
-
* maxLatency: 50,
|
|
21
|
+
* minLatency: ms(10),
|
|
22
|
+
* maxLatency: ms(50),
|
|
22
23
|
* });
|
|
23
24
|
*
|
|
24
25
|
* // Mock a specific response
|
|
@@ -47,13 +48,14 @@
|
|
|
47
48
|
*/
|
|
48
49
|
export class MockTransport {
|
|
49
50
|
name = "mock";
|
|
51
|
+
/** The options, with the latencies in milliseconds */
|
|
50
52
|
options;
|
|
51
53
|
responses = new Map();
|
|
52
54
|
history = [];
|
|
53
55
|
constructor(options = {}) {
|
|
54
56
|
this.options = {
|
|
55
|
-
minLatency: options.minLatency ?? 0,
|
|
56
|
-
maxLatency: options.maxLatency ?? 0,
|
|
57
|
+
minLatency: optionalMs(options.minLatency, "minLatency") ?? 0,
|
|
58
|
+
maxLatency: optionalMs(options.maxLatency, "maxLatency") ?? 0,
|
|
57
59
|
failureRate: options.failureRate ?? 0,
|
|
58
60
|
defaultErrorMessage: options.defaultErrorMessage ?? "Mock transport error",
|
|
59
61
|
trackHistory: options.trackHistory ?? true,
|
|
@@ -202,7 +204,8 @@ export class MockTransport {
|
|
|
202
204
|
}
|
|
203
205
|
// Apply custom delay if specified
|
|
204
206
|
if (mockResponse.delay !== undefined) {
|
|
205
|
-
|
|
207
|
+
const delay = optionalMs(mockResponse.delay, "delay");
|
|
208
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
206
209
|
}
|
|
207
210
|
// Handle error response
|
|
208
211
|
if (mockResponse.error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/adapters/mock/client/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Type definitions for Mock adapter testing utilities.
|
|
5
5
|
*/
|
|
6
6
|
import type { Message, ResponseItem } from "../../../client/types.js";
|
|
7
|
+
import type { Duration } from "../../../duration.js";
|
|
7
8
|
/**
|
|
8
9
|
* Mock response configuration.
|
|
9
10
|
*/
|
|
@@ -21,10 +22,10 @@ export interface MockResponse<TRes = unknown> {
|
|
|
21
22
|
*/
|
|
22
23
|
error?: Error;
|
|
23
24
|
/**
|
|
24
|
-
* Delay
|
|
25
|
+
* Delay before responding
|
|
25
26
|
* @default Uses transport's latency config
|
|
26
27
|
*/
|
|
27
|
-
delay?:
|
|
28
|
+
delay?: Duration;
|
|
28
29
|
/**
|
|
29
30
|
* Number of times this response can be used
|
|
30
31
|
* @default Infinity (reusable)
|
|
@@ -40,15 +41,15 @@ export type ResponseMatcher = (method: any, payload: unknown) => boolean;
|
|
|
40
41
|
*/
|
|
41
42
|
export interface MockTransportOptions {
|
|
42
43
|
/**
|
|
43
|
-
* Minimum latency
|
|
44
|
+
* Minimum latency
|
|
44
45
|
* @default 0
|
|
45
46
|
*/
|
|
46
|
-
minLatency?:
|
|
47
|
+
minLatency?: Duration;
|
|
47
48
|
/**
|
|
48
|
-
* Maximum latency
|
|
49
|
+
* Maximum latency
|
|
49
50
|
* @default 0
|
|
50
51
|
*/
|
|
51
|
-
maxLatency?:
|
|
52
|
+
maxLatency?: Duration;
|
|
52
53
|
/**
|
|
53
54
|
* Random failure rate (0-1)
|
|
54
55
|
* @default 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mock/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,OAAO;IAC1C;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,GAAG,OAAO;IAC9C,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The transport over a message port (roadmap R27): a Web Worker, a `MessagePort` of a
|
|
3
|
+
* `MessageChannel`, an iframe, or a `worker_threads` port of Node.
|
|
4
|
+
*
|
|
5
|
+
* The two sides of a port send calls to each other with the frames of the WebSocket transport
|
|
6
|
+
* (`websocket/shared/rpc.ts`): a request, then a response, an error, or a stream with credit, and
|
|
7
|
+
* a cancel. A port sends objects, not text, so a frame needs no JSON. A side serves the calls of
|
|
8
|
+
* the other side with its `serve` handler, for example a `ProcedureServer`. Before, the site had
|
|
9
|
+
* two worker protocols of its own.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // In the worker: serve the procedures of a registry
|
|
14
|
+
* new PortTransport(self, { serve: new ProcedureServer({ registry, autoRegister: true }) });
|
|
15
|
+
*
|
|
16
|
+
* // On the page: call them
|
|
17
|
+
* const client = new Client(new PortTransport(new Worker(url, { type: "module" })));
|
|
18
|
+
* for await (const item of client.stream({ service: "site", operation: "run" }, input)) { ... }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { Message, ResponseItem, Transport } from "../../client/types.js";
|
|
22
|
+
import type { RequestHandler } from "../../server/types.js";
|
|
23
|
+
/**
|
|
24
|
+
* A message port: the object that a worker, a `MessagePort` or a `worker_threads` port gives. It
|
|
25
|
+
* has `postMessage`, and `addEventListener` (the browser form) or `on` (the Node form).
|
|
26
|
+
*
|
|
27
|
+
* The event of a listener has the type `any`: the DOM and Node give it different types, and a
|
|
28
|
+
* port of each must fit without a cast. The transport reads only its `data`.
|
|
29
|
+
*/
|
|
30
|
+
export interface PortLike {
|
|
31
|
+
postMessage(message: unknown): void;
|
|
32
|
+
addEventListener?(type: "message", listener: (event: any) => void): void;
|
|
33
|
+
removeEventListener?(type: "message", listener: (event: any) => void): void;
|
|
34
|
+
on?(type: "message", listener: (data: unknown) => void): unknown;
|
|
35
|
+
off?(type: "message", listener: (data: unknown) => void): unknown;
|
|
36
|
+
/** A `MessagePort` delivers its messages to `addEventListener` only after `start()`. */
|
|
37
|
+
start?(): void;
|
|
38
|
+
}
|
|
39
|
+
/** The options of a `PortTransport`. */
|
|
40
|
+
export interface PortTransportOptions {
|
|
41
|
+
/** The handler of the calls of the other side, for example a `ProcedureServer`. */
|
|
42
|
+
serve?: RequestHandler | undefined;
|
|
43
|
+
/** The number of stream items that the reader holds. The default is 64. */
|
|
44
|
+
streamWindow?: number | undefined;
|
|
45
|
+
}
|
|
46
|
+
/** The transport over a message port, in the two directions. */
|
|
47
|
+
export declare class PortTransport implements Transport {
|
|
48
|
+
private readonly port;
|
|
49
|
+
readonly name = "port";
|
|
50
|
+
private readonly outgoing;
|
|
51
|
+
private readonly incoming;
|
|
52
|
+
private open;
|
|
53
|
+
private readonly onBrowserMessage;
|
|
54
|
+
private readonly onNodeMessage;
|
|
55
|
+
constructor(port: PortLike, options?: PortTransportOptions);
|
|
56
|
+
private receive;
|
|
57
|
+
/** This function sends a call to the other side, and gives its response items. */
|
|
58
|
+
send<TReq, TRes>(message: Message<TReq>): AsyncIterable<ResponseItem<TRes>>;
|
|
59
|
+
/** This function stops the calls in the two directions, and stops to listen. It does not close the port. */
|
|
60
|
+
close(): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/adapters/port/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpC,gBAAgB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAEzE,mBAAmB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5E,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC;IACjE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC;IAClE,wFAAwF;IACxF,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAOD,gEAAgE;AAChE,qBAAa,aAAc,YAAW,SAAS;IAS3C,OAAO,CAAC,QAAQ,CAAC,IAAI;IARvB,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgE;IACjG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAE7E,YACmB,IAAI,EAAE,QAAQ,EAC/B,OAAO,GAAE,oBAAyB,EA+BnC;IAED,OAAO,CAAC,OAAO;IAMf,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAE1E;IAED,4GAA4G;IACtG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3B;CACF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The transport over a message port (roadmap R27): a Web Worker, a `MessagePort` of a
|
|
3
|
+
* `MessageChannel`, an iframe, or a `worker_threads` port of Node.
|
|
4
|
+
*
|
|
5
|
+
* The two sides of a port send calls to each other with the frames of the WebSocket transport
|
|
6
|
+
* (`websocket/shared/rpc.ts`): a request, then a response, an error, or a stream with credit, and
|
|
7
|
+
* a cancel. A port sends objects, not text, so a frame needs no JSON. A side serves the calls of
|
|
8
|
+
* the other side with its `serve` handler, for example a `ProcedureServer`. Before, the site had
|
|
9
|
+
* two worker protocols of its own.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // In the worker: serve the procedures of a registry
|
|
14
|
+
* new PortTransport(self, { serve: new ProcedureServer({ registry, autoRegister: true }) });
|
|
15
|
+
*
|
|
16
|
+
* // On the page: call them
|
|
17
|
+
* const client = new Client(new PortTransport(new Worker(url, { type: "module" })));
|
|
18
|
+
* for await (const item of client.stream({ service: "site", operation: "run" }, input)) { ... }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import { IncomingCalls, OutgoingCalls } from "../websocket/shared/rpc.js";
|
|
22
|
+
import { withoutInternalKeys } from "../metadata.js";
|
|
23
|
+
/** A frame of the protocol: an object with an id and a type. */
|
|
24
|
+
function isFrame(value) {
|
|
25
|
+
return value !== null && typeof value === "object" && typeof value.type === "string";
|
|
26
|
+
}
|
|
27
|
+
/** The transport over a message port, in the two directions. */
|
|
28
|
+
export class PortTransport {
|
|
29
|
+
port;
|
|
30
|
+
name = "port";
|
|
31
|
+
outgoing;
|
|
32
|
+
incoming;
|
|
33
|
+
open = true;
|
|
34
|
+
onBrowserMessage = (event) => this.receive(event.data);
|
|
35
|
+
onNodeMessage = (data) => this.receive(data);
|
|
36
|
+
constructor(port, options = {}) {
|
|
37
|
+
this.port = port;
|
|
38
|
+
const send = (frame) => this.port.postMessage(frame);
|
|
39
|
+
const isOpen = () => this.open;
|
|
40
|
+
this.outgoing = new OutgoingCalls({
|
|
41
|
+
send,
|
|
42
|
+
isOpen,
|
|
43
|
+
// No time limit: a worker can run a long program. The `signal` of a call stops it. This file
|
|
44
|
+
// does not import the Durations (quantity, 6 kB of gzip), so the page of a worker stays small.
|
|
45
|
+
requestTimeoutMs: 0,
|
|
46
|
+
streamWindow: Math.max(2, options.streamWindow ?? 64),
|
|
47
|
+
idPrefix: "",
|
|
48
|
+
});
|
|
49
|
+
if (options.serve) {
|
|
50
|
+
this.incoming = new IncomingCalls({
|
|
51
|
+
handler: options.serve,
|
|
52
|
+
send,
|
|
53
|
+
isOpen,
|
|
54
|
+
// A call over a port comes from a part of this application: it has no credentials
|
|
55
|
+
requestOf: (frame, signal) => ({
|
|
56
|
+
id: frame.id,
|
|
57
|
+
method: frame.method,
|
|
58
|
+
payload: frame.payload === undefined ? {} : frame.payload,
|
|
59
|
+
metadata: withoutInternalKeys(frame.metadata),
|
|
60
|
+
signal,
|
|
61
|
+
}),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (port.addEventListener)
|
|
65
|
+
port.addEventListener("message", this.onBrowserMessage);
|
|
66
|
+
else
|
|
67
|
+
port.on?.("message", this.onNodeMessage);
|
|
68
|
+
port.start?.();
|
|
69
|
+
}
|
|
70
|
+
receive(data) {
|
|
71
|
+
if (!this.open || !isFrame(data))
|
|
72
|
+
return;
|
|
73
|
+
if (this.outgoing.receive(data))
|
|
74
|
+
return;
|
|
75
|
+
this.incoming?.receive(data);
|
|
76
|
+
}
|
|
77
|
+
/** This function sends a call to the other side, and gives its response items. */
|
|
78
|
+
send(message) {
|
|
79
|
+
return this.outgoing.call(message);
|
|
80
|
+
}
|
|
81
|
+
/** This function stops the calls in the two directions, and stops to listen. It does not close the port. */
|
|
82
|
+
async close() {
|
|
83
|
+
if (!this.open)
|
|
84
|
+
return;
|
|
85
|
+
this.open = false;
|
|
86
|
+
this.outgoing.failAll("The port transport closed");
|
|
87
|
+
this.incoming?.abortAll();
|
|
88
|
+
if (this.port.removeEventListener)
|
|
89
|
+
this.port.removeEventListener("message", this.onBrowserMessage);
|
|
90
|
+
else
|
|
91
|
+
this.port.off?.("message", this.onNodeMessage);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/adapters/port/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Public API for WebSocket client adapter.
|
|
5
5
|
*/
|
|
6
|
-
export type { WebSocketTransportOptions, WebSocketMessage, ServerRequestMessage, ServerRequestHandler, EventHandler, } from "./types.js";
|
|
6
|
+
export type { WebSocketTransportOptions, WebSocketClass, WebSocketMessage, ServerRequestMessage, ServerRequestHandler, EventHandler, } from "./types.js";
|
|
7
7
|
export { WebSocketState } from "./types.js";
|
|
8
8
|
export { WebSocketTransport } from "./transport.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,YAAY;AACZ,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
import type { Transport, Message, ResponseItem } from "../../../client/types.js";
|
|
8
8
|
import type { WebSocketTransportOptions } from "./types.js";
|
|
9
9
|
import { WebSocketState } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* The delay before a reconnect try (from 1): an exponential backoff up to `maxDelay`, with a
|
|
12
|
+
* random part. With `jitter: 1` (full jitter, the default), the delay is a random time from 0 to
|
|
13
|
+
* the backoff, so the clients of a server that restarted do not come back at the same moments
|
|
14
|
+
* (roadmap R3). The backoff is `backoffDelay` of `@mark1russell7/service/backoff` (roadmap R37).
|
|
15
|
+
*/
|
|
16
|
+
export declare function reconnectDelay(attempt: number, options: {
|
|
17
|
+
initialDelay: number;
|
|
18
|
+
backoffMultiplier: number;
|
|
19
|
+
maxDelay: number;
|
|
20
|
+
jitter: number;
|
|
21
|
+
}, random?: () => number): number;
|
|
10
22
|
export declare class WebSocketTransport implements Transport {
|
|
11
23
|
readonly name = "websocket";
|
|
12
24
|
private ws;
|
|
@@ -26,14 +38,30 @@ export declare class WebSocketTransport implements Transport {
|
|
|
26
38
|
private closing;
|
|
27
39
|
private reconnectAttempts;
|
|
28
40
|
private reconnectTimer;
|
|
29
|
-
|
|
30
|
-
private
|
|
41
|
+
/** The heartbeat of the connection: `heartbeat` of `@mark1russell7/service/heartbeat` (roadmap R37) */
|
|
42
|
+
private heartbeat;
|
|
43
|
+
/** The clock of each timer of the transport (roadmap R35) */
|
|
44
|
+
private readonly clock;
|
|
45
|
+
/** The class of the sockets, or undefined for the global `WebSocket` (finding of roadmap R36) */
|
|
46
|
+
private readonly webSocketClass;
|
|
47
|
+
/** The observer of the changes of the state (roadmap R35) */
|
|
48
|
+
private readonly transitionHandler;
|
|
49
|
+
/** The protocol version of the server, from its hello, or undefined (an older server) (R25) */
|
|
50
|
+
private serverProtocol;
|
|
51
|
+
/** The calls that the server sends on the current socket, served by `serve` (roadmap R24) */
|
|
52
|
+
private incoming;
|
|
53
|
+
/** The time limit of the handshake of the socket that opens now */
|
|
54
|
+
private handshakeTimer;
|
|
31
55
|
constructor(options: WebSocketTransportOptions);
|
|
32
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* Change the state, and tell the callers that wait for a connection. `on` is the event of
|
|
58
|
+
* `WEBSOCKET_CONNECTION_MACHINE`: a change goes to `onTransition` (roadmap R35).
|
|
59
|
+
*/
|
|
33
60
|
private setState;
|
|
34
61
|
/**
|
|
35
62
|
* Connect to WebSocket server.
|
|
36
63
|
*/
|
|
64
|
+
/** `on` is the event of the machine: the first connect, or the end of a backoff. */
|
|
37
65
|
private connect;
|
|
38
66
|
/**
|
|
39
67
|
* Leave the current socket without waiting for its close handshake, and handle the close
|
|
@@ -52,16 +80,23 @@ export declare class WebSocketTransport implements Transport {
|
|
|
52
80
|
*/
|
|
53
81
|
private scheduleReconnect;
|
|
54
82
|
/**
|
|
55
|
-
* Start heartbeat
|
|
83
|
+
* Start the heartbeat of the connection: a ping each interval on the clock, one ping at a time.
|
|
84
|
+
* A ping without a pong at its timeout is a miss. The connection drops after `misses` misses in
|
|
85
|
+
* sequence. A ping whose send throws is a miss too.
|
|
56
86
|
*/
|
|
57
87
|
private startHeartbeat;
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
|
|
88
|
+
/** Stop the time limit of the handshake. */
|
|
89
|
+
private clearHandshakeTimer;
|
|
90
|
+
/** Stop the heartbeat: its ticks, its timeout and its count of misses. */
|
|
61
91
|
private stopHeartbeat;
|
|
62
92
|
/**
|
|
63
93
|
* Handle incoming message.
|
|
64
94
|
*/
|
|
95
|
+
/**
|
|
96
|
+
* The calls of the server on a socket, served by the `serve` option (or by `onServerRequest`, or
|
|
97
|
+
* with `NOT_FOUND`), with the same frames as the calls of the client (roadmap R24).
|
|
98
|
+
*/
|
|
99
|
+
private servedCallsOf;
|
|
65
100
|
private handleMessage;
|
|
66
101
|
/**
|
|
67
102
|
* Send a request and yield its response items as they arrive: one item for a request/response
|
|
@@ -94,6 +129,11 @@ export declare class WebSocketTransport implements Transport {
|
|
|
94
129
|
* Close WebSocket connection. The requests in progress fail.
|
|
95
130
|
*/
|
|
96
131
|
close(): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* The protocol version of the server: from its hello, or undefined before the hello or for a
|
|
134
|
+
* server older than protocol v1 (roadmap R25).
|
|
135
|
+
*/
|
|
136
|
+
getServerProtocol(): number | undefined;
|
|
97
137
|
/**
|
|
98
138
|
* Get current connection state.
|
|
99
139
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/adapters/websocket/client/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAwE,MAAM,YAAY,CAAC;AAClI,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6H5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC9F,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CAaR;AAED,qBAAa,kBAAmB,YAAW,SAAS;IAClD,QAAQ,CAAC,IAAI,eAAe;IAE5B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CA0Bb;IACF,2CAA2C;IAC3C,OAAO,CAAC,eAAe,CAA0C;IACjE;;;;OAIG;IACH,OAAO,CAAC,OAAO,CAAK;IACpB,2FAA2F;IAC3F,OAAO,CAAC,cAAc,CAAyB;IAC/C,0FAA0F;IAC1F,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAiC;IACvD,uGAAuG;IACvG,OAAO,CAAC,SAAS,CAAoC;IACrD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwD;IAC1F,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAqB;IAC3C,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAA4B;IAC5C,mEAAmE;IACnE,OAAO,CAAC,cAAc,CAAiC;IAEvD,YAAY,OAAO,EAAE,yBAAyB,EAkC7C;IAED;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,oFAAoF;IACpF,OAAO,CAAC,OAAO;IAwFf;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAqBtB,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAsBtB,4CAA4C;IAC5C,OAAO,CAAC,mBAAmB;IAO3B,0EAA0E;IAC1E,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAsIrB;;;;;;;;;;;OAWG;IACI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CA2EjF;IAED,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAOlB,wEAAwE;IACxE,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;YACW,iBAAiB;IA4B/B;;OAEG;YACW,mBAAmB;IA8CjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B3B;IAED;;;OAGG;IACH,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;OAEG;IACH,QAAQ,IAAI,cAAc,CAEzB;IAED;;OAEG;IACH,WAAW,IAAI,OAAO,CAErB;CACF"}
|