@hydranium/data-client-theia 1.0.0-next.18 → 1.0.0-next.181
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 +35 -27
- package/lib/browser/channel-connection.d.ts +2 -2
- package/lib/browser/channel-connection.js.map +1 -1
- package/lib/browser/channel-data-port.d.ts +83 -0
- package/lib/browser/channel-data-port.d.ts.map +1 -0
- package/lib/browser/channel-data-port.js +179 -0
- package/lib/browser/channel-data-port.js.map +1 -0
- package/lib/browser/data-session-stop-contribution.d.ts +64 -0
- package/lib/browser/data-session-stop-contribution.d.ts.map +1 -0
- package/lib/browser/data-session-stop-contribution.js +117 -0
- package/lib/browser/data-session-stop-contribution.js.map +1 -0
- package/lib/browser/host-diagnostics-frontend.js.map +1 -1
- package/lib/browser/index.d.ts +2 -3
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +2 -3
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/workspace-gate.js.map +1 -1
- package/lib/common/emitter-data-client.d.ts +13 -1
- package/lib/common/emitter-data-client.d.ts.map +1 -1
- package/lib/common/emitter-data-client.js +18 -0
- package/lib/common/emitter-data-client.js.map +1 -1
- package/lib/node/connection-container-module.d.ts +5 -4
- package/lib/node/connection-container-module.d.ts.map +1 -1
- package/lib/node/connection-container-module.js +5 -4
- package/lib/node/connection-container-module.js.map +1 -1
- package/lib/node/data-server-connection-handler.d.ts +9 -9
- package/lib/node/data-server-connection-handler.d.ts.map +1 -1
- package/lib/node/data-server-connection-handler.js +8 -12
- package/lib/node/data-server-connection-handler.js.map +1 -1
- package/lib/node/host-diagnostics-server.d.ts.map +1 -1
- package/lib/node/host-diagnostics-server.js.map +1 -1
- package/lib/node/index.d.ts +0 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +0 -1
- package/lib/node/index.js.map +1 -1
- package/package.json +25 -24
- package/src/browser/channel-connection.ts +2 -2
- package/src/browser/channel-data-port.ts +173 -0
- package/src/browser/data-session-stop-contribution.ts +117 -0
- package/src/browser/index.ts +2 -3
- package/src/common/emitter-data-client.ts +27 -0
- package/src/node/connection-container-module.ts +5 -4
- package/src/node/data-server-connection-handler.ts +10 -13
- package/src/node/index.ts +0 -1
- package/lib/browser/data-service-frontend.d.ts +0 -154
- package/lib/browser/data-service-frontend.d.ts.map +0 -1
- package/lib/browser/data-service-frontend.js +0 -169
- package/lib/browser/data-service-frontend.js.map +0 -1
- package/lib/browser/diagnostics-data-service-frontend.d.ts +0 -35
- package/lib/browser/diagnostics-data-service-frontend.d.ts.map +0 -1
- package/lib/browser/diagnostics-data-service-frontend.js +0 -54
- package/lib/browser/diagnostics-data-service-frontend.js.map +0 -1
- package/lib/browser/references-data-service-frontend.d.ts +0 -45
- package/lib/browser/references-data-service-frontend.d.ts.map +0 -1
- package/lib/browser/references-data-service-frontend.js +0 -55
- package/lib/browser/references-data-service-frontend.js.map +0 -1
- package/lib/node/socket-channel-forwarder.d.ts +0 -34
- package/lib/node/socket-channel-forwarder.d.ts.map +0 -1
- package/lib/node/socket-channel-forwarder.js +0 -63
- package/lib/node/socket-channel-forwarder.js.map +0 -1
- package/src/browser/data-service-frontend.ts +0 -208
- package/src/browser/diagnostics-data-service-frontend.ts +0 -70
- package/src/browser/references-data-service-frontend.ts +0 -70
- package/src/node/socket-channel-forwarder.ts +0 -64
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2026 CrossBreeze, EclipseSource and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the MIT License which is available in the project root.
|
|
6
|
-
*
|
|
7
|
-
* SPDX-License-Identifier: MIT
|
|
8
|
-
********************************************************************************/
|
|
9
|
-
|
|
10
|
-
import { type Channel, Disposable, DisposableCollection, type MessageProvider } from '@theia/core';
|
|
11
|
-
import type * as net from 'node:net';
|
|
12
|
-
import { createMessageConnection, type Message, SocketMessageReader, SocketMessageWriter } from 'vscode-jsonrpc/node';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Relays JSON-RPC messages between a Theia browser-frontend {@link Channel} and
|
|
16
|
-
* a data-server's TCP socket — the backend half of the data-server head's
|
|
17
|
-
* transport. The model-server speaks vscode-jsonrpc (Content-Length framed) on
|
|
18
|
-
* the socket; the frontend speaks the same protocol over the channel (via
|
|
19
|
-
* `createChannelConnection`). This forwarder decodes each side and re-emits on
|
|
20
|
-
* the other, so the two ends share one protocol with no semantic re-proxy in
|
|
21
|
-
* between.
|
|
22
|
-
*
|
|
23
|
-
* Framework-owned equivalent of `@eclipse-glsp/theia-integration`'s
|
|
24
|
-
* `SocketConnectionForwarder` — reproduced here (rather than imported) so the
|
|
25
|
-
* data-server head carries no GLSP dependency.
|
|
26
|
-
*/
|
|
27
|
-
export class SocketChannelForwarder implements Disposable {
|
|
28
|
-
protected readonly toDispose = new DisposableCollection();
|
|
29
|
-
|
|
30
|
-
constructor(
|
|
31
|
-
protected readonly channel: Channel,
|
|
32
|
-
protected readonly socket: net.Socket
|
|
33
|
-
) {
|
|
34
|
-
const reader = new SocketMessageReader(socket);
|
|
35
|
-
const writer = new SocketMessageWriter(socket);
|
|
36
|
-
const connection = createMessageConnection(reader, writer);
|
|
37
|
-
this.toDispose.pushAll([
|
|
38
|
-
connection.onClose(() => socket.destroy()),
|
|
39
|
-
reader.listen(message => this.writeToChannel(message)),
|
|
40
|
-
channel.onMessage(provider => void writer.write(this.decodeChannelMessage(provider))),
|
|
41
|
-
channel.onClose(() => connection.dispose()),
|
|
42
|
-
connection.onClose(() => channel.close()),
|
|
43
|
-
Disposable.create(() => {
|
|
44
|
-
channel.close();
|
|
45
|
-
connection.dispose();
|
|
46
|
-
})
|
|
47
|
-
]);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
protected decodeChannelMessage(provider: MessageProvider): Message {
|
|
51
|
-
const buffer = provider().readBytes();
|
|
52
|
-
return JSON.parse(new TextDecoder().decode(buffer)) as Message;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
protected writeToChannel(message: Message): void {
|
|
56
|
-
const writeBuffer = this.channel.getWriteBuffer();
|
|
57
|
-
writeBuffer.writeBytes(new TextEncoder().encode(JSON.stringify(message)));
|
|
58
|
-
writeBuffer.commit();
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
dispose(): void {
|
|
62
|
-
this.toDispose.dispose();
|
|
63
|
-
}
|
|
64
|
-
}
|