@dxos/websocket-rpc 0.8.3 → 0.8.4-main.f9ba587

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/websocket-rpc",
3
- "version": "0.8.3",
3
+ "version": "0.8.4-main.f9ba587",
4
4
  "description": "websocket-rpc",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -27,11 +27,11 @@
27
27
  "dependencies": {
28
28
  "isomorphic-ws": "^5.0.0",
29
29
  "ws": "^8.14.2",
30
- "@dxos/async": "0.8.3",
31
- "@dxos/node-std": "0.8.3",
32
- "@dxos/protocols": "0.8.3",
33
- "@dxos/log": "0.8.3",
34
- "@dxos/rpc": "0.8.3"
30
+ "@dxos/async": "0.8.4-main.f9ba587",
31
+ "@dxos/log": "0.8.4-main.f9ba587",
32
+ "@dxos/node-std": "0.8.4-main.f9ba587",
33
+ "@dxos/protocols": "0.8.4-main.f9ba587",
34
+ "@dxos/rpc": "0.8.4-main.f9ba587"
35
35
  },
36
36
  "devDependencies": {},
37
37
  "publishConfig": {
@@ -1,272 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var node_exports = {};
30
- __export(node_exports, {
31
- WebSocketWithTokenAuth: () => WebSocketWithTokenAuth,
32
- WebsocketRpcClient: () => WebsocketRpcClient,
33
- WebsocketRpcServer: () => WebsocketRpcServer,
34
- authenticateRequestWithTokenAuth: () => authenticateRequestWithTokenAuth
35
- });
36
- module.exports = __toCommonJS(node_exports);
37
- var import_isomorphic_ws = __toESM(require("isomorphic-ws"));
38
- var import_async = require("@dxos/async");
39
- var import_log = require("@dxos/log");
40
- var import_rpc = require("@dxos/rpc");
41
- var import_isomorphic_ws2 = __toESM(require("isomorphic-ws"));
42
- var import_log2 = require("@dxos/log");
43
- var import_isomorphic_ws3 = __toESM(require("isomorphic-ws"));
44
- var import_log3 = require("@dxos/log");
45
- var import_rpc2 = require("@dxos/rpc");
46
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/token-auth.ts";
47
- var PROTOCOL_TOKEN_PREFIX = "base64url.bearer.authorization.dxos.org";
48
- var authenticateRequestWithTokenAuth = (request, socket, upgradeHead, token, cb) => {
49
- const protocolHeader = request.headers["sec-websocket-protocol"];
50
- if (!protocolHeader) {
51
- (0, import_log2.log)("upgrade unauthorized, header missing", {
52
- header: request.headers["sec-websocket-protocol"]
53
- }, {
54
- F: __dxlog_file,
55
- L: 28,
56
- S: void 0,
57
- C: (f, a) => f(...a)
58
- });
59
- socket.write("HTTP/1.1 401 Unauthorized\r\n\r\n");
60
- socket.destroy();
61
- return;
62
- }
63
- const tokenHeader = protocolHeader.replace(new RegExp(`^${PROTOCOL_TOKEN_PREFIX}.`), "");
64
- const encodedToken = Buffer.from(token).toString("base64").replace(/=*$/, "");
65
- if (tokenHeader !== encodedToken) {
66
- (0, import_log2.log)("upgrade unauthorized", {
67
- token,
68
- foo: encodedToken
69
- }, {
70
- F: __dxlog_file,
71
- L: 40,
72
- S: void 0,
73
- C: (f, a) => f(...a)
74
- });
75
- socket.write("HTTP/1.1 401 Unauthorized\r\n\r\n");
76
- socket.destroy();
77
- return;
78
- }
79
- cb(request, socket, upgradeHead);
80
- };
81
- var WebSocketWithTokenAuth = class extends import_isomorphic_ws2.default {
82
- constructor(url, token) {
83
- const encodedToken = Buffer.from(token).toString("base64").replace(/=*$/, "");
84
- const wsProtocols = [
85
- `base64url.bearer.authorization.dxos.org.${encodedToken}`
86
- ];
87
- super(url, wsProtocols);
88
- (0, import_log2.log)("encodedToken", {
89
- encodedToken
90
- }, {
91
- F: __dxlog_file,
92
- L: 55,
93
- S: this,
94
- C: (f, a) => f(...a)
95
- });
96
- }
97
- };
98
- function _ts_decorate(decorators, target, key, desc) {
99
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
100
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
101
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
102
- return c > 3 && r && Object.defineProperty(target, key, r), r;
103
- }
104
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/client.ts";
105
- var WebsocketRpcClient = class {
106
- constructor(_params) {
107
- this._params = _params;
108
- this._connectTrigger = new import_async.Trigger();
109
- this.connected = new import_async.Event();
110
- this.disconnected = new import_async.Event();
111
- this.error = new import_async.Event();
112
- this._rpc = (0, import_rpc.createProtoRpcPeer)({
113
- requested: this._params.requested,
114
- exposed: this._params.exposed,
115
- handlers: this._params.handlers,
116
- noHandshake: this._params.noHandshake,
117
- port: {
118
- send: (msg) => {
119
- this._socket.send(msg);
120
- },
121
- subscribe: (cb) => {
122
- this._socket.onmessage = async (msg) => {
123
- if (typeof Blob !== "undefined" && msg.data instanceof Blob) {
124
- cb(Buffer.from(await msg.data.arrayBuffer()));
125
- } else {
126
- cb(msg.data);
127
- }
128
- };
129
- }
130
- }
131
- });
132
- }
133
- get url() {
134
- return this._params.url;
135
- }
136
- async open() {
137
- if (this._params.authenticationToken) {
138
- this._socket = new WebSocketWithTokenAuth(this._params.url, this._params.authenticationToken);
139
- } else {
140
- this._socket = new import_isomorphic_ws.default(this._params.url);
141
- }
142
- this._socket.onopen = async () => {
143
- (0, import_log.log)("Socket open", void 0, {
144
- F: __dxlog_file2,
145
- L: 62,
146
- S: this,
147
- C: (f, a) => f(...a)
148
- });
149
- try {
150
- await this._rpc.open();
151
- (0, import_log.log)(`RPC open ${this._params.url}`, void 0, {
152
- F: __dxlog_file2,
153
- L: 65,
154
- S: this,
155
- C: (f, a) => f(...a)
156
- });
157
- this.connected.emit();
158
- this._connectTrigger.wake();
159
- } catch (err) {
160
- this.error.emit(err);
161
- }
162
- };
163
- this._socket.onclose = async () => {
164
- (0, import_log.log)(`Disconnected ${this._params.url}`, void 0, {
165
- F: __dxlog_file2,
166
- L: 74,
167
- S: this,
168
- C: (f, a) => f(...a)
169
- });
170
- this.disconnected.emit();
171
- await this.close();
172
- };
173
- this._socket.onerror = (event) => {
174
- import_log.log.error(event.message ?? "Socket error", {
175
- url: this._params.url
176
- }, {
177
- F: __dxlog_file2,
178
- L: 81,
179
- S: this,
180
- C: (f, a) => f(...a)
181
- });
182
- const error = event.error ?? new Error(event.message);
183
- this.error.emit(error);
184
- this._connectTrigger.throw(error);
185
- };
186
- await this._connectTrigger.wait();
187
- }
188
- async close() {
189
- try {
190
- await this._rpc?.close();
191
- } catch (err) {
192
- import_log.log.catch(err, void 0, {
193
- F: __dxlog_file2,
194
- L: 94,
195
- S: this,
196
- C: (f, a) => f(...a)
197
- });
198
- }
199
- this._socket?.close();
200
- }
201
- get rpc() {
202
- return this._rpc.rpc;
203
- }
204
- };
205
- _ts_decorate([
206
- import_log.logInfo
207
- ], WebsocketRpcClient.prototype, "url", null);
208
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/core/mesh/websocket-rpc/src/server.ts";
209
- var WebsocketRpcServer = class {
210
- constructor(_params) {
211
- this._params = _params;
212
- }
213
- handleUpgrade(request, socket, head) {
214
- this._server?.handleUpgrade(request, socket, head, (ws) => {
215
- this._server?.emit("connection", ws, request);
216
- });
217
- }
218
- async open() {
219
- this._server = new import_isomorphic_ws3.default.Server({
220
- ...this._params
221
- });
222
- this._server.on("connection", async (socket, request) => {
223
- (0, import_log3.log)("connection", {
224
- url: request.url,
225
- headers: request.headers
226
- }, {
227
- F: __dxlog_file3,
228
- L: 40,
229
- S: this,
230
- C: (f, a) => f(...a)
231
- });
232
- const info = {
233
- request
234
- };
235
- const { onOpen, onClose, ...options } = await this._params.onConnection(info);
236
- const rpc = (0, import_rpc2.createProtoRpcPeer)({
237
- ...options,
238
- port: {
239
- send: (msg) => {
240
- socket.send(msg);
241
- },
242
- subscribe: (cb) => {
243
- socket.onmessage = async (msg) => {
244
- if (typeof Blob !== "undefined" && msg.data instanceof Blob) {
245
- cb(Buffer.from(await msg.data.arrayBuffer()));
246
- } else {
247
- cb(msg.data);
248
- }
249
- };
250
- }
251
- }
252
- });
253
- await rpc.open();
254
- await onOpen?.(rpc);
255
- socket.onclose = async () => {
256
- await onClose?.(rpc);
257
- await rpc.close();
258
- };
259
- });
260
- }
261
- async close() {
262
- this._server?.close();
263
- }
264
- };
265
- // Annotate the CommonJS export names for ESM import in node:
266
- 0 && (module.exports = {
267
- WebSocketWithTokenAuth,
268
- WebsocketRpcClient,
269
- WebsocketRpcServer,
270
- authenticateRequestWithTokenAuth
271
- });
272
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/client.ts", "../../../src/token-auth.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, type ProtoRpcPeer, type ProtoRpcPeerOptions } from '@dxos/rpc';\n\nimport { WebSocketWithTokenAuth } from './token-auth';\n\nexport type WebsocketRpcClientParams<C, S> = {\n url: string;\n authenticationToken?: string;\n} & Pick<ProtoRpcPeerOptions<C, S>, 'requested' | 'exposed' | 'handlers' | 'noHandshake'>;\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 noHandshake: this._params.noHandshake,\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(): Promise<void> {\n if (this._params.authenticationToken) {\n this._socket = new WebSocketWithTokenAuth(this._params.url, this._params.authenticationToken);\n } else {\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 // Browsers do not include the error message in the event object, so we cannot discern 401 errors from other errors.\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(): Promise<void> {\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 2024 DXOS.org\n//\n\n// Implement WS header-based auth similar to https://github.com/kubernetes/kubernetes/commit/714f97d7baf4975ad3aa47735a868a81a984d1f0\n// https://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-api/77060459#77060459\n\nimport { type IncomingMessage } from 'http';\nimport WebSocket from 'isomorphic-ws';\nimport { type Socket } from 'node:net';\n\nimport { log } from '@dxos/log';\n\nconst PROTOCOL_TOKEN_PREFIX = 'base64url.bearer.authorization.dxos.org';\n\n// TODO: implement middleware which removes the token from the request\n\nexport const authenticateRequestWithTokenAuth = (\n request: IncomingMessage,\n socket: Socket,\n upgradeHead: Buffer,\n token: string,\n cb: (request: IncomingMessage, socket: Socket, upgradeHead: Buffer) => void,\n) => {\n const protocolHeader = request.headers['sec-websocket-protocol'];\n\n if (!protocolHeader) {\n log('upgrade unauthorized, header missing', { header: request.headers['sec-websocket-protocol'] });\n socket.write('HTTP/1.1 401 Unauthorized\\r\\n\\r\\n');\n socket.destroy();\n return;\n }\n\n const tokenHeader = protocolHeader.replace(new RegExp(`^${PROTOCOL_TOKEN_PREFIX}.`), '');\n\n // padding characters are not allowed as a websocket protocol.\n const encodedToken = Buffer.from(token).toString('base64').replace(/=*$/, '');\n\n if (tokenHeader !== encodedToken) {\n log('upgrade unauthorized', { token, foo: encodedToken });\n socket.write('HTTP/1.1 401 Unauthorized\\r\\n\\r\\n');\n socket.destroy();\n return;\n }\n\n cb(request, socket, upgradeHead);\n};\n\nexport class WebSocketWithTokenAuth extends WebSocket {\n constructor(url: string, token: string) {\n const encodedToken = Buffer.from(token).toString('base64').replace(/=*$/, '');\n\n const wsProtocols = [`base64url.bearer.authorization.dxos.org.${encodedToken}`];\n super(url, wsProtocols);\n log('encodedToken', {\n encodedToken,\n });\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IncomingMessage } from 'http';\nimport WebSocket from 'isomorphic-ws';\nimport { type Socket } from 'node:net';\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 handleUpgrade(request: IncomingMessage, socket: Socket, head: Buffer): void {\n this._server?.handleUpgrade(request, socket, head, (ws) => {\n this._server?.emit('connection', ws, request);\n });\n }\n\n async open(): Promise<void> {\n this._server = new WebSocket.Server({\n ...this._params,\n });\n this._server.on('connection', async (socket, request) => {\n log('connection', { url: request.url, headers: request.headers });\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(): Promise<void> {\n this._server?.close();\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_isomorphic_ws", "import_log", "import_rpc", "PROTOCOL_TOKEN_PREFIX", "authenticateRequestWithTokenAuth", "request", "socket", "upgradeHead", "token", "cb", "protocolHeader", "headers", "log", "header", "write", "destroy", "tokenHeader", "replace", "RegExp", "encodedToken", "Buffer", "from", "toString", "foo", "WebSocketWithTokenAuth", "WebSocket", "url", "wsProtocols", "WebsocketRpcClient", "_params", "_connectTrigger", "Trigger", "connected", "Event", "disconnected", "error", "_rpc", "createProtoRpcPeer", "requested", "exposed", "handlers", "noHandshake", "port", "send", "msg", "_socket", "subscribe", "onmessage", "Blob", "data", "arrayBuffer", "open", "authenticationToken", "onopen", "emit", "wake", "err", "onclose", "close", "onerror", "event", "message", "Error", "throw", "wait", "catch", "rpc", "WebsocketRpcServer", "handleUpgrade", "head", "_server", "ws", "Server", "on", "info", "onOpen", "onClose", "options", "onConnection"]
7
- }
@@ -1 +0,0 @@
1
- {"inputs":{"packages/core/mesh/websocket-rpc/src/token-auth.ts":{"bytes":6772,"imports":[{"path":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/mesh/websocket-rpc/src/client.ts":{"bytes":12235,"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":"packages/core/mesh/websocket-rpc/src/token-auth.ts","kind":"import-statement","original":"./token-auth"}],"format":"esm"},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytes":7372,"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":646,"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"},{"path":"packages/core/mesh/websocket-rpc/src/token-auth.ts","kind":"import-statement","original":"./token-auth"}],"format":"esm"}},"outputs":{"packages/core/mesh/websocket-rpc/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12501},"packages/core/mesh/websocket-rpc/dist/lib/node/index.cjs":{"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":"isomorphic-ws","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/rpc","kind":"import-statement","external":true}],"exports":["WebSocketWithTokenAuth","WebsocketRpcClient","WebsocketRpcServer","authenticateRequestWithTokenAuth"],"entryPoint":"packages/core/mesh/websocket-rpc/src/index.ts","inputs":{"packages/core/mesh/websocket-rpc/src/client.ts":{"bytesInOutput":3480},"packages/core/mesh/websocket-rpc/src/token-auth.ts":{"bytesInOutput":1669},"packages/core/mesh/websocket-rpc/src/index.ts":{"bytesInOutput":0},"packages/core/mesh/websocket-rpc/src/server.ts":{"bytesInOutput":1688}},"bytes":7196}}}