qws-browser 1.1.1 → 2.1.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/README.md +21 -0
- package/dist/browser/messageencode.d.ts +2 -1
- package/dist/browser/messageencode.d.ts.map +1 -0
- package/dist/browser/messageencode.js +32 -25
- package/dist/browser/messageencode.js.map +1 -0
- package/dist/browser/wrappedws.d.ts +25 -2
- package/dist/browser/wrappedws.d.ts.map +1 -0
- package/dist/browser/wrappedws.js +57 -20
- package/dist/browser/wrappedws.js.map +1 -0
- package/dist/common/discriminator.d.ts +2 -1
- package/dist/common/discriminator.d.ts.map +1 -0
- package/dist/common/discriminator.js +2 -2
- package/dist/common/discriminator.js.map +1 -0
- package/dist/common/logger.d.ts +11 -10
- package/dist/common/logger.d.ts.map +1 -0
- package/dist/common/logger.js +8 -13
- package/dist/common/logger.js.map +1 -0
- package/dist/common/message.d.ts +31 -27
- package/dist/common/message.d.ts.map +1 -0
- package/dist/common/message.js +2 -2
- package/dist/common/message.js.map +1 -0
- package/dist/common/queryparser.d.ts +1 -4
- package/dist/common/queryparser.d.ts.map +1 -0
- package/dist/common/queryparser.js +6 -82
- package/dist/common/queryparser.js.map +1 -0
- package/dist/common/queue.d.ts +4 -3
- package/dist/common/queue.d.ts.map +1 -0
- package/dist/common/queue.js +10 -12
- package/dist/common/queue.js.map +1 -0
- package/dist/common/queuews.d.ts +41 -12
- package/dist/common/queuews.d.ts.map +1 -0
- package/dist/common/queuews.js +153 -83
- package/dist/common/queuews.js.map +1 -0
- package/dist/common/router.d.ts +9 -0
- package/dist/common/router.d.ts.map +1 -0
- package/dist/common/router.js +8 -0
- package/dist/common/router.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -25
- package/dist/index.js.map +1 -0
- package/package.json +29 -30
package/dist/common/queuews.js
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const route_recognizer_1 = __importDefault(require("route-recognizer"));
|
|
8
|
-
const queue_1 = __importDefault(require("./queue"));
|
|
9
|
-
const wrappedws_1 = __importDefault(require("../browser/wrappedws"));
|
|
10
|
-
const queryparser_1 = require("./queryparser");
|
|
11
|
-
const logger_1 = __importDefault(require("./logger"));
|
|
1
|
+
import autoBind from 'auto-bind';
|
|
2
|
+
import RouteRecognizer from './router.js';
|
|
3
|
+
import WebSocketMessageQueue from './queue.js';
|
|
4
|
+
import WrappedWebSocket from '../browser/wrappedws.js';
|
|
5
|
+
import { addQueryParamsToUrl } from './queryparser.js';
|
|
6
|
+
import logger from './logger.js';
|
|
12
7
|
const decodeErrorMessage = (event) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (event) {
|
|
17
|
-
return event.toString();
|
|
8
|
+
const { message } = (event ?? {});
|
|
9
|
+
if (message) {
|
|
10
|
+
return message;
|
|
18
11
|
}
|
|
19
|
-
|
|
12
|
+
// best-effort description of arbitrary error values
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
14
|
+
return event ? String(event) : 'Unknown error';
|
|
20
15
|
};
|
|
21
16
|
const defaultOpts = {
|
|
22
17
|
extraConnectArgs: {},
|
|
23
18
|
reconnect: true,
|
|
24
19
|
reconnectNumTries: 12,
|
|
25
20
|
reconnectIntervalMillis: 5000,
|
|
21
|
+
heartbeatIntervalMillis: 25_000,
|
|
26
22
|
};
|
|
27
23
|
/**
|
|
28
24
|
* Actual queued WebSocket
|
|
29
25
|
*/
|
|
30
|
-
class QWebSocket {
|
|
26
|
+
export default class QWebSocket {
|
|
31
27
|
constructor(wsOrUrl, options = {}) {
|
|
32
28
|
this.wsOrUrl = wsOrUrl;
|
|
33
29
|
this.options = {
|
|
@@ -36,15 +32,18 @@ class QWebSocket {
|
|
|
36
32
|
};
|
|
37
33
|
this.name = options.name || 'websocket';
|
|
38
34
|
this.callbacks = {
|
|
39
|
-
onBin: new
|
|
40
|
-
onJson: new
|
|
35
|
+
onBin: new RouteRecognizer(),
|
|
36
|
+
onJson: new RouteRecognizer(),
|
|
41
37
|
};
|
|
42
|
-
this.queue = new
|
|
38
|
+
this.queue = new WebSocketMessageQueue();
|
|
43
39
|
this.reconnectionAttempts = 0;
|
|
44
40
|
this.needed = true;
|
|
45
|
-
this.wws = null;
|
|
46
41
|
this.ready = false;
|
|
47
|
-
|
|
42
|
+
this.closed = false;
|
|
43
|
+
this.heartbeatSentAt = 0;
|
|
44
|
+
this.heartbeatConfirmed = false;
|
|
45
|
+
this.pendingAcks = new Map();
|
|
46
|
+
autoBind(this);
|
|
48
47
|
this.setUp();
|
|
49
48
|
}
|
|
50
49
|
/**
|
|
@@ -82,7 +81,6 @@ class QWebSocket {
|
|
|
82
81
|
*/
|
|
83
82
|
// eslint-disable-next-line max-lines-per-function
|
|
84
83
|
setUp() {
|
|
85
|
-
var _a, _b, _c, _d;
|
|
86
84
|
if (this.wws && this.wws.readyState <= 1) {
|
|
87
85
|
return;
|
|
88
86
|
}
|
|
@@ -90,49 +88,53 @@ class QWebSocket {
|
|
|
90
88
|
const { reconnect, reconnectNumTries, reconnectIntervalMillis, extraConnectArgs } = this.options;
|
|
91
89
|
// timeout for too many reconnection attempts
|
|
92
90
|
if (reconnect && this.reconnectionAttempts > reconnectNumTries) {
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
logger.error(`${this.name}: Connection timed out, should re-connect entirely`);
|
|
92
|
+
void this.callbacks.onError?.(`WS connection timeout, max tries (${reconnectNumTries}) exceeded`);
|
|
93
|
+
this.rejectPendingAcks();
|
|
95
94
|
return;
|
|
96
95
|
}
|
|
97
96
|
/**
|
|
98
97
|
* Actual WebSocket opening
|
|
99
98
|
*/
|
|
100
|
-
if (this.wsOrUrl instanceof WebSocket ||
|
|
99
|
+
if (this.wsOrUrl instanceof WebSocket || this.wsOrUrl?.constructor?.name === 'WebSocket') {
|
|
101
100
|
const ws = this.wsOrUrl;
|
|
102
|
-
this.wws = new
|
|
101
|
+
this.wws = new WrappedWebSocket(ws);
|
|
103
102
|
// TODO what if this is a reconnect? No reconnection was attempted, it's just the old reference
|
|
104
103
|
}
|
|
105
104
|
else {
|
|
106
|
-
const connectUrl =
|
|
105
|
+
const connectUrl = addQueryParamsToUrl(this.wsOrUrl, {
|
|
107
106
|
...extraConnectArgs,
|
|
108
107
|
idx: this.queue.ackIdx,
|
|
109
108
|
});
|
|
110
|
-
this.wws = new
|
|
109
|
+
this.wws = new WrappedWebSocket(connectUrl);
|
|
111
110
|
}
|
|
111
|
+
this.wws.onPing(() => {
|
|
112
|
+
this.wws.send({ headers: { type: 'pong' } });
|
|
113
|
+
});
|
|
114
|
+
this.wws.onPong(() => {
|
|
115
|
+
// peer knows qws heartbeats, missing answers may now be treated as a dead connection
|
|
116
|
+
this.heartbeatConfirmed = true;
|
|
117
|
+
});
|
|
112
118
|
this.wws.onWsError(async (event) => {
|
|
113
|
-
var _a, _b, _c, _d;
|
|
114
119
|
// ws error will prompt reconnection which can time out, don't reject instantly
|
|
115
120
|
const message = decodeErrorMessage(event);
|
|
116
|
-
|
|
121
|
+
logger.error(`${this.name}: WS error occurred: ${message}`);
|
|
117
122
|
if (reconnect) {
|
|
118
|
-
await
|
|
123
|
+
await this.callbacks.onErroneousDisconnect?.(message);
|
|
119
124
|
}
|
|
120
125
|
else {
|
|
121
|
-
await
|
|
126
|
+
await this.callbacks.onError?.(message);
|
|
122
127
|
}
|
|
123
128
|
});
|
|
124
129
|
this.wws.onWsOpen(async () => {
|
|
125
|
-
var _a, _b;
|
|
126
130
|
this.reconnectionAttempts = 0;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
logger_1.default.info(`${this.name}: Connection established`);
|
|
132
|
-
}
|
|
131
|
+
this.startHeartbeat();
|
|
132
|
+
logger.info(reconnect
|
|
133
|
+
? `${this.name}: Connection established after ${this.reconnectionAttempts} tries`
|
|
134
|
+
: `${this.name}: Connection established`);
|
|
133
135
|
try {
|
|
134
136
|
// call post-connect method, this may give previously acked messages
|
|
135
|
-
const readyIdx = await
|
|
137
|
+
const readyIdx = await this.callbacks.onConnect?.();
|
|
136
138
|
// send back readiness ack
|
|
137
139
|
this.wws.send({
|
|
138
140
|
headers: {
|
|
@@ -141,24 +143,23 @@ class QWebSocket {
|
|
|
141
143
|
},
|
|
142
144
|
});
|
|
143
145
|
}
|
|
144
|
-
catch (
|
|
146
|
+
catch (error) {
|
|
145
147
|
// error occurred during initialization phase, send error right away, no "ready" message
|
|
146
148
|
this.wws.send({
|
|
147
149
|
headers: {
|
|
148
150
|
type: 'err',
|
|
149
|
-
error: decodeErrorMessage(
|
|
151
|
+
error: decodeErrorMessage(error),
|
|
150
152
|
},
|
|
151
153
|
});
|
|
152
154
|
}
|
|
153
155
|
});
|
|
154
156
|
this.wws.onReady(async (message) => {
|
|
155
|
-
var _a, _b;
|
|
156
157
|
// ready to send messages from given message index
|
|
157
158
|
const { readyIdx } = message.headers;
|
|
158
|
-
|
|
159
|
+
logger.info(`${this.name}: Socket ready to send${readyIdx ? `from chunk ${readyIdx}` : ''}`);
|
|
159
160
|
// if server sent chunk index to resume from, move queue cursors appropriately
|
|
160
161
|
if (readyIdx !== undefined) {
|
|
161
|
-
this.
|
|
162
|
+
this.acknowledge(readyIdx - 1);
|
|
162
163
|
this.queue.revert(readyIdx);
|
|
163
164
|
}
|
|
164
165
|
this.ready = true;
|
|
@@ -166,14 +167,14 @@ class QWebSocket {
|
|
|
166
167
|
this.flush();
|
|
167
168
|
try {
|
|
168
169
|
// call post-ready method
|
|
169
|
-
await
|
|
170
|
+
await this.callbacks.onReady?.(message.headers);
|
|
170
171
|
}
|
|
171
|
-
catch (
|
|
172
|
+
catch (error) {
|
|
172
173
|
// error occurred during initialization phase, send error right away, no "ready" message
|
|
173
174
|
this.wws.send({
|
|
174
175
|
headers: {
|
|
175
176
|
type: 'err',
|
|
176
|
-
error: decodeErrorMessage(
|
|
177
|
+
error: decodeErrorMessage(error),
|
|
177
178
|
},
|
|
178
179
|
});
|
|
179
180
|
}
|
|
@@ -184,10 +185,11 @@ class QWebSocket {
|
|
|
184
185
|
try {
|
|
185
186
|
// check callback
|
|
186
187
|
const routeResults = this.callbacks.onBin.recognize(headers.route || '');
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
const
|
|
190
|
-
|
|
188
|
+
const route = routeResults?.[0];
|
|
189
|
+
if (route) {
|
|
190
|
+
const handler = route.handler;
|
|
191
|
+
const params = route.params;
|
|
192
|
+
await handler?.(body, headers, params);
|
|
191
193
|
}
|
|
192
194
|
// send back acknowledgment
|
|
193
195
|
this.wws.send({
|
|
@@ -197,12 +199,12 @@ class QWebSocket {
|
|
|
197
199
|
},
|
|
198
200
|
});
|
|
199
201
|
}
|
|
200
|
-
catch (
|
|
202
|
+
catch (error) {
|
|
201
203
|
// error occurred during processing binary message, send error
|
|
202
204
|
this.wws.send({
|
|
203
205
|
headers: {
|
|
204
206
|
type: 'err',
|
|
205
|
-
error: decodeErrorMessage(
|
|
207
|
+
error: decodeErrorMessage(error),
|
|
206
208
|
},
|
|
207
209
|
});
|
|
208
210
|
}
|
|
@@ -213,10 +215,11 @@ class QWebSocket {
|
|
|
213
215
|
try {
|
|
214
216
|
// check callback
|
|
215
217
|
const routeResults = this.callbacks.onJson.recognize(headers.route || '');
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
218
|
+
const route = routeResults?.[0];
|
|
219
|
+
if (route) {
|
|
220
|
+
const handler = route.handler;
|
|
221
|
+
const params = route.params;
|
|
222
|
+
await handler?.(body, headers, params);
|
|
220
223
|
}
|
|
221
224
|
// send back acknowledgment
|
|
222
225
|
this.wws.send({
|
|
@@ -226,57 +229,124 @@ class QWebSocket {
|
|
|
226
229
|
},
|
|
227
230
|
});
|
|
228
231
|
}
|
|
229
|
-
catch (
|
|
232
|
+
catch (error) {
|
|
230
233
|
// error occurred during processing json message, send error
|
|
231
234
|
this.wws.send({
|
|
232
235
|
headers: {
|
|
233
236
|
type: 'err',
|
|
234
|
-
error: decodeErrorMessage(
|
|
237
|
+
error: decodeErrorMessage(error),
|
|
235
238
|
},
|
|
236
239
|
});
|
|
237
240
|
}
|
|
238
241
|
});
|
|
239
242
|
this.wws.onAck((message) => {
|
|
240
243
|
// acknowledgment received
|
|
241
|
-
this.
|
|
244
|
+
this.acknowledge(message.headers.ackIdx);
|
|
242
245
|
if (!this.queue.numUnackMessages && !this.needed) {
|
|
243
246
|
this.wws.close();
|
|
244
247
|
}
|
|
245
248
|
});
|
|
246
249
|
this.wws.onErr(async (message) => {
|
|
247
|
-
var _a, _b;
|
|
248
250
|
// handle error
|
|
249
|
-
|
|
250
|
-
await
|
|
251
|
+
logger.error(`${this.name}: Error occurred: ${message.headers.error}`);
|
|
252
|
+
await this.callbacks.onError?.(message.headers.error);
|
|
251
253
|
});
|
|
252
254
|
this.wws.onWsClose(async () => {
|
|
253
|
-
|
|
255
|
+
this.stopHeartbeat();
|
|
254
256
|
if (reconnect && this.needed) {
|
|
255
257
|
// if locally closed, needed should be false
|
|
256
258
|
// if it's true, it means we lost the connection and should try to re-connect
|
|
257
|
-
|
|
259
|
+
logger.info(`${this.name}: Closed pre-maturely, trying to reconnect after ${reconnectIntervalMillis}ms...`);
|
|
258
260
|
setTimeout(() => this.setUp(), reconnectIntervalMillis);
|
|
259
|
-
await
|
|
261
|
+
await this.callbacks.onErroneousDisconnect?.('Closed pre-maturely');
|
|
260
262
|
}
|
|
261
263
|
else if (reconnect && this.queue.numUnackMessages) {
|
|
262
264
|
// if there are still messages left to be sent and we should reconnect
|
|
263
|
-
|
|
265
|
+
logger.info(`${this.name}: Closed with messages still in queue, reconnecting in ${reconnectIntervalMillis}ms...`);
|
|
264
266
|
setTimeout(() => this.setUp(), reconnectIntervalMillis);
|
|
265
|
-
await
|
|
267
|
+
await this.callbacks.onErroneousDisconnect?.('Closed with messages still in queue');
|
|
266
268
|
}
|
|
267
269
|
else if (this.queue.numUnackMessages) {
|
|
268
270
|
// if there are still messages left to be sent, but we should not reconnect
|
|
269
|
-
|
|
270
|
-
await
|
|
271
|
-
await
|
|
271
|
+
logger.info(`${this.name}: Closed with messages still in queue`);
|
|
272
|
+
await this.callbacks.onError?.('Closed with messages still in queue');
|
|
273
|
+
await this.callbacks.onClose?.();
|
|
274
|
+
this.rejectPendingAcks();
|
|
272
275
|
}
|
|
273
276
|
else {
|
|
274
277
|
// all is well
|
|
275
|
-
|
|
276
|
-
await
|
|
278
|
+
logger.info(`${this.name}: Closed correctly`);
|
|
279
|
+
await this.callbacks.onClose?.();
|
|
280
|
+
this.rejectPendingAcks();
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Heartbeat: if nothing (not even its answer) arrived since the previous heartbeat,
|
|
286
|
+
* the connection is dead and is terminated, which triggers the usual close/reconnect logic.
|
|
287
|
+
* Checking per tick instead of measuring time since the last message
|
|
288
|
+
* tolerates throttled timers in background browser tabs.
|
|
289
|
+
*/
|
|
290
|
+
startHeartbeat() {
|
|
291
|
+
this.stopHeartbeat();
|
|
292
|
+
const { heartbeatIntervalMillis } = this.options;
|
|
293
|
+
if (!heartbeatIntervalMillis) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const { wws } = this;
|
|
297
|
+
this.heartbeatConfirmed = wws.heartbeatAnsweredByProtocol;
|
|
298
|
+
this.heartbeatSentAt = 0;
|
|
299
|
+
this.heartbeatTimer = setInterval(() => {
|
|
300
|
+
if (wws.readyState !== WebSocket.OPEN) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (this.heartbeatConfirmed && this.heartbeatSentAt && wws.lastActivity < this.heartbeatSentAt) {
|
|
304
|
+
logger.warn(`${this.name}: No answer to heartbeat in ${heartbeatIntervalMillis}ms, terminating connection`);
|
|
305
|
+
this.stopHeartbeat();
|
|
306
|
+
wws.terminate();
|
|
307
|
+
return;
|
|
277
308
|
}
|
|
309
|
+
this.heartbeatSentAt = Date.now();
|
|
310
|
+
wws.sendHeartbeat();
|
|
311
|
+
}, heartbeatIntervalMillis);
|
|
312
|
+
}
|
|
313
|
+
stopHeartbeat() {
|
|
314
|
+
clearInterval(this.heartbeatTimer);
|
|
315
|
+
this.heartbeatTimer = undefined;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Resolves once the other side acknowledged the message with the given index (returned by send/sendToRoute).
|
|
319
|
+
* Rejects if the connection is closed for good before that.
|
|
320
|
+
* Reconnecting connections keep and resend their unacknowledged messages, so they don't reject on reconnect.
|
|
321
|
+
*/
|
|
322
|
+
waitForAck(idx) {
|
|
323
|
+
if (idx < this.queue.ackIdx) {
|
|
324
|
+
return Promise.resolve();
|
|
325
|
+
}
|
|
326
|
+
if (this.closed) {
|
|
327
|
+
return Promise.reject(new Error(`${this.name}: Connection closed, message ${idx} will not be acknowledged`));
|
|
328
|
+
}
|
|
329
|
+
return new Promise((resolve, reject) => {
|
|
330
|
+
this.pendingAcks.set(idx, { resolve, reject });
|
|
278
331
|
});
|
|
279
332
|
}
|
|
333
|
+
acknowledge(idx) {
|
|
334
|
+
this.queue.acknowledge(idx);
|
|
335
|
+
for (const [pendingIdx, { resolve }] of this.pendingAcks) {
|
|
336
|
+
if (pendingIdx > idx) {
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
this.pendingAcks.delete(pendingIdx);
|
|
340
|
+
resolve();
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
rejectPendingAcks() {
|
|
344
|
+
this.closed = true;
|
|
345
|
+
for (const [idx, { reject }] of this.pendingAcks) {
|
|
346
|
+
reject(new Error(`${this.name}: Connection closed, message ${idx} will not be acknowledged`));
|
|
347
|
+
}
|
|
348
|
+
this.pendingAcks.clear();
|
|
349
|
+
}
|
|
280
350
|
flush() {
|
|
281
351
|
// connection is not open
|
|
282
352
|
if (this.wws.readyState !== WebSocket.OPEN || !this.ready) {
|
|
@@ -286,13 +356,13 @@ class QWebSocket {
|
|
|
286
356
|
if (this.queue.numUnsentMessages) {
|
|
287
357
|
// pop a message
|
|
288
358
|
const [idx, data] = this.queue.consume();
|
|
289
|
-
|
|
359
|
+
logger.debug(`${this.name}: Sending chunk ${idx} of size ${data.size}`);
|
|
290
360
|
this.wws.sendRaw(data);
|
|
291
|
-
|
|
361
|
+
logger.debug(`${this.name}: MQ decreased to size ${this.queue.numUnsentMessages} messages / ${this.queue.numUnsentBytes} bytes`);
|
|
292
362
|
this.flush();
|
|
293
363
|
}
|
|
294
364
|
else {
|
|
295
|
-
|
|
365
|
+
logger.debug(`${this.name}: Flushing complete, no ws messages backed up`);
|
|
296
366
|
// if not needed anymore after flush, close it
|
|
297
367
|
// send close event to ws, don't de-cache yet, wait for event
|
|
298
368
|
if (!this.queue.numUnackMessages && !this.needed) {
|
|
@@ -330,8 +400,8 @@ class QWebSocket {
|
|
|
330
400
|
const { numUnsentMessages } = this.queue;
|
|
331
401
|
const idx = this.queue.produce(message);
|
|
332
402
|
// ready state should either be CONNECTING or OPEN at this point to flush instantly
|
|
333
|
-
if (this.wws.readyState === WebSocket.OPEN
|
|
334
|
-
this.flush();
|
|
403
|
+
if (!numUnsentMessages && this.ready && this.wws.readyState === WebSocket.OPEN) {
|
|
404
|
+
void this.flush();
|
|
335
405
|
}
|
|
336
406
|
return idx;
|
|
337
407
|
}
|
|
@@ -345,7 +415,7 @@ class QWebSocket {
|
|
|
345
415
|
// wrap original onClose to resolve this promise
|
|
346
416
|
const { onClose } = this.callbacks;
|
|
347
417
|
this.callbacks.onClose = async () => {
|
|
348
|
-
await
|
|
418
|
+
await onClose?.();
|
|
349
419
|
resolve();
|
|
350
420
|
};
|
|
351
421
|
// flush if any messages in queue
|
|
@@ -353,4 +423,4 @@ class QWebSocket {
|
|
|
353
423
|
});
|
|
354
424
|
}
|
|
355
425
|
}
|
|
356
|
-
|
|
426
|
+
//# sourceMappingURL=queuews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queuews.js","sourceRoot":"","sources":["../../src/common/queuews.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,eAAe,MAAM,aAAa,CAAC;AAe1C,OAAO,qBAAqB,MAAM,YAAY,CAAC;AAC/C,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAU,EAAE;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAyB,CAAC;IAC1D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,oDAAoD;IACpD,gEAAgE;IAChE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AACjD,CAAC,CAAC;AA2BF,MAAM,WAAW,GAA+B;IAC9C,gBAAgB,EAAE,EAAE;IACpB,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,EAAE;IACrB,uBAAuB,EAAE,IAAI;IAC7B,uBAAuB,EAAE,MAAM;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IA4B7B,YAAY,OAA2B,EAAE,UAA6B,EAAE;QACtE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,WAAW;YACd,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG;YACf,KAAK,EAAE,IAAI,eAAe,EAAE;YAC5B,MAAM,EAAE,IAAI,eAAe,EAAE;SAC9B,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IAEH,SAAS,CAAC,QAAyB;QACjC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,QAAqB;QACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,QAAqB;QACzB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAI,YAAoB,EAAE,QAAyB;QAC5D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAI,QAAyB;QACjC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,QAAuB;QAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,qBAAqB,CAAC,QAAoB;QACxC,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,QAAQ,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,QAAmC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,QAAoB;QAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IAEH,kDAAkD;IAClD,KAAK;QACH,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEjG,6CAA6C;QAC7C,IAAI,SAAS,IAAI,IAAI,CAAC,oBAAoB,GAAG,iBAAkB,EAAE,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,oDAAoD,CAAC,CAAC;YAC/E,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,qCAAqC,iBAAiB,YAAY,CAAC,CAAC;YAClG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED;;WAEG;QACH,IAAI,IAAI,CAAC,OAAO,YAAY,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACzF,MAAM,EAAE,GAAG,IAAI,CAAC,OAAoB,CAAC;YACrC,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACpC,+FAA+F;QACjG,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE;gBACnD,GAAG,gBAAgB;gBACnB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;YACnB,qFAAqF;YACrF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACjC,+EAA+E;YAC/E,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,wBAAwB,OAAO,EAAE,CAAC,CAAC;YAE5D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CACT,SAAS;gBACP,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,kCAAkC,IAAI,CAAC,oBAAoB,QAAQ;gBACjF,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,0BAA0B,CAC3C,CAAC;YAEF,IAAI,CAAC;gBACH,oEAAoE;gBACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;gBAEpD,0BAA0B;gBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,QAAQ;qBACT;iBACiB,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wFAAwF;gBACxF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;qBACjC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE;YAClD,kDAAkD;YAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,yBAAyB,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7F,8EAA8E;YAC9E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,wCAAwC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,IAAI,CAAC;gBACH,yBAAyB;gBACzB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wFAAwF;gBACxF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;qBACjC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;YACjD,0BAA0B;YAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAElC,IAAI,CAAC;gBACH,iBAAiB;gBACjB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACzE,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAsB,CAAC;oBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAmB,CAAC;oBACzC,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACzC,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,OAAO,CAAC,GAAG;qBACpB;iBACe,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,8DAA8D;gBAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;qBACjC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;YAChD,0BAA0B;YAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAElC,IAAI,CAAC;gBACH,iBAAiB;gBACjB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC1E,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAgC,CAAC;oBACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAmB,CAAC;oBACzC,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACzC,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,OAAO,CAAC,GAAG;qBACpB;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAA4D;gBAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;qBACjC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAsB,EAAE,EAAE;YACxC,0BAA0B;YAC1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE;YAChD,eAAe;YACf,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,4CAA4C;gBAC5C,6EAA6E;gBAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,oDAAoD,uBAAuB,OAAO,CAAC,CAAC;gBAC5G,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,qBAAqB,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBACpD,sEAAsE;gBACtE,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,IAAI,0DAA0D,uBAAuB,OAAO,CACrG,CAAC;gBACF,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,qCAAqC,CAAC,CAAC;YACtF,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBACvC,2EAA2E;gBAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,uCAAuC,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,qCAAqC,CAAC,CAAC;gBACtE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,cAAc;gBACd,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBAC9C,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,cAAc;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACjD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,2BAA2B,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/F,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,+BAA+B,uBAAuB,4BAA4B,CAAC,CAAC;gBAC5G,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,GAAG,CAAC,SAAS,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAClC,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa;QACnB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAW;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,gCAAgC,GAAG,2BAA2B,CAAC,CAAC,CAAC;QAC/G,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,gCAAgC,GAAG,2BAA2B,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,yBAAyB;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACjC,gBAAgB;YAChB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,mBAAmB,GAAG,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,CAAC,KAAK,CACV,GAAG,IAAI,CAAC,IAAI,0BAA0B,IAAI,CAAC,KAAK,CAAC,iBAAiB,eAAe,IAAI,CAAC,KAAK,CAAC,cAAc,QAAQ,CACnH,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,+CAA+C,CAAC,CAAC;YAC1E,8CAA8C;YAC9C,6DAA6D;YAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAsC,EAAE,eAAuC,EAAE;QACpF,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CACT,KAAyB,EACzB,IAAsC,EACtC,eAAuC,EAAE;QAEzC,iDAAiD;QACjD,IAAI,OAA0B,CAAC;QAE/B,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACzB,OAAO,GAAG;gBACR,OAAO,EAAE;oBACP,IAAI,EAAE,KAAK;oBACX,KAAK;oBACL,GAAG,YAAY;iBAChB;gBACD,IAAI;aACL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG;gBACR,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK;oBACL,GAAG,YAAY;iBAChB;gBACD,IAAI;aACa,CAAC;QACtB,CAAC;QAED,4BAA4B;QAC5B,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,mFAAmF;QACnF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAC/E,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,gDAAgD;YAChD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBAClC,MAAM,OAAO,EAAE,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,iCAAiC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import RouteRecognizerModule from 'route-recognizer';
|
|
2
|
+
/**
|
|
3
|
+
* route-recognizer is a UMD bundle: under Node.js ESM its default import is the class itself,
|
|
4
|
+
* while its typings declare an ES default export. Re-expose it with correct typing.
|
|
5
|
+
*/
|
|
6
|
+
declare const RouteRecognizer: typeof RouteRecognizerModule.default;
|
|
7
|
+
type RouteRecognizer = InstanceType<typeof RouteRecognizer>;
|
|
8
|
+
export default RouteRecognizer;
|
|
9
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/common/router.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,kBAAkB,CAAC;AAErD;;;GAGG;AACH,QAAA,MAAM,eAAe,EAAuC,OAAO,qBAAqB,CAAC,OAAO,CAAC;AACjG,KAAK,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import RouteRecognizerModule from 'route-recognizer';
|
|
2
|
+
/**
|
|
3
|
+
* route-recognizer is a UMD bundle: under Node.js ESM its default import is the class itself,
|
|
4
|
+
* while its typings declare an ES default export. Re-expose it with correct typing.
|
|
5
|
+
*/
|
|
6
|
+
const RouteRecognizer = RouteRecognizerModule;
|
|
7
|
+
export default RouteRecognizer;
|
|
8
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/common/router.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,eAAe,GAAG,qBAAwE,CAAC;AAGjG,eAAe,eAAe,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export * from './common/
|
|
3
|
-
export * from './common/
|
|
4
|
-
export * from './
|
|
5
|
-
export
|
|
6
|
-
|
|
1
|
+
export * from './common/logger.js';
|
|
2
|
+
export * from './common/message.js';
|
|
3
|
+
export * from './common/queuews.js';
|
|
4
|
+
export * from './browser/messageencode.js';
|
|
5
|
+
export { default } from './common/queuews.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
const queuews_1 = __importDefault(require("./common/queuews"));
|
|
21
|
-
__exportStar(require("./common/logger"), exports);
|
|
22
|
-
__exportStar(require("./common/message"), exports);
|
|
23
|
-
__exportStar(require("./common/queuews"), exports);
|
|
24
|
-
__exportStar(require("./browser/messageencode"), exports);
|
|
25
|
-
exports.default = queuews_1.default;
|
|
1
|
+
export * from './common/logger.js';
|
|
2
|
+
export * from './common/message.js';
|
|
3
|
+
export * from './common/queuews.js';
|
|
4
|
+
export * from './browser/messageencode.js';
|
|
5
|
+
export { default } from './common/queuews.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qws-browser",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "Safe queueing with auto-reconnect for WebSockets",
|
|
5
6
|
"author": "Csaba Sulyok <csaba.sulyok@gmail.com>",
|
|
6
7
|
"license": "ISC",
|
|
7
8
|
"main": "./dist/index.js",
|
|
8
9
|
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
9
16
|
"files": [
|
|
10
17
|
"dist"
|
|
11
18
|
],
|
|
@@ -14,42 +21,34 @@
|
|
|
14
21
|
"url": "git+https://github.com/csabasulyok/qws-browser.git"
|
|
15
22
|
},
|
|
16
23
|
"dependencies": {
|
|
17
|
-
"auto-bind": "
|
|
24
|
+
"auto-bind": "5.0.1",
|
|
18
25
|
"route-recognizer": "0.3.4"
|
|
19
26
|
},
|
|
20
27
|
"devDependencies": {
|
|
21
|
-
"@
|
|
22
|
-
"
|
|
23
|
-
"eslint": "
|
|
24
|
-
"eslint-
|
|
25
|
-
"eslint-
|
|
26
|
-
"eslint-
|
|
27
|
-
"eslint-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"prettier": "
|
|
31
|
-
"rimraf": "
|
|
32
|
-
"typescript": "
|
|
33
|
-
|
|
34
|
-
"lint-staged": {
|
|
35
|
-
"*.{js,ts,jsx,tsx}": [
|
|
36
|
-
"npm run lint",
|
|
37
|
-
"git add"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
"husky": {
|
|
41
|
-
"hooks": {
|
|
42
|
-
"pre-commit": "lint-staged"
|
|
43
|
-
}
|
|
28
|
+
"@eslint/js": "10.0.1",
|
|
29
|
+
"eslint": "10.13.0",
|
|
30
|
+
"eslint-config-prettier": "10.1.8",
|
|
31
|
+
"eslint-import-resolver-typescript": "4.4.5",
|
|
32
|
+
"eslint-plugin-import-x": "4.17.1",
|
|
33
|
+
"eslint-plugin-prettier": "5.5.7",
|
|
34
|
+
"eslint-plugin-unicorn": "78.0.0",
|
|
35
|
+
"globals": "17.13.0",
|
|
36
|
+
"npm-check-updates": "23.1.1",
|
|
37
|
+
"prettier": "3.9.10",
|
|
38
|
+
"rimraf": "6.1.3",
|
|
39
|
+
"typescript": "6.0.3",
|
|
40
|
+
"typescript-eslint": "8.72.0"
|
|
44
41
|
},
|
|
45
42
|
"scripts": {
|
|
46
43
|
"clean": "rimraf dist *.tsbuildinfo",
|
|
47
44
|
"build": "tsc -p tsconfig.build.json",
|
|
48
45
|
"cb": "pnpm clean && pnpm build",
|
|
49
|
-
"lint": "eslint
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
46
|
+
"lint": "eslint .",
|
|
47
|
+
"lint:fix": "eslint . --fix",
|
|
48
|
+
"format": "prettier --write .",
|
|
49
|
+
"format:check": "prettier --check .",
|
|
50
|
+
"ci": "pnpm lint && pnpm format:check && pnpm build",
|
|
51
|
+
"publish:local": "pnpm publish --loglevel info --registry=http://localhost:8081/repository/npm-releases/",
|
|
52
|
+
"publish:npmjs": "pnpm publish --loglevel info --registry=https://registry.npmjs.org/"
|
|
54
53
|
}
|
|
55
54
|
}
|