@hydranium/protocol 1.0.0-next.25 → 1.0.0-next.251
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 +44 -49
- package/lib/abstract-logger.d.ts +5 -0
- package/lib/abstract-logger.d.ts.map +1 -1
- package/lib/abstract-logger.js +7 -0
- package/lib/abstract-logger.js.map +1 -1
- package/lib/client/data-connection.d.ts +245 -0
- package/lib/client/data-connection.d.ts.map +1 -0
- package/lib/client/data-connection.js +425 -0
- package/lib/client/data-connection.js.map +1 -0
- package/lib/client/data-events.d.ts +13 -1
- package/lib/client/data-events.d.ts.map +1 -1
- package/lib/client/data-events.js +21 -0
- package/lib/client/data-events.js.map +1 -1
- package/lib/client/data-port.d.ts +44 -27
- package/lib/client/data-port.d.ts.map +1 -1
- package/lib/client/data-session.d.ts +473 -81
- package/lib/client/data-session.d.ts.map +1 -1
- package/lib/client/data-session.js +743 -108
- package/lib/client/data-session.js.map +1 -1
- package/lib/client/index.d.ts +14 -9
- package/lib/client/index.d.ts.map +1 -1
- package/lib/client/index.js +14 -9
- package/lib/client/index.js.map +1 -1
- package/lib/client/message-relay.d.ts +10 -4
- package/lib/client/message-relay.d.ts.map +1 -1
- package/lib/client/message-relay.js +12 -6
- package/lib/client/message-relay.js.map +1 -1
- package/lib/client/post-message-transport.d.ts +64 -3
- package/lib/client/post-message-transport.d.ts.map +1 -1
- package/lib/client/post-message-transport.js +175 -1
- package/lib/client/post-message-transport.js.map +1 -1
- package/lib/client/rpc-connection.d.ts +157 -0
- package/lib/client/rpc-connection.d.ts.map +1 -0
- package/lib/client/rpc-connection.js +214 -0
- package/lib/client/rpc-connection.js.map +1 -0
- package/lib/client-ids.d.ts +45 -0
- package/lib/client-ids.d.ts.map +1 -0
- package/lib/client-ids.js +48 -0
- package/lib/client-ids.js.map +1 -0
- package/lib/clock.d.ts +38 -0
- package/lib/clock.d.ts.map +1 -1
- package/lib/clock.js +36 -1
- package/lib/clock.js.map +1 -1
- package/lib/console-logger.d.ts +23 -0
- package/lib/console-logger.d.ts.map +1 -0
- package/lib/console-logger.js +39 -0
- package/lib/console-logger.js.map +1 -0
- package/lib/data/data-protocol-methods.d.ts +4 -4
- package/lib/data/data-protocol-methods.d.ts.map +1 -1
- package/lib/data/data-protocol-methods.js +12 -1
- package/lib/data/data-protocol-methods.js.map +1 -1
- package/lib/data/data-server-protocol.d.ts +132 -41
- package/lib/data/data-server-protocol.d.ts.map +1 -1
- package/lib/data/events.d.ts +117 -21
- package/lib/data/events.d.ts.map +1 -1
- package/lib/data/requests.d.ts +69 -11
- package/lib/data/requests.d.ts.map +1 -1
- package/lib/debouncer.d.ts.map +1 -1
- package/lib/debouncer.js.map +1 -1
- package/lib/errors.d.ts +187 -29
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +270 -29
- package/lib/errors.js.map +1 -1
- package/lib/glsp-request-model-args.d.ts +16 -0
- package/lib/glsp-request-model-args.d.ts.map +1 -0
- package/lib/glsp-request-model-args.js +19 -0
- package/lib/glsp-request-model-args.js.map +1 -0
- package/lib/glsp-save-model-actions.d.ts +50 -0
- package/lib/glsp-save-model-actions.d.ts.map +1 -0
- package/lib/glsp-save-model-actions.js +28 -0
- package/lib/glsp-save-model-actions.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -1
- package/lib/latency-collector.d.ts +8 -4
- package/lib/latency-collector.d.ts.map +1 -1
- package/lib/latency-collector.js.map +1 -1
- package/lib/logger.d.ts +22 -1
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +31 -3
- package/lib/logger.js.map +1 -1
- package/lib/messages/index.d.ts +30 -0
- package/lib/messages/index.d.ts.map +1 -0
- package/lib/messages/index.js +62 -0
- package/lib/messages/index.js.map +1 -0
- package/lib/messages/primitives.d.ts +188 -0
- package/lib/messages/primitives.d.ts.map +1 -0
- package/lib/messages/primitives.js +161 -0
- package/lib/messages/primitives.js.map +1 -0
- package/lib/model-server.d.ts +60 -13
- package/lib/model-server.d.ts.map +1 -1
- package/lib/model-server.js +4 -2
- package/lib/model-server.js.map +1 -1
- package/lib/model-service/base-version.d.ts +64 -0
- package/lib/model-service/base-version.d.ts.map +1 -0
- package/lib/model-service/base-version.js +43 -0
- package/lib/model-service/base-version.js.map +1 -0
- package/lib/model-service/index.d.ts +1 -1
- package/lib/model-service/index.d.ts.map +1 -1
- package/lib/model-service/index.js +4 -5
- package/lib/model-service/index.js.map +1 -1
- package/lib/model-service/reference-candidate.d.ts +5 -3
- package/lib/model-service/reference-candidate.d.ts.map +1 -1
- package/lib/{model-service/args.js → node/index.d.ts} +2 -3
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +29 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/process-memory.d.ts +66 -0
- package/lib/node/process-memory.d.ts.map +1 -0
- package/lib/node/process-memory.js +291 -0
- package/lib/node/process-memory.js.map +1 -0
- package/lib/noop-logger.d.ts.map +1 -1
- package/lib/noop-logger.js.map +1 -1
- package/lib/observable-value.js.map +1 -1
- package/lib/patch-merge.d.ts +35 -32
- package/lib/patch-merge.d.ts.map +1 -1
- package/lib/patch-merge.js +67 -23
- package/lib/patch-merge.js.map +1 -1
- package/lib/profile-session.d.ts +8 -4
- package/lib/profile-session.d.ts.map +1 -1
- package/lib/profile-session.js.map +1 -1
- package/lib/random-uuid.d.ts +14 -0
- package/lib/random-uuid.d.ts.map +1 -0
- package/lib/random-uuid.js +24 -0
- package/lib/random-uuid.js.map +1 -0
- package/lib/reconcile-write.d.ts +65 -0
- package/lib/reconcile-write.d.ts.map +1 -0
- package/lib/reconcile-write.js +67 -0
- package/lib/reconcile-write.js.map +1 -0
- package/lib/rpc/bind-rpc-methods.d.ts +33 -3
- package/lib/rpc/bind-rpc-methods.d.ts.map +1 -1
- package/lib/rpc/bind-rpc-methods.js +32 -3
- package/lib/rpc/bind-rpc-methods.js.map +1 -1
- package/lib/rpc/create-rpc-proxy.d.ts +10 -0
- package/lib/rpc/create-rpc-proxy.d.ts.map +1 -1
- package/lib/rpc/create-rpc-proxy.js +12 -2
- package/lib/rpc/create-rpc-proxy.js.map +1 -1
- package/lib/rpc/index.d.ts +1 -0
- package/lib/rpc/index.d.ts.map +1 -1
- package/lib/rpc/index.js +1 -0
- package/lib/rpc/index.js.map +1 -1
- package/lib/rpc/send-by-method-name.d.ts +76 -0
- package/lib/rpc/send-by-method-name.d.ts.map +1 -0
- package/lib/rpc/send-by-method-name.js +120 -0
- package/lib/rpc/send-by-method-name.js.map +1 -0
- package/lib/rpc/wire-prefix.js.map +1 -1
- package/lib/testing/catalogue-audit.d.ts +80 -0
- package/lib/testing/catalogue-audit.d.ts.map +1 -0
- package/lib/testing/catalogue-audit.js +94 -0
- package/lib/testing/catalogue-audit.js.map +1 -0
- package/lib/testing/data-doubles.d.ts +46 -15
- package/lib/testing/data-doubles.d.ts.map +1 -1
- package/lib/testing/data-doubles.js +58 -10
- package/lib/testing/data-doubles.js.map +1 -1
- package/lib/testing/fake-clock.d.ts +9 -1
- package/lib/testing/fake-clock.d.ts.map +1 -1
- package/lib/testing/fake-clock.js +54 -45
- package/lib/testing/fake-clock.js.map +1 -1
- package/lib/testing/index.d.ts +1 -0
- package/lib/testing/index.d.ts.map +1 -1
- package/lib/testing/index.js +5 -2
- package/lib/testing/index.js.map +1 -1
- package/lib/testing/node/duplex-connection.d.ts.map +1 -1
- package/lib/testing/node/duplex-connection.js +3 -2
- package/lib/testing/node/duplex-connection.js.map +1 -1
- package/lib/testing/node/duplex-stream.js.map +1 -1
- package/lib/testing/node/index.d.ts +1 -0
- package/lib/testing/node/index.d.ts.map +1 -1
- package/lib/testing/node/index.js +2 -2
- package/lib/testing/node/index.js.map +1 -1
- package/lib/testing/node/message-port-pair.d.ts +25 -0
- package/lib/testing/node/message-port-pair.d.ts.map +1 -0
- package/lib/testing/node/message-port-pair.js +26 -0
- package/lib/testing/node/message-port-pair.js.map +1 -0
- package/lib/testing/wait-for.d.ts +3 -2
- package/lib/testing/wait-for.d.ts.map +1 -1
- package/lib/testing/wait-for.js +40 -10
- package/lib/testing/wait-for.js.map +1 -1
- package/lib/tracer.d.ts.map +1 -1
- package/lib/tracer.js.map +1 -1
- package/lib/transfer-diagnostic.d.ts +33 -0
- package/lib/transfer-diagnostic.d.ts.map +1 -1
- package/lib/transfer-diagnostic.js +23 -0
- package/lib/transfer-diagnostic.js.map +1 -1
- package/lib/transfer-document.d.ts +70 -32
- package/lib/transfer-document.d.ts.map +1 -1
- package/lib/transfer-document.js +17 -9
- package/lib/transfer-document.js.map +1 -1
- package/lib/uri.d.ts.map +1 -1
- package/lib/uri.js.map +1 -1
- package/lib/util.d.ts +8 -0
- package/lib/util.d.ts.map +1 -1
- package/lib/util.js +32 -0
- package/lib/util.js.map +1 -1
- package/package.json +29 -37
- package/src/abstract-logger.ts +8 -0
- package/src/client/data-connection.ts +520 -0
- package/src/client/data-events.ts +33 -1
- package/src/client/data-port.ts +46 -28
- package/src/client/data-session.ts +951 -126
- package/src/client/index.ts +14 -9
- package/src/client/message-relay.ts +30 -8
- package/src/client/post-message-transport.ts +219 -4
- package/src/client/rpc-connection.ts +281 -0
- package/src/client-ids.ts +49 -0
- package/src/clock.ts +56 -0
- package/src/console-logger.ts +39 -0
- package/src/data/data-protocol-methods.ts +13 -4
- package/src/data/data-server-protocol.ts +157 -41
- package/src/data/events.ts +123 -21
- package/src/data/requests.ts +74 -11
- package/src/errors.ts +322 -36
- package/src/glsp-request-model-args.ts +16 -0
- package/src/glsp-save-model-actions.ts +59 -0
- package/src/index.ts +10 -0
- package/src/latency-collector.ts +8 -3
- package/src/logger.ts +28 -2
- package/src/messages/index.ts +37 -0
- package/src/messages/primitives.ts +271 -0
- package/src/model-server.ts +64 -19
- package/src/model-service/base-version.ts +72 -0
- package/src/model-service/index.ts +4 -5
- package/src/model-service/reference-candidate.ts +5 -3
- package/src/node/index.ts +14 -0
- package/src/node/process-memory.ts +299 -0
- package/src/patch-merge.ts +97 -42
- package/src/profile-session.ts +9 -4
- package/src/random-uuid.ts +21 -0
- package/src/reconcile-write.ts +124 -0
- package/src/rpc/README.md +4 -5
- package/src/rpc/bind-rpc-methods.ts +59 -4
- package/src/rpc/create-rpc-proxy.ts +20 -2
- package/src/rpc/index.ts +1 -0
- package/src/rpc/send-by-method-name.ts +140 -0
- package/src/testing/catalogue-audit.ts +111 -0
- package/src/testing/data-doubles.ts +149 -25
- package/src/testing/fake-clock.ts +62 -47
- package/src/testing/index.ts +5 -2
- package/src/testing/node/duplex-connection.ts +3 -2
- package/src/testing/node/index.ts +2 -2
- package/src/testing/node/message-port-pair.ts +40 -0
- package/src/testing/wait-for.ts +38 -11
- package/src/transfer-diagnostic.ts +40 -0
- package/src/transfer-document.ts +87 -34
- package/src/util.ts +33 -0
- package/lib/model-service/args.d.ts +0 -64
- package/lib/model-service/args.d.ts.map +0 -1
- package/lib/model-service/args.js.map +0 -1
- package/src/model-service/args.ts +0 -67
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-session.js","sourceRoot":"","sources":["../../src/client/data-session.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAGlF,kCAAkI;AAClI,gCAAuD;AAyBvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,WAAW;IAQC;IACA;IARH,eAAe,CAAS;IAC3C,0FAA0F;IAChF,UAAU,CAAyB;IACnC,QAAQ,GAAG,KAAK,CAAC;IACR,mBAAmB,CAAsB;IAE5D,YACsB,IAAc,EACd,MAAqC,EACxD,UAA8B,EAAE;QAFb,SAAI,GAAJ,IAAI,CAAU;QACd,WAAM,GAAN,MAAM,CAA+B;QAGxD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,8BAAuB,CAAC;QAC1E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,+EAA+E;IAC/E,IAAI,QAAQ;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,SAAS;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,UAAU,CAAC,KAAK,CAAC;QACvB,OAAO,UAAU,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,YAAY,CAAC,GAAW;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,GAAW;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,cAAsB;QAC7B,OAAO,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED,+EAA+E;IAC/E,OAAO;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,0DAA0D;IAChD,iBAAiB;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,UAAU,CAAC;QAC1B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,qEAAqE;QACrE,sEAAsE;QACtE,gEAAgE;QAChE,UAAU,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC;QACpG,MAAM,MAAM,GAAG,IAAA,oBAAc,EAA+D,UAAU,EAAE;YACrG,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,YAAY,EAAE,mCAA4B;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC;IAC1B,CAAC;IAED,6EAA6E;IACnE,KAAK,CAAC,UAAU,CAAC,UAAiC;QACzD,IAAI,CAAC;YACF,MAAM,UAAU,CAAC,UAAU,CAAC;YAC5B,MAAM,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACvB,8DAA8D;YAC9D,2CAA2C;YAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;YAC5E,MAAM,KAAK,CAAC;QACf,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,cAAc;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;YACf,OAAO;QACV,CAAC;QACD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACH;AAlJD,kCAkJC"}
|
|
1
|
+
{"version":3,"file":"data-session.js","sourceRoot":"","sources":["../../src/client/data-session.ts"],"names":[],"mappings":"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"}
|
package/lib/client/index.d.ts
CHANGED
|
@@ -12,28 +12,33 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Where `./data` is the wire *contract* and `./rpc` is the machinery that lowers
|
|
14
14
|
* it onto a connection, this is what a client wraps around both: the seam a host
|
|
15
|
-
* fills in (`DataPort`), the
|
|
16
|
-
*
|
|
15
|
+
* fills in (`DataPort`), the connection above it (`DataConnection` — readiness
|
|
16
|
+
* gate and reconnect), the participants on that connection (`DataSession` —
|
|
17
|
+
* identity, open/watch ordering, echo recognition), the inbound
|
|
17
18
|
* fan-out (`DataEvents`), and the two halves of the hop for hosts whose
|
|
18
19
|
* client cannot hold a socket — `createPostMessageTransport` on the client
|
|
19
|
-
* side and `relayToPostMessageChannel` on the side that does hold it
|
|
20
|
+
* side and `relayToPostMessageChannel` on the side that does hold it, and
|
|
21
|
+
* `createMessagePortTransport` for a head's worker `MessagePort`, at either
|
|
22
|
+
* end, which the GLSP worker head uses too.
|
|
20
23
|
*
|
|
21
24
|
* **Neutral, and gate-enforced so.** Nothing here imports a host package or a
|
|
22
25
|
* Node builtin, which is what lets one client tier serve a Theia frontend, a VS
|
|
23
26
|
* Code extension host, a VS Code webview and a plain browser app. `npm run
|
|
24
|
-
* check:neutral` bundles these modules for the browser; `scripts/check-neutral-bundles.
|
|
27
|
+
* check:neutral` bundles these modules for the browser; `scripts/check-neutral-bundles.mts`
|
|
25
28
|
* carries the entries.
|
|
26
29
|
*
|
|
27
30
|
* The Theia-specific mounting of the same contract lives in
|
|
28
|
-
* `@hydranium/data-client-theia
|
|
29
|
-
*
|
|
30
|
-
* is the Theia-bound counterpart of `DataEvents`.
|
|
31
|
-
*
|
|
32
|
-
*
|
|
31
|
+
* `@hydranium/data-client-theia`, and is now only the TRANSPORT: its
|
|
32
|
+
* `ChannelDataPort` fills the `DataPort` seam over a Theia channel, and its
|
|
33
|
+
* `EmitterDataClient` is the Theia-bound counterpart of `DataEvents`.
|
|
34
|
+
* Everything above the port is here, so a Theia frontend and a browser page
|
|
35
|
+
* differ by which port they construct and nothing else.
|
|
33
36
|
*/
|
|
37
|
+
export * from './data-connection';
|
|
34
38
|
export * from './data-events';
|
|
35
39
|
export * from './data-port';
|
|
36
40
|
export * from './data-session';
|
|
37
41
|
export * from './message-relay';
|
|
38
42
|
export * from './post-message-transport';
|
|
43
|
+
export * from './rpc-connection';
|
|
39
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
|
package/lib/client/index.js
CHANGED
|
@@ -28,28 +28,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
28
28
|
*
|
|
29
29
|
* Where `./data` is the wire *contract* and `./rpc` is the machinery that lowers
|
|
30
30
|
* it onto a connection, this is what a client wraps around both: the seam a host
|
|
31
|
-
* fills in (`DataPort`), the
|
|
32
|
-
*
|
|
31
|
+
* fills in (`DataPort`), the connection above it (`DataConnection` — readiness
|
|
32
|
+
* gate and reconnect), the participants on that connection (`DataSession` —
|
|
33
|
+
* identity, open/watch ordering, echo recognition), the inbound
|
|
33
34
|
* fan-out (`DataEvents`), and the two halves of the hop for hosts whose
|
|
34
35
|
* client cannot hold a socket — `createPostMessageTransport` on the client
|
|
35
|
-
* side and `relayToPostMessageChannel` on the side that does hold it
|
|
36
|
+
* side and `relayToPostMessageChannel` on the side that does hold it, and
|
|
37
|
+
* `createMessagePortTransport` for a head's worker `MessagePort`, at either
|
|
38
|
+
* end, which the GLSP worker head uses too.
|
|
36
39
|
*
|
|
37
40
|
* **Neutral, and gate-enforced so.** Nothing here imports a host package or a
|
|
38
41
|
* Node builtin, which is what lets one client tier serve a Theia frontend, a VS
|
|
39
42
|
* Code extension host, a VS Code webview and a plain browser app. `npm run
|
|
40
|
-
* check:neutral` bundles these modules for the browser; `scripts/check-neutral-bundles.
|
|
43
|
+
* check:neutral` bundles these modules for the browser; `scripts/check-neutral-bundles.mts`
|
|
41
44
|
* carries the entries.
|
|
42
45
|
*
|
|
43
46
|
* The Theia-specific mounting of the same contract lives in
|
|
44
|
-
* `@hydranium/data-client-theia
|
|
45
|
-
*
|
|
46
|
-
* is the Theia-bound counterpart of `DataEvents`.
|
|
47
|
-
*
|
|
48
|
-
*
|
|
47
|
+
* `@hydranium/data-client-theia`, and is now only the TRANSPORT: its
|
|
48
|
+
* `ChannelDataPort` fills the `DataPort` seam over a Theia channel, and its
|
|
49
|
+
* `EmitterDataClient` is the Theia-bound counterpart of `DataEvents`.
|
|
50
|
+
* Everything above the port is here, so a Theia frontend and a browser page
|
|
51
|
+
* differ by which port they construct and nothing else.
|
|
49
52
|
*/
|
|
53
|
+
__exportStar(require("./data-connection"), exports);
|
|
50
54
|
__exportStar(require("./data-events"), exports);
|
|
51
55
|
__exportStar(require("./data-port"), exports);
|
|
52
56
|
__exportStar(require("./data-session"), exports);
|
|
53
57
|
__exportStar(require("./message-relay"), exports);
|
|
54
58
|
__exportStar(require("./post-message-transport"), exports);
|
|
59
|
+
__exportStar(require("./rpc-connection"), exports);
|
|
55
60
|
//# sourceMappingURL=index.js.map
|
package/lib/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;AAElF
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,oDAAkC;AAClC,gDAA8B;AAC9B,8CAA4B;AAC5B,iDAA+B;AAC/B,kDAAgC;AAChC,2DAAyC;AACzC,mDAAiC"}
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
9
|
import { type Disposable, type Event, type MessageReader, type MessageWriter } from 'vscode-jsonrpc';
|
|
10
|
+
import { type ResolvedMessage } from '../messages/primitives';
|
|
10
11
|
import type { PostMessageChannel } from './post-message-transport';
|
|
12
|
+
export declare const RELAY_TRANSPORT_OPEN_FAILED: import("../messages/primitives").MessageDefinition<"Could not open the transport to relay: {detail}">;
|
|
13
|
+
export declare const RELAY_TRANSPORT_READ_FAILED: import("../messages/primitives").MessageDefinition<"Could not read from the relayed transport: {detail}">;
|
|
14
|
+
export declare const RELAY_TRANSPORT_WRITE_FAILED: import("../messages/primitives").MessageDefinition<"Could not write to the relayed transport: {detail}">;
|
|
15
|
+
export declare const RELAY_REPLAY_FAILED: import("../messages/primitives").MessageDefinition<"Could not replay a buffered message to the relayed transport: {detail}">;
|
|
11
16
|
/**
|
|
12
17
|
* The framed side of a relay: the reader/writer pair over whatever transport the
|
|
13
18
|
* host actually holds — a TCP socket to the data-server, a child process' stdio,
|
|
@@ -27,13 +32,14 @@ export interface RelayTransport {
|
|
|
27
32
|
export interface MessageRelayOptions {
|
|
28
33
|
/**
|
|
29
34
|
* Surface a failure the way the host does. Same contract as
|
|
30
|
-
* `DataPort.reportError`: `
|
|
35
|
+
* `DataPort.reportError`: `reported` is a complete sentence plus the identity
|
|
36
|
+
* needed to render it in another language.
|
|
31
37
|
*
|
|
32
38
|
* A relay has no other way to report — it sits between two transports and
|
|
33
39
|
* owns neither, so a swallowed error here presents as a form that never
|
|
34
40
|
* populates.
|
|
35
41
|
*/
|
|
36
|
-
readonly reportError?: (error: unknown,
|
|
42
|
+
readonly reportError?: (error: unknown, reported: ResolvedMessage) => void;
|
|
37
43
|
}
|
|
38
44
|
/** A live relay. Dispose to tear both directions down. */
|
|
39
45
|
export interface MessageRelay extends Disposable {
|
|
@@ -82,7 +88,7 @@ export interface MessageRelay extends Disposable {
|
|
|
82
88
|
* imports the entrypoint that frames its own transport (`vscode-jsonrpc/node`
|
|
83
89
|
* for a socket) and the RAL that comes with it; this tier stays neutral and is
|
|
84
90
|
* gated so by `npm run check:neutral`. Contrast
|
|
85
|
-
* `@hydranium/
|
|
91
|
+
* `@hydranium/client-theia`'s `SocketChannelForwarder`, which does build a
|
|
86
92
|
* connection only to borrow its `onClose`, and pays a Theia dependency for the
|
|
87
93
|
* byte coding this shape does not need.
|
|
88
94
|
*
|
|
@@ -93,7 +99,7 @@ export interface MessageRelay extends Disposable {
|
|
|
93
99
|
*
|
|
94
100
|
* It is not enough that a disciplined client awaits its own connection before
|
|
95
101
|
* sending: a host builds the far-side connection and hands it back *without*
|
|
96
|
-
* waiting for the relay, so `
|
|
102
|
+
* waiting for the relay, so `DataConnection`'s very first call — the readiness
|
|
97
103
|
* handshake — is already in flight while the socket is still opening. Dropping
|
|
98
104
|
* that first request presents as a client hanging forever on connect against a
|
|
99
105
|
* perfectly healthy server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-relay.d.ts","sourceRoot":"","sources":["../../src/client/message-relay.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,KAAK,EAAgB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,gEAAgE;IAChE,OAAO,CAAC,IAAI,IAAI,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IACjC
|
|
1
|
+
{"version":3,"file":"message-relay.d.ts","sourceRoot":"","sources":["../../src/client/message-relay.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,KAAK,EAAgB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5H,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,eAAO,MAAM,2BAA2B,uGAGvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,2GAGvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,0GAGxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,8HAG/B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,gEAAgE;IAChE,OAAO,CAAC,IAAI,IAAI,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7E;AAED,0DAA0D;AAC1D,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC7C;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,yBAAyB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,aAAa,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EAC5C,OAAO,GAAE,mBAAwB,GACjC,YAAY,CAgGd"}
|
|
@@ -8,8 +8,14 @@
|
|
|
8
8
|
* SPDX-License-Identifier: MIT
|
|
9
9
|
********************************************************************************/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.RELAY_REPLAY_FAILED = exports.RELAY_TRANSPORT_WRITE_FAILED = exports.RELAY_TRANSPORT_READ_FAILED = exports.RELAY_TRANSPORT_OPEN_FAILED = void 0;
|
|
11
12
|
exports.relayToPostMessageChannel = relayToPostMessageChannel;
|
|
12
13
|
const vscode_jsonrpc_1 = require("vscode-jsonrpc");
|
|
14
|
+
const primitives_1 = require("../messages/primitives");
|
|
15
|
+
exports.RELAY_TRANSPORT_OPEN_FAILED = (0, primitives_1.defineMessage)('hydranium/protocol/relay-transport-open-failed', 'Could not open the transport to relay: {detail}');
|
|
16
|
+
exports.RELAY_TRANSPORT_READ_FAILED = (0, primitives_1.defineMessage)('hydranium/protocol/relay-transport-read-failed', 'Could not read from the relayed transport: {detail}');
|
|
17
|
+
exports.RELAY_TRANSPORT_WRITE_FAILED = (0, primitives_1.defineMessage)('hydranium/protocol/relay-transport-write-failed', 'Could not write to the relayed transport: {detail}');
|
|
18
|
+
exports.RELAY_REPLAY_FAILED = (0, primitives_1.defineMessage)('hydranium/protocol/relay-replay-failed', 'Could not replay a buffered message to the relayed transport: {detail}');
|
|
13
19
|
/**
|
|
14
20
|
* Pump JSON-RPC messages between a framed transport and a structured-clone
|
|
15
21
|
* {@link PostMessageChannel}, decoding neither.
|
|
@@ -29,7 +35,7 @@ const vscode_jsonrpc_1 = require("vscode-jsonrpc");
|
|
|
29
35
|
* imports the entrypoint that frames its own transport (`vscode-jsonrpc/node`
|
|
30
36
|
* for a socket) and the RAL that comes with it; this tier stays neutral and is
|
|
31
37
|
* gated so by `npm run check:neutral`. Contrast
|
|
32
|
-
* `@hydranium/
|
|
38
|
+
* `@hydranium/client-theia`'s `SocketChannelForwarder`, which does build a
|
|
33
39
|
* connection only to borrow its `onClose`, and pays a Theia dependency for the
|
|
34
40
|
* byte coding this shape does not need.
|
|
35
41
|
*
|
|
@@ -40,7 +46,7 @@ const vscode_jsonrpc_1 = require("vscode-jsonrpc");
|
|
|
40
46
|
*
|
|
41
47
|
* It is not enough that a disciplined client awaits its own connection before
|
|
42
48
|
* sending: a host builds the far-side connection and hands it back *without*
|
|
43
|
-
* waiting for the relay, so `
|
|
49
|
+
* waiting for the relay, so `DataConnection`'s very first call — the readiness
|
|
44
50
|
* handshake — is already in flight while the socket is still opening. Dropping
|
|
45
51
|
* that first request presents as a client hanging forever on connect against a
|
|
46
52
|
* perfectly healthy server.
|
|
@@ -78,7 +84,7 @@ function relayToPostMessageChannel(channel, openTransport, options = {}) {
|
|
|
78
84
|
bufferSubscription?.dispose();
|
|
79
85
|
bufferSubscription = undefined;
|
|
80
86
|
buffered.length = 0;
|
|
81
|
-
options.reportError?.(error,
|
|
87
|
+
options.reportError?.(error, (0, primitives_1.resolve)(exports.RELAY_TRANSPORT_OPEN_FAILED, { detail: (0, primitives_1.describeError)(error) }));
|
|
82
88
|
closeFramedSide();
|
|
83
89
|
return false;
|
|
84
90
|
}
|
|
@@ -95,11 +101,11 @@ function relayToPostMessageChannel(channel, openTransport, options = {}) {
|
|
|
95
101
|
bufferSubscription?.dispose();
|
|
96
102
|
bufferSubscription = undefined;
|
|
97
103
|
subscriptions.push(opened.reader.listen(message => channel.post(message)), opened.reader.onClose(() => closeFramedSide()), opened.reader.onError(error => {
|
|
98
|
-
options.reportError?.(error,
|
|
104
|
+
options.reportError?.(error, (0, primitives_1.resolve)(exports.RELAY_TRANSPORT_READ_FAILED, { detail: (0, primitives_1.describeError)(error) }));
|
|
99
105
|
closeFramedSide();
|
|
100
106
|
}), channel.onMessage(message => {
|
|
101
107
|
void opened.writer.write(message).catch((error) => {
|
|
102
|
-
options.reportError?.(error,
|
|
108
|
+
options.reportError?.(error, (0, primitives_1.resolve)(exports.RELAY_TRANSPORT_WRITE_FAILED, { detail: (0, primitives_1.describeError)(error) }));
|
|
103
109
|
});
|
|
104
110
|
}));
|
|
105
111
|
const onChannelClose = channel.onClose?.(() => dispose());
|
|
@@ -108,7 +114,7 @@ function relayToPostMessageChannel(channel, openTransport, options = {}) {
|
|
|
108
114
|
}
|
|
109
115
|
for (const message of buffered) {
|
|
110
116
|
void opened.writer.write(message).catch((error) => {
|
|
111
|
-
options.reportError?.(error,
|
|
117
|
+
options.reportError?.(error, (0, primitives_1.resolve)(exports.RELAY_REPLAY_FAILED, { detail: (0, primitives_1.describeError)(error) }));
|
|
112
118
|
});
|
|
113
119
|
}
|
|
114
120
|
buffered.length = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-relay.js","sourceRoot":"","sources":["../../src/client/message-relay.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF
|
|
1
|
+
{"version":3,"file":"message-relay.js","sourceRoot":"","sources":["../../src/client/message-relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,8 @@ export interface PostMessageChannel {
|
|
|
25
25
|
/**
|
|
26
26
|
* Hand one JSON-RPC message to the other side. Fire-and-forget: delivery
|
|
27
27
|
* failures surface through {@link onClose}, never as a rejection, because
|
|
28
|
-
* `postMessage` has no completion to report.
|
|
28
|
+
* `postMessage` has no completion to report. A value the pipe refuses may
|
|
29
|
+
* throw, and the writer turns that into a rejected write and a writer error.
|
|
29
30
|
*/
|
|
30
31
|
post(message: Message): void;
|
|
31
32
|
/** Register for messages arriving from the other side. */
|
|
@@ -53,12 +54,18 @@ export interface PostMessageChannel {
|
|
|
53
54
|
*
|
|
54
55
|
* Keeping the factory out of this module is also what lets the module stay
|
|
55
56
|
* browser-neutral: it touches only `AbstractMessageReader` /
|
|
56
|
-
* `AbstractMessageWriter` / `Emitter`, none of which need a RAL
|
|
57
|
+
* `AbstractMessageWriter` / `Emitter`, none of which need a RAL, and the RAL's
|
|
58
|
+
* timer, which {@link createMessagePortTransport} reads only once a message
|
|
59
|
+
* arrives, by when the host that built the connection has installed one in
|
|
60
|
+
* the same copy of `vscode-jsonrpc`.
|
|
57
61
|
*/
|
|
58
62
|
export interface PostMessageTransport {
|
|
59
63
|
readonly reader: MessageReader;
|
|
60
64
|
readonly writer: MessageWriter;
|
|
61
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Release the channel subscriptions. A {@link createMessagePortTransport}
|
|
67
|
+
* transport also signals its end to the other side.
|
|
68
|
+
*/
|
|
62
69
|
dispose(): void;
|
|
63
70
|
}
|
|
64
71
|
/**
|
|
@@ -74,4 +81,58 @@ export interface PostMessageTransport {
|
|
|
74
81
|
* discards the `as const satisfies keyof` allowlists, which cannot drift.
|
|
75
82
|
*/
|
|
76
83
|
export declare function createPostMessageTransport(channel: PostMessageChannel): PostMessageTransport;
|
|
84
|
+
/**
|
|
85
|
+
* A `MessagePort` the host transferred into or out of a worker, described
|
|
86
|
+
* structurally.
|
|
87
|
+
*
|
|
88
|
+
* This package compiles without the DOM lib, so `MessagePort` has no name here
|
|
89
|
+
* and the contract has to be spelled out.
|
|
90
|
+
*
|
|
91
|
+
* **The member set admits a `MessagePort` and REJECTS a `Worker` or the worker
|
|
92
|
+
* global**, both of which would otherwise fit a `postMessage` pipe. Only a port
|
|
93
|
+
* needs starting, so `start` is what tells the three apart, and naming it here
|
|
94
|
+
* turns "never bind a head to the global" into a compile error at the call
|
|
95
|
+
* site. A head on the global receives every other head's traffic.
|
|
96
|
+
*
|
|
97
|
+
* **That compile error happens at the ADOPTER, not here.** This package
|
|
98
|
+
* resolves neither `MessagePort` nor `Worker` as a type, so nothing here can
|
|
99
|
+
* demonstrate the rejection; a host compiling its worker against
|
|
100
|
+
* `lib.webworker` (or a page against `lib.dom`) is where the names resolve and
|
|
101
|
+
* the guard bites. Measured there: passing the worker global fails with
|
|
102
|
+
* `Property 'start' is missing in type 'DedicatedWorkerGlobalScope'`.
|
|
103
|
+
*/
|
|
104
|
+
export interface TransferredMessagePort {
|
|
105
|
+
postMessage(message: unknown): void;
|
|
106
|
+
addEventListener(type: 'message', listener: (event: unknown) => void, options?: unknown): void;
|
|
107
|
+
removeEventListener(type: 'message', listener: (event: unknown) => void, options?: unknown): void;
|
|
108
|
+
start(): void;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Build the reader/writer pair for a head's `MessagePort`, at either end.
|
|
112
|
+
*
|
|
113
|
+
* Disposing the writer (which the connection's own `dispose` does) posts a
|
|
114
|
+
* close signal after everything it wrote, and the other end's reader and writer
|
|
115
|
+
* then fire close, so a head tears down on its client's dispose as it does on a
|
|
116
|
+
* socket's close. For a connection at its default parallelism and message
|
|
117
|
+
* strategy, the close fires only once that end's connection has dispatched
|
|
118
|
+
* every message sent before the signal, under either `vscode-jsonrpc` runtime,
|
|
119
|
+
* so a `closeSession` sent just before the dispose still ends its session as
|
|
120
|
+
* closed. Nothing reports a page or a worker that dies, because the port
|
|
121
|
+
* cannot.
|
|
122
|
+
*
|
|
123
|
+
* **The transport and the connection must come from the same copy of
|
|
124
|
+
* `vscode-jsonrpc`.** The close is scheduled through the runtime abstraction
|
|
125
|
+
* layer of the copy this package imports. If the host builds its connection
|
|
126
|
+
* from another copy, that layer was never installed: the first message it
|
|
127
|
+
* delivers throws, and the peer's close never fires.
|
|
128
|
+
*
|
|
129
|
+
* **Both ends must use this.** A plain `BrowserMessageReader` peer hands the
|
|
130
|
+
* signal to its connection as a message it does not understand, and its own
|
|
131
|
+
* dispose posts nothing, so this end never learns that it went.
|
|
132
|
+
*
|
|
133
|
+
* Starts the port, because a listener added with `addEventListener` does not.
|
|
134
|
+
* From then on a message that arrives before the connection listens is dropped,
|
|
135
|
+
* so listen in the same task.
|
|
136
|
+
*/
|
|
137
|
+
export declare function createMessagePortTransport(port: TransferredMessagePort): PostMessageTransport;
|
|
77
138
|
//# sourceMappingURL=post-message-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-message-transport.d.ts","sourceRoot":"","sources":["../../src/client/post-message-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,
|
|
1
|
+
{"version":3,"file":"post-message-transport.d.ts","sourceRoot":"","sources":["../../src/client/post-message-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAMJ,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EACpB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,kBAAkB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B,0DAA0D;IAC1D,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,UAAU,CAAC;IAE5D;;;;;OAKG;IACH,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,oBAAoB;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CAClB;AA8ED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAW5F;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,sBAAsB;IACpC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/F,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClG,KAAK,IAAI,IAAI,CAAC;CAChB;AAiID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,GAAG,oBAAoB,CAa7F"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
********************************************************************************/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.createPostMessageTransport = createPostMessageTransport;
|
|
12
|
+
exports.createMessagePortTransport = createMessagePortTransport;
|
|
12
13
|
const vscode_jsonrpc_1 = require("vscode-jsonrpc");
|
|
13
14
|
/**
|
|
14
15
|
* A `MessageReader` over a {@link PostMessageChannel}.
|
|
@@ -43,6 +44,7 @@ class PostMessageReader extends vscode_jsonrpc_1.AbstractMessageReader {
|
|
|
43
44
|
class PostMessageWriter extends vscode_jsonrpc_1.AbstractMessageWriter {
|
|
44
45
|
channel;
|
|
45
46
|
subscriptions = [];
|
|
47
|
+
errorCount = 0;
|
|
46
48
|
constructor(channel) {
|
|
47
49
|
super();
|
|
48
50
|
this.channel = channel;
|
|
@@ -52,7 +54,18 @@ class PostMessageWriter extends vscode_jsonrpc_1.AbstractMessageWriter {
|
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
write(message) {
|
|
55
|
-
|
|
57
|
+
try {
|
|
58
|
+
this.channel.post(message);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// `postMessage` throws synchronously on a value structured clone
|
|
62
|
+
// refuses. Thrown on, it would escape from the caller's
|
|
63
|
+
// `sendNotification` rather than reject it, and the connection would
|
|
64
|
+
// never see a write error.
|
|
65
|
+
this.errorCount++;
|
|
66
|
+
this.fireError(error, message, this.errorCount);
|
|
67
|
+
return Promise.reject(error);
|
|
68
|
+
}
|
|
56
69
|
// `postMessage` reports no completion, so the resolved promise means
|
|
57
70
|
// "handed over", not "delivered". vscode-jsonrpc only needs the former.
|
|
58
71
|
return Promise.resolve();
|
|
@@ -92,4 +105,165 @@ function createPostMessageTransport(channel) {
|
|
|
92
105
|
}
|
|
93
106
|
};
|
|
94
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* The value {@link createMessagePortTransport} posts in place of a JSON-RPC
|
|
110
|
+
* message to say its end is going away. A string, so no JSON-RPC message can
|
|
111
|
+
* be mistaken for it.
|
|
112
|
+
*/
|
|
113
|
+
const MESSAGE_PORT_CLOSE_SIGNAL = 'hydranium/message-port-closed';
|
|
114
|
+
/**
|
|
115
|
+
* A {@link PostMessageChannel} over a {@link TransferredMessagePort}, whose
|
|
116
|
+
* {@link close} posts {@link MESSAGE_PORT_CLOSE_SIGNAL}.
|
|
117
|
+
*
|
|
118
|
+
* **A port reports nothing when its peer goes away**: Chromium ships no `close`
|
|
119
|
+
* event on `MessagePort`, Firefox and WebKit have not committed to one, and
|
|
120
|
+
* `messageerror` fires only for a message that cannot be deserialized. So the
|
|
121
|
+
* end is signalled in band.
|
|
122
|
+
*
|
|
123
|
+
* The port is never `close()`d. A later transport can still be built on it, at
|
|
124
|
+
* both ends, and whether messages posted just before a `close()` are delivered
|
|
125
|
+
* is not something the platform settles.
|
|
126
|
+
*/
|
|
127
|
+
class MessagePortChannel {
|
|
128
|
+
port;
|
|
129
|
+
messageEmitter = new vscode_jsonrpc_1.Emitter();
|
|
130
|
+
closeEmitter = new vscode_jsonrpc_1.Emitter();
|
|
131
|
+
/** Set once either end has signalled; this end then delivers nothing more and never signals again. */
|
|
132
|
+
closed = false;
|
|
133
|
+
/** Set when the peer's signal has arrived and its close waits on {@link backlog}. */
|
|
134
|
+
closePending = false;
|
|
135
|
+
/** Messages handed to the connection that its queue may not have dispatched yet. */
|
|
136
|
+
backlog = 0;
|
|
137
|
+
// A `MessageEvent`, which the listener's type cannot name without the DOM lib.
|
|
138
|
+
listener = (event) => this.receive(event.data);
|
|
139
|
+
constructor(port) {
|
|
140
|
+
this.port = port;
|
|
141
|
+
port.addEventListener('message', this.listener);
|
|
142
|
+
}
|
|
143
|
+
post(message) {
|
|
144
|
+
if (!this.closed) {
|
|
145
|
+
this.port.postMessage(message);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
onMessage(listener) {
|
|
149
|
+
return this.messageEmitter.event(listener);
|
|
150
|
+
}
|
|
151
|
+
onClose(listener) {
|
|
152
|
+
return this.closeEmitter.event(listener);
|
|
153
|
+
}
|
|
154
|
+
/** Signal this end's close to the peer, once, after everything posted before it. */
|
|
155
|
+
close() {
|
|
156
|
+
if (this.closed) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
this.end();
|
|
160
|
+
this.port.postMessage(MESSAGE_PORT_CLOSE_SIGNAL);
|
|
161
|
+
}
|
|
162
|
+
end() {
|
|
163
|
+
this.closed = true;
|
|
164
|
+
this.port.removeEventListener('message', this.listener);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Deliver one inbound value, or take the peer's signal.
|
|
168
|
+
*
|
|
169
|
+
* **The close waits until the connection has dispatched every message that
|
|
170
|
+
* came before it.** Firing it at once is safe under `vscode-jsonrpc`'s
|
|
171
|
+
* browser runtime, which drains the connection's queue on microtasks before
|
|
172
|
+
* the signal's own task runs. Under its Node runtime the queue gives out one
|
|
173
|
+
* message per `setImmediate` turn, so a close fired at once would overtake a
|
|
174
|
+
* `closeSession` still queued, and end that session as lost. So each
|
|
175
|
+
* delivered message is counted down on the same RAL timer, one per turn,
|
|
176
|
+
* scheduled after the connection's own, and the close fires when the count
|
|
177
|
+
* reaches zero: under either runtime, after the last dispatch.
|
|
178
|
+
*/
|
|
179
|
+
receive(data) {
|
|
180
|
+
if (this.closed) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (data === MESSAGE_PORT_CLOSE_SIGNAL) {
|
|
184
|
+
this.end();
|
|
185
|
+
this.closePending = true;
|
|
186
|
+
if (this.backlog === 0) {
|
|
187
|
+
this.closeEmitter.fire();
|
|
188
|
+
}
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
this.messageEmitter.fire(data);
|
|
192
|
+
this.backlog++;
|
|
193
|
+
if (this.backlog === 1) {
|
|
194
|
+
this.countDownBacklog();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Mirrors the connection's queue at its default of one message per turn. A
|
|
198
|
+
// connection built with a `maxParallelism`, or with a `messageStrategy` that
|
|
199
|
+
// defers `next`, can hold messages longer than this counts, and its close
|
|
200
|
+
// can then overtake them.
|
|
201
|
+
countDownBacklog() {
|
|
202
|
+
(0, vscode_jsonrpc_1.RAL)().timer.setImmediate(() => {
|
|
203
|
+
this.backlog--;
|
|
204
|
+
if (this.backlog > 0) {
|
|
205
|
+
this.countDownBacklog();
|
|
206
|
+
}
|
|
207
|
+
else if (this.closePending) {
|
|
208
|
+
this.closeEmitter.fire();
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* A {@link PostMessageWriter} whose dispose, which a `MessageConnection`'s
|
|
215
|
+
* `dispose` and `end` both reach, signals this end's close to the peer.
|
|
216
|
+
*/
|
|
217
|
+
class MessagePortWriter extends PostMessageWriter {
|
|
218
|
+
channel;
|
|
219
|
+
constructor(channel) {
|
|
220
|
+
super(channel);
|
|
221
|
+
this.channel = channel;
|
|
222
|
+
}
|
|
223
|
+
dispose() {
|
|
224
|
+
this.channel.close();
|
|
225
|
+
super.dispose();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Build the reader/writer pair for a head's `MessagePort`, at either end.
|
|
230
|
+
*
|
|
231
|
+
* Disposing the writer (which the connection's own `dispose` does) posts a
|
|
232
|
+
* close signal after everything it wrote, and the other end's reader and writer
|
|
233
|
+
* then fire close, so a head tears down on its client's dispose as it does on a
|
|
234
|
+
* socket's close. For a connection at its default parallelism and message
|
|
235
|
+
* strategy, the close fires only once that end's connection has dispatched
|
|
236
|
+
* every message sent before the signal, under either `vscode-jsonrpc` runtime,
|
|
237
|
+
* so a `closeSession` sent just before the dispose still ends its session as
|
|
238
|
+
* closed. Nothing reports a page or a worker that dies, because the port
|
|
239
|
+
* cannot.
|
|
240
|
+
*
|
|
241
|
+
* **The transport and the connection must come from the same copy of
|
|
242
|
+
* `vscode-jsonrpc`.** The close is scheduled through the runtime abstraction
|
|
243
|
+
* layer of the copy this package imports. If the host builds its connection
|
|
244
|
+
* from another copy, that layer was never installed: the first message it
|
|
245
|
+
* delivers throws, and the peer's close never fires.
|
|
246
|
+
*
|
|
247
|
+
* **Both ends must use this.** A plain `BrowserMessageReader` peer hands the
|
|
248
|
+
* signal to its connection as a message it does not understand, and its own
|
|
249
|
+
* dispose posts nothing, so this end never learns that it went.
|
|
250
|
+
*
|
|
251
|
+
* Starts the port, because a listener added with `addEventListener` does not.
|
|
252
|
+
* From then on a message that arrives before the connection listens is dropped,
|
|
253
|
+
* so listen in the same task.
|
|
254
|
+
*/
|
|
255
|
+
function createMessagePortTransport(port) {
|
|
256
|
+
const channel = new MessagePortChannel(port);
|
|
257
|
+
const reader = new PostMessageReader(channel);
|
|
258
|
+
const writer = new MessagePortWriter(channel);
|
|
259
|
+
port.start();
|
|
260
|
+
return {
|
|
261
|
+
reader,
|
|
262
|
+
writer,
|
|
263
|
+
dispose() {
|
|
264
|
+
reader.dispose();
|
|
265
|
+
writer.dispose();
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
}
|
|
95
269
|
//# sourceMappingURL=post-message-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-message-transport.js","sourceRoot":"","sources":["../../src/client/post-message-transport.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF
|
|
1
|
+
{"version":3,"file":"post-message-transport.js","sourceRoot":"","sources":["../../src/client/post-message-transport.ts"],"names":[],"mappings":"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"}
|