@dxos/edge-client 0.10.0 → 0.11.0
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/chunk-edge-ws-muxer.mjs +322 -0
- package/dist/lib/chunk-edge-ws-muxer.mjs.map +1 -0
- package/dist/lib/cors-proxy.mjs +29 -0
- package/dist/lib/cors-proxy.mjs.map +1 -0
- package/dist/lib/edge-ws-muxer.mjs +2 -0
- package/dist/lib/index.mjs +1769 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/service.mjs +138 -0
- package/dist/lib/service.mjs.map +1 -0
- package/dist/lib/testing.mjs +160 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/types/src/base-http-client.d.ts +18 -0
- package/dist/types/src/base-http-client.d.ts.map +1 -1
- package/dist/types/src/browser-rendering.d.ts +0 -7
- package/dist/types/src/browser-rendering.d.ts.map +1 -1
- package/dist/types/src/edge-client.d.ts +22 -2
- package/dist/types/src/edge-client.d.ts.map +1 -1
- package/dist/types/src/edge-http-client.d.ts +86 -2
- package/dist/types/src/edge-http-client.d.ts.map +1 -1
- package/dist/types/src/edge-ws-connection.d.ts +19 -0
- package/dist/types/src/edge-ws-connection.d.ts.map +1 -1
- package/dist/types/src/edge-ws-connection.test.d.ts +2 -0
- package/dist/types/src/edge-ws-connection.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/protocol.d.ts +2 -1
- package/dist/types/src/protocol.d.ts.map +1 -1
- package/dist/types/src/testing/test-utils.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -20
- package/src/base-http-client.ts +71 -3
- package/src/browser-rendering.ts +0 -9
- package/src/edge-client.ts +21 -3
- package/src/edge-http-client.test.ts +121 -0
- package/src/edge-http-client.ts +156 -2
- package/src/edge-ws-connection.test.ts +219 -0
- package/src/edge-ws-connection.ts +97 -28
- package/src/index.ts +1 -0
- package/src/protocol.ts +11 -2
- package/src/testing/test-utils.ts +5 -1
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-L5ZHLJ4B.mjs +0 -310
- package/dist/lib/neutral/chunk-L5ZHLJ4B.mjs.map +0 -7
- package/dist/lib/neutral/chunk-WQKMEZJR.mjs +0 -30
- package/dist/lib/neutral/chunk-WQKMEZJR.mjs.map +0 -7
- package/dist/lib/neutral/cors-proxy.mjs +0 -8
- package/dist/lib/neutral/cors-proxy.mjs.map +0 -7
- package/dist/lib/neutral/edge-ws-muxer.mjs +0 -12
- package/dist/lib/neutral/edge-ws-muxer.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -1524
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/service/index.mjs +0 -134
- package/dist/lib/neutral/service/index.mjs.map +0 -7
- package/dist/lib/neutral/testing/index.mjs +0 -161
- package/dist/lib/neutral/testing/index.mjs.map +0 -7
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
WebSocketMuxer,
|
|
3
|
-
protocol,
|
|
4
|
-
toUint8Array
|
|
5
|
-
} from "../chunk-L5ZHLJ4B.mjs";
|
|
6
|
-
import "../chunk-J5LGTIGS.mjs";
|
|
7
|
-
|
|
8
|
-
// src/testing/test-server.ts
|
|
9
|
-
import http from "@dxos/node-std/http";
|
|
10
|
-
import { log } from "@dxos/log";
|
|
11
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/edge-client/src/testing/test-server.ts";
|
|
12
|
-
var createTestServer = (responseHandler2) => {
|
|
13
|
-
const server = http.createServer(responseHandler2);
|
|
14
|
-
return new Promise((resolve) => {
|
|
15
|
-
server.listen(0, () => {
|
|
16
|
-
const address = server.address();
|
|
17
|
-
const port = typeof address === "object" && address ? address.port : 0;
|
|
18
|
-
resolve({
|
|
19
|
-
url: `http://localhost:${port}`,
|
|
20
|
-
close: () => server.close()
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var responseHandler = (cb) => {
|
|
26
|
-
let attempt = 0;
|
|
27
|
-
return (req, res) => {
|
|
28
|
-
const data = cb(++attempt) ?? {};
|
|
29
|
-
if (data === false) {
|
|
30
|
-
log("simulating failure", {
|
|
31
|
-
attempt
|
|
32
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 24, S: void 0 });
|
|
33
|
-
res.statusCode = 500;
|
|
34
|
-
res.statusMessage = "Simulating failure";
|
|
35
|
-
res.end("");
|
|
36
|
-
} else {
|
|
37
|
-
res.writeHead(200, {
|
|
38
|
-
"Content-Type": "application/json"
|
|
39
|
-
});
|
|
40
|
-
res.end(JSON.stringify({
|
|
41
|
-
success: true,
|
|
42
|
-
data
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
// src/testing/test-utils.ts
|
|
49
|
-
import WebSocket from "isomorphic-ws";
|
|
50
|
-
import { Trigger } from "@dxos/async";
|
|
51
|
-
import { log as log2 } from "@dxos/log";
|
|
52
|
-
import { EdgeWebsocketProtocol } from "@dxos/protocols";
|
|
53
|
-
import { buf } from "@dxos/protocols/buf";
|
|
54
|
-
import { MessageSchema, TextMessageSchema } from "@dxos/protocols/buf/dxos/edge/messenger_pb";
|
|
55
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/edge-client/src/testing/test-utils.ts";
|
|
56
|
-
var DEFAULT_PORT = 8080;
|
|
57
|
-
var createTestEdgeWsServer = async (port = DEFAULT_PORT, params) => {
|
|
58
|
-
const wsServer = new WebSocket.Server({
|
|
59
|
-
port,
|
|
60
|
-
verifyClient: createConnectionDelayHandler(params),
|
|
61
|
-
handleProtocols: () => EdgeWebsocketProtocol.V1
|
|
62
|
-
});
|
|
63
|
-
let connection;
|
|
64
|
-
const messageSink = [];
|
|
65
|
-
const messageSourceLog = [];
|
|
66
|
-
const closeTrigger = new Trigger();
|
|
67
|
-
const sendResponseMessage = createResponseSender(() => connection.muxer);
|
|
68
|
-
wsServer.on("connection", (ws) => {
|
|
69
|
-
const muxer = new WebSocketMuxer(ws);
|
|
70
|
-
connection = {
|
|
71
|
-
ws,
|
|
72
|
-
muxer
|
|
73
|
-
};
|
|
74
|
-
ws.on("error", (err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 31, S: void 0 }));
|
|
75
|
-
ws.on("message", async (data) => {
|
|
76
|
-
if (String(data) === "__ping__") {
|
|
77
|
-
ws.send("__pong__");
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const message = muxer.receiveData(await toUint8Array(data));
|
|
81
|
-
if (!message) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const { request, requestPayload } = await decodePayload(message, params);
|
|
85
|
-
messageSourceLog.push(request.source);
|
|
86
|
-
if (params?.messageHandler) {
|
|
87
|
-
const responsePayload = await params.messageHandler(requestPayload);
|
|
88
|
-
if (responsePayload && connection) {
|
|
89
|
-
sendResponseMessage(request, responsePayload);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
log2("message", {
|
|
93
|
-
payload: requestPayload
|
|
94
|
-
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 49, S: void 0 });
|
|
95
|
-
messageSink.push(requestPayload);
|
|
96
|
-
});
|
|
97
|
-
ws.on("close", () => {
|
|
98
|
-
connection = void 0;
|
|
99
|
-
closeTrigger.wake();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
return {
|
|
103
|
-
server: wsServer,
|
|
104
|
-
messageSink,
|
|
105
|
-
messageSourceLog,
|
|
106
|
-
endpoint: `ws://127.0.0.1:${port}`,
|
|
107
|
-
cleanup: () => wsServer.close(),
|
|
108
|
-
currentConnection: () => connection,
|
|
109
|
-
sendResponseMessage,
|
|
110
|
-
sendMessage: (msg) => {
|
|
111
|
-
return connection.muxer.send(msg);
|
|
112
|
-
},
|
|
113
|
-
closeConnection: () => {
|
|
114
|
-
closeTrigger.reset();
|
|
115
|
-
connection.ws.close(1011);
|
|
116
|
-
return closeTrigger.wait();
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
|
-
var createConnectionDelayHandler = (params) => {
|
|
121
|
-
return (_, callback) => {
|
|
122
|
-
if (params?.admitConnection) {
|
|
123
|
-
log2("delaying edge connection admission", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 80, S: void 0 });
|
|
124
|
-
void params.admitConnection.wait().then(() => {
|
|
125
|
-
callback(true);
|
|
126
|
-
log2("edge connection admitted", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 83, S: void 0 });
|
|
127
|
-
});
|
|
128
|
-
} else {
|
|
129
|
-
callback(true);
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
};
|
|
133
|
-
var createResponseSender = (connection) => {
|
|
134
|
-
return (request, responsePayload) => {
|
|
135
|
-
const recipient = request.source;
|
|
136
|
-
void connection().send(buf.create(MessageSchema, {
|
|
137
|
-
source: {
|
|
138
|
-
identityDid: recipient.identityDid,
|
|
139
|
-
peerKey: recipient.peerKey
|
|
140
|
-
},
|
|
141
|
-
serviceId: request.serviceId,
|
|
142
|
-
payload: {
|
|
143
|
-
value: responsePayload
|
|
144
|
-
}
|
|
145
|
-
}));
|
|
146
|
-
};
|
|
147
|
-
};
|
|
148
|
-
var decodePayload = async (request, params) => {
|
|
149
|
-
const requestPayload = params?.payloadDecoder ? params.payloadDecoder(request.payload.value) : protocol.getPayload(request, TextMessageSchema);
|
|
150
|
-
return {
|
|
151
|
-
request,
|
|
152
|
-
requestPayload
|
|
153
|
-
};
|
|
154
|
-
};
|
|
155
|
-
export {
|
|
156
|
-
DEFAULT_PORT,
|
|
157
|
-
createTestEdgeWsServer,
|
|
158
|
-
createTestServer,
|
|
159
|
-
responseHandler
|
|
160
|
-
};
|
|
161
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/testing/test-server.ts", "../../../../src/testing/test-utils.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport http from 'node:http';\n\nimport { log } from '@dxos/log';\n\nexport type TestServer = {\n url: string;\n close: () => void;\n};\n\nexport type ResponseHandler = (req: http.IncomingMessage, res: http.ServerResponse) => void;\n\nexport const createTestServer = (responseHandler: ResponseHandler) => {\n const server = http.createServer(responseHandler);\n\n return new Promise<TestServer>((resolve) => {\n server.listen(0, () => {\n const address = server.address();\n const port = typeof address === 'object' && address ? address.port : 0;\n resolve({\n url: `http://localhost:${port}`,\n close: () => server.close(),\n });\n });\n });\n};\n\nexport const responseHandler = (cb: (attempt: number) => false | object): ResponseHandler => {\n let attempt = 0;\n return (req, res) => {\n const data = cb(++attempt) ?? {};\n if (data === false) {\n log('simulating failure', { attempt });\n res.statusCode = 500;\n res.statusMessage = 'Simulating failure';\n res.end('');\n } else {\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ success: true, data }));\n }\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport WebSocket from 'isomorphic-ws';\n\nimport { Trigger } from '@dxos/async';\nimport { log } from '@dxos/log';\nimport { EdgeWebsocketProtocol } from '@dxos/protocols';\nimport { buf } from '@dxos/protocols/buf';\nimport { type Message, MessageSchema, TextMessageSchema } from '@dxos/protocols/buf/dxos/edge/messenger_pb';\n\nimport { protocol } from '../defs';\nimport { WebSocketMuxer } from '../edge-ws-muxer';\nimport { toUint8Array } from '../protocol';\n\nexport const DEFAULT_PORT = 8080;\n\ntype TestEdgeWsServerProps = {\n admitConnection?: Trigger;\n payloadDecoder?: (payload: Uint8Array) => any;\n messageHandler?: (payload: any) => Promise<Uint8Array | undefined>;\n};\n\nexport const createTestEdgeWsServer = async (port = DEFAULT_PORT, params?: TestEdgeWsServerProps) => {\n const wsServer = new WebSocket.Server({\n port,\n verifyClient: createConnectionDelayHandler(params),\n handleProtocols: () => EdgeWebsocketProtocol.V1,\n });\n\n let connection: { ws: WebSocket; muxer: WebSocketMuxer } | undefined;\n\n const messageSink: any[] = [];\n const messageSourceLog: any[] = [];\n const closeTrigger = new Trigger();\n const sendResponseMessage = createResponseSender(() => connection!.muxer);\n\n wsServer.on('connection', (ws: WebSocket) => {\n const muxer = new WebSocketMuxer(ws);\n connection = { ws, muxer };\n ws.on('error', (err: Error) => log.catch(err));\n ws.on('message', async (data: any) => {\n if (String(data) === '__ping__') {\n ws.send('__pong__');\n return;\n }\n const message = muxer.receiveData(await toUint8Array(data));\n if (!message) {\n return;\n }\n const { request, requestPayload } = await decodePayload(message, params);\n messageSourceLog.push(request.source);\n if (params?.messageHandler) {\n const responsePayload = await params.messageHandler(requestPayload);\n if (responsePayload && connection) {\n sendResponseMessage(request, responsePayload);\n }\n }\n log('message', { payload: requestPayload });\n messageSink.push(requestPayload);\n });\n\n ws.on('close', () => {\n connection = undefined;\n closeTrigger.wake();\n });\n });\n\n return {\n server: wsServer,\n messageSink,\n messageSourceLog,\n endpoint: `ws://127.0.0.1:${port}`,\n cleanup: () => wsServer.close(),\n currentConnection: () => connection,\n sendResponseMessage,\n sendMessage: (msg: Message) => {\n return connection!.muxer.send(msg);\n },\n closeConnection: () => {\n closeTrigger.reset();\n connection!.ws.close(1011);\n return closeTrigger.wait();\n },\n };\n};\n\nconst createConnectionDelayHandler = (params: TestEdgeWsServerProps | undefined) => {\n return (_: any, callback: (admit: boolean) => void) => {\n if (params?.admitConnection) {\n log('delaying edge connection admission');\n void params.admitConnection.wait().then(() => {\n callback(true);\n log('edge connection admitted');\n });\n } else {\n callback(true);\n }\n };\n};\n\nconst createResponseSender = (connection: () => WebSocketMuxer) => {\n return (request: Message, responsePayload: Uint8Array) => {\n const recipient = request.source!;\n void connection().send(\n buf.create(MessageSchema, {\n source: {\n identityDid: recipient.identityDid,\n peerKey: recipient.peerKey,\n },\n serviceId: request.serviceId!,\n payload: { value: responsePayload },\n }),\n );\n };\n};\n\nconst decodePayload = async (request: Message, params: TestEdgeWsServerProps | undefined) => {\n const requestPayload = params?.payloadDecoder\n ? params.payloadDecoder(request.payload!.value!)\n : protocol.getPayload(request, TextMessageSchema);\n return { request, requestPayload };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["http", "log", "createTestServer", "resolve", "server", "listen", "responseHandler", "address", "port", "url", "close", "req", "res", "data", "attempt", "statusCode", "statusMessage", "end", "writeHead", "stringify", "WebSocket", "Trigger", "log", "EdgeWebsocketProtocol", "buf", "MessageSchema", "TextMessageSchema", "__dxlog_file", "DEFAULT_PORT", "wsServer", "WebSocket", "port", "verifyClient", "createConnectionDelayHandler", "handleProtocols", "connection", "closeTrigger", "sendResponseMessage", "ws", "WebSocketMuxer", "muxer", "on", "data", "messageSourceLog", "params", "messageHandler", "responsePayload", "request", "log", "messageSink", "push", "wake", "endpoint", "cleanup", "currentConnection", "sendMessage", "msg", "closeConnection", "close", "admitConnection", "callback", "create", "source", "identityDid", "recipient", "peerKey", "serviceId", "payload", "requestPayload"]
|
|
7
|
-
}
|