reactor-effect-client 0.2.0 → 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/README.md +66 -6
- package/dist/FetchHttp.js +1 -1
- package/dist/FetchHttp.js.map +1 -1
- package/dist/PeerFactory.d.ts +13 -2
- package/dist/PeerFactory.d.ts.map +1 -1
- package/dist/PeerFactory.js.map +1 -1
- package/dist/PeerTypes.d.ts +2 -2
- package/dist/PeerTypes.d.ts.map +1 -1
- package/dist/Sequence.d.ts +18 -14
- package/dist/Sequence.d.ts.map +1 -1
- package/dist/Sequence.js +117 -122
- package/dist/Sequence.js.map +1 -1
- package/dist/SessionTypes.d.ts +172 -15
- package/dist/SessionTypes.d.ts.map +1 -1
- package/dist/SessionTypes.js +18 -1
- package/dist/SessionTypes.js.map +1 -1
- package/dist/bytes.js +3 -3
- package/dist/bytes.js.map +1 -1
- package/dist/contract.d.ts +120 -29
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +105 -73
- package/dist/contract.js.map +1 -1
- package/dist/coordinator/_internal/client.d.ts +111 -17
- package/dist/coordinator/_internal/client.d.ts.map +1 -1
- package/dist/coordinator/_internal/client.js +187 -74
- package/dist/coordinator/_internal/client.js.map +1 -1
- package/dist/coordinator/_internal/recording.d.ts +33 -0
- package/dist/coordinator/_internal/recording.d.ts.map +1 -0
- package/dist/coordinator/_internal/recording.js +123 -0
- package/dist/coordinator/_internal/recording.js.map +1 -0
- package/dist/coordinator/_internal/response.d.ts.map +1 -1
- package/dist/coordinator/_internal/response.js +5 -7
- package/dist/coordinator/_internal/response.js.map +1 -1
- package/dist/coordinator/_internal/schemas.d.ts +40 -6
- package/dist/coordinator/_internal/schemas.d.ts.map +1 -1
- package/dist/coordinator/_internal/schemas.js +94 -64
- package/dist/coordinator/_internal/schemas.js.map +1 -1
- package/dist/coordinator/index.d.ts +14 -2
- package/dist/coordinator/index.d.ts.map +1 -1
- package/dist/coordinator/index.js +14 -18
- package/dist/coordinator/index.js.map +1 -1
- package/dist/correlation.d.ts +15 -0
- package/dist/correlation.d.ts.map +1 -1
- package/dist/correlation.js +26 -8
- package/dist/correlation.js.map +1 -1
- package/dist/duration.d.ts +25 -0
- package/dist/duration.d.ts.map +1 -0
- package/dist/duration.js +47 -0
- package/dist/duration.js.map +1 -0
- package/dist/errors.d.ts +1264 -49
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +698 -46
- package/dist/errors.js.map +1 -1
- package/dist/h3/_internal/client.d.ts +2 -2
- package/dist/h3/_internal/client.d.ts.map +1 -1
- package/dist/h3/_internal/client.js +280 -146
- package/dist/h3/_internal/client.js.map +1 -1
- package/dist/h3/_internal/contracts.d.ts.map +1 -1
- package/dist/h3/_internal/contracts.js +2 -2
- package/dist/h3/_internal/contracts.js.map +1 -1
- package/dist/h3/_internal/deployment.d.ts.map +1 -1
- package/dist/h3/_internal/deployment.js +5 -4
- package/dist/h3/_internal/deployment.js.map +1 -1
- package/dist/h3/_internal/evidence.js +1 -1
- package/dist/h3/_internal/evidence.js.map +1 -1
- package/dist/h3/_internal/operations.d.ts +58 -0
- package/dist/h3/_internal/operations.d.ts.map +1 -0
- package/dist/h3/_internal/operations.js +268 -0
- package/dist/h3/_internal/operations.js.map +1 -0
- package/dist/h3/_internal/references.d.ts.map +1 -1
- package/dist/h3/_internal/references.js +3 -8
- package/dist/h3/_internal/references.js.map +1 -1
- package/dist/h3/_internal/request.js +1 -1
- package/dist/h3/_internal/request.js.map +1 -1
- package/dist/h3/_internal/retained.d.ts +22 -0
- package/dist/h3/_internal/retained.d.ts.map +1 -0
- package/dist/h3/_internal/retained.js +89 -0
- package/dist/h3/_internal/retained.js.map +1 -0
- package/dist/h3/_internal/state.d.ts +15 -1
- package/dist/h3/_internal/state.d.ts.map +1 -1
- package/dist/h3/_internal/state.js +69 -29
- package/dist/h3/_internal/state.js.map +1 -1
- package/dist/h3/index.d.ts +1 -1
- package/dist/h3/index.d.ts.map +1 -1
- package/dist/h3/messages.d.ts +118 -109
- package/dist/h3/messages.d.ts.map +1 -1
- package/dist/h3/messages.js +73 -51
- package/dist/h3/messages.js.map +1 -1
- package/dist/h3/types.d.ts +109 -13
- package/dist/h3/types.d.ts.map +1 -1
- package/dist/host.d.ts +6 -6
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +4 -5
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +13 -6
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +34 -14
- package/dist/json.js.map +1 -1
- package/dist/media-stream.d.ts.map +1 -1
- package/dist/media-stream.js +9 -11
- package/dist/media-stream.js.map +1 -1
- package/dist/observation.d.ts +9 -0
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +20 -18
- package/dist/observation.js.map +1 -1
- package/dist/orchestration/h3-source.d.ts +32 -4
- package/dist/orchestration/h3-source.d.ts.map +1 -1
- package/dist/orchestration/h3-source.js +47 -14
- package/dist/orchestration/h3-source.js.map +1 -1
- package/dist/orchestration/index.d.ts +9 -6
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +5 -3
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/media-buffer.d.ts +12 -4
- package/dist/orchestration/media-buffer.d.ts.map +1 -1
- package/dist/orchestration/media-buffer.js +31 -11
- package/dist/orchestration/media-buffer.js.map +1 -1
- package/dist/orchestration/open-h3.d.ts +65 -0
- package/dist/orchestration/open-h3.d.ts.map +1 -0
- package/dist/orchestration/open-h3.js +65 -0
- package/dist/orchestration/open-h3.js.map +1 -0
- package/dist/orchestration/references.d.ts +5 -1
- package/dist/orchestration/references.d.ts.map +1 -1
- package/dist/orchestration/references.js +37 -34
- package/dist/orchestration/references.js.map +1 -1
- package/dist/orchestration/renewal-state.js +1 -1
- package/dist/orchestration/renewal-state.js.map +1 -1
- package/dist/orchestration/renewal.d.ts +64 -64
- package/dist/orchestration/renewal.d.ts.map +1 -1
- package/dist/orchestration/renewal.js +149 -88
- package/dist/orchestration/renewal.js.map +1 -1
- package/dist/orchestration/request.d.ts +11 -12
- package/dist/orchestration/request.d.ts.map +1 -1
- package/dist/orchestration/request.js +63 -66
- package/dist/orchestration/request.js.map +1 -1
- package/dist/orchestration/routing.d.ts.map +1 -1
- package/dist/orchestration/routing.js +17 -14
- package/dist/orchestration/routing.js.map +1 -1
- package/dist/orchestration/source-slot.d.ts +15 -5
- package/dist/orchestration/source-slot.d.ts.map +1 -1
- package/dist/orchestration/source-slot.js +40 -21
- package/dist/orchestration/source-slot.js.map +1 -1
- package/dist/orchestration/types.d.ts +594 -39
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/orchestration/types.js +20 -0
- package/dist/orchestration/types.js.map +1 -1
- package/dist/protobuf.js +2 -2
- package/dist/protobuf.js.map +1 -1
- package/dist/session/_internal/acquire.d.ts +4 -6
- package/dist/session/_internal/acquire.d.ts.map +1 -1
- package/dist/session/_internal/acquire.js +40 -50
- package/dist/session/_internal/acquire.js.map +1 -1
- package/dist/session/_internal/cleanup.d.ts +2 -1
- package/dist/session/_internal/cleanup.d.ts.map +1 -1
- package/dist/session/_internal/cleanup.js +23 -15
- package/dist/session/_internal/cleanup.js.map +1 -1
- package/dist/session/_internal/lifecycle.d.ts +5 -0
- package/dist/session/_internal/lifecycle.d.ts.map +1 -1
- package/dist/session/_internal/lifecycle.js +16 -6
- package/dist/session/_internal/lifecycle.js.map +1 -1
- package/dist/session/_internal/remote.d.ts.map +1 -1
- package/dist/session/_internal/remote.js +16 -7
- package/dist/session/_internal/remote.js.map +1 -1
- package/dist/session/_internal/uploads.d.ts +4 -1
- package/dist/session/_internal/uploads.d.ts.map +1 -1
- package/dist/session/_internal/uploads.js +25 -27
- package/dist/session/_internal/uploads.js.map +1 -1
- package/dist/session/commands.d.ts +1 -21
- package/dist/session/commands.d.ts.map +1 -1
- package/dist/session/commands.js +1 -12
- package/dist/session/commands.js.map +1 -1
- package/dist/session/files.d.ts +10 -2
- package/dist/session/files.d.ts.map +1 -1
- package/dist/session/files.js +11 -16
- package/dist/session/files.js.map +1 -1
- package/dist/session/index.d.ts +6 -6
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/media.d.ts +53 -6
- package/dist/session/media.d.ts.map +1 -1
- package/dist/session/recorder.d.ts +24 -0
- package/dist/session/recorder.d.ts.map +1 -0
- package/dist/session/recorder.js +19 -0
- package/dist/session/recorder.js.map +1 -0
- package/dist/session.d.ts +5 -4
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +213 -110
- package/dist/session.js.map +1 -1
- package/dist/simulation/_internal/source.d.ts.map +1 -1
- package/dist/simulation/_internal/source.js +57 -48
- package/dist/simulation/_internal/source.js.map +1 -1
- package/dist/simulation/index.d.ts +4 -5
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +3 -4
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/types.d.ts +16 -2
- package/dist/simulation/types.d.ts.map +1 -1
- package/dist/stats.d.ts +19 -0
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +79 -8
- package/dist/stats.js.map +1 -1
- package/package.json +5 -4
- package/notices/owned-webrtc/Effect-MIT.txt +0 -21
- package/notices/owned-webrtc/IETF.txt +0 -43
- package/notices/owned-webrtc/LICENSE +0 -21
- package/notices/owned-webrtc/UPSTREAM.md +0 -20
- package/notices/owned-webrtc/VP8-ADAPTATION.md +0 -32
- package/notices/owned-webrtc/VP8-AUTHORS.txt +0 -42
- package/notices/owned-webrtc/VP8-LICENSE.txt +0 -25
- package/notices/owned-webrtc/VP8-PATENTS.txt +0 -21
- package/notices/owned-webrtc/Werift-MIT.txt +0 -21
- package/notices/owned-webrtc/libvpx-v1.12.0-LICENSE.txt +0 -28
- package/notices/owned-webrtc/libvpx-v1.12.0-PATENTS.txt +0 -22
- package/notices/owned-webrtc/rfc3711.txt +0 -3139
- package/notices/owned-webrtc/str0m-MIT.txt +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqCzD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,aAAa,GAAkB,EAAE,EACqB,EAAE,CACxD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACvC,MAAM,CACJ,GAAG,EAAE,CACH,IAAI,iBAAiB,CACnB;IACE,GAAG,aAAa;IAChB,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,yBAAyB;IACzD,UAAU,EACR,aAAa,CAAC,UAAU,KAAK,SAAS;QACpC,CAAC,CAAC,MAAM,CAAC,SAAS;QAClB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;gBAClC,MAAM,YAAY,CAAC,QAAQ,CACzB,cAAc,EACd,yCAAyC,EACzC,EAAE,OAAO,EAAE,eAAe,EAAE,CAC7B,CAAC;YACJ,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC,CACH,CACF;CACR,EACD,IAAI,CACL,CACJ,CACF,CAAC"}
|
package/dist/correlation.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request/reply correlation for the Reactor wire.
|
|
3
|
+
*
|
|
4
|
+
* Why not Effect's `RpcClient`: its semantics conflict with this wire. It
|
|
5
|
+
* speaks `RpcMessage` envelopes, which Reactor does not; it drops a late or
|
|
6
|
+
* second reply and deletes a request's entry when its caller is interrupted;
|
|
7
|
+
* its pending map is unbounded; and its error union is closed. Model commands
|
|
8
|
+
* are paid and have no cancel message, so a reply must stay attributable after
|
|
9
|
+
* the caller stops waiting. This correlator therefore keeps a bounded pending
|
|
10
|
+
* set registered before send, tells an acknowledgement from its body, labels
|
|
11
|
+
* late, duplicate, unsolicited and stale-generation replies instead of
|
|
12
|
+
* dropping them, and retires a generation's requests with their outcome
|
|
13
|
+
* preserved. Effect RPC fits only a boundary where both ends are ours, such
|
|
14
|
+
* as an isolated native host process.
|
|
15
|
+
*/
|
|
1
16
|
import * as Effect from "effect/Effect";
|
|
2
17
|
import * as Deferred from "effect/Deferred";
|
|
3
18
|
import { ReactorError } from "./errors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,MAAM,GACN,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,kBAAkB,CAAC;AAMvB,wFAAwF;AACxF,qBAAa,UAAU,CAAC,CAAC;IAKrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAChC,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,SAAS;IANpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,YACW,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,SAAM,EACX,SAAS,SAAK,EAGxB;IACD,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAEhC;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAmB1D;IACD,OAAO,CAAC,QAAQ;IAOhB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,WAAW,CAE1F;IACD,2EAA2E;IAC3E,UAAU,CACR,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,EACpE,KAAK,GAAE,cAAc,GAAG,SAAqB,GAC5C,WAAW,CAgCb;IACD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAKnC;IACD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,MAAM,GACN,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,kBAAkB,CAAC;AAMvB,wFAAwF;AACxF,qBAAa,UAAU,CAAC,CAAC;IAKrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAChC,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,SAAS;IANpB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,YACW,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,KAAK,SAAM,EACX,SAAS,SAAK,EAGxB;IACD,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAEhC;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAmB1D;IACD,OAAO,CAAC,QAAQ;IAOhB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,WAAW,CAE1F;IACD,2EAA2E;IAC3E,UAAU,CACR,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,EACpE,KAAK,GAAE,cAAc,GAAG,SAAqB,GAC5C,WAAW,CAgCb;IACD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAKnC;IACD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAqB9D;CACF"}
|
package/dist/correlation.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request/reply correlation for the Reactor wire.
|
|
3
|
+
*
|
|
4
|
+
* Why not Effect's `RpcClient`: its semantics conflict with this wire. It
|
|
5
|
+
* speaks `RpcMessage` envelopes, which Reactor does not; it drops a late or
|
|
6
|
+
* second reply and deletes a request's entry when its caller is interrupted;
|
|
7
|
+
* its pending map is unbounded; and its error union is closed. Model commands
|
|
8
|
+
* are paid and have no cancel message, so a reply must stay attributable after
|
|
9
|
+
* the caller stops waiting. This correlator therefore keeps a bounded pending
|
|
10
|
+
* set registered before send, tells an acknowledgement from its body, labels
|
|
11
|
+
* late, duplicate, unsolicited and stale-generation replies instead of
|
|
12
|
+
* dropping them, and retires a generation's requests with their outcome
|
|
13
|
+
* preserved. Effect RPC fits only a boundary where both ends are ours, such
|
|
14
|
+
* as an isolated native host process.
|
|
15
|
+
*/
|
|
1
16
|
import * as Effect from "effect/Effect";
|
|
2
17
|
import * as Deferred from "effect/Deferred";
|
|
3
18
|
import { positiveLimit, ReactorError } from "./errors.js";
|
|
@@ -23,12 +38,12 @@ export class Correlator {
|
|
|
23
38
|
}
|
|
24
39
|
register(generation, operation) {
|
|
25
40
|
if (this.pending.size >= this.limit)
|
|
26
|
-
throw
|
|
41
|
+
throw ReactorError.fromCode("Overflow", "pending request bound reached", {
|
|
27
42
|
operation,
|
|
28
43
|
outcome: "not-submitted",
|
|
29
44
|
});
|
|
30
45
|
if (this.counter === 0xffffffffffffffffn)
|
|
31
|
-
throw
|
|
46
|
+
throw ReactorError.fromCode("Overflow", "request identity space exhausted");
|
|
32
47
|
const id = `${this.prefix}_${this.namespace ? `${this.namespace}_` : ""}${++this.counter}`;
|
|
33
48
|
const pending = {
|
|
34
49
|
id,
|
|
@@ -100,12 +115,15 @@ export class Correlator {
|
|
|
100
115
|
continue;
|
|
101
116
|
this.pending.delete(pending.id);
|
|
102
117
|
this.remember(pending.id, generation, "cancelled");
|
|
103
|
-
Deferred.doneUnsafe(pending.deferred, Effect.fail(new ReactorError(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
118
|
+
Deferred.doneUnsafe(pending.deferred, Effect.fail(new ReactorError({
|
|
119
|
+
reason: failure.reason,
|
|
120
|
+
context: {
|
|
121
|
+
...failure.context,
|
|
122
|
+
operation: pending.operation,
|
|
123
|
+
requestId: pending.id,
|
|
124
|
+
generation,
|
|
125
|
+
outcome: pending.submitted ? "unknown" : "not-submitted",
|
|
126
|
+
},
|
|
109
127
|
})));
|
|
110
128
|
}
|
|
111
129
|
}
|
package/dist/correlation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"correlation.js","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqB1D,wFAAwF;AACxF,MAAM,OAAO,UAAU;IAKV,MAAM;IACN,KAAK;IACL,SAAS;IANZ,OAAO,GAAG,EAAE,CAAC;IACJ,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACxC,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,YACW,MAAuB,EACvB,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,EAAE;sBAFd,MAAM;qBACN,KAAK;yBACL,SAAS;QAElB,aAAa,CAAC,KAAK,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IACD,GAAG,CAAC,OAAmB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;IAClD,CAAC;IACD,QAAQ,CAAC,UAAkB,EAAE,SAAiB;QAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;YACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"correlation.js","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Duration from "effect/Duration";
|
|
2
|
+
/**
|
|
3
|
+
* What one time option admits beyond a positive, finite duration no longer
|
|
4
|
+
* than `maximum`.
|
|
5
|
+
*/
|
|
6
|
+
export interface DurationPolicy {
|
|
7
|
+
/** The longest accepted duration. Omitted, any finite duration is accepted. */
|
|
8
|
+
readonly maximum?: Duration.Input | undefined;
|
|
9
|
+
/** Accept zero. */
|
|
10
|
+
readonly allowZero?: boolean | undefined;
|
|
11
|
+
/** Accept an infinite duration (`"Infinity"`). */
|
|
12
|
+
readonly allowInfinite?: boolean | undefined;
|
|
13
|
+
/** Accept only a whole number of seconds, for a value the wire carries in seconds. */
|
|
14
|
+
readonly wholeSeconds?: boolean | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Decode a caller's time option, as `Duration.fromInput` does, and apply its
|
|
18
|
+
* policy. A bare number is milliseconds, as everywhere in Effect. Input that
|
|
19
|
+
* does not decode, NaN, a negative duration, and anything the policy excludes
|
|
20
|
+
* throw `InvalidInput`, not submitted; run it under `parsed` or `parsedInput`.
|
|
21
|
+
* NaN is rejected before decoding, because `Duration.fromInput` decodes it as
|
|
22
|
+
* zero.
|
|
23
|
+
*/
|
|
24
|
+
export declare const duration: (input: Duration.Input, name: string, policy?: DurationPolicy) => Duration.Duration;
|
|
25
|
+
//# sourceMappingURL=duration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../src/duration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAI5C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;IAC9C,mBAAmB;IACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,kDAAkD;IAClD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7C,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAQD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,UACZ,QAAQ,CAAC,KAAK,QACf,MAAM,WACJ,cAAc,KACrB,QAAQ,CAAC,QAuBX,CAAC"}
|
package/dist/duration.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as Duration from "effect/Duration";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import { ReactorError } from "./errors.js";
|
|
4
|
+
const containsNaN = (input) => {
|
|
5
|
+
if (typeof input === "number")
|
|
6
|
+
return Number.isNaN(input);
|
|
7
|
+
if (typeof input !== "object" || Duration.isDuration(input))
|
|
8
|
+
return false;
|
|
9
|
+
return Object.values(input).some((value) => typeof value === "number" && Number.isNaN(value));
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Decode a caller's time option, as `Duration.fromInput` does, and apply its
|
|
13
|
+
* policy. A bare number is milliseconds, as everywhere in Effect. Input that
|
|
14
|
+
* does not decode, NaN, a negative duration, and anything the policy excludes
|
|
15
|
+
* throw `InvalidInput`, not submitted; run it under `parsed` or `parsedInput`.
|
|
16
|
+
* NaN is rejected before decoding, because `Duration.fromInput` decodes it as
|
|
17
|
+
* zero.
|
|
18
|
+
*/
|
|
19
|
+
export const duration = (input, name, policy = {}) => {
|
|
20
|
+
const reject = (requirement) => {
|
|
21
|
+
throw ReactorError.fromCode("InvalidInput", `${name} ${requirement}`, {
|
|
22
|
+
outcome: "not-submitted",
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const decoded = containsNaN(input) ? Option.none() : Duration.fromInput(input);
|
|
26
|
+
if (Option.isNone(decoded))
|
|
27
|
+
return reject("is not a duration");
|
|
28
|
+
const value = decoded.value;
|
|
29
|
+
if (Duration.isNegative(value))
|
|
30
|
+
return reject("must not be negative");
|
|
31
|
+
if (Duration.isZero(value) && policy.allowZero !== true)
|
|
32
|
+
return reject("must be positive");
|
|
33
|
+
if (!Duration.isFinite(value)) {
|
|
34
|
+
if (policy.allowInfinite === true)
|
|
35
|
+
return value;
|
|
36
|
+
return reject("must be finite");
|
|
37
|
+
}
|
|
38
|
+
if (policy.maximum !== undefined) {
|
|
39
|
+
const maximum = Duration.fromInputUnsafe(policy.maximum);
|
|
40
|
+
if (Duration.isGreaterThan(value, maximum))
|
|
41
|
+
return reject(`must be at most ${Duration.format(maximum)}`);
|
|
42
|
+
}
|
|
43
|
+
if (policy.wholeSeconds === true && Duration.toMillis(value) % 1000 !== 0)
|
|
44
|
+
return reject("must be a whole number of seconds");
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../src/duration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiB3C,MAAM,WAAW,GAAG,CAAC,KAAqB,EAAW,EAAE;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAqB,EACrB,IAAY,EACZ,MAAM,GAAmB,EAAE,EACR,EAAE;IACrB,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAS,EAAE;QAC5C,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,IAAI,WAAW,EAAE,EAAE;YACpE,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACtE,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC3F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;YACxC,OAAO,MAAM,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC;QACvE,OAAO,MAAM,CAAC,mCAAmC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|