@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.
@@ -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 = "/mnt/ramdisk/work/packages/core/mesh/websocket-rpc/src/client.ts";
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 = "/mnt/ramdisk/work/packages/core/mesh/websocket-rpc/src/server.ts";
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": "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",
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":10784,"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":6340,"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":542,"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":8005},"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":3260},"packages/core/mesh/websocket-rpc/src/index.ts":{"bytesInOutput":0},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytesInOutput":1464}},"bytes":4949}}}
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}}}
@@ -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 = "/mnt/ramdisk/work/packages/core/mesh/websocket-rpc/src/client.ts";
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 = "/mnt/ramdisk/work/packages/core/mesh/websocket-rpc/src/server.ts";
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": "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",
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
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytes":10784,"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":6340,"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":542,"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":8195},"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":3436},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytesInOutput":1506}},"bytes":6848}}}
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,EAAoC,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElF,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
+ {"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;AACvC,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAsB,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAElF,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"}
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.1",
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.1",
23
- "@dxos/codec-protobuf": "0.3.1",
24
- "@dxos/context": "0.3.1",
25
- "@dxos/keys": "0.3.1",
26
- "@dxos/log": "0.3.1",
27
- "@dxos/node-std": "0.3.1",
28
- "@dxos/protocols": "0.3.1",
29
- "@dxos/rpc": "0.3.1",
30
- "@dxos/util": "0.3.1"
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;