@dxos/websocket-rpc 0.3.1 → 0.3.2-main.05033b7
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/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +2 -2
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/client.d.ts +1 -1
- package/dist/types/src/client.d.ts.map +1 -1
- package/dist/types/src/server.d.ts +2 -2
- package/dist/types/src/server.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/client.ts +1 -1
- package/src/e2e.test.ts +1 -1
- package/src/server.ts +2 -2
|
@@ -15,7 +15,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
15
15
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
16
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
17
|
}
|
|
18
|
-
var __dxlog_file = "/
|
|
18
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/client.ts";
|
|
19
19
|
var WebsocketRpcClient = class {
|
|
20
20
|
constructor(_params) {
|
|
21
21
|
this._params = _params;
|
|
@@ -119,7 +119,7 @@ _ts_decorate([
|
|
|
119
119
|
import WebSocket2 from "isomorphic-ws";
|
|
120
120
|
import { log as log2 } from "@dxos/log";
|
|
121
121
|
import { createProtoRpcPeer as createProtoRpcPeer2 } from "@dxos/rpc";
|
|
122
|
-
var __dxlog_file2 = "/
|
|
122
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/server.ts";
|
|
123
123
|
var WebsocketRpcServer = class {
|
|
124
124
|
constructor(_params) {
|
|
125
125
|
this._params = _params;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/client.ts", "../../../src/server.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport WebSocket from 'isomorphic-ws';\n\nimport { Event, Trigger } from '@dxos/async';\nimport { log, logInfo } from '@dxos/log';\nimport { createProtoRpcPeer, ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type WebsocketRpcClientParams<C, S> = {\n url: string;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport class WebsocketRpcClient<C, S> {\n private _socket?: WebSocket;\n private _rpc?: ProtoRpcPeer<C>;\n private readonly _connectTrigger = new Trigger();\n\n readonly connected = new Event();\n readonly disconnected = new Event();\n readonly error = new Event<Error>();\n\n constructor(private readonly _params: WebsocketRpcClientParams<C, S>) {\n this._rpc = createProtoRpcPeer({\n requested: this._params.requested,\n exposed: this._params.exposed,\n handlers: this._params.handlers,\n port: {\n send: (msg) => {\n this._socket!.send(msg);\n },\n subscribe: (cb) => {\n this._socket!.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n }\n\n @logInfo\n get url() {\n return this._params.url;\n }\n\n async open() {\n this._socket = new WebSocket(this._params.url);\n\n this._socket.onopen = async () => {\n log('Socket open');\n try {\n await this._rpc!.open();\n log(`RPC open ${this._params.url}`);\n this.connected.emit();\n this._connectTrigger.wake();\n } catch (err: any) {\n this.error.emit(err);\n }\n };\n\n this._socket.onclose = async () => {\n log(`Disconnected ${this._params.url}`);\n this.disconnected.emit();\n await this.close();\n };\n\n this._socket.onerror = (event: WebSocket.ErrorEvent) => {\n log.error(event.message ?? 'Socket error', { url: this._params.url });\n const error = event.error ?? new Error(event.message);\n this.error.emit(error);\n this._connectTrigger.throw(error);\n };\n\n await this._connectTrigger.wait();\n }\n\n async close() {\n try {\n await this._rpc?.close();\n } catch (err) {\n log.catch(err);\n }\n this._socket?.close();\n }\n\n get rpc() {\n return this._rpc!.rpc;\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { IncomingMessage } from 'http';\nimport WebSocket from 'isomorphic-ws';\n\nimport { log } from '@dxos/log';\nimport { createProtoRpcPeer, ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type ConnectionInfo = {\n request: IncomingMessage;\n};\n\nexport type ConnectionHandler<C, S> = {\n onOpen?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n onClose?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport type WebsocketRpcServerParams<C, S> = {\n onConnection: (info: ConnectionInfo) => Promise<ConnectionHandler<C, S>>;\n} & WebSocket.ServerOptions;\n\nexport class WebsocketRpcServer<C, S> {\n private _server?: WebSocket.Server;\n\n constructor(private readonly _params: WebsocketRpcServerParams<C, S>) {}\n\n async open() {\n this._server = new WebSocket.Server({\n ...this._params,\n });\n this._server.on('connection', async (socket, request) => {\n log('connection', { request });\n const info: ConnectionInfo = {\n request,\n };\n const { onOpen, onClose, ...options } = await this._params.onConnection(info);\n const rpc = createProtoRpcPeer<C, S>({\n ...options,\n port: {\n send: (msg) => {\n socket.send(msg);\n },\n subscribe: (cb) => {\n socket.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n\n await rpc.open();\n await onOpen?.(rpc);\n socket.onclose = async () => {\n await onClose?.(rpc);\n await rpc.close();\n };\n });\n }\n\n async close() {\n this._server?.close();\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;AAIA,OAAOA,eAAe;AAEtB,SAASC,OAAOC,eAAe;AAC/B,SAASC,KAAKC,eAAe;AAC7B,SAASC,
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport WebSocket from 'isomorphic-ws';\n\nimport { Event, Trigger } from '@dxos/async';\nimport { log, logInfo } from '@dxos/log';\nimport { createProtoRpcPeer, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type WebsocketRpcClientParams<C, S> = {\n url: string;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport class WebsocketRpcClient<C, S> {\n private _socket?: WebSocket;\n private _rpc?: ProtoRpcPeer<C>;\n private readonly _connectTrigger = new Trigger();\n\n readonly connected = new Event();\n readonly disconnected = new Event();\n readonly error = new Event<Error>();\n\n constructor(private readonly _params: WebsocketRpcClientParams<C, S>) {\n this._rpc = createProtoRpcPeer({\n requested: this._params.requested,\n exposed: this._params.exposed,\n handlers: this._params.handlers,\n port: {\n send: (msg) => {\n this._socket!.send(msg);\n },\n subscribe: (cb) => {\n this._socket!.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n }\n\n @logInfo\n get url() {\n return this._params.url;\n }\n\n async open() {\n this._socket = new WebSocket(this._params.url);\n\n this._socket.onopen = async () => {\n log('Socket open');\n try {\n await this._rpc!.open();\n log(`RPC open ${this._params.url}`);\n this.connected.emit();\n this._connectTrigger.wake();\n } catch (err: any) {\n this.error.emit(err);\n }\n };\n\n this._socket.onclose = async () => {\n log(`Disconnected ${this._params.url}`);\n this.disconnected.emit();\n await this.close();\n };\n\n this._socket.onerror = (event: WebSocket.ErrorEvent) => {\n log.error(event.message ?? 'Socket error', { url: this._params.url });\n const error = event.error ?? new Error(event.message);\n this.error.emit(error);\n this._connectTrigger.throw(error);\n };\n\n await this._connectTrigger.wait();\n }\n\n async close() {\n try {\n await this._rpc?.close();\n } catch (err) {\n log.catch(err);\n }\n this._socket?.close();\n }\n\n get rpc() {\n return this._rpc!.rpc;\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IncomingMessage } from 'http';\nimport WebSocket from 'isomorphic-ws';\n\nimport { log } from '@dxos/log';\nimport { createProtoRpcPeer, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type ConnectionInfo = {\n request: IncomingMessage;\n};\n\nexport type ConnectionHandler<C, S> = {\n onOpen?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n onClose?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport type WebsocketRpcServerParams<C, S> = {\n onConnection: (info: ConnectionInfo) => Promise<ConnectionHandler<C, S>>;\n} & WebSocket.ServerOptions;\n\nexport class WebsocketRpcServer<C, S> {\n private _server?: WebSocket.Server;\n\n constructor(private readonly _params: WebsocketRpcServerParams<C, S>) {}\n\n async open() {\n this._server = new WebSocket.Server({\n ...this._params,\n });\n this._server.on('connection', async (socket, request) => {\n log('connection', { request });\n const info: ConnectionInfo = {\n request,\n };\n const { onOpen, onClose, ...options } = await this._params.onConnection(info);\n const rpc = createProtoRpcPeer<C, S>({\n ...options,\n port: {\n send: (msg) => {\n socket.send(msg);\n },\n subscribe: (cb) => {\n socket.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n\n await rpc.open();\n await onOpen?.(rpc);\n socket.onclose = async () => {\n await onClose?.(rpc);\n await rpc.close();\n };\n });\n }\n\n async close() {\n this._server?.close();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["WebSocket", "Event", "Trigger", "log", "logInfo", "createProtoRpcPeer", "WebsocketRpcClient", "constructor", "_params", "_connectTrigger", "connected", "disconnected", "error", "_rpc", "requested", "exposed", "handlers", "port", "send", "msg", "_socket", "subscribe", "cb", "onmessage", "Blob", "data", "Buffer", "from", "arrayBuffer", "url", "open", "onopen", "emit", "wake", "err", "onclose", "close", "onerror", "event", "message", "Error", "throw", "wait", "catch", "rpc", "WebSocket", "log", "createProtoRpcPeer", "WebsocketRpcServer", "constructor", "_params", "open", "_server", "Server", "on", "socket", "request", "info", "onOpen", "onClose", "options", "onConnection", "rpc", "port", "send", "msg", "subscribe", "cb", "onmessage", "Blob", "data", "Buffer", "from", "arrayBuffer", "onclose", "close"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytes":10806,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytes":6370,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/websocket-rpc/src/index.ts":{"bytes":552,"imports":[{"path":"packages/core/mesh/websocket-rpc/src/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/core/mesh/websocket-rpc/src/server.ts","kind":"import-statement","original":"./server"}],"format":"esm"}},"outputs":{"packages/core/mesh/websocket-rpc/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8030},"packages/core/mesh/websocket-rpc/dist/lib/browser/index.mjs":{"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true},{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"exports":["WebsocketRpcClient","WebsocketRpcServer"],"entryPoint":"packages/core/mesh/websocket-rpc/src/index.ts","inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytesInOutput":3270},"packages/core/mesh/websocket-rpc/src/index.ts":{"bytesInOutput":0},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytesInOutput":1474}},"bytes":4969}}}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -50,7 +50,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
50
50
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
51
51
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
52
52
|
}
|
|
53
|
-
var __dxlog_file = "/
|
|
53
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/client.ts";
|
|
54
54
|
var WebsocketRpcClient = class {
|
|
55
55
|
constructor(_params) {
|
|
56
56
|
this._params = _params;
|
|
@@ -154,7 +154,7 @@ _ts_decorate([
|
|
|
154
154
|
var import_isomorphic_ws2 = __toESM(require("isomorphic-ws"));
|
|
155
155
|
var import_log2 = require("@dxos/log");
|
|
156
156
|
var import_rpc2 = require("@dxos/rpc");
|
|
157
|
-
var __dxlog_file2 = "/
|
|
157
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/server.ts";
|
|
158
158
|
var WebsocketRpcServer = class {
|
|
159
159
|
constructor(_params) {
|
|
160
160
|
this._params = _params;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/index.ts", "../../../src/client.ts", "../../../src/server.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nexport * from './client';\nexport * from './server';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport WebSocket from 'isomorphic-ws';\n\nimport { Event, Trigger } from '@dxos/async';\nimport { log, logInfo } from '@dxos/log';\nimport { createProtoRpcPeer, ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type WebsocketRpcClientParams<C, S> = {\n url: string;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport class WebsocketRpcClient<C, S> {\n private _socket?: WebSocket;\n private _rpc?: ProtoRpcPeer<C>;\n private readonly _connectTrigger = new Trigger();\n\n readonly connected = new Event();\n readonly disconnected = new Event();\n readonly error = new Event<Error>();\n\n constructor(private readonly _params: WebsocketRpcClientParams<C, S>) {\n this._rpc = createProtoRpcPeer({\n requested: this._params.requested,\n exposed: this._params.exposed,\n handlers: this._params.handlers,\n port: {\n send: (msg) => {\n this._socket!.send(msg);\n },\n subscribe: (cb) => {\n this._socket!.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n }\n\n @logInfo\n get url() {\n return this._params.url;\n }\n\n async open() {\n this._socket = new WebSocket(this._params.url);\n\n this._socket.onopen = async () => {\n log('Socket open');\n try {\n await this._rpc!.open();\n log(`RPC open ${this._params.url}`);\n this.connected.emit();\n this._connectTrigger.wake();\n } catch (err: any) {\n this.error.emit(err);\n }\n };\n\n this._socket.onclose = async () => {\n log(`Disconnected ${this._params.url}`);\n this.disconnected.emit();\n await this.close();\n };\n\n this._socket.onerror = (event: WebSocket.ErrorEvent) => {\n log.error(event.message ?? 'Socket error', { url: this._params.url });\n const error = event.error ?? new Error(event.message);\n this.error.emit(error);\n this._connectTrigger.throw(error);\n };\n\n await this._connectTrigger.wait();\n }\n\n async close() {\n try {\n await this._rpc?.close();\n } catch (err) {\n log.catch(err);\n }\n this._socket?.close();\n }\n\n get rpc() {\n return this._rpc!.rpc;\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { IncomingMessage } from 'http';\nimport WebSocket from 'isomorphic-ws';\n\nimport { log } from '@dxos/log';\nimport { createProtoRpcPeer, ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type ConnectionInfo = {\n request: IncomingMessage;\n};\n\nexport type ConnectionHandler<C, S> = {\n onOpen?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n onClose?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport type WebsocketRpcServerParams<C, S> = {\n onConnection: (info: ConnectionInfo) => Promise<ConnectionHandler<C, S>>;\n} & WebSocket.ServerOptions;\n\nexport class WebsocketRpcServer<C, S> {\n private _server?: WebSocket.Server;\n\n constructor(private readonly _params: WebsocketRpcServerParams<C, S>) {}\n\n async open() {\n this._server = new WebSocket.Server({\n ...this._params,\n });\n this._server.on('connection', async (socket, request) => {\n log('connection', { request });\n const info: ConnectionInfo = {\n request,\n };\n const { onOpen, onClose, ...options } = await this._params.onConnection(info);\n const rpc = createProtoRpcPeer<C, S>({\n ...options,\n port: {\n send: (msg) => {\n socket.send(msg);\n },\n subscribe: (cb) => {\n socket.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n\n await rpc.open();\n await onOpen?.(rpc);\n socket.onclose = async () => {\n await onClose?.(rpc);\n await rpc.close();\n };\n });\n }\n\n async close() {\n this._server?.close();\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;ACIA,2BAAsB;AAEtB,mBAA+B;AAC/B,iBAA6B;AAC7B,
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nexport * from './client';\nexport * from './server';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport WebSocket from 'isomorphic-ws';\n\nimport { Event, Trigger } from '@dxos/async';\nimport { log, logInfo } from '@dxos/log';\nimport { createProtoRpcPeer, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type WebsocketRpcClientParams<C, S> = {\n url: string;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport class WebsocketRpcClient<C, S> {\n private _socket?: WebSocket;\n private _rpc?: ProtoRpcPeer<C>;\n private readonly _connectTrigger = new Trigger();\n\n readonly connected = new Event();\n readonly disconnected = new Event();\n readonly error = new Event<Error>();\n\n constructor(private readonly _params: WebsocketRpcClientParams<C, S>) {\n this._rpc = createProtoRpcPeer({\n requested: this._params.requested,\n exposed: this._params.exposed,\n handlers: this._params.handlers,\n port: {\n send: (msg) => {\n this._socket!.send(msg);\n },\n subscribe: (cb) => {\n this._socket!.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n }\n\n @logInfo\n get url() {\n return this._params.url;\n }\n\n async open() {\n this._socket = new WebSocket(this._params.url);\n\n this._socket.onopen = async () => {\n log('Socket open');\n try {\n await this._rpc!.open();\n log(`RPC open ${this._params.url}`);\n this.connected.emit();\n this._connectTrigger.wake();\n } catch (err: any) {\n this.error.emit(err);\n }\n };\n\n this._socket.onclose = async () => {\n log(`Disconnected ${this._params.url}`);\n this.disconnected.emit();\n await this.close();\n };\n\n this._socket.onerror = (event: WebSocket.ErrorEvent) => {\n log.error(event.message ?? 'Socket error', { url: this._params.url });\n const error = event.error ?? new Error(event.message);\n this.error.emit(error);\n this._connectTrigger.throw(error);\n };\n\n await this._connectTrigger.wait();\n }\n\n async close() {\n try {\n await this._rpc?.close();\n } catch (err) {\n log.catch(err);\n }\n this._socket?.close();\n }\n\n get rpc() {\n return this._rpc!.rpc;\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IncomingMessage } from 'http';\nimport WebSocket from 'isomorphic-ws';\n\nimport { log } from '@dxos/log';\nimport { createProtoRpcPeer, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';\n\nexport type ConnectionInfo = {\n request: IncomingMessage;\n};\n\nexport type ConnectionHandler<C, S> = {\n onOpen?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n onClose?: (rpc: ProtoRpcPeer<C>) => Promise<void>;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;\n\nexport type WebsocketRpcServerParams<C, S> = {\n onConnection: (info: ConnectionInfo) => Promise<ConnectionHandler<C, S>>;\n} & WebSocket.ServerOptions;\n\nexport class WebsocketRpcServer<C, S> {\n private _server?: WebSocket.Server;\n\n constructor(private readonly _params: WebsocketRpcServerParams<C, S>) {}\n\n async open() {\n this._server = new WebSocket.Server({\n ...this._params,\n });\n this._server.on('connection', async (socket, request) => {\n log('connection', { request });\n const info: ConnectionInfo = {\n request,\n };\n const { onOpen, onClose, ...options } = await this._params.onConnection(info);\n const rpc = createProtoRpcPeer<C, S>({\n ...options,\n port: {\n send: (msg) => {\n socket.send(msg);\n },\n subscribe: (cb) => {\n socket.onmessage = async (msg: WebSocket.MessageEvent) => {\n if (typeof Blob !== 'undefined' && msg.data instanceof Blob) {\n cb(Buffer.from(await msg.data.arrayBuffer()));\n } else {\n cb(msg.data as any);\n }\n };\n },\n },\n });\n\n await rpc.open();\n await onOpen?.(rpc);\n socket.onclose = async () => {\n await onClose?.(rpc);\n await rpc.close();\n };\n });\n }\n\n async close() {\n this._server?.close();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["WebsocketRpcClient", "constructor", "_params", "_connectTrigger", "Trigger", "connected", "Event", "disconnected", "error", "_rpc", "createProtoRpcPeer", "requested", "exposed", "handlers", "port", "send", "msg", "_socket", "subscribe", "cb", "onmessage", "Blob", "data", "Buffer", "from", "arrayBuffer", "url", "open", "WebSocket", "onopen", "log", "emit", "wake", "err", "onclose", "close", "onerror", "event", "message", "Error", "throw", "wait", "catch", "rpc", "logInfo", "import_isomorphic_ws", "import_log", "import_rpc", "WebsocketRpcServer", "constructor", "_params", "open", "_server", "WebSocket", "Server", "on", "socket", "request", "log", "info", "onOpen", "onClose", "options", "onConnection", "rpc", "createProtoRpcPeer", "port", "send", "msg", "subscribe", "cb", "onmessage", "Blob", "data", "Buffer", "from", "arrayBuffer", "onclose", "close"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytes":10806,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytes":6370,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/websocket-rpc/src/index.ts":{"bytes":552,"imports":[{"path":"packages/core/mesh/websocket-rpc/src/client.ts","kind":"import-statement","original":"./client"},{"path":"packages/core/mesh/websocket-rpc/src/server.ts","kind":"import-statement","original":"./server"}],"format":"esm"}},"outputs":{"packages/core/mesh/websocket-rpc/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8220},"packages/core/mesh/websocket-rpc/dist/lib/node/index.cjs":{"imports":[{"path":"isomorphic-ws","kind":"require-call","external":true},{"path":"@dxos/async","kind":"require-call","external":true},{"path":"@dxos/log","kind":"require-call","external":true},{"path":"@dxos/rpc","kind":"require-call","external":true},{"path":"isomorphic-ws","kind":"require-call","external":true},{"path":"@dxos/log","kind":"require-call","external":true},{"path":"@dxos/rpc","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/core/mesh/websocket-rpc/src/index.ts","inputs":{"packages/core/mesh/websocket-rpc/src/index.ts":{"bytesInOutput":189},"packages/core/mesh/websocket-rpc/src/client.ts":{"bytesInOutput":3446},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytesInOutput":1516}},"bytes":6868}}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Event } from '@dxos/async';
|
|
2
|
-
import { ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
2
|
+
import { type ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
3
3
|
export type WebsocketRpcClientParams<C, S> = {
|
|
4
4
|
url: string;
|
|
5
5
|
} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAE7C,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAyC,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAE5F,MAAM,MAAM,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI;IAC3C,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;AAE1E,qBAAa,kBAAkB,CAAC,CAAC,EAAE,CAAC;IAStB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,YAAY,cAAe;IACpC,QAAQ,CAAC,KAAK,eAAsB;gBAEP,OAAO,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IAsBpE,IACI,GAAG,WAEN;IAEK,IAAI;IA+BJ,KAAK;IASX,IAAI,GAAG,MAEN;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { IncomingMessage } from 'http';
|
|
2
|
+
import { type IncomingMessage } from 'http';
|
|
3
3
|
import WebSocket from 'isomorphic-ws';
|
|
4
|
-
import { ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
4
|
+
import { type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
5
5
|
export type ConnectionInfo = {
|
|
6
6
|
request: IncomingMessage;
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAE5F,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI;IACpC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;AAE1E,MAAM,MAAM,wBAAwB,CAAC,CAAC,EAAE,CAAC,IAAI;IAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC1E,GAAG,SAAS,CAAC,aAAa,CAAC;AAE5B,qBAAa,kBAAkB,CAAC,CAAC,EAAE,CAAC;IAGtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAC,CAAmB;gBAEN,OAAO,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9D,IAAI;IAqCJ,KAAK;CAGZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/websocket-rpc",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2-main.05033b7",
|
|
4
4
|
"description": "websocket-rpc",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"isomorphic-ws": "^4.0.1",
|
|
21
21
|
"ws": "^7.4.4",
|
|
22
|
-
"@dxos/async": "0.3.
|
|
23
|
-
"@dxos/codec-protobuf": "0.3.
|
|
24
|
-
"@dxos/context": "0.3.
|
|
25
|
-
"@dxos/keys": "0.3.
|
|
26
|
-
"@dxos/log": "0.3.
|
|
27
|
-
"@dxos/node-std": "0.3.
|
|
28
|
-
"@dxos/protocols": "0.3.
|
|
29
|
-
"@dxos/rpc": "0.3.
|
|
30
|
-
"@dxos/util": "0.3.
|
|
22
|
+
"@dxos/async": "0.3.2-main.05033b7",
|
|
23
|
+
"@dxos/codec-protobuf": "0.3.2-main.05033b7",
|
|
24
|
+
"@dxos/context": "0.3.2-main.05033b7",
|
|
25
|
+
"@dxos/keys": "0.3.2-main.05033b7",
|
|
26
|
+
"@dxos/log": "0.3.2-main.05033b7",
|
|
27
|
+
"@dxos/node-std": "0.3.2-main.05033b7",
|
|
28
|
+
"@dxos/protocols": "0.3.2-main.05033b7",
|
|
29
|
+
"@dxos/rpc": "0.3.2-main.05033b7",
|
|
30
|
+
"@dxos/util": "0.3.2-main.05033b7"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^18.11.9",
|
package/src/client.ts
CHANGED
|
@@ -6,7 +6,7 @@ import WebSocket from 'isomorphic-ws';
|
|
|
6
6
|
|
|
7
7
|
import { Event, Trigger } from '@dxos/async';
|
|
8
8
|
import { log, logInfo } from '@dxos/log';
|
|
9
|
-
import { createProtoRpcPeer, ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
9
|
+
import { createProtoRpcPeer, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
10
10
|
|
|
11
11
|
export type WebsocketRpcClientParams<C, S> = {
|
|
12
12
|
url: string;
|
package/src/e2e.test.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { expect } from 'chai';
|
|
6
6
|
|
|
7
7
|
import { schema } from '@dxos/protocols';
|
|
8
|
-
import { createServiceBundle, ServiceTypesOf } from '@dxos/rpc';
|
|
8
|
+
import { createServiceBundle, type ServiceTypesOf } from '@dxos/rpc';
|
|
9
9
|
import { afterTest, describe, test } from '@dxos/test';
|
|
10
10
|
|
|
11
11
|
import { WebsocketRpcClient } from './client';
|
package/src/server.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { IncomingMessage } from 'http';
|
|
5
|
+
import { type IncomingMessage } from 'http';
|
|
6
6
|
import WebSocket from 'isomorphic-ws';
|
|
7
7
|
|
|
8
8
|
import { log } from '@dxos/log';
|
|
9
|
-
import { createProtoRpcPeer, ProtoRpcPeer, ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
9
|
+
import { createProtoRpcPeer, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';
|
|
10
10
|
|
|
11
11
|
export type ConnectionInfo = {
|
|
12
12
|
request: IncomingMessage;
|