@blade-hq/agent-client 2612.0.0-beta.2 → 2612.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +203 -19
- package/dist/blade-client.d.ts +12 -1
- package/dist/{chunk-PWJJJATA.js → chunk-2VIJBVAC.js} +1676 -680
- package/dist/chunk-2VIJBVAC.js.map +1 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.js +9 -1
- package/dist/internal.d.ts +8 -3
- package/dist/internal.js +9 -1
- package/dist/internal.js.map +1 -1
- package/dist/resources/chat-groups.d.ts +92 -0
- package/dist/resources/headless.d.ts +5 -0
- package/dist/resources/plugins.d.ts +1 -0
- package/dist/resources/sessions.d.ts +94 -11
- package/dist/schemas/context-attachments.d.ts +16 -0
- package/dist/schemas/event.d.ts +2 -0
- package/dist/schemas/message-utils.d.ts +3 -9
- package/dist/schemas/message.d.ts +18 -1
- package/dist/schemas/plugin-refs.d.ts +15 -0
- package/dist/schemas/projection.d.ts +31 -0
- package/dist/schemas/session.d.ts +2 -42
- package/dist/schemas/topic-assets.d.ts +7 -0
- package/dist/session/agent-session.d.ts +51 -7
- package/dist/session/background.d.ts +14 -0
- package/dist/session/events.d.ts +0 -1
- package/dist/session/hub.d.ts +3 -0
- package/dist/session/log-cursor.d.ts +14 -0
- package/dist/session/state.d.ts +2 -1
- package/dist/session/workflow.d.ts +10 -3
- package/dist/shared/projection/builder.d.ts +5 -0
- package/dist/shared/projection/helpers.d.ts +2 -0
- package/dist/shared/projection/index.d.ts +1 -0
- package/dist/shared/projection/workflow.d.ts +24 -0
- package/dist/tool-provider.d.ts +51 -0
- package/dist/types/socket-events.d.ts +177 -6
- package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +2 -3
- package/node_modules/engine.io-client/build/cjs/index.d.ts +3 -3
- package/node_modules/engine.io-client/build/cjs/index.js +1 -4
- package/node_modules/engine.io-client/build/cjs/socket.d.ts +39 -82
- package/node_modules/engine.io-client/build/cjs/socket.js +151 -218
- package/node_modules/engine.io-client/build/cjs/transport.d.ts +1 -1
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +4 -4
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +2 -2
- package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +17 -7
- package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +17 -7
- package/node_modules/engine.io-client/build/esm/globals.node.d.ts +2 -3
- package/node_modules/engine.io-client/build/esm/index.d.ts +3 -3
- package/node_modules/engine.io-client/build/esm/index.js +1 -2
- package/node_modules/engine.io-client/build/esm/socket.d.ts +39 -82
- package/node_modules/engine.io-client/build/esm/socket.js +141 -206
- package/node_modules/engine.io-client/build/esm/transport.d.ts +1 -1
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +4 -4
- package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +2 -2
- package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +2 -3
- package/node_modules/engine.io-client/build/esm-debug/index.d.ts +3 -3
- package/node_modules/engine.io-client/build/esm-debug/index.js +1 -2
- package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +39 -82
- package/node_modules/engine.io-client/build/esm-debug/socket.js +150 -215
- package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +1 -1
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +4 -4
- package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +2 -2
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js +3 -3
- package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +1 -1
- package/node_modules/engine.io-client/dist/engine.io.js +164 -239
- package/node_modules/engine.io-client/dist/engine.io.js.map +1 -1
- package/node_modules/engine.io-client/dist/engine.io.min.js +3 -3
- package/node_modules/engine.io-client/dist/engine.io.min.js.map +1 -1
- package/node_modules/engine.io-client/package.json +2 -2
- package/node_modules/socket.io-parser/build/cjs/binary.js +4 -1
- package/node_modules/socket.io-parser/build/cjs/index.d.ts +14 -4
- package/node_modules/socket.io-parser/build/cjs/index.js +18 -11
- package/node_modules/socket.io-parser/build/esm/binary.js +4 -1
- package/node_modules/socket.io-parser/build/esm/index.d.ts +14 -4
- package/node_modules/socket.io-parser/build/esm/index.js +14 -10
- package/node_modules/socket.io-parser/build/esm-debug/binary.js +4 -1
- package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +14 -4
- package/node_modules/socket.io-parser/build/esm-debug/index.js +14 -10
- package/node_modules/socket.io-parser/package.json +1 -1
- package/node_modules/ws/index.js +15 -6
- package/node_modules/ws/lib/constants.js +1 -0
- package/node_modules/ws/lib/permessage-deflate.js +9 -7
- package/node_modules/ws/lib/receiver.js +37 -0
- package/node_modules/ws/lib/sender.js +6 -1
- package/node_modules/ws/lib/websocket-server.js +18 -6
- package/node_modules/ws/lib/websocket.js +50 -17
- package/node_modules/ws/package.json +8 -3
- package/node_modules/ws/wrapper.mjs +14 -1
- package/package.json +4 -4
- package/public-api.md +329 -26
- package/dist/chunk-PWJJJATA.js.map +0 -1
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Socket =
|
|
6
|
+
exports.Socket = void 0;
|
|
7
7
|
const index_js_1 = require("./transports/index.js");
|
|
8
8
|
const util_js_1 = require("./util.js");
|
|
9
9
|
const parseqs_js_1 = require("./contrib/parseqs.js");
|
|
@@ -26,39 +26,29 @@ if (withEventListeners) {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established
|
|
29
|
-
* with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.
|
|
29
|
+
* with one of the available low-level transports, like HTTP long-polling, WebSocket, or WebTransport.
|
|
30
30
|
*
|
|
31
|
-
* This class comes
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.
|
|
31
|
+
* This class comes with an upgrade mechanism, which means that once the connection is established with the first
|
|
32
|
+
* low-level transport, it will try to upgrade to a better transport.
|
|
35
33
|
*
|
|
36
34
|
* @example
|
|
37
|
-
* import {
|
|
35
|
+
* import { Socket } from "engine.io-client";
|
|
38
36
|
*
|
|
39
|
-
* const socket = new
|
|
40
|
-
* transports: [WebSocket]
|
|
41
|
-
* });
|
|
37
|
+
* const socket = new Socket();
|
|
42
38
|
*
|
|
43
39
|
* socket.on("open", () => {
|
|
44
40
|
* socket.send("hello");
|
|
45
41
|
* });
|
|
46
42
|
*
|
|
47
|
-
* @see SocketWithUpgrade
|
|
48
|
-
* @see Socket
|
|
49
43
|
*/
|
|
50
|
-
class
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
* @param {String|Object} uri - uri or options
|
|
55
|
-
* @param {Object} opts - options
|
|
56
|
-
*/
|
|
57
|
-
constructor(uri, opts) {
|
|
44
|
+
class Socket extends component_emitter_1.Emitter {
|
|
45
|
+
constructor(uri, opts = {}) {
|
|
46
|
+
var _a, _b;
|
|
58
47
|
super();
|
|
59
48
|
this.binaryType = globals_node_js_1.defaultBinaryType;
|
|
60
49
|
this.writeBuffer = [];
|
|
61
50
|
this._prevBufferLen = 0;
|
|
51
|
+
this._upgrades = [];
|
|
62
52
|
this._pingInterval = -1;
|
|
63
53
|
this._pingTimeout = -1;
|
|
64
54
|
this._maxPayload = -1;
|
|
@@ -102,13 +92,26 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
102
92
|
: this.secure
|
|
103
93
|
? "443"
|
|
104
94
|
: "80");
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
95
|
+
if (opts.transportImplementations && opts.transports) {
|
|
96
|
+
throw new Error("specifying both 'transportImplementations' and 'transports' options is not supported");
|
|
97
|
+
}
|
|
98
|
+
if (opts.transportImplementations ||
|
|
99
|
+
(((_a = opts.transports) === null || _a === void 0 ? void 0 : _a.length) && typeof opts.transports[0] === "function")) {
|
|
100
|
+
// 'transports' option as an array of transport implementations is kept for backward compatibility
|
|
101
|
+
this.transports = [];
|
|
102
|
+
this._transportsByName = Object.create(null);
|
|
103
|
+
((_b = opts.transportImplementations) !== null && _b !== void 0 ? _b : opts.transports).forEach((t) => {
|
|
104
|
+
const transportName = t.prototype.name;
|
|
105
|
+
this.transports.push(transportName);
|
|
106
|
+
this._transportsByName[transportName] = t;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.transports = opts.transports
|
|
111
|
+
? [...opts.transports]
|
|
112
|
+
: ["polling", "websocket", "webtransport"];
|
|
113
|
+
this._transportsByName = index_js_1.transports;
|
|
114
|
+
}
|
|
112
115
|
this.opts = Object.assign({
|
|
113
116
|
path: "/engine.io",
|
|
114
117
|
agent: false,
|
|
@@ -200,7 +203,7 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
200
203
|
return;
|
|
201
204
|
}
|
|
202
205
|
const transportName = this.opts.rememberUpgrade &&
|
|
203
|
-
|
|
206
|
+
Socket.priorWebsocketSuccess &&
|
|
204
207
|
this.transports.indexOf("websocket") !== -1
|
|
205
208
|
? "websocket"
|
|
206
209
|
: this.transports[0];
|
|
@@ -229,6 +232,115 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
229
232
|
.on("error", this._onError.bind(this))
|
|
230
233
|
.on("close", (reason) => this._onClose("transport close", reason));
|
|
231
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Probes a transport.
|
|
237
|
+
*
|
|
238
|
+
* @param {String} name - transport name
|
|
239
|
+
* @private
|
|
240
|
+
*/
|
|
241
|
+
_probe(name) {
|
|
242
|
+
debug('probing transport "%s"', name);
|
|
243
|
+
let transport = this.createTransport(name);
|
|
244
|
+
let failed = false;
|
|
245
|
+
Socket.priorWebsocketSuccess = false;
|
|
246
|
+
const onTransportOpen = () => {
|
|
247
|
+
if (failed)
|
|
248
|
+
return;
|
|
249
|
+
debug('probe transport "%s" opened', name);
|
|
250
|
+
transport.send([{ type: "ping", data: "probe" }]);
|
|
251
|
+
transport.once("packet", (msg) => {
|
|
252
|
+
if (failed)
|
|
253
|
+
return;
|
|
254
|
+
if ("pong" === msg.type && "probe" === msg.data) {
|
|
255
|
+
debug('probe transport "%s" pong', name);
|
|
256
|
+
this.upgrading = true;
|
|
257
|
+
this.emitReserved("upgrading", transport);
|
|
258
|
+
if (!transport)
|
|
259
|
+
return;
|
|
260
|
+
Socket.priorWebsocketSuccess = "websocket" === transport.name;
|
|
261
|
+
debug('pausing current transport "%s"', this.transport.name);
|
|
262
|
+
this.transport.pause(() => {
|
|
263
|
+
if (failed)
|
|
264
|
+
return;
|
|
265
|
+
if ("closed" === this.readyState)
|
|
266
|
+
return;
|
|
267
|
+
debug("changing transport and sending upgrade packet");
|
|
268
|
+
cleanup();
|
|
269
|
+
this.setTransport(transport);
|
|
270
|
+
transport.send([{ type: "upgrade" }]);
|
|
271
|
+
this.emitReserved("upgrade", transport);
|
|
272
|
+
transport = null;
|
|
273
|
+
this.upgrading = false;
|
|
274
|
+
this.flush();
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
debug('probe transport "%s" failed', name);
|
|
279
|
+
const err = new Error("probe error");
|
|
280
|
+
// @ts-ignore
|
|
281
|
+
err.transport = transport.name;
|
|
282
|
+
this.emitReserved("upgradeError", err);
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
};
|
|
286
|
+
function freezeTransport() {
|
|
287
|
+
if (failed)
|
|
288
|
+
return;
|
|
289
|
+
// Any callback called by transport should be ignored since now
|
|
290
|
+
failed = true;
|
|
291
|
+
cleanup();
|
|
292
|
+
transport.close();
|
|
293
|
+
transport = null;
|
|
294
|
+
}
|
|
295
|
+
// Handle any error that happens while probing
|
|
296
|
+
const onerror = (err) => {
|
|
297
|
+
const error = new Error("probe error: " + err);
|
|
298
|
+
// @ts-ignore
|
|
299
|
+
error.transport = transport.name;
|
|
300
|
+
freezeTransport();
|
|
301
|
+
debug('probe transport "%s" failed because of error: %s', name, err);
|
|
302
|
+
this.emitReserved("upgradeError", error);
|
|
303
|
+
};
|
|
304
|
+
function onTransportClose() {
|
|
305
|
+
onerror("transport closed");
|
|
306
|
+
}
|
|
307
|
+
// When the socket is closed while we're probing
|
|
308
|
+
function onclose() {
|
|
309
|
+
onerror("socket closed");
|
|
310
|
+
}
|
|
311
|
+
// When the socket is upgraded while we're probing
|
|
312
|
+
function onupgrade(to) {
|
|
313
|
+
if (transport && to.name !== transport.name) {
|
|
314
|
+
debug('"%s" works - aborting "%s"', to.name, transport.name);
|
|
315
|
+
freezeTransport();
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
// Remove all listeners on the transport and on self
|
|
319
|
+
const cleanup = () => {
|
|
320
|
+
transport.removeListener("open", onTransportOpen);
|
|
321
|
+
transport.removeListener("error", onerror);
|
|
322
|
+
transport.removeListener("close", onTransportClose);
|
|
323
|
+
this.off("close", onclose);
|
|
324
|
+
this.off("upgrading", onupgrade);
|
|
325
|
+
};
|
|
326
|
+
transport.once("open", onTransportOpen);
|
|
327
|
+
transport.once("error", onerror);
|
|
328
|
+
transport.once("close", onTransportClose);
|
|
329
|
+
this.once("close", onclose);
|
|
330
|
+
this.once("upgrading", onupgrade);
|
|
331
|
+
if (this._upgrades.indexOf("webtransport") !== -1 &&
|
|
332
|
+
name !== "webtransport") {
|
|
333
|
+
// favor WebTransport
|
|
334
|
+
this.setTimeoutFn(() => {
|
|
335
|
+
if (!failed) {
|
|
336
|
+
transport.open();
|
|
337
|
+
}
|
|
338
|
+
}, 200);
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
transport.open();
|
|
342
|
+
}
|
|
343
|
+
}
|
|
232
344
|
/**
|
|
233
345
|
* Called when connection is deemed open.
|
|
234
346
|
*
|
|
@@ -237,10 +349,15 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
237
349
|
onOpen() {
|
|
238
350
|
debug("socket open");
|
|
239
351
|
this.readyState = "open";
|
|
240
|
-
|
|
241
|
-
"websocket" === this.transport.name;
|
|
352
|
+
Socket.priorWebsocketSuccess = "websocket" === this.transport.name;
|
|
242
353
|
this.emitReserved("open");
|
|
243
354
|
this.flush();
|
|
355
|
+
if ("open" === this.readyState && this.opts.upgrade) {
|
|
356
|
+
debug("starting upgrade probes");
|
|
357
|
+
for (let i = 0; i < this._upgrades.length; i++) {
|
|
358
|
+
this._probe(this._upgrades[i]);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
244
361
|
}
|
|
245
362
|
/**
|
|
246
363
|
* Handles a packet.
|
|
@@ -291,6 +408,7 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
291
408
|
this.emitReserved("handshake", data);
|
|
292
409
|
this.id = data.sid;
|
|
293
410
|
this.transport.query.sid = data.sid;
|
|
411
|
+
this._upgrades = this._filterUpgrades(data.upgrades);
|
|
294
412
|
this._pingInterval = data.pingInterval;
|
|
295
413
|
this._pingTimeout = data.pingTimeout;
|
|
296
414
|
this._maxPayload = data.maxPayload;
|
|
@@ -430,7 +548,7 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
430
548
|
/**
|
|
431
549
|
* Sends a packet.
|
|
432
550
|
*
|
|
433
|
-
* @param {String} type
|
|
551
|
+
* @param {String} type - packet type.
|
|
434
552
|
* @param {String} data.
|
|
435
553
|
* @param {Object} options.
|
|
436
554
|
* @param {Function} fn - callback function.
|
|
@@ -508,7 +626,7 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
508
626
|
*/
|
|
509
627
|
_onError(err) {
|
|
510
628
|
debug("socket error %j", err);
|
|
511
|
-
|
|
629
|
+
Socket.priorWebsocketSuccess = false;
|
|
512
630
|
if (this.opts.tryAllTransports &&
|
|
513
631
|
this.transports.length > 1 &&
|
|
514
632
|
this.readyState === "opening") {
|
|
@@ -561,160 +679,6 @@ class SocketWithoutUpgrade extends component_emitter_1.Emitter {
|
|
|
561
679
|
this._prevBufferLen = 0;
|
|
562
680
|
}
|
|
563
681
|
}
|
|
564
|
-
}
|
|
565
|
-
exports.SocketWithoutUpgrade = SocketWithoutUpgrade;
|
|
566
|
-
SocketWithoutUpgrade.protocol = engine_io_parser_1.protocol;
|
|
567
|
-
/**
|
|
568
|
-
* This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established
|
|
569
|
-
* with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.
|
|
570
|
-
*
|
|
571
|
-
* This class comes with an upgrade mechanism, which means that once the connection is established with the first
|
|
572
|
-
* low-level transport, it will try to upgrade to a better transport.
|
|
573
|
-
*
|
|
574
|
-
* In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.
|
|
575
|
-
*
|
|
576
|
-
* @example
|
|
577
|
-
* import { SocketWithUpgrade, WebSocket } from "engine.io-client";
|
|
578
|
-
*
|
|
579
|
-
* const socket = new SocketWithUpgrade({
|
|
580
|
-
* transports: [WebSocket]
|
|
581
|
-
* });
|
|
582
|
-
*
|
|
583
|
-
* socket.on("open", () => {
|
|
584
|
-
* socket.send("hello");
|
|
585
|
-
* });
|
|
586
|
-
*
|
|
587
|
-
* @see SocketWithoutUpgrade
|
|
588
|
-
* @see Socket
|
|
589
|
-
*/
|
|
590
|
-
class SocketWithUpgrade extends SocketWithoutUpgrade {
|
|
591
|
-
constructor() {
|
|
592
|
-
super(...arguments);
|
|
593
|
-
this._upgrades = [];
|
|
594
|
-
}
|
|
595
|
-
onOpen() {
|
|
596
|
-
super.onOpen();
|
|
597
|
-
if ("open" === this.readyState && this.opts.upgrade) {
|
|
598
|
-
debug("starting upgrade probes");
|
|
599
|
-
for (let i = 0; i < this._upgrades.length; i++) {
|
|
600
|
-
this._probe(this._upgrades[i]);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Probes a transport.
|
|
606
|
-
*
|
|
607
|
-
* @param {String} name - transport name
|
|
608
|
-
* @private
|
|
609
|
-
*/
|
|
610
|
-
_probe(name) {
|
|
611
|
-
debug('probing transport "%s"', name);
|
|
612
|
-
let transport = this.createTransport(name);
|
|
613
|
-
let failed = false;
|
|
614
|
-
SocketWithoutUpgrade.priorWebsocketSuccess = false;
|
|
615
|
-
const onTransportOpen = () => {
|
|
616
|
-
if (failed)
|
|
617
|
-
return;
|
|
618
|
-
debug('probe transport "%s" opened', name);
|
|
619
|
-
transport.send([{ type: "ping", data: "probe" }]);
|
|
620
|
-
transport.once("packet", (msg) => {
|
|
621
|
-
if (failed)
|
|
622
|
-
return;
|
|
623
|
-
if ("pong" === msg.type && "probe" === msg.data) {
|
|
624
|
-
debug('probe transport "%s" pong', name);
|
|
625
|
-
this.upgrading = true;
|
|
626
|
-
this.emitReserved("upgrading", transport);
|
|
627
|
-
if (!transport)
|
|
628
|
-
return;
|
|
629
|
-
SocketWithoutUpgrade.priorWebsocketSuccess =
|
|
630
|
-
"websocket" === transport.name;
|
|
631
|
-
debug('pausing current transport "%s"', this.transport.name);
|
|
632
|
-
this.transport.pause(() => {
|
|
633
|
-
if (failed)
|
|
634
|
-
return;
|
|
635
|
-
if ("closed" === this.readyState)
|
|
636
|
-
return;
|
|
637
|
-
debug("changing transport and sending upgrade packet");
|
|
638
|
-
cleanup();
|
|
639
|
-
this.setTransport(transport);
|
|
640
|
-
transport.send([{ type: "upgrade" }]);
|
|
641
|
-
this.emitReserved("upgrade", transport);
|
|
642
|
-
transport = null;
|
|
643
|
-
this.upgrading = false;
|
|
644
|
-
this.flush();
|
|
645
|
-
});
|
|
646
|
-
}
|
|
647
|
-
else {
|
|
648
|
-
debug('probe transport "%s" failed', name);
|
|
649
|
-
const err = new Error("probe error");
|
|
650
|
-
// @ts-ignore
|
|
651
|
-
err.transport = transport.name;
|
|
652
|
-
this.emitReserved("upgradeError", err);
|
|
653
|
-
}
|
|
654
|
-
});
|
|
655
|
-
};
|
|
656
|
-
function freezeTransport() {
|
|
657
|
-
if (failed)
|
|
658
|
-
return;
|
|
659
|
-
// Any callback called by transport should be ignored since now
|
|
660
|
-
failed = true;
|
|
661
|
-
cleanup();
|
|
662
|
-
transport.close();
|
|
663
|
-
transport = null;
|
|
664
|
-
}
|
|
665
|
-
// Handle any error that happens while probing
|
|
666
|
-
const onerror = (err) => {
|
|
667
|
-
const error = new Error("probe error: " + err);
|
|
668
|
-
// @ts-ignore
|
|
669
|
-
error.transport = transport.name;
|
|
670
|
-
freezeTransport();
|
|
671
|
-
debug('probe transport "%s" failed because of error: %s', name, err);
|
|
672
|
-
this.emitReserved("upgradeError", error);
|
|
673
|
-
};
|
|
674
|
-
function onTransportClose() {
|
|
675
|
-
onerror("transport closed");
|
|
676
|
-
}
|
|
677
|
-
// When the socket is closed while we're probing
|
|
678
|
-
function onclose() {
|
|
679
|
-
onerror("socket closed");
|
|
680
|
-
}
|
|
681
|
-
// When the socket is upgraded while we're probing
|
|
682
|
-
function onupgrade(to) {
|
|
683
|
-
if (transport && to.name !== transport.name) {
|
|
684
|
-
debug('"%s" works - aborting "%s"', to.name, transport.name);
|
|
685
|
-
freezeTransport();
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
// Remove all listeners on the transport and on self
|
|
689
|
-
const cleanup = () => {
|
|
690
|
-
transport.removeListener("open", onTransportOpen);
|
|
691
|
-
transport.removeListener("error", onerror);
|
|
692
|
-
transport.removeListener("close", onTransportClose);
|
|
693
|
-
this.off("close", onclose);
|
|
694
|
-
this.off("upgrading", onupgrade);
|
|
695
|
-
};
|
|
696
|
-
transport.once("open", onTransportOpen);
|
|
697
|
-
transport.once("error", onerror);
|
|
698
|
-
transport.once("close", onTransportClose);
|
|
699
|
-
this.once("close", onclose);
|
|
700
|
-
this.once("upgrading", onupgrade);
|
|
701
|
-
if (this._upgrades.indexOf("webtransport") !== -1 &&
|
|
702
|
-
name !== "webtransport") {
|
|
703
|
-
// favor WebTransport
|
|
704
|
-
this.setTimeoutFn(() => {
|
|
705
|
-
if (!failed) {
|
|
706
|
-
transport.open();
|
|
707
|
-
}
|
|
708
|
-
}, 200);
|
|
709
|
-
}
|
|
710
|
-
else {
|
|
711
|
-
transport.open();
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
onHandshake(data) {
|
|
715
|
-
this._upgrades = this._filterUpgrades(data.upgrades);
|
|
716
|
-
super.onHandshake(data);
|
|
717
|
-
}
|
|
718
682
|
/**
|
|
719
683
|
* Filters upgrades, returning only those matching client transports.
|
|
720
684
|
*
|
|
@@ -730,36 +694,5 @@ class SocketWithUpgrade extends SocketWithoutUpgrade {
|
|
|
730
694
|
return filteredUpgrades;
|
|
731
695
|
}
|
|
732
696
|
}
|
|
733
|
-
exports.SocketWithUpgrade = SocketWithUpgrade;
|
|
734
|
-
/**
|
|
735
|
-
* This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established
|
|
736
|
-
* with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.
|
|
737
|
-
*
|
|
738
|
-
* This class comes with an upgrade mechanism, which means that once the connection is established with the first
|
|
739
|
-
* low-level transport, it will try to upgrade to a better transport.
|
|
740
|
-
*
|
|
741
|
-
* @example
|
|
742
|
-
* import { Socket } from "engine.io-client";
|
|
743
|
-
*
|
|
744
|
-
* const socket = new Socket();
|
|
745
|
-
*
|
|
746
|
-
* socket.on("open", () => {
|
|
747
|
-
* socket.send("hello");
|
|
748
|
-
* });
|
|
749
|
-
*
|
|
750
|
-
* @see SocketWithoutUpgrade
|
|
751
|
-
* @see SocketWithUpgrade
|
|
752
|
-
*/
|
|
753
|
-
class Socket extends SocketWithUpgrade {
|
|
754
|
-
constructor(uri, opts = {}) {
|
|
755
|
-
const o = typeof uri === "object" ? uri : opts;
|
|
756
|
-
if (!o.transports ||
|
|
757
|
-
(o.transports && typeof o.transports[0] === "string")) {
|
|
758
|
-
o.transports = (o.transports || ["polling", "websocket", "webtransport"])
|
|
759
|
-
.map((transportName) => index_js_1.transports[transportName])
|
|
760
|
-
.filter((t) => !!t);
|
|
761
|
-
}
|
|
762
|
-
super(uri, o);
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
697
|
exports.Socket = Socket;
|
|
698
|
+
Socket.protocol = engine_io_parser_1.protocol;
|
|
@@ -11,7 +11,7 @@ export interface CloseDetails {
|
|
|
11
11
|
description: string;
|
|
12
12
|
context?: unknown;
|
|
13
13
|
}
|
|
14
|
-
interface TransportReservedEvents {
|
|
14
|
+
export interface TransportReservedEvents {
|
|
15
15
|
open: () => void;
|
|
16
16
|
error: (err: TransportError) => void;
|
|
17
17
|
packet: (packet: Packet) => void;
|
|
@@ -22,11 +22,11 @@ export declare abstract class BaseXHR extends Polling {
|
|
|
22
22
|
/**
|
|
23
23
|
* Sends data.
|
|
24
24
|
*
|
|
25
|
-
* @param {String} data to send.
|
|
26
|
-
* @param {Function} called upon flush.
|
|
25
|
+
* @param {String} data - data to send.
|
|
26
|
+
* @param {Function} fn - called upon flush.
|
|
27
27
|
* @private
|
|
28
28
|
*/
|
|
29
|
-
doWrite(data:
|
|
29
|
+
doWrite(data: string, fn: () => void): void;
|
|
30
30
|
/**
|
|
31
31
|
* Starts a poll cycle.
|
|
32
32
|
*
|
|
@@ -62,7 +62,7 @@ export declare class Request extends Emitter<Record<never, never>, Record<never,
|
|
|
62
62
|
* @param {Object} options
|
|
63
63
|
* @package
|
|
64
64
|
*/
|
|
65
|
-
constructor(createRequest: (opts: RequestOptions) =>
|
|
65
|
+
constructor(createRequest: (opts: RequestOptions) => any, uri: string, opts: RequestOptions);
|
|
66
66
|
/**
|
|
67
67
|
* Creates the XHR object and sends the request.
|
|
68
68
|
*
|
|
@@ -37,8 +37,8 @@ class BaseXHR extends polling_js_1.Polling {
|
|
|
37
37
|
/**
|
|
38
38
|
* Sends data.
|
|
39
39
|
*
|
|
40
|
-
* @param {String} data to send.
|
|
41
|
-
* @param {Function} called upon flush.
|
|
40
|
+
* @param {String} data - data to send.
|
|
41
|
+
* @param {Function} fn - called upon flush.
|
|
42
42
|
* @private
|
|
43
43
|
*/
|
|
44
44
|
doWrite(data, fn) {
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.XHR = void 0;
|
|
27
37
|
const XMLHttpRequestModule = __importStar(require("xmlhttprequest-ssl"));
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.WS = void 0;
|
|
27
37
|
const ws = __importStar(require("ws"));
|
|
@@ -2,7 +2,7 @@ export declare const nextTick: (callback: Function, ...args: any[]) => void;
|
|
|
2
2
|
export declare const globalThisShim: typeof globalThis;
|
|
3
3
|
export declare const defaultBinaryType = "nodebuffer";
|
|
4
4
|
export declare function createCookieJar(): CookieJar;
|
|
5
|
-
interface Cookie {
|
|
5
|
+
export interface Cookie {
|
|
6
6
|
name: string;
|
|
7
7
|
value: string;
|
|
8
8
|
expires?: Date;
|
|
@@ -14,8 +14,7 @@ export declare function parse(setCookieString: string): Cookie;
|
|
|
14
14
|
export declare class CookieJar {
|
|
15
15
|
private _cookies;
|
|
16
16
|
parseCookies(values: string[]): void;
|
|
17
|
-
get cookies():
|
|
17
|
+
get cookies(): MapIterator<[string, Cookie]>;
|
|
18
18
|
addCookies(xhr: any): void;
|
|
19
19
|
appendCookies(headers: Headers): void;
|
|
20
20
|
}
|
|
21
|
-
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Socket } from "./socket.js";
|
|
2
2
|
export { Socket };
|
|
3
|
-
export { SocketOptions,
|
|
3
|
+
export { HandshakeData, SocketOptions, SocketReservedEvents, WriteOptions, TransportCtor, TransportName, } from "./socket.js";
|
|
4
4
|
export declare const protocol: number;
|
|
5
|
-
export { Transport, TransportError } from "./transport.js";
|
|
5
|
+
export { Transport, TransportError, TransportReservedEvents, } from "./transport.js";
|
|
6
6
|
export { transports } from "./transports/index.js";
|
|
7
7
|
export { installTimerFunctions } from "./util.js";
|
|
8
8
|
export { parse } from "./contrib/parseuri.js";
|
|
9
|
-
export { nextTick } from "./globals.node.js";
|
|
9
|
+
export { Cookie, nextTick } from "./globals.node.js";
|
|
10
10
|
export { Fetch } from "./transports/polling-fetch.js";
|
|
11
11
|
export { XHR as NodeXHR } from "./transports/polling-xhr.node.js";
|
|
12
12
|
export { XHR } from "./transports/polling-xhr.js";
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Socket } from "./socket.js";
|
|
2
2
|
export { Socket };
|
|
3
|
-
export { SocketWithoutUpgrade, SocketWithUpgrade, } from "./socket.js";
|
|
4
3
|
export const protocol = Socket.protocol;
|
|
5
|
-
export { Transport, TransportError } from "./transport.js";
|
|
4
|
+
export { Transport, TransportError, } from "./transport.js";
|
|
6
5
|
export { transports } from "./transports/index.js";
|
|
7
6
|
export { installTimerFunctions } from "./util.js";
|
|
8
7
|
export { parse } from "./contrib/parseuri.js";
|