amqp-connection-manager 3.7.0 → 4.0.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 +4 -2
- package/dist/cjs/AmqpConnectionManager.js +7 -18
- package/dist/cjs/ChannelWrapper.js +101 -32
- package/dist/esm/AmqpConnectionManager.d.ts +11 -8
- package/dist/esm/AmqpConnectionManager.js +7 -18
- package/dist/esm/AmqpConnectionManager.js.map +1 -1
- package/dist/esm/ChannelWrapper.d.ts +20 -3
- package/dist/esm/ChannelWrapper.js +101 -32
- package/dist/esm/ChannelWrapper.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -106,7 +106,7 @@ Options:
|
|
|
106
106
|
- `options.reconnectTimeInSeconds` - The time to wait before trying to reconnect. If not specified,
|
|
107
107
|
defaults to `heartbeatIntervalInSeconds`.
|
|
108
108
|
- `options.findServers(callback)` is a function which returns one or more servers to connect to. This should
|
|
109
|
-
return either a single URL or an array of URLs. This is handy when you're using a service discovery mechanism
|
|
109
|
+
return either a single URL or an array of URLs. This is handy when you're using a service discovery mechanism.
|
|
110
110
|
such as Consul or etcd. Instead of taking a `callback`, this can also return a Promise. Note that if this
|
|
111
111
|
is supplied, then `urls` is ignored.
|
|
112
112
|
- `options.connectionOptions` is passed as options to the amqplib connect method.
|
|
@@ -114,6 +114,7 @@ Options:
|
|
|
114
114
|
### AmqpConnectionManager events
|
|
115
115
|
|
|
116
116
|
- `connect({connection, url})` - Emitted whenever we successfully connect to a broker.
|
|
117
|
+
- `connectFailed({err, url})` - Emitted whenever we attempt to connect to a broker, but fail.
|
|
117
118
|
- `disconnect({err})` - Emitted whenever we disconnect from a broker.
|
|
118
119
|
- `blocked({reason})` - Emitted whenever a connection is blocked by a broker
|
|
119
120
|
- `unblocked` - Emitted whenever a connection is unblocked by a broker
|
|
@@ -132,8 +133,9 @@ Options:
|
|
|
132
133
|
Note that `this` inside the setup function will the returned ChannelWrapper.
|
|
133
134
|
The ChannelWrapper has a special `context` member you can use to store
|
|
134
135
|
arbitrary data in.
|
|
135
|
-
- `options.json` if true, then ChannelWrapper assumes all messages passed to `publish()` and `sendToQueue()`
|
|
136
|
+
- `options.json` - if true, then ChannelWrapper assumes all messages passed to `publish()` and `sendToQueue()`
|
|
136
137
|
are plain JSON objects. These will be encoded automatically before being sent.
|
|
138
|
+
- `options.confirm` - if true (default), the created channel will be a ConfirmChannel
|
|
137
139
|
- `options.publishTimeout` - a default timeout for messages published to this channel.
|
|
138
140
|
|
|
139
141
|
### AmqpConnectionManager#isConnected()
|
|
@@ -20,6 +20,7 @@ function neverThrows() {
|
|
|
20
20
|
//
|
|
21
21
|
// Events:
|
|
22
22
|
// * `connect({connection, url})` - Emitted whenever we connect to a broker.
|
|
23
|
+
// * `connectFailed({err, url})` - Emitted whenever we fail to connect to a broker.
|
|
23
24
|
// * `disconnect({err})` - Emitted whenever we disconnect from a broker.
|
|
24
25
|
// * `blocked({reason})` - Emitted whenever connection is blocked by a broker.
|
|
25
26
|
// * `unblocked()` - Emitted whenever connection is unblocked by a broker.
|
|
@@ -51,14 +52,6 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
51
52
|
constructor(urls, options = {}) {
|
|
52
53
|
super();
|
|
53
54
|
this._closed = false;
|
|
54
|
-
/**
|
|
55
|
-
* Keep track of whether a disconnect event has been sent or not. The problem
|
|
56
|
-
* is that if we've never connected, and we encounter an error, we want to
|
|
57
|
-
* generate a "disconnect" event, even though we're not disconnected, otherwise
|
|
58
|
-
* the caller will never know there was an error. So we can't just rely on
|
|
59
|
-
* this._currentConnection.
|
|
60
|
-
*/
|
|
61
|
-
this._disconnectSent = false;
|
|
62
55
|
if (!urls && !options.findServers) {
|
|
63
56
|
throw new Error('Must supply either `urls` or `findServers`');
|
|
64
57
|
}
|
|
@@ -82,7 +75,7 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
82
75
|
async connect({ timeout } = {}) {
|
|
83
76
|
this._connect();
|
|
84
77
|
let reject;
|
|
85
|
-
const
|
|
78
|
+
const onConnectFailed = ({ err }) => {
|
|
86
79
|
// Ignore disconnects caused by dead servers etc., but throw on operational errors like bad credentials.
|
|
87
80
|
if (err.isOperational) {
|
|
88
81
|
reject(err);
|
|
@@ -93,7 +86,7 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
93
86
|
(0, events_1.once)(this, 'connect'),
|
|
94
87
|
new Promise((_resolve, innerReject) => {
|
|
95
88
|
reject = innerReject;
|
|
96
|
-
this.on('
|
|
89
|
+
this.on('connectFailed', onConnectFailed);
|
|
97
90
|
}),
|
|
98
91
|
...(timeout
|
|
99
92
|
? [
|
|
@@ -105,7 +98,7 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
105
98
|
]);
|
|
106
99
|
}
|
|
107
100
|
finally {
|
|
108
|
-
this.removeListener('
|
|
101
|
+
this.removeListener('connectFailed', onConnectFailed);
|
|
109
102
|
}
|
|
110
103
|
}
|
|
111
104
|
// `options` here are any options that can be passed to ChannelWrapper.
|
|
@@ -165,7 +158,6 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
165
158
|
})
|
|
166
159
|
.then(() => {
|
|
167
160
|
this._currentConnection = undefined;
|
|
168
|
-
this._disconnectSent = true;
|
|
169
161
|
this.emit('disconnect', { err: new Error('forced reconnect') });
|
|
170
162
|
return this._connect();
|
|
171
163
|
})
|
|
@@ -187,6 +179,7 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
187
179
|
if (this._closed || this.isConnected()) {
|
|
188
180
|
return Promise.resolve(null);
|
|
189
181
|
}
|
|
182
|
+
let attemptedUrl;
|
|
190
183
|
const result = (this._connectPromise = Promise.resolve()
|
|
191
184
|
.then(() => {
|
|
192
185
|
if (!this._urls || this._currentUrl >= this._urls.length) {
|
|
@@ -231,6 +224,7 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
231
224
|
heartbeat: (_a = url.heartbeat) !== null && _a !== void 0 ? _a : this.heartbeatIntervalInSeconds,
|
|
232
225
|
};
|
|
233
226
|
}
|
|
227
|
+
attemptedUrl = originalUrl;
|
|
234
228
|
// Add the `heartbeastIntervalInSeconds` to the connection options.
|
|
235
229
|
if (typeof connect === 'string') {
|
|
236
230
|
const u = new url_1.URL(connect);
|
|
@@ -253,7 +247,6 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
253
247
|
// Reconnect if the connection closes
|
|
254
248
|
connection.on('close', (err) => {
|
|
255
249
|
this._currentConnection = undefined;
|
|
256
|
-
this._disconnectSent = true;
|
|
257
250
|
this.emit('disconnect', { err });
|
|
258
251
|
const handle = (0, helpers_js_1.wait)(this.reconnectTimeInSeconds * 1000);
|
|
259
252
|
this._cancelRetriesHandler = handle.cancel;
|
|
@@ -263,17 +256,13 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
263
256
|
.catch(neverThrows);
|
|
264
257
|
});
|
|
265
258
|
this._connectPromise = undefined;
|
|
266
|
-
this._disconnectSent = false;
|
|
267
259
|
this.emit('connect', { connection, url: originalUrl });
|
|
268
260
|
// Need to return null here, or Bluebird will complain - #171.
|
|
269
261
|
return null;
|
|
270
262
|
});
|
|
271
263
|
})
|
|
272
264
|
.catch((err) => {
|
|
273
|
-
|
|
274
|
-
this._disconnectSent = true;
|
|
275
|
-
this.emit('disconnect', { err });
|
|
276
|
-
}
|
|
265
|
+
this.emit('connectFailed', { err, url: attemptedUrl });
|
|
277
266
|
// Connection failed...
|
|
278
267
|
this._currentConnection = undefined;
|
|
279
268
|
this._connectPromise = undefined;
|
|
@@ -47,7 +47,7 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
47
47
|
*
|
|
48
48
|
*/
|
|
49
49
|
constructor(connectionManager, options = {}) {
|
|
50
|
-
var _a;
|
|
50
|
+
var _a, _b;
|
|
51
51
|
super();
|
|
52
52
|
/** If we're in the process of creating a channel, this is a Promise which
|
|
53
53
|
* will resolve when the channel is set up. Otherwise, this is `null`.
|
|
@@ -59,6 +59,10 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
59
59
|
this._unconfirmedMessages = [];
|
|
60
60
|
/** Consumers which will be reconnected on channel errors etc. */
|
|
61
61
|
this._consumers = [];
|
|
62
|
+
/**
|
|
63
|
+
* True to create a ConfirmChannel. False to create a regular Channel.
|
|
64
|
+
*/
|
|
65
|
+
this._confirm = true;
|
|
62
66
|
/**
|
|
63
67
|
* True if the "worker" is busy sending messages. False if we need to
|
|
64
68
|
* start the worker to get stuff done.
|
|
@@ -77,9 +81,10 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
77
81
|
this._onConnect = this._onConnect.bind(this);
|
|
78
82
|
this._onDisconnect = this._onDisconnect.bind(this);
|
|
79
83
|
this._connectionManager = connectionManager;
|
|
84
|
+
this._confirm = (_a = options.confirm) !== null && _a !== void 0 ? _a : true;
|
|
80
85
|
this.name = options.name;
|
|
81
86
|
this._publishTimeout = options.publishTimeout;
|
|
82
|
-
this._json = (
|
|
87
|
+
this._json = (_b = options.json) !== null && _b !== void 0 ? _b : false;
|
|
83
88
|
// Array of setup functions to call.
|
|
84
89
|
this._setups = [];
|
|
85
90
|
this._consumers = [];
|
|
@@ -186,7 +191,7 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
186
191
|
type: 'publish',
|
|
187
192
|
exchange,
|
|
188
193
|
routingKey,
|
|
189
|
-
content,
|
|
194
|
+
content: this._getEncodedMessage(content),
|
|
190
195
|
resolve,
|
|
191
196
|
reject,
|
|
192
197
|
options: opts,
|
|
@@ -205,12 +210,13 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
205
210
|
* `message` here should be a JSON-able object.
|
|
206
211
|
*/
|
|
207
212
|
sendToQueue(queue, content, options, done) {
|
|
213
|
+
const encodedContent = this._getEncodedMessage(content);
|
|
208
214
|
return promise_breaker_1.default.addCallback(done, new Promise((resolve, reject) => {
|
|
209
215
|
const { timeout, ...opts } = options || {};
|
|
210
216
|
this._enqueueMessage({
|
|
211
217
|
type: 'sendToQueue',
|
|
212
218
|
queue,
|
|
213
|
-
content,
|
|
219
|
+
content: encodedContent,
|
|
214
220
|
resolve,
|
|
215
221
|
reject,
|
|
216
222
|
options: opts,
|
|
@@ -242,7 +248,13 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
242
248
|
async _onConnect({ connection }) {
|
|
243
249
|
this._irrecoverableCode = undefined;
|
|
244
250
|
try {
|
|
245
|
-
|
|
251
|
+
let channel;
|
|
252
|
+
if (this._confirm) {
|
|
253
|
+
channel = await connection.createConfirmChannel();
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
channel = await connection.createChannel();
|
|
257
|
+
}
|
|
246
258
|
this._channel = channel;
|
|
247
259
|
this._channelHasRoom = true;
|
|
248
260
|
channel.on('close', () => this._onChannelClose(channel));
|
|
@@ -407,43 +419,60 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
407
419
|
if (!message) {
|
|
408
420
|
break;
|
|
409
421
|
}
|
|
410
|
-
|
|
411
|
-
const encodedMessage = this._getEncodedMessage(message.content);
|
|
422
|
+
let thisCanSend = true;
|
|
412
423
|
switch (message.type) {
|
|
413
424
|
case 'publish': {
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
425
|
+
if (this._confirm) {
|
|
426
|
+
this._unconfirmedMessages.push(message);
|
|
427
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options, (err) => {
|
|
428
|
+
if (message.isTimedout) {
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
if (message.timeout) {
|
|
432
|
+
clearTimeout(message.timeout);
|
|
433
|
+
}
|
|
434
|
+
if (err) {
|
|
435
|
+
this._messageRejected(message, err);
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
this._messageResolved(message, thisCanSend);
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
419
443
|
if (message.timeout) {
|
|
420
444
|
clearTimeout(message.timeout);
|
|
421
445
|
}
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
else {
|
|
426
|
-
this._messageResolved(message, thisCanSend);
|
|
427
|
-
}
|
|
428
|
-
});
|
|
446
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options);
|
|
447
|
+
message.resolve(thisCanSend);
|
|
448
|
+
}
|
|
429
449
|
break;
|
|
430
450
|
}
|
|
431
451
|
case 'sendToQueue': {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
452
|
+
if (this._confirm) {
|
|
453
|
+
this._unconfirmedMessages.push(message);
|
|
454
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options, (err) => {
|
|
455
|
+
if (message.isTimedout) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
if (message.timeout) {
|
|
459
|
+
clearTimeout(message.timeout);
|
|
460
|
+
}
|
|
461
|
+
if (err) {
|
|
462
|
+
this._messageRejected(message, err);
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
this._messageResolved(message, thisCanSend);
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
437
470
|
if (message.timeout) {
|
|
438
471
|
clearTimeout(message.timeout);
|
|
439
472
|
}
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
else {
|
|
444
|
-
this._messageResolved(message, thisCanSend);
|
|
445
|
-
}
|
|
446
|
-
});
|
|
473
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options);
|
|
474
|
+
message.resolve(thisCanSend);
|
|
475
|
+
}
|
|
447
476
|
break;
|
|
448
477
|
}
|
|
449
478
|
/* istanbul ignore next */
|
|
@@ -455,7 +484,9 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
455
484
|
if (this._channelHasRoom && this._messages.length > 0) {
|
|
456
485
|
setImmediate(() => this._publishQueuedMessages(workerNumber));
|
|
457
486
|
}
|
|
458
|
-
|
|
487
|
+
else {
|
|
488
|
+
this._working = false;
|
|
489
|
+
}
|
|
459
490
|
/* istanbul ignore next */
|
|
460
491
|
}
|
|
461
492
|
catch (err) {
|
|
@@ -597,6 +628,44 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
597
628
|
return { exchange };
|
|
598
629
|
}
|
|
599
630
|
}
|
|
631
|
+
/** Send a `bindExchange` to the underlying channel. */
|
|
632
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
633
|
+
async bindExchange(destination, source, pattern, args) {
|
|
634
|
+
if (this._channel) {
|
|
635
|
+
return await this._channel.bindExchange(destination, source, pattern, args);
|
|
636
|
+
}
|
|
637
|
+
else {
|
|
638
|
+
throw new Error(`Not connected.`);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
/** Send a `checkExchange` to the underlying channel. */
|
|
642
|
+
async checkExchange(exchange) {
|
|
643
|
+
if (this._channel) {
|
|
644
|
+
return await this._channel.checkExchange(exchange);
|
|
645
|
+
}
|
|
646
|
+
else {
|
|
647
|
+
throw new Error(`Not connected.`);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
/** Send a `deleteExchange` to the underlying channel. */
|
|
651
|
+
async deleteExchange(exchange, options) {
|
|
652
|
+
if (this._channel) {
|
|
653
|
+
return await this._channel.deleteExchange(exchange, options);
|
|
654
|
+
}
|
|
655
|
+
else {
|
|
656
|
+
throw new Error(`Not connected.`);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
/** Send a `unbindExchange` to the underlying channel. */
|
|
660
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
661
|
+
async unbindExchange(destination, source, pattern, args) {
|
|
662
|
+
if (this._channel) {
|
|
663
|
+
return await this._channel.unbindExchange(destination, source, pattern, args);
|
|
664
|
+
}
|
|
665
|
+
else {
|
|
666
|
+
throw new Error(`Not connected.`);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
600
669
|
/** Send a `get` to the underlying channel. */
|
|
601
670
|
async get(queue, options) {
|
|
602
671
|
if (this._channel) {
|
|
@@ -14,6 +14,12 @@ export interface ConnectListener {
|
|
|
14
14
|
url: string | amqp.Options.Connect;
|
|
15
15
|
}): void;
|
|
16
16
|
}
|
|
17
|
+
export interface ConnectFailedListener {
|
|
18
|
+
(arg: {
|
|
19
|
+
err: Error;
|
|
20
|
+
url: string | amqp.Options.Connect | undefined;
|
|
21
|
+
}): void;
|
|
22
|
+
}
|
|
17
23
|
export declare type AmpqConnectionOptions = (ConnectionOptions | TcpSocketConnectOpts) & {
|
|
18
24
|
noDelay?: boolean;
|
|
19
25
|
timeout?: number;
|
|
@@ -52,6 +58,7 @@ export interface IAmqpConnectionManager {
|
|
|
52
58
|
reconnectTimeInSeconds: number;
|
|
53
59
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
54
60
|
addListener(event: 'connect', listener: ConnectListener): this;
|
|
61
|
+
addListener(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
55
62
|
addListener(event: 'blocked', listener: (arg: {
|
|
56
63
|
reason: string;
|
|
57
64
|
}) => void): this;
|
|
@@ -62,6 +69,7 @@ export interface IAmqpConnectionManager {
|
|
|
62
69
|
listeners(eventName: string | symbol): Function[];
|
|
63
70
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
64
71
|
on(event: 'connect', listener: ConnectListener): this;
|
|
72
|
+
on(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
65
73
|
on(event: 'blocked', listener: (arg: {
|
|
66
74
|
reason: string;
|
|
67
75
|
}) => void): this;
|
|
@@ -71,6 +79,7 @@ export interface IAmqpConnectionManager {
|
|
|
71
79
|
}) => void): this;
|
|
72
80
|
once(event: string, listener: (...args: any[]) => void): this;
|
|
73
81
|
once(event: 'connect', listener: ConnectListener): this;
|
|
82
|
+
once(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
74
83
|
once(event: 'blocked', listener: (arg: {
|
|
75
84
|
reason: string;
|
|
76
85
|
}) => void): this;
|
|
@@ -80,6 +89,7 @@ export interface IAmqpConnectionManager {
|
|
|
80
89
|
}) => void): this;
|
|
81
90
|
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
82
91
|
prependListener(event: 'connect', listener: ConnectListener): this;
|
|
92
|
+
prependListener(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
83
93
|
prependListener(event: 'blocked', listener: (arg: {
|
|
84
94
|
reason: string;
|
|
85
95
|
}) => void): this;
|
|
@@ -89,6 +99,7 @@ export interface IAmqpConnectionManager {
|
|
|
89
99
|
}) => void): this;
|
|
90
100
|
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
91
101
|
prependOnceListener(event: 'connect', listener: ConnectListener): this;
|
|
102
|
+
prependOnceListener(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
92
103
|
prependOnceListener(event: 'blocked', listener: (arg: {
|
|
93
104
|
reason: string;
|
|
94
105
|
}) => void): this;
|
|
@@ -118,14 +129,6 @@ export default class AmqpConnectionManager extends EventEmitter implements IAmqp
|
|
|
118
129
|
private _currentConnection?;
|
|
119
130
|
private _findServers;
|
|
120
131
|
private _urls?;
|
|
121
|
-
/**
|
|
122
|
-
* Keep track of whether a disconnect event has been sent or not. The problem
|
|
123
|
-
* is that if we've never connected, and we encounter an error, we want to
|
|
124
|
-
* generate a "disconnect" event, even though we're not disconnected, otherwise
|
|
125
|
-
* the caller will never know there was an error. So we can't just rely on
|
|
126
|
-
* this._currentConnection.
|
|
127
|
-
*/
|
|
128
|
-
private _disconnectSent;
|
|
129
132
|
connectionOptions: AmpqConnectionOptions | undefined;
|
|
130
133
|
heartbeatIntervalInSeconds: number;
|
|
131
134
|
reconnectTimeInSeconds: number;
|
|
@@ -15,6 +15,7 @@ function neverThrows() {
|
|
|
15
15
|
//
|
|
16
16
|
// Events:
|
|
17
17
|
// * `connect({connection, url})` - Emitted whenever we connect to a broker.
|
|
18
|
+
// * `connectFailed({err, url})` - Emitted whenever we fail to connect to a broker.
|
|
18
19
|
// * `disconnect({err})` - Emitted whenever we disconnect from a broker.
|
|
19
20
|
// * `blocked({reason})` - Emitted whenever connection is blocked by a broker.
|
|
20
21
|
// * `unblocked()` - Emitted whenever connection is unblocked by a broker.
|
|
@@ -46,14 +47,6 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
46
47
|
constructor(urls, options = {}) {
|
|
47
48
|
super();
|
|
48
49
|
this._closed = false;
|
|
49
|
-
/**
|
|
50
|
-
* Keep track of whether a disconnect event has been sent or not. The problem
|
|
51
|
-
* is that if we've never connected, and we encounter an error, we want to
|
|
52
|
-
* generate a "disconnect" event, even though we're not disconnected, otherwise
|
|
53
|
-
* the caller will never know there was an error. So we can't just rely on
|
|
54
|
-
* this._currentConnection.
|
|
55
|
-
*/
|
|
56
|
-
this._disconnectSent = false;
|
|
57
50
|
if (!urls && !options.findServers) {
|
|
58
51
|
throw new Error('Must supply either `urls` or `findServers`');
|
|
59
52
|
}
|
|
@@ -77,7 +70,7 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
77
70
|
async connect({ timeout } = {}) {
|
|
78
71
|
this._connect();
|
|
79
72
|
let reject;
|
|
80
|
-
const
|
|
73
|
+
const onConnectFailed = ({ err }) => {
|
|
81
74
|
// Ignore disconnects caused by dead servers etc., but throw on operational errors like bad credentials.
|
|
82
75
|
if (err.isOperational) {
|
|
83
76
|
reject(err);
|
|
@@ -88,7 +81,7 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
88
81
|
once(this, 'connect'),
|
|
89
82
|
new Promise((_resolve, innerReject) => {
|
|
90
83
|
reject = innerReject;
|
|
91
|
-
this.on('
|
|
84
|
+
this.on('connectFailed', onConnectFailed);
|
|
92
85
|
}),
|
|
93
86
|
...(timeout
|
|
94
87
|
? [
|
|
@@ -100,7 +93,7 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
100
93
|
]);
|
|
101
94
|
}
|
|
102
95
|
finally {
|
|
103
|
-
this.removeListener('
|
|
96
|
+
this.removeListener('connectFailed', onConnectFailed);
|
|
104
97
|
}
|
|
105
98
|
}
|
|
106
99
|
// `options` here are any options that can be passed to ChannelWrapper.
|
|
@@ -160,7 +153,6 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
160
153
|
})
|
|
161
154
|
.then(() => {
|
|
162
155
|
this._currentConnection = undefined;
|
|
163
|
-
this._disconnectSent = true;
|
|
164
156
|
this.emit('disconnect', { err: new Error('forced reconnect') });
|
|
165
157
|
return this._connect();
|
|
166
158
|
})
|
|
@@ -182,6 +174,7 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
182
174
|
if (this._closed || this.isConnected()) {
|
|
183
175
|
return Promise.resolve(null);
|
|
184
176
|
}
|
|
177
|
+
let attemptedUrl;
|
|
185
178
|
const result = (this._connectPromise = Promise.resolve()
|
|
186
179
|
.then(() => {
|
|
187
180
|
if (!this._urls || this._currentUrl >= this._urls.length) {
|
|
@@ -226,6 +219,7 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
226
219
|
heartbeat: (_a = url.heartbeat) !== null && _a !== void 0 ? _a : this.heartbeatIntervalInSeconds,
|
|
227
220
|
};
|
|
228
221
|
}
|
|
222
|
+
attemptedUrl = originalUrl;
|
|
229
223
|
// Add the `heartbeastIntervalInSeconds` to the connection options.
|
|
230
224
|
if (typeof connect === 'string') {
|
|
231
225
|
const u = new URL(connect);
|
|
@@ -248,7 +242,6 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
248
242
|
// Reconnect if the connection closes
|
|
249
243
|
connection.on('close', (err) => {
|
|
250
244
|
this._currentConnection = undefined;
|
|
251
|
-
this._disconnectSent = true;
|
|
252
245
|
this.emit('disconnect', { err });
|
|
253
246
|
const handle = wait(this.reconnectTimeInSeconds * 1000);
|
|
254
247
|
this._cancelRetriesHandler = handle.cancel;
|
|
@@ -258,17 +251,13 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
258
251
|
.catch(neverThrows);
|
|
259
252
|
});
|
|
260
253
|
this._connectPromise = undefined;
|
|
261
|
-
this._disconnectSent = false;
|
|
262
254
|
this.emit('connect', { connection, url: originalUrl });
|
|
263
255
|
// Need to return null here, or Bluebird will complain - #171.
|
|
264
256
|
return null;
|
|
265
257
|
});
|
|
266
258
|
})
|
|
267
259
|
.catch((err) => {
|
|
268
|
-
|
|
269
|
-
this._disconnectSent = true;
|
|
270
|
-
this.emit('disconnect', { err });
|
|
271
|
-
}
|
|
260
|
+
this.emit('connectFailed', { err, url: attemptedUrl });
|
|
272
261
|
// Connection failed...
|
|
273
262
|
this._currentConnection = undefined;
|
|
274
263
|
this._connectPromise = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmqpConnectionManager.js","sourceRoot":"","sources":["../../src/AmqpConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAoB,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,cAAqC,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,0BAA0B;AAC1B,MAAM,oBAAoB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AmqpConnectionManager.js","sourceRoot":"","sources":["../../src/AmqpConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import * as amqplib from 'amqplib';
|
|
3
|
-
import {
|
|
2
|
+
import type * as amqplib from 'amqplib';
|
|
3
|
+
import { Options } from 'amqplib';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import pb from 'promise-breaker';
|
|
6
6
|
import { IAmqpConnectionManager } from './AmqpConnectionManager.js';
|
|
7
|
-
export declare type
|
|
7
|
+
export declare type Channel = amqplib.ConfirmChannel | amqplib.Channel;
|
|
8
|
+
export declare type SetupFunc = ((channel: Channel, callback: (error?: Error) => void) => void) | ((channel: Channel) => Promise<void>) | ((channel: amqplib.ConfirmChannel, callback: (error?: Error) => void) => void) | ((channel: amqplib.ConfirmChannel) => Promise<void>);
|
|
8
9
|
export interface CreateChannelOpts {
|
|
9
10
|
/** Name for this channel. Used for debugging. */
|
|
10
11
|
name?: string;
|
|
@@ -13,6 +14,10 @@ export interface CreateChannelOpts {
|
|
|
13
14
|
* This function should either accept a callback, or return a Promise. See addSetup below
|
|
14
15
|
*/
|
|
15
16
|
setup?: SetupFunc;
|
|
17
|
+
/**
|
|
18
|
+
* True to create a ConfirmChannel (default). False to create a regular Channel.
|
|
19
|
+
*/
|
|
20
|
+
confirm?: boolean;
|
|
16
21
|
/**
|
|
17
22
|
* if true, then ChannelWrapper assumes all messages passed to publish() and sendToQueue() are plain JSON objects.
|
|
18
23
|
* These will be encoded automatically before being sent.
|
|
@@ -70,6 +75,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
70
75
|
* resolved.
|
|
71
76
|
*/
|
|
72
77
|
private _channel?;
|
|
78
|
+
/**
|
|
79
|
+
* True to create a ConfirmChannel. False to create a regular Channel.
|
|
80
|
+
*/
|
|
81
|
+
private _confirm;
|
|
73
82
|
/**
|
|
74
83
|
* True if the "worker" is busy sending messages. False if we need to
|
|
75
84
|
* start the worker to get stuff done.
|
|
@@ -224,6 +233,14 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
224
233
|
deleteQueue(queue: string, options?: Options.DeleteQueue): Promise<amqplib.Replies.DeleteQueue>;
|
|
225
234
|
/** Send a `assertExchange` to the underlying channel. */
|
|
226
235
|
assertExchange(exchange: string, type: 'direct' | 'topic' | 'headers' | 'fanout' | 'match' | string, options?: Options.AssertExchange): Promise<amqplib.Replies.AssertExchange>;
|
|
236
|
+
/** Send a `bindExchange` to the underlying channel. */
|
|
237
|
+
bindExchange(destination: string, source: string, pattern: string, args?: any): Promise<amqplib.Replies.Empty>;
|
|
238
|
+
/** Send a `checkExchange` to the underlying channel. */
|
|
239
|
+
checkExchange(exchange: string): Promise<amqplib.Replies.Empty>;
|
|
240
|
+
/** Send a `deleteExchange` to the underlying channel. */
|
|
241
|
+
deleteExchange(exchange: string, options?: Options.DeleteExchange): Promise<amqplib.Replies.Empty>;
|
|
242
|
+
/** Send a `unbindExchange` to the underlying channel. */
|
|
243
|
+
unbindExchange(destination: string, source: string, pattern: string, args?: any): Promise<amqplib.Replies.Empty>;
|
|
227
244
|
/** Send a `get` to the underlying channel. */
|
|
228
245
|
get(queue: string, options?: Options.Get): Promise<amqplib.GetMessage | false>;
|
|
229
246
|
}
|
|
@@ -42,7 +42,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
42
42
|
*
|
|
43
43
|
*/
|
|
44
44
|
constructor(connectionManager, options = {}) {
|
|
45
|
-
var _a;
|
|
45
|
+
var _a, _b;
|
|
46
46
|
super();
|
|
47
47
|
/** If we're in the process of creating a channel, this is a Promise which
|
|
48
48
|
* will resolve when the channel is set up. Otherwise, this is `null`.
|
|
@@ -54,6 +54,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
54
54
|
this._unconfirmedMessages = [];
|
|
55
55
|
/** Consumers which will be reconnected on channel errors etc. */
|
|
56
56
|
this._consumers = [];
|
|
57
|
+
/**
|
|
58
|
+
* True to create a ConfirmChannel. False to create a regular Channel.
|
|
59
|
+
*/
|
|
60
|
+
this._confirm = true;
|
|
57
61
|
/**
|
|
58
62
|
* True if the "worker" is busy sending messages. False if we need to
|
|
59
63
|
* start the worker to get stuff done.
|
|
@@ -72,9 +76,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
72
76
|
this._onConnect = this._onConnect.bind(this);
|
|
73
77
|
this._onDisconnect = this._onDisconnect.bind(this);
|
|
74
78
|
this._connectionManager = connectionManager;
|
|
79
|
+
this._confirm = (_a = options.confirm) !== null && _a !== void 0 ? _a : true;
|
|
75
80
|
this.name = options.name;
|
|
76
81
|
this._publishTimeout = options.publishTimeout;
|
|
77
|
-
this._json = (
|
|
82
|
+
this._json = (_b = options.json) !== null && _b !== void 0 ? _b : false;
|
|
78
83
|
// Array of setup functions to call.
|
|
79
84
|
this._setups = [];
|
|
80
85
|
this._consumers = [];
|
|
@@ -181,7 +186,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
181
186
|
type: 'publish',
|
|
182
187
|
exchange,
|
|
183
188
|
routingKey,
|
|
184
|
-
content,
|
|
189
|
+
content: this._getEncodedMessage(content),
|
|
185
190
|
resolve,
|
|
186
191
|
reject,
|
|
187
192
|
options: opts,
|
|
@@ -200,12 +205,13 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
200
205
|
* `message` here should be a JSON-able object.
|
|
201
206
|
*/
|
|
202
207
|
sendToQueue(queue, content, options, done) {
|
|
208
|
+
const encodedContent = this._getEncodedMessage(content);
|
|
203
209
|
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
204
210
|
const { timeout, ...opts } = options || {};
|
|
205
211
|
this._enqueueMessage({
|
|
206
212
|
type: 'sendToQueue',
|
|
207
213
|
queue,
|
|
208
|
-
content,
|
|
214
|
+
content: encodedContent,
|
|
209
215
|
resolve,
|
|
210
216
|
reject,
|
|
211
217
|
options: opts,
|
|
@@ -237,7 +243,13 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
237
243
|
async _onConnect({ connection }) {
|
|
238
244
|
this._irrecoverableCode = undefined;
|
|
239
245
|
try {
|
|
240
|
-
|
|
246
|
+
let channel;
|
|
247
|
+
if (this._confirm) {
|
|
248
|
+
channel = await connection.createConfirmChannel();
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
channel = await connection.createChannel();
|
|
252
|
+
}
|
|
241
253
|
this._channel = channel;
|
|
242
254
|
this._channelHasRoom = true;
|
|
243
255
|
channel.on('close', () => this._onChannelClose(channel));
|
|
@@ -402,43 +414,60 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
402
414
|
if (!message) {
|
|
403
415
|
break;
|
|
404
416
|
}
|
|
405
|
-
|
|
406
|
-
const encodedMessage = this._getEncodedMessage(message.content);
|
|
417
|
+
let thisCanSend = true;
|
|
407
418
|
switch (message.type) {
|
|
408
419
|
case 'publish': {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
420
|
+
if (this._confirm) {
|
|
421
|
+
this._unconfirmedMessages.push(message);
|
|
422
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options, (err) => {
|
|
423
|
+
if (message.isTimedout) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
if (message.timeout) {
|
|
427
|
+
clearTimeout(message.timeout);
|
|
428
|
+
}
|
|
429
|
+
if (err) {
|
|
430
|
+
this._messageRejected(message, err);
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
this._messageResolved(message, thisCanSend);
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
414
438
|
if (message.timeout) {
|
|
415
439
|
clearTimeout(message.timeout);
|
|
416
440
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
else {
|
|
421
|
-
this._messageResolved(message, thisCanSend);
|
|
422
|
-
}
|
|
423
|
-
});
|
|
441
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options);
|
|
442
|
+
message.resolve(thisCanSend);
|
|
443
|
+
}
|
|
424
444
|
break;
|
|
425
445
|
}
|
|
426
446
|
case 'sendToQueue': {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
447
|
+
if (this._confirm) {
|
|
448
|
+
this._unconfirmedMessages.push(message);
|
|
449
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options, (err) => {
|
|
450
|
+
if (message.isTimedout) {
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
if (message.timeout) {
|
|
454
|
+
clearTimeout(message.timeout);
|
|
455
|
+
}
|
|
456
|
+
if (err) {
|
|
457
|
+
this._messageRejected(message, err);
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
this._messageResolved(message, thisCanSend);
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
432
465
|
if (message.timeout) {
|
|
433
466
|
clearTimeout(message.timeout);
|
|
434
467
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
else {
|
|
439
|
-
this._messageResolved(message, thisCanSend);
|
|
440
|
-
}
|
|
441
|
-
});
|
|
468
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options);
|
|
469
|
+
message.resolve(thisCanSend);
|
|
470
|
+
}
|
|
442
471
|
break;
|
|
443
472
|
}
|
|
444
473
|
/* istanbul ignore next */
|
|
@@ -450,7 +479,9 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
450
479
|
if (this._channelHasRoom && this._messages.length > 0) {
|
|
451
480
|
setImmediate(() => this._publishQueuedMessages(workerNumber));
|
|
452
481
|
}
|
|
453
|
-
|
|
482
|
+
else {
|
|
483
|
+
this._working = false;
|
|
484
|
+
}
|
|
454
485
|
/* istanbul ignore next */
|
|
455
486
|
}
|
|
456
487
|
catch (err) {
|
|
@@ -592,6 +623,44 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
592
623
|
return { exchange };
|
|
593
624
|
}
|
|
594
625
|
}
|
|
626
|
+
/** Send a `bindExchange` to the underlying channel. */
|
|
627
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
628
|
+
async bindExchange(destination, source, pattern, args) {
|
|
629
|
+
if (this._channel) {
|
|
630
|
+
return await this._channel.bindExchange(destination, source, pattern, args);
|
|
631
|
+
}
|
|
632
|
+
else {
|
|
633
|
+
throw new Error(`Not connected.`);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
/** Send a `checkExchange` to the underlying channel. */
|
|
637
|
+
async checkExchange(exchange) {
|
|
638
|
+
if (this._channel) {
|
|
639
|
+
return await this._channel.checkExchange(exchange);
|
|
640
|
+
}
|
|
641
|
+
else {
|
|
642
|
+
throw new Error(`Not connected.`);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
/** Send a `deleteExchange` to the underlying channel. */
|
|
646
|
+
async deleteExchange(exchange, options) {
|
|
647
|
+
if (this._channel) {
|
|
648
|
+
return await this._channel.deleteExchange(exchange, options);
|
|
649
|
+
}
|
|
650
|
+
else {
|
|
651
|
+
throw new Error(`Not connected.`);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
/** Send a `unbindExchange` to the underlying channel. */
|
|
655
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
656
|
+
async unbindExchange(destination, source, pattern, args) {
|
|
657
|
+
if (this._channel) {
|
|
658
|
+
return await this._channel.unbindExchange(destination, source, pattern, args);
|
|
659
|
+
}
|
|
660
|
+
else {
|
|
661
|
+
throw new Error(`Not connected.`);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
595
664
|
/** Send a `get` to the underlying channel. */
|
|
596
665
|
async get(queue, options) {
|
|
597
666
|
if (this._channel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelWrapper.js","sourceRoot":"","sources":["../../src/ChannelWrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChannelWrapper.js","sourceRoot":"","sources":["../../src/ChannelWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGjC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AA0EpC,MAAM,oBAAoB,GAAG;IACzB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG,EAAE,uBAAuB;CAC/B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY;IAyQpD;;;;;;;;;;;;;OAaG;IACH,YAAY,iBAAyC,EAAE,UAA6B,EAAE;;QAClF,KAAK,EAAE,CAAC;QApRZ;;WAEG;QACK,eAAU,GAA8B,SAAS,CAAC;QAE1D,qCAAqC;QAC7B,cAAS,GAAc,EAAE,CAAC;QAClC,iDAAiD;QACzC,yBAAoB,GAAc,EAAE,CAAC;QAG7C,iEAAiE;QACzD,eAAU,GAAe,EAAE,CAAC;QASpC;;WAEG;QACK,aAAQ,GAAG,IAAI,CAAC;QACxB;;;WAGG;QACK,aAAQ,GAAG,KAAK,CAAC;QAEzB;;;;WAIG;QACK,kBAAa,GAAG,CAAC,CAAC;QAE1B;;WAEG;QACK,oBAAe,GAAG,IAAI,CAAC;QA4O3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAI,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,KAAK,CAAC;QAEnC,oCAAoC;QACpC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,OAAO,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAChD,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;SACnC;QACD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IAtPD,WAAW,CAAC,KAAa,EAAE,QAAkC;QACzD,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAMD,EAAE,CAAC,KAAa,EAAE,QAAkC;QAChD,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAMD,IAAI,CAAC,KAAa,EAAE,QAAkC;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAMD,eAAe,CAAC,KAAa,EAAE,QAAkC;QAC7D,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IASD,mBAAmB,CAAC,KAAa,EAAE,QAAkC;QACjE,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAgB,EAAE,IAAwB;QAC/C,OAAO,EAAE,CAAC,WAAW,CACjB,IAAI,EACJ,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9C;iBAAM;gBACH,OAAO,SAAS,CAAC;aACpB;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,KAAgB,EAAE,QAAoB,EAAE,IAAwB;QACxE,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YAEvD,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACpD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACjF,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,IAAwB;QACnC,OAAO,EAAE,CAAC,WAAW,CACjB,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU;YAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;YACnB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAChE,CAAC;IACN,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CACH,QAAgB,EAChB,UAAkB,EAClB,OAAkC,EAClC,OAAwB,EACxB,IAA2B;QAE3B,OAAO,EAAE,CAAC,WAAW,CACjB,IAAI,EACJ,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAChB;gBACI,IAAI,EAAE,SAAS;gBACf,QAAQ;gBACR,UAAU;gBACV,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACzC,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;aACpB,EACD,OAAO,IAAI,IAAI,CAAC,eAAe,CAClC,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CACP,KAAa,EACb,OAAkC,EAClC,OAAwB,EACxB,IAA2B;QAE3B,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAExD,OAAO,EAAE,CAAC,WAAW,CACjB,IAAI,EACJ,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAChB;gBACI,IAAI,EAAE,aAAa;gBACnB,KAAK;gBACL,OAAO,EAAE,cAAc;gBACvB,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;aACpB,EACD,OAAO,IAAI,IAAI,CAAC,eAAe,CAClC,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,OAAgB,EAAE,OAAgB;QACtD,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;oBACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACjC;qBAAM;oBACH,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;wBACZ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;qBAC5C;iBACJ;gBACD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,CAAC,EAAE,OAAO,CAAC,CAAC;SACf;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IA2CD,4CAA4C;IACpC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,EAAsC;QACvE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAEpC,IAAI;YACA,IAAI,OAAgB,CAAC;YACrB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO,GAAG,MAAM,UAAU,CAAC,oBAAoB,EAAE,CAAC;aACrD;iBAAM;gBACH,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;aAC9C;YAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YAElD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACzB,yEAAyE;YACzE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;oBACtC,mEAAmE;oBACnE,OAAO;iBACV;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CACL,CACJ;iBACI,IAAI,CAAC,GAAG,EAAE;gBACP,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACP,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAChC,CAAC,CAAC,CAAC;YACP,MAAM,IAAI,CAAC,UAAU,CAAC;YAEtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,uDAAuD;gBACvD,OAAO;aACV;YAED,uDAAuD;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACxB;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC7B;IACL,CAAC;IAED,sCAAsC;IAC9B,eAAe,CAAC,OAAgB;QACpC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC7B;QACD,sDAAsD;IAC1D,CAAC;IAED,0CAA0C;IAClC,eAAe;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,sDAAsD;IAC9C,aAAa,CAAC,EAAqC;QACvD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,4FAA4F;QAC5F,oDAAoD;QACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,gEAAgE;IAChE,WAAW;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,wBAAwB;IACxB,EAAE;IACF,oEAAoE;IACpE,EAAE;IACF,KAAK;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,8BAA8B;gBAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC/B,IAAI,OAAO,CAAC,OAAO,EAAE;wBACjB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;qBACjC;oBACD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;aACN;YACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxC,mCAAmC;gBACnC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC1C,IAAI,OAAO,CAAC,OAAO,EAAE;wBACjB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;qBACjC;oBACD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;aACN;YAED,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACnE,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,CAAC;YACrE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAE1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnB,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,cAAc;QAClB,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAC3F,CAAC;IACN,CAAC;IAED,gFAAgF;IACxE,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACnD;IACL,CAAC;IAED,oDAAoD;IAC5C,oBAAoB;QACxB,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/F,CAAC;IAEO,gBAAgB,CAAC,OAAgB,EAAE,MAAe;QACtD,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,OAAgB,EAAE,GAAU;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;YAC/C,+FAA+F;YAC/F,gBAAgB;YAChB,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC;aAAM;YACH,8FAA8F;YAC9F,8DAA8D;YAC9D,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACvB;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAkC;QACzD,IAAI,cAAsB,CAAC;QAE3B,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SACzD;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACpC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzC;aAAM,IAAI,OAAO,YAAY,MAAM,EAAE;YAClC,cAAc,GAAG,OAAO,CAAC;SAC5B;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAQ,OAAe,CAAC,QAAQ,KAAK,UAAU,EAAE;YACvF,cAAc,GAAG,MAAM,CAAC,IAAI,CAAE,OAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC7D;aAAM;YACH,OAAO,CAAC,IAAI,CACR,8EAA8E,CACjF,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SACzD;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,sBAAsB,CAAC,YAAoB;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IACI,CAAC,OAAO;YACR,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,CAAC,IAAI,CAAC,QAAQ;YACd,YAAY,KAAK,IAAI,CAAC,aAAa,EACrC;YACE,sCAAsC;YACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,OAAO;SACV;QAED,IAAI;YACA,0EAA0E;YAC1E,IAAI,SAAS,GAAG,sBAAsB,CAAC;YACvC,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;gBACvE,SAAS,EAAE,CAAC;gBAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,EAAE;oBACV,MAAM;iBACT;gBAED,IAAI,WAAW,GAAG,IAAI,CAAC;gBAEvB,QAAQ,OAAO,CAAC,IAAI,EAAE;oBAClB,KAAK,SAAS,CAAC,CAAC;wBACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;4BACf,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACxC,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAChD,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,CAAC,GAAG,EAAE,EAAE;gCACJ,IAAI,OAAO,CAAC,UAAU,EAAE;oCACpB,OAAO;iCACV;gCAED,IAAI,OAAO,CAAC,OAAO,EAAE;oCACjB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iCACjC;gCAED,IAAI,GAAG,EAAE;oCACL,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;iCACvC;qCAAM;oCACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;iCAC/C;4BACL,CAAC,CACJ,CAAC;yBACL;6BAAM;4BACH,IAAI,OAAO,CAAC,OAAO,EAAE;gCACjB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;6BACjC;4BACD,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAChD,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAClB,CAAC;4BACF,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;yBAChC;wBACD,MAAM;qBACT;oBACD,KAAK,aAAa,CAAC,CAAC;wBAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;4BACf,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACxC,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CACpD,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,CAAC,GAAG,EAAE,EAAE;gCACJ,IAAI,OAAO,CAAC,UAAU,EAAE;oCACpB,OAAO;iCACV;gCAED,IAAI,OAAO,CAAC,OAAO,EAAE;oCACjB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iCACjC;gCAED,IAAI,GAAG,EAAE;oCACL,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;iCACvC;qCAAM;oCACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;iCAC/C;4BACL,CAAC,CACJ,CAAC;yBACL;6BAAM;4BACH,IAAI,OAAO,CAAC,OAAO,EAAE;gCACjB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;6BACjC;4BACD,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CACpD,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAClB,CAAC;4BACF,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;yBAChC;wBACD,MAAM;qBACT;oBACD,0BAA0B;oBAC1B;wBACI,MAAM,IAAI,KAAK,CAAC,0BAA2B,OAAe,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC1E;aACJ;YAED,wDAAwD;YACxD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;aACjE;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;YAED,0BAA0B;SAC7B;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC3B;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CACT,KAAa,EACb,SAAgC,EAChC,UAA2B,EAAE;QAE7B,MAAM,QAAQ,GAAa;YACvB,WAAW,EAAE,IAAI;YACjB,KAAK;YACL,SAAS;YACT,OAAO;SACV,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,QAAkB;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,OAAO;SACV;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC3C;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAC/C,QAAQ,CAAC,KAAK,EACd,CAAC,GAAG,EAAE,EAAE;YACJ,IAAI,CAAC,GAAG,EAAE;gBACN,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5C,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;wBAChE,iDAAiD;wBACjD,gDAAgD;wBAChD,mDAAmD;wBACnD,gDAAgD;wBAChD,8BAA8B;wBAC9B,OAAO;qBACV;oBACD,MAAM,GAAG,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;YACD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,EACD,OAAO,CACV,CAAC;QACF,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACrC,yBAAyB;YACzB,OAAO;SACV;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,OAAO;SACV;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,MAAM,OAAO,CAAC,GAAG,CACb,SAAS,CAAC,MAAM,CAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACtC,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACtB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;aAClD;YACD,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CACT,CAAC;IACN,CAAC;IAED,+CAA+C;IAC/C,GAAG,CAAC,OAAwB,EAAE,OAAiB;QAC3C,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,kDAAkD;IAClD,MAAM;QACF,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,OAAwB,EAAE,OAAiB,EAAE,OAAiB;QAC/D,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,OAAiB;QACrB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,UAAU,CAAC,KAAa;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAChD;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,UAAU,CAAC,KAAa;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAChD;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,WAAW,CACb,KAAa,EACb,OAAqC;QAErC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC1D;aAAM;YACH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;SACvD;IACL,CAAC;IAED,oDAAoD;IACpD,6EAA6E;IAC7E,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,OAAe,EAAE,IAAU;QACtE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/D;IACL,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,WAAW,CACb,KAAa,EACb,OAA6B;QAE7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC1D;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,cAAc,CAChB,QAAgB,EAChB,IAAkE,EAClE,OAAgC;QAEhC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SACtE;aAAM;YACH,OAAO,EAAE,QAAQ,EAAE,CAAC;SACvB;IACL,CAAC;IAED,uDAAuD;IACvD,6EAA6E;IAC7E,KAAK,CAAC,YAAY,CACd,WAAmB,EACnB,MAAc,EACd,OAAe,EACf,IAAU;QAEV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC/E;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,aAAa,CAAC,QAAgB;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACtD;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,cAAc,CAChB,QAAgB,EAChB,OAAgC;QAEhC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAChE;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,yDAAyD;IACzD,6EAA6E;IAC7E,KAAK,CAAC,cAAc,CAChB,WAAmB,EACnB,MAAc,EACd,OAAe,EACf,IAAU;QAEV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACjF;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,OAAqB;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAClD;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;IACL,CAAC;CACJ;AAED,SAAS,wBAAwB,CAAC,GAAc,EAAE,OAAgB;IAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC9D;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import AmqpConnectionManager, { AmqpConnectionManagerOptions, ConnectionUrl, IAmqpConnectionManager } from './AmqpConnectionManager.js';
|
|
2
2
|
export type { AmqpConnectionManagerOptions, ConnectionUrl, IAmqpConnectionManager as AmqpConnectionManager, } from './AmqpConnectionManager.js';
|
|
3
|
-
export type { CreateChannelOpts, default as ChannelWrapper, SetupFunc } from './ChannelWrapper.js';
|
|
3
|
+
export type { CreateChannelOpts, default as ChannelWrapper, SetupFunc, Channel, } from './ChannelWrapper.js';
|
|
4
4
|
export declare function connect(urls: ConnectionUrl | ConnectionUrl[] | undefined | null, options?: AmqpConnectionManagerOptions): IAmqpConnectionManager;
|
|
5
5
|
export { AmqpConnectionManager as AmqpConnectionManagerClass };
|
|
6
6
|
declare const amqp: {
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAIN,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAIN,MAAM,4BAA4B,CAAC;AAcpC,MAAM,UAAU,OAAO,CACnB,IAAwD,EACxD,OAAsC;IAEtC,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACtB,UAAU;IACd,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,qBAAqB,IAAI,0BAA0B,EAAE,CAAC;AAE/D,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;AAEzB,eAAe,IAAI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "amqp-connection-manager",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Auto-reconnect and round robin support for amqplib.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
"coveralls": "^3.1.0",
|
|
43
43
|
"cross-env": "^7.0.2",
|
|
44
44
|
"eslint": "^7.8.1",
|
|
45
|
-
"eslint-config-benbria": "^4.0.3",
|
|
46
45
|
"eslint-config-prettier": "^8.3.0",
|
|
47
46
|
"eslint-plugin-import": "^2.24.1",
|
|
48
47
|
"eslint-plugin-promise": "^5.0.0",
|