@autofleet/rabbit 3.4.0-beta.20 → 3.4.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -3
- package/dist/index.js +73 -51
- package/dist/lib/celery.js +0 -1
- package/dist/lib/consts.js +0 -1
- package/dist/lib/rabbitError.js +0 -1
- package/dist/lib/redis.js +0 -1
- package/dist/lib/types.d.ts +1 -1
- package/dist/lib/types.js +0 -1
- package/dist/lib/utils.js +0 -1
- package/dist/logger.js +0 -1
- package/dist/{mock/index.d.ts → mock.d.ts} +1 -1
- package/dist/{mock/index.js → mock.js} +1 -2
- package/package.json +15 -22
- package/src/index.ts +77 -58
- package/src/lib/types.ts +1 -1
- package/src/{mock/index.ts → mock.ts} +2 -2
- package/tsconfig.json +2 -2
- package/dist/index.js.map +0 -1
- package/dist/lib/celery.js.map +0 -1
- package/dist/lib/consts.js.map +0 -1
- package/dist/lib/rabbitError.js.map +0 -1
- package/dist/lib/redis.js.map +0 -1
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/mock/index.js.map +0 -1
- package/dist/mock/vitest.d.ts +0 -13
- package/dist/mock/vitest.js +0 -18
- package/dist/mock/vitest.js.map +0 -1
- package/src/mock/vitest.ts +0 -24
- package/tsconfig.build.json +0 -5
- package/vitest.config.ts +0 -16
package/dist/index.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ declare class RabbitMq implements IAfRabbitMq {
|
|
|
62
62
|
publishChannel: ChannelWrapper | null;
|
|
63
63
|
publishChannelSetupPromise: Promise<ChannelWrapper> | null;
|
|
64
64
|
blockReconnect: boolean | null | undefined;
|
|
65
|
+
connection: AmqpConnectionManager | null | undefined;
|
|
65
66
|
publishConnection: ConnectionData;
|
|
66
67
|
consumeConnection: ConnectionData;
|
|
67
68
|
em: EventEmitter;
|
|
@@ -97,7 +98,7 @@ declare class RabbitMq implements IAfRabbitMq {
|
|
|
97
98
|
ack: (channel: ConfirmChannel, msg: ConsumeMessageOrNull, shouldUpdateRedisTimestamp?: boolean, releaseLock?: null) => (userMsg: ConsumeMessage) => Promise<any>;
|
|
98
99
|
nack: (channel: ConfirmChannel, queue: string, options: any, deadQueueOptions: Options.AssertQueue, msg: ConsumeMessageOrNull, releaseLock: any) => (userMsg: ConsumeMessageOrNull, { skipRetry, }?: NackOptions) => Promise<any>;
|
|
99
100
|
getConnection(connection: ConnectionData): Promise<AmqpConnectionManager>;
|
|
100
|
-
getNewChannel({ name, onClose, options, connection, }: newChannelOpts): Promise<
|
|
101
|
+
getNewChannel({ name, onClose, options, connection, }: newChannelOpts): Promise<ChannelWrapper>;
|
|
101
102
|
assertChannel({ force, connection }: assertChannelOpts): Promise<ChannelWrapper>;
|
|
102
103
|
assertExchange(exchangeName: string, connection: ConnectionData): Promise<any>;
|
|
103
104
|
getQueueLength(queue: string): Promise<Replies.AssertQueue>;
|
|
@@ -119,7 +120,7 @@ declare class RabbitMq implements IAfRabbitMq {
|
|
|
119
120
|
isConnected(): Promise<boolean>;
|
|
120
121
|
gracefulShutdown(signal: string): Promise<void>;
|
|
121
122
|
private consumeFromRabbitOld;
|
|
122
|
-
getNewChannelOld({ name, onClose, options, connection, }: newChannelOpts): Promise<
|
|
123
|
+
getNewChannelOld({ name, onClose, options, connection, }: newChannelOpts): Promise<ChannelWrapper>;
|
|
123
124
|
getConnectionOld(connection: ConnectionData): Promise<AmqpConnectionManager>;
|
|
124
125
|
private saveConsumerOld;
|
|
125
126
|
assertQueueOld(queueName: string, options?: Options.AssertQueue): Promise<any>;
|
|
@@ -127,7 +128,6 @@ declare class RabbitMq implements IAfRabbitMq {
|
|
|
127
128
|
assertChannelOld({ force, connection }: assertChannelOpts): Promise<ChannelWrapper>;
|
|
128
129
|
private deleteQueueOld;
|
|
129
130
|
assertExchangeOld(exchangeName: string, connection: ConnectionData): Promise<any>;
|
|
130
|
-
private maskURL;
|
|
131
131
|
}
|
|
132
132
|
export default RabbitMq;
|
|
133
133
|
export { sendCeleryTaskViaHttp, } from './lib/celery';
|
package/dist/index.js
CHANGED
|
@@ -136,11 +136,11 @@ class RabbitMq {
|
|
|
136
136
|
await this.unlockRedisIfNeeded(releaseLock);
|
|
137
137
|
if (channel && msg) {
|
|
138
138
|
if (!skipRetry
|
|
139
|
-
&& (!msg.properties.headers
|
|
139
|
+
&& (!msg.properties.headers[consts_1.RETRY_HEADER]
|
|
140
140
|
|| parseInt(msg.properties.headers[consts_1.RETRY_HEADER], 10) < options.retries)) {
|
|
141
141
|
await this.sendToQueue(queue, RabbitMq.parseMsg(msg).content, options, {
|
|
142
142
|
...msg.properties.headers,
|
|
143
|
-
[consts_1.RETRY_HEADER]: msg.properties.headers
|
|
143
|
+
[consts_1.RETRY_HEADER]: msg.properties.headers[consts_1.RETRY_HEADER]
|
|
144
144
|
? msg.properties.headers[consts_1.RETRY_HEADER] + 1
|
|
145
145
|
: 1,
|
|
146
146
|
});
|
|
@@ -149,7 +149,7 @@ class RabbitMq {
|
|
|
149
149
|
const deadQueue = `${queue}-dead`;
|
|
150
150
|
await this.sendToQueue(deadQueue, RabbitMq.parseMsg(msg).content, deadQueueOptions, {
|
|
151
151
|
...msg.properties.headers,
|
|
152
|
-
[consts_1.RETRY_HEADER]: msg.properties.headers
|
|
152
|
+
[consts_1.RETRY_HEADER]: msg.properties.headers[consts_1.RETRY_HEADER]
|
|
153
153
|
? msg.properties.headers[consts_1.RETRY_HEADER] + 1
|
|
154
154
|
: 1,
|
|
155
155
|
});
|
|
@@ -163,29 +163,19 @@ class RabbitMq {
|
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
|
-
this.maskURL = (url) => {
|
|
167
|
-
try {
|
|
168
|
-
const urlObj = new URL(url);
|
|
169
|
-
urlObj.username = '***';
|
|
170
|
-
urlObj.password = '***';
|
|
171
|
-
return urlObj.toString();
|
|
172
|
-
}
|
|
173
|
-
catch {
|
|
174
|
-
return url;
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
166
|
this.em = new events_1.EventEmitter();
|
|
178
167
|
this.publishChannel = null;
|
|
179
168
|
this.publishChannelSetupPromise = null;
|
|
169
|
+
this.connection = null;
|
|
180
170
|
this.publishConnection = {
|
|
181
|
-
|
|
171
|
+
connection: null,
|
|
182
172
|
creatingConnection: false,
|
|
183
173
|
connectionCreatedEventName: 'publishConnectionCreated',
|
|
184
174
|
connectionFailedEventName: 'publishConnectionFailed',
|
|
185
175
|
blockReconnect: false,
|
|
186
176
|
};
|
|
187
177
|
this.consumeConnection = {
|
|
188
|
-
|
|
178
|
+
connection: null,
|
|
189
179
|
creatingConnection: false,
|
|
190
180
|
connectionCreatedEventName: 'consumeConnectionCreated',
|
|
191
181
|
connectionFailedEventName: 'consumeConnectionFailed',
|
|
@@ -217,17 +207,17 @@ class RabbitMq {
|
|
|
217
207
|
this.oldPublishChannel = null;
|
|
218
208
|
this.oldPublishChannelSetupPromise = null;
|
|
219
209
|
this.oldPublishConnection = {
|
|
220
|
-
|
|
210
|
+
connection: null,
|
|
221
211
|
creatingConnection: false,
|
|
222
|
-
connectionCreatedEventName: '
|
|
223
|
-
connectionFailedEventName: '
|
|
212
|
+
connectionCreatedEventName: 'publishConnectionCreated',
|
|
213
|
+
connectionFailedEventName: 'publishConnectionFailed',
|
|
224
214
|
blockReconnect: false,
|
|
225
215
|
};
|
|
226
216
|
this.oldConsumeConnection = {
|
|
227
|
-
|
|
217
|
+
connection: null,
|
|
228
218
|
creatingConnection: false,
|
|
229
|
-
connectionCreatedEventName: '
|
|
230
|
-
connectionFailedEventName: '
|
|
219
|
+
connectionCreatedEventName: 'consumeConnectionCreated',
|
|
220
|
+
connectionFailedEventName: 'consumeConnectionFailed',
|
|
231
221
|
blockReconnect: false,
|
|
232
222
|
};
|
|
233
223
|
this.oldCreatingConnection = false;
|
|
@@ -240,7 +230,7 @@ class RabbitMq {
|
|
|
240
230
|
}
|
|
241
231
|
async getConnection(connection) {
|
|
242
232
|
return new Promise(async (resolve, reject) => {
|
|
243
|
-
const {
|
|
233
|
+
const { connection: connectionLocal, creatingConnection, connectionCreatedEventName, connectionFailedEventName, blockReconnect, } = connection;
|
|
244
234
|
if (blockReconnect) {
|
|
245
235
|
debug('rabbit: block reconnect');
|
|
246
236
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -278,7 +268,13 @@ class RabbitMq {
|
|
|
278
268
|
const newConnection = await (0, amqp_connection_manager_1.connect)(defaultUrls, {
|
|
279
269
|
findServers,
|
|
280
270
|
});
|
|
281
|
-
connection.
|
|
271
|
+
connection.connection = newConnection;
|
|
272
|
+
if (connection === this.publishConnection) {
|
|
273
|
+
debug('rabbit: publishConnection set');
|
|
274
|
+
}
|
|
275
|
+
else if (connection === this.consumeConnection) {
|
|
276
|
+
debug('rabbit: consumeConnection set');
|
|
277
|
+
}
|
|
282
278
|
newConnection.on('error', (err) => {
|
|
283
279
|
logger_1.default.error('rabbit: connection error', { err });
|
|
284
280
|
if (!isResolved) {
|
|
@@ -289,9 +285,6 @@ class RabbitMq {
|
|
|
289
285
|
});
|
|
290
286
|
newConnection.on('connectFailed', (err) => {
|
|
291
287
|
this.consumersTags = [];
|
|
292
|
-
if (typeof err.url === 'string') {
|
|
293
|
-
err.url = this.maskURL(err.url);
|
|
294
|
-
}
|
|
295
288
|
logger_1.default.error('rabbit: connection connectFailed', { err, advice: 'Check if the vhost exist', vhost: this.vhost });
|
|
296
289
|
if (!isResolved) {
|
|
297
290
|
isResolved = true;
|
|
@@ -314,7 +307,7 @@ class RabbitMq {
|
|
|
314
307
|
newConnection.once('connect', async () => {
|
|
315
308
|
debug('rabbit: connection established');
|
|
316
309
|
connection.creatingConnection = false;
|
|
317
|
-
this.em.emit(connectionCreatedEventName,
|
|
310
|
+
this.em.emit(connectionCreatedEventName, connection);
|
|
318
311
|
isResolved = true;
|
|
319
312
|
resolve(newConnection);
|
|
320
313
|
});
|
|
@@ -329,7 +322,7 @@ class RabbitMq {
|
|
|
329
322
|
logger_1.default.error(`rabbit: error on get connection for new channel ${name} `, { e });
|
|
330
323
|
throw e;
|
|
331
324
|
}
|
|
332
|
-
const channel = localConnection
|
|
325
|
+
const channel = localConnection.createChannel({ ...options });
|
|
333
326
|
(0, events_1.once)(channel, 'close').then((args) => {
|
|
334
327
|
logger_1.default.error(`rabbit: channel ${name} closed`);
|
|
335
328
|
onClose?.(args);
|
|
@@ -387,7 +380,7 @@ class RabbitMq {
|
|
|
387
380
|
if (!channel) {
|
|
388
381
|
throw new rabbitError_1.default('channel is not defined');
|
|
389
382
|
}
|
|
390
|
-
debug('rabbit: getting queue length', { queue, connected: this.
|
|
383
|
+
debug('rabbit: getting queue length', { queue, connected: this.connection?.isConnected() });
|
|
391
384
|
return channel?.checkQueue(queue);
|
|
392
385
|
}
|
|
393
386
|
async deleteQueue(queue, connection) {
|
|
@@ -481,7 +474,7 @@ class RabbitMq {
|
|
|
481
474
|
// Used by the microservices to consume messages from the queue
|
|
482
475
|
async consume(queue, callback, options) {
|
|
483
476
|
// TODO: [QUORUM-PHASE-3] Use only the implementation of consumeNew and delete consumeNew and consumeOld
|
|
484
|
-
if (options?.isQuorumQueue !== false
|
|
477
|
+
if (options?.isQuorumQueue !== false) {
|
|
485
478
|
await this.assertVHost();
|
|
486
479
|
await this.consumeNew(queue, callback, options);
|
|
487
480
|
}
|
|
@@ -606,7 +599,7 @@ class RabbitMq {
|
|
|
606
599
|
RabbitMq.validateName('queue', queue);
|
|
607
600
|
const { limit, deadMessageTtl } = optionsWithDefaults;
|
|
608
601
|
// TODO: [QUORUM-PHASE-3] Delete the if statement after all the queues are created as quorum queues
|
|
609
|
-
if (options?.isQuorumQueue !== false
|
|
602
|
+
if (options?.isQuorumQueue !== false) {
|
|
610
603
|
await this.assertVHost();
|
|
611
604
|
await this.saveConsumer(queue, callback, options);
|
|
612
605
|
const channel = await this.getNewChannel({
|
|
@@ -682,26 +675,26 @@ class RabbitMq {
|
|
|
682
675
|
}
|
|
683
676
|
// TODO: [QUORUM-PHASE-2] After changing the publish from old to new change from the old to the new implementation
|
|
684
677
|
async isConnected() {
|
|
685
|
-
debug('rabbit: start
|
|
686
|
-
const
|
|
687
|
-
const
|
|
688
|
-
const
|
|
689
|
-
if (!
|
|
690
|
-
logger_1.default.error('rabbit:
|
|
678
|
+
debug('rabbit: start is connected');
|
|
679
|
+
const consumeConnection = await this.getConnectionOld(this.oldConsumeConnection);
|
|
680
|
+
const publishConnection = await this.getConnectionOld(this.oldPublishConnection);
|
|
681
|
+
const isConnected = consumeConnection.isConnected() && publishConnection.isConnected();
|
|
682
|
+
if (!isConnected) {
|
|
683
|
+
logger_1.default.error('rabbit: isConnected - false');
|
|
691
684
|
return false;
|
|
692
685
|
}
|
|
693
|
-
const
|
|
686
|
+
const channel = await this.assertChannelOld({ connection: this.oldPublishConnection });
|
|
694
687
|
try {
|
|
695
688
|
await Promise.all([
|
|
696
|
-
|
|
697
|
-
...this.oldConsumers.map((c) =>
|
|
689
|
+
channel.waitForConnect(),
|
|
690
|
+
...this.oldConsumers.map((c) => channel.checkQueue(c.queue)),
|
|
698
691
|
]);
|
|
699
692
|
}
|
|
700
693
|
catch (e) {
|
|
701
|
-
logger_1.default.error('rabbit:
|
|
694
|
+
logger_1.default.error('rabbit: isConnected - false');
|
|
702
695
|
return false;
|
|
703
696
|
}
|
|
704
|
-
logger_1.default.debug('rabbit:
|
|
697
|
+
logger_1.default.debug('rabbit: isConnected - true');
|
|
705
698
|
return true;
|
|
706
699
|
}
|
|
707
700
|
async gracefulShutdown(signal) {
|
|
@@ -724,6 +717,7 @@ class RabbitMq {
|
|
|
724
717
|
}
|
|
725
718
|
async consumeFromRabbitOld(queue, callback, options) {
|
|
726
719
|
const optionsWithDefaults = { ...consts_1.DEFAULT_OPTIONS, ...options };
|
|
720
|
+
debug('rabbit: consumeFromRabbitOld', { queue });
|
|
727
721
|
RabbitMq.validateName('queue', queue);
|
|
728
722
|
this.saveConsumerOld(queue, callback, options);
|
|
729
723
|
const uniqueId = (0, node_crypto_1.randomUUID)();
|
|
@@ -815,6 +809,12 @@ class RabbitMq {
|
|
|
815
809
|
// TODO: [QUORUM-PHASE-3] Delete all the function under this line (getNewChannelOld, getConnectionOld, assertQueueOld, setupQueueOld, saveConsumerOld)
|
|
816
810
|
async getNewChannelOld({ name = (0, utils_1.rand)().toString(), onClose = null, options = {}, connection, }) {
|
|
817
811
|
let localConnection;
|
|
812
|
+
if (connection === this.oldPublishConnection) {
|
|
813
|
+
debug('rabbit: getConnectionOld publish', { connection });
|
|
814
|
+
}
|
|
815
|
+
else if (connection === this.oldConsumeConnection) {
|
|
816
|
+
debug('rabbit: getConnectionOld consume', { connection });
|
|
817
|
+
}
|
|
818
818
|
try {
|
|
819
819
|
localConnection = await this.getConnectionOld(connection);
|
|
820
820
|
}
|
|
@@ -825,7 +825,8 @@ class RabbitMq {
|
|
|
825
825
|
if (!localConnection) {
|
|
826
826
|
throw new Error(`rabbit: couldnt get connection for new channel ${name}`);
|
|
827
827
|
}
|
|
828
|
-
|
|
828
|
+
debug('rabbit: getNewChannelOld', { localConnection });
|
|
829
|
+
const channel = localConnection.createChannel({ ...options });
|
|
829
830
|
(0, events_1.once)(channel, 'close').then((args) => {
|
|
830
831
|
logger_1.default.error(`rabbit: channel ${name} closed`);
|
|
831
832
|
onClose?.(args);
|
|
@@ -842,7 +843,13 @@ class RabbitMq {
|
|
|
842
843
|
}
|
|
843
844
|
async getConnectionOld(connection) {
|
|
844
845
|
return new Promise(async (resolve, reject) => {
|
|
845
|
-
const {
|
|
846
|
+
const { connection: connectionLocal, creatingConnection, connectionCreatedEventName, connectionFailedEventName, blockReconnect, } = connection;
|
|
847
|
+
if (connection === this.oldPublishConnection) {
|
|
848
|
+
debug('rabbit: getConnectionOld publish', { connectionLocal, creatingConnection, blockReconnect });
|
|
849
|
+
}
|
|
850
|
+
else if (connection === this.oldConsumeConnection) {
|
|
851
|
+
debug('rabbit: getConnectionOld consume', { connectionLocal, creatingConnection, blockReconnect });
|
|
852
|
+
}
|
|
846
853
|
if (blockReconnect) {
|
|
847
854
|
debug('rabbit: block reconnect');
|
|
848
855
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -880,7 +887,13 @@ class RabbitMq {
|
|
|
880
887
|
const newConnection = await (0, amqp_connection_manager_1.connect)(defaultUrls, {
|
|
881
888
|
findServers,
|
|
882
889
|
});
|
|
883
|
-
connection.
|
|
890
|
+
connection.connection = newConnection;
|
|
891
|
+
if (connection === this.oldPublishConnection) {
|
|
892
|
+
debug('rabbit: oldPublishConnection set');
|
|
893
|
+
}
|
|
894
|
+
else if (connection === this.oldConsumeConnection) {
|
|
895
|
+
debug('rabbit: oldConsumeConnection set');
|
|
896
|
+
}
|
|
884
897
|
newConnection.on('error', (err) => {
|
|
885
898
|
logger_1.default.error('rabbit: connection error', { err });
|
|
886
899
|
if (!isResolved) {
|
|
@@ -891,9 +904,6 @@ class RabbitMq {
|
|
|
891
904
|
});
|
|
892
905
|
newConnection.on('connectFailed', (err) => {
|
|
893
906
|
this.oldConsumersTags = [];
|
|
894
|
-
if (typeof err.url === 'string') {
|
|
895
|
-
err.url = this.maskURL(err.url);
|
|
896
|
-
}
|
|
897
907
|
logger_1.default.error('rabbit: connection connectFailed', { err });
|
|
898
908
|
if (!isResolved) {
|
|
899
909
|
isResolved = true;
|
|
@@ -915,7 +925,7 @@ class RabbitMq {
|
|
|
915
925
|
newConnection.once('connect', async () => {
|
|
916
926
|
debug('rabbit: connection established');
|
|
917
927
|
connection.creatingConnection = false;
|
|
918
|
-
this.oldEm.emit(connectionCreatedEventName,
|
|
928
|
+
this.oldEm.emit(connectionCreatedEventName, connection);
|
|
919
929
|
isResolved = true;
|
|
920
930
|
resolve(newConnection);
|
|
921
931
|
});
|
|
@@ -983,6 +993,12 @@ class RabbitMq {
|
|
|
983
993
|
return queue;
|
|
984
994
|
}
|
|
985
995
|
async assertChannelOld({ force = false, connection }) {
|
|
996
|
+
if (connection === this.oldPublishConnection) {
|
|
997
|
+
debug('rabbit: assertChannelOld publish', { force, promiseSetup: this.oldPublishChannelSetupPromise });
|
|
998
|
+
}
|
|
999
|
+
else if (connection === this.oldConsumeConnection) {
|
|
1000
|
+
debug('rabbit: assertChannelOld consume', { force, promiseSetup: this.oldPublishChannelSetupPromise });
|
|
1001
|
+
}
|
|
986
1002
|
if (!this.oldPublishChannelSetupPromise) {
|
|
987
1003
|
this.oldPublishChannelSetupPromise = new Promise(async (resolve, reject) => {
|
|
988
1004
|
if (this.oldPublishChannel && !force) {
|
|
@@ -990,10 +1006,17 @@ class RabbitMq {
|
|
|
990
1006
|
}
|
|
991
1007
|
try {
|
|
992
1008
|
const channel = await this.getNewChannelOld({ connection });
|
|
1009
|
+
if (connection === this.oldPublishConnection) {
|
|
1010
|
+
debug('rabbit: old new channel got publish', { force, channel });
|
|
1011
|
+
}
|
|
1012
|
+
else if (connection === this.oldConsumeConnection) {
|
|
1013
|
+
debug('rabbit: old new channel got consume', { force, channel });
|
|
1014
|
+
}
|
|
993
1015
|
channel.on('error', (err) => {
|
|
994
1016
|
logger_1.default.error('rabbit: channel error', { err });
|
|
995
1017
|
});
|
|
996
1018
|
if (this.oldPublishConnection === connection) {
|
|
1019
|
+
debug('rabbit: a new channel assigned to the oldPublishChannel', { connection });
|
|
997
1020
|
this.oldPublishChannel = channel;
|
|
998
1021
|
}
|
|
999
1022
|
resolve(channel);
|
|
@@ -1030,4 +1053,3 @@ class RabbitMq {
|
|
|
1030
1053
|
exports.default = RabbitMq;
|
|
1031
1054
|
var celery_1 = require("./lib/celery");
|
|
1032
1055
|
Object.defineProperty(exports, "sendCeleryTaskViaHttp", { enumerable: true, get: function () { return celery_1.sendCeleryTaskViaHttp; } });
|
|
1033
|
-
//# sourceMappingURL=index.js.map
|
package/dist/lib/celery.js
CHANGED
package/dist/lib/consts.js
CHANGED
package/dist/lib/rabbitError.js
CHANGED
package/dist/lib/redis.js
CHANGED
package/dist/lib/types.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export type AfConsumer = {
|
|
|
44
44
|
};
|
|
45
45
|
export declare const CONSUMER_DEFAULT_OPTIONS: Options.Consume;
|
|
46
46
|
export type ConnectionData = {
|
|
47
|
-
|
|
47
|
+
connection: AmqpConnectionManager | null;
|
|
48
48
|
creatingConnection: boolean;
|
|
49
49
|
connectionCreatedEventName: string;
|
|
50
50
|
connectionFailedEventName: string;
|
package/dist/lib/types.js
CHANGED
package/dist/lib/utils.js
CHANGED
package/dist/logger.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// eslint-disable-next-line import/no-
|
|
3
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
4
4
|
require("jest");
|
|
5
5
|
class RabbitMq {
|
|
6
6
|
constructor() {
|
|
@@ -16,4 +16,3 @@ class RabbitMq {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
exports.default = RabbitMq;
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autofleet/rabbit",
|
|
3
|
-
"version": "3.4.0-beta.
|
|
3
|
+
"version": "3.4.0-beta.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"engines": {
|
|
@@ -10,47 +10,40 @@
|
|
|
10
10
|
"postinstall": "echo '\\033[0;31m\nWARNING: in case of migrating to new version of @autofleet/rabbit \nyou might have to delete existing queues or the deployment will fail.\\033[0m\n'",
|
|
11
11
|
"start": "ts-node src/index.ts",
|
|
12
12
|
"example": "ts-node src/example.ts",
|
|
13
|
-
"build": "rm -rf dist && tsc
|
|
14
|
-
"linter": "eslint .",
|
|
15
|
-
"test": "
|
|
16
|
-
"test-local": "RABBITMQ_SERVICE_HOST=localhost:5672
|
|
17
|
-
"coverage": "
|
|
13
|
+
"build": "rm -rf dist && tsc",
|
|
14
|
+
"linter": "./node_modules/.bin/eslint .",
|
|
15
|
+
"test": "jest --runInBand --forceExit",
|
|
16
|
+
"test-local": "RABBITMQ_SERVICE_HOST=localhost:5672 jest --forceExit",
|
|
17
|
+
"coverage": "jest --coverage --forceExit && rm -rf ./coverage",
|
|
18
18
|
"dev": "nodemon"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@autofleet/zehut": "^3.1.2",
|
|
22
|
-
"amqp-connection-manager": "4.1.
|
|
23
|
-
"amqplib": "0.10.
|
|
22
|
+
"amqp-connection-manager": "4.1.9",
|
|
23
|
+
"amqplib": "0.10.3",
|
|
24
24
|
"bluebird": "^3.7.2",
|
|
25
|
-
"moment": "^2.
|
|
25
|
+
"moment": "^2.29.1",
|
|
26
26
|
"redis": "^3.1.2",
|
|
27
27
|
"redis-lock": "^0.1.4"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"@autofleet/logger": "*"
|
|
31
|
-
"jest": "*"
|
|
32
|
-
},
|
|
33
|
-
"peerDependenciesMeta": {
|
|
34
|
-
"jest": {
|
|
35
|
-
"optional": true
|
|
36
|
-
}
|
|
30
|
+
"@autofleet/logger": "*"
|
|
37
31
|
},
|
|
38
32
|
"devDependencies": {
|
|
39
33
|
"@autofleet/logger": "4.0.6",
|
|
40
|
-
"@types/amqplib": "0.
|
|
41
|
-
"@types/bluebird": "^3.5.42",
|
|
34
|
+
"@types/amqplib": "0.8.2",
|
|
42
35
|
"@types/jest": "^29.5.12",
|
|
43
36
|
"@types/node": "^20.14.11",
|
|
44
37
|
"@typescript-eslint/eslint-plugin": "^4.8.1",
|
|
45
|
-
"@vitest/coverage-v8": "^3.1.3",
|
|
46
38
|
"eslint": "^7.13.0",
|
|
47
39
|
"eslint-config-airbnb-typescript": "^12.0.0",
|
|
48
40
|
"eslint-plugin-import": "^2.22.1",
|
|
41
|
+
"jest": "^29.7.0",
|
|
49
42
|
"node-tcp-proxy": "^0.0.28",
|
|
43
|
+
"ts-jest": "^29.2.3",
|
|
50
44
|
"ts-node": "^8.6.2",
|
|
51
|
-
"typescript": "^4.9.5"
|
|
52
|
-
"vitest": "^3.1.3"
|
|
45
|
+
"typescript": "^4.9.5"
|
|
53
46
|
},
|
|
54
47
|
"author": "",
|
|
55
|
-
"license": "
|
|
48
|
+
"license": "ISC"
|
|
56
49
|
}
|
package/src/index.ts
CHANGED
|
@@ -149,6 +149,8 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
149
149
|
|
|
150
150
|
blockReconnect: boolean | null | undefined
|
|
151
151
|
|
|
152
|
+
connection: AmqpConnectionManager | null | undefined
|
|
153
|
+
|
|
152
154
|
publishConnection: ConnectionData
|
|
153
155
|
|
|
154
156
|
consumeConnection: ConnectionData
|
|
@@ -211,15 +213,16 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
211
213
|
this.em = new EventEmitter();
|
|
212
214
|
this.publishChannel = null;
|
|
213
215
|
this.publishChannelSetupPromise = null;
|
|
216
|
+
this.connection = null;
|
|
214
217
|
this.publishConnection = {
|
|
215
|
-
|
|
218
|
+
connection: null,
|
|
216
219
|
creatingConnection: false,
|
|
217
220
|
connectionCreatedEventName: 'publishConnectionCreated',
|
|
218
221
|
connectionFailedEventName: 'publishConnectionFailed',
|
|
219
222
|
blockReconnect: false,
|
|
220
223
|
};
|
|
221
224
|
this.consumeConnection = {
|
|
222
|
-
|
|
225
|
+
connection: null,
|
|
223
226
|
creatingConnection: false,
|
|
224
227
|
connectionCreatedEventName: 'consumeConnectionCreated',
|
|
225
228
|
connectionFailedEventName: 'consumeConnectionFailed',
|
|
@@ -253,17 +256,17 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
253
256
|
this.oldPublishChannel = null;
|
|
254
257
|
this.oldPublishChannelSetupPromise = null;
|
|
255
258
|
this.oldPublishConnection = {
|
|
256
|
-
|
|
259
|
+
connection: null,
|
|
257
260
|
creatingConnection: false,
|
|
258
|
-
connectionCreatedEventName: '
|
|
259
|
-
connectionFailedEventName: '
|
|
261
|
+
connectionCreatedEventName: 'publishConnectionCreated',
|
|
262
|
+
connectionFailedEventName: 'publishConnectionFailed',
|
|
260
263
|
blockReconnect: false,
|
|
261
264
|
};
|
|
262
265
|
this.oldConsumeConnection = {
|
|
263
|
-
|
|
266
|
+
connection: null,
|
|
264
267
|
creatingConnection: false,
|
|
265
|
-
connectionCreatedEventName: '
|
|
266
|
-
connectionFailedEventName: '
|
|
268
|
+
connectionCreatedEventName: 'consumeConnectionCreated',
|
|
269
|
+
connectionFailedEventName: 'consumeConnectionFailed',
|
|
267
270
|
blockReconnect: false,
|
|
268
271
|
};
|
|
269
272
|
this.oldCreatingConnection = false;
|
|
@@ -375,13 +378,13 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
375
378
|
if (
|
|
376
379
|
!skipRetry
|
|
377
380
|
&& (
|
|
378
|
-
!msg.properties.headers
|
|
381
|
+
!msg.properties.headers[RETRY_HEADER]
|
|
379
382
|
|| parseInt(msg.properties.headers[RETRY_HEADER], 10) < options.retries
|
|
380
383
|
)
|
|
381
384
|
) {
|
|
382
385
|
await this.sendToQueue(queue, RabbitMq.parseMsg(msg).content, options, {
|
|
383
386
|
...msg.properties.headers,
|
|
384
|
-
[RETRY_HEADER]: msg.properties.headers
|
|
387
|
+
[RETRY_HEADER]: msg.properties.headers[RETRY_HEADER]
|
|
385
388
|
? msg.properties.headers[RETRY_HEADER] + 1
|
|
386
389
|
: 1,
|
|
387
390
|
});
|
|
@@ -389,7 +392,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
389
392
|
const deadQueue = `${queue}-dead`;
|
|
390
393
|
await this.sendToQueue(deadQueue, RabbitMq.parseMsg(msg).content, deadQueueOptions, {
|
|
391
394
|
...msg.properties.headers,
|
|
392
|
-
[RETRY_HEADER]: msg.properties.headers
|
|
395
|
+
[RETRY_HEADER]: msg.properties.headers[RETRY_HEADER]
|
|
393
396
|
? msg.properties.headers[RETRY_HEADER] + 1
|
|
394
397
|
: 1,
|
|
395
398
|
});
|
|
@@ -406,13 +409,12 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
406
409
|
async getConnection(connection: ConnectionData) {
|
|
407
410
|
return new Promise<AmqpConnectionManager>(async (resolve, reject) => {
|
|
408
411
|
const {
|
|
409
|
-
|
|
412
|
+
connection: connectionLocal,
|
|
410
413
|
creatingConnection,
|
|
411
414
|
connectionCreatedEventName,
|
|
412
415
|
connectionFailedEventName,
|
|
413
416
|
blockReconnect,
|
|
414
417
|
} = connection;
|
|
415
|
-
|
|
416
418
|
if (blockReconnect) {
|
|
417
419
|
debug('rabbit: block reconnect');
|
|
418
420
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -454,7 +456,12 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
454
456
|
findServers,
|
|
455
457
|
});
|
|
456
458
|
|
|
457
|
-
connection.
|
|
459
|
+
connection.connection = newConnection;
|
|
460
|
+
if (connection === this.publishConnection) {
|
|
461
|
+
debug('rabbit: publishConnection set');
|
|
462
|
+
} else if (connection === this.consumeConnection) {
|
|
463
|
+
debug('rabbit: consumeConnection set');
|
|
464
|
+
}
|
|
458
465
|
newConnection.on('error', (err) => {
|
|
459
466
|
logger.error('rabbit: connection error', { err });
|
|
460
467
|
if (!isResolved) {
|
|
@@ -466,9 +473,6 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
466
473
|
|
|
467
474
|
newConnection.on('connectFailed', (err) => {
|
|
468
475
|
this.consumersTags = [];
|
|
469
|
-
if (typeof err.url === 'string') {
|
|
470
|
-
err.url = this.maskURL(err.url);
|
|
471
|
-
}
|
|
472
476
|
logger.error('rabbit: connection connectFailed', { err, advice: 'Check if the vhost exist', vhost: this.vhost });
|
|
473
477
|
if (!isResolved) {
|
|
474
478
|
isResolved = true;
|
|
@@ -492,7 +496,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
492
496
|
newConnection.once('connect', async () => {
|
|
493
497
|
debug('rabbit: connection established');
|
|
494
498
|
connection.creatingConnection = false;
|
|
495
|
-
this.em.emit(connectionCreatedEventName,
|
|
499
|
+
this.em.emit(connectionCreatedEventName, connection);
|
|
496
500
|
isResolved = true;
|
|
497
501
|
resolve(newConnection);
|
|
498
502
|
});
|
|
@@ -509,7 +513,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
509
513
|
logger.error(`rabbit: error on get connection for new channel ${name} `, { e });
|
|
510
514
|
throw e;
|
|
511
515
|
}
|
|
512
|
-
const channel = localConnection
|
|
516
|
+
const channel = localConnection.createChannel({ ...options });
|
|
513
517
|
once(channel, 'close').then((args) => {
|
|
514
518
|
logger.error(`rabbit: channel ${name} closed`);
|
|
515
519
|
onClose?.(args);
|
|
@@ -572,7 +576,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
572
576
|
if (!channel) {
|
|
573
577
|
throw new RabbitError('channel is not defined');
|
|
574
578
|
}
|
|
575
|
-
debug('rabbit: getting queue length', { queue, connected: this.
|
|
579
|
+
debug('rabbit: getting queue length', { queue, connected: this.connection?.isConnected() });
|
|
576
580
|
return channel?.checkQueue(queue);
|
|
577
581
|
}
|
|
578
582
|
|
|
@@ -678,7 +682,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
678
682
|
// Used by the microservices to consume messages from the queue
|
|
679
683
|
async consume(queue: string, callback: CallbackFunction, options?: ConsumeOptions): Promise<any> {
|
|
680
684
|
// TODO: [QUORUM-PHASE-3] Use only the implementation of consumeNew and delete consumeNew and consumeOld
|
|
681
|
-
if (options?.isQuorumQueue !== false
|
|
685
|
+
if (options?.isQuorumQueue !== false) {
|
|
682
686
|
await this.assertVHost();
|
|
683
687
|
await this.consumeNew(queue, callback, options);
|
|
684
688
|
}
|
|
@@ -741,9 +745,9 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
741
745
|
return null;
|
|
742
746
|
}
|
|
743
747
|
|
|
744
|
-
const traceId = msg.properties.headers
|
|
745
|
-
const userId = msg.properties.headers
|
|
746
|
-
const automationId = msg.properties.headers
|
|
748
|
+
const traceId = msg.properties.headers[TRACING_HEADER];
|
|
749
|
+
const userId = msg.properties.headers[USER_TRACING_HEADER];
|
|
750
|
+
const automationId = msg.properties.headers[AUTOMATION_ID_HEADER];
|
|
747
751
|
const parsedMessage = RabbitMq.parseMsg(msg);
|
|
748
752
|
const releaseLock = await this.lockRedisIfNeeded(parsedMessage, optionsWithDefaults);
|
|
749
753
|
const trace = newTrace(traceTypes.RABBIT);
|
|
@@ -827,7 +831,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
827
831
|
RabbitMq.validateName('queue', queue);
|
|
828
832
|
const { limit, deadMessageTtl } = optionsWithDefaults;
|
|
829
833
|
// TODO: [QUORUM-PHASE-3] Delete the if statement after all the queues are created as quorum queues
|
|
830
|
-
if (options?.isQuorumQueue !== false
|
|
834
|
+
if (options?.isQuorumQueue !== false) {
|
|
831
835
|
await this.assertVHost();
|
|
832
836
|
await this.saveConsumer(queue, callback, options);
|
|
833
837
|
const channel: ChannelWrapper = await this.getNewChannel({
|
|
@@ -850,6 +854,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
850
854
|
]);
|
|
851
855
|
});
|
|
852
856
|
}
|
|
857
|
+
|
|
853
858
|
// TODO: [QUORUM-PHASE-3] Delete the old implementation
|
|
854
859
|
await this.saveConsumerOld(queue, callback, options);
|
|
855
860
|
const channelOld: ChannelWrapper = await this.getNewChannelOld({
|
|
@@ -922,26 +927,26 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
922
927
|
}
|
|
923
928
|
|
|
924
929
|
// TODO: [QUORUM-PHASE-2] After changing the publish from old to new change from the old to the new implementation
|
|
925
|
-
async isConnected(): Promise<boolean> {
|
|
926
|
-
debug('rabbit: start
|
|
927
|
-
const
|
|
928
|
-
const
|
|
929
|
-
const
|
|
930
|
-
if (!
|
|
931
|
-
logger.error('rabbit:
|
|
930
|
+
async isConnected() : Promise<boolean> {
|
|
931
|
+
debug('rabbit: start is connected');
|
|
932
|
+
const consumeConnection = await this.getConnectionOld(this.oldConsumeConnection);
|
|
933
|
+
const publishConnection = await this.getConnectionOld(this.oldPublishConnection);
|
|
934
|
+
const isConnected = consumeConnection.isConnected() && publishConnection.isConnected();
|
|
935
|
+
if (!isConnected) {
|
|
936
|
+
logger.error('rabbit: isConnected - false');
|
|
932
937
|
return false;
|
|
933
938
|
}
|
|
934
|
-
const
|
|
939
|
+
const channel: any = await this.assertChannelOld({ connection: this.oldPublishConnection });
|
|
935
940
|
try {
|
|
936
941
|
await Promise.all([
|
|
937
|
-
|
|
938
|
-
...this.oldConsumers.map((c: AfConsumer) =>
|
|
942
|
+
channel.waitForConnect(),
|
|
943
|
+
...this.oldConsumers.map((c: AfConsumer) => channel.checkQueue(c.queue)),
|
|
939
944
|
]);
|
|
940
945
|
} catch (e) {
|
|
941
|
-
logger.error('rabbit:
|
|
946
|
+
logger.error('rabbit: isConnected - false');
|
|
942
947
|
return false;
|
|
943
948
|
}
|
|
944
|
-
logger.debug('rabbit:
|
|
949
|
+
logger.debug('rabbit: isConnected - true');
|
|
945
950
|
return true;
|
|
946
951
|
}
|
|
947
952
|
|
|
@@ -965,6 +970,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
965
970
|
|
|
966
971
|
private async consumeFromRabbitOld(queue: string, callback: CallbackFunction, options?: ConsumeOptions): Promise<any> {
|
|
967
972
|
const optionsWithDefaults = { ...DEFAULT_OPTIONS, ...options };
|
|
973
|
+
debug('rabbit: consumeFromRabbitOld', { queue });
|
|
968
974
|
RabbitMq.validateName('queue', queue);
|
|
969
975
|
this.saveConsumerOld(queue, callback, options);
|
|
970
976
|
const uniqueId = randomUUID();
|
|
@@ -988,9 +994,9 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
988
994
|
return null;
|
|
989
995
|
}
|
|
990
996
|
|
|
991
|
-
const traceId = msg.properties.headers
|
|
992
|
-
const userId = msg.properties.headers
|
|
993
|
-
const automationId = msg.properties.headers
|
|
997
|
+
const traceId = msg.properties.headers[TRACING_HEADER];
|
|
998
|
+
const userId = msg.properties.headers[USER_TRACING_HEADER];
|
|
999
|
+
const automationId = msg.properties.headers[AUTOMATION_ID_HEADER];
|
|
994
1000
|
const parsedMessage = RabbitMq.parseMsg(msg);
|
|
995
1001
|
const releaseLock = await this.lockRedisIfNeeded(parsedMessage, optionsWithDefaults);
|
|
996
1002
|
const trace = newTrace(traceTypes.RABBIT);
|
|
@@ -1072,6 +1078,11 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1072
1078
|
name = rand().toString(), onClose = null, options = {}, connection,
|
|
1073
1079
|
}: newChannelOpts) {
|
|
1074
1080
|
let localConnection!: AmqpConnectionManager;
|
|
1081
|
+
if (connection === this.oldPublishConnection) {
|
|
1082
|
+
debug('rabbit: getConnectionOld publish', { connection });
|
|
1083
|
+
} else if (connection === this.oldConsumeConnection) {
|
|
1084
|
+
debug('rabbit: getConnectionOld consume', { connection });
|
|
1085
|
+
}
|
|
1075
1086
|
try {
|
|
1076
1087
|
localConnection = await this.getConnectionOld(connection);
|
|
1077
1088
|
} catch (e) {
|
|
@@ -1083,7 +1094,8 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1083
1094
|
throw new Error(`rabbit: couldnt get connection for new channel ${name}`);
|
|
1084
1095
|
}
|
|
1085
1096
|
|
|
1086
|
-
|
|
1097
|
+
debug('rabbit: getNewChannelOld', { localConnection });
|
|
1098
|
+
const channel = localConnection.createChannel({ ...options });
|
|
1087
1099
|
once(channel, 'close').then((args) => {
|
|
1088
1100
|
logger.error(`rabbit: channel ${name} closed`);
|
|
1089
1101
|
onClose?.(args);
|
|
@@ -1101,13 +1113,18 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1101
1113
|
async getConnectionOld(connection: ConnectionData) {
|
|
1102
1114
|
return new Promise<AmqpConnectionManager>(async (resolve, reject) => {
|
|
1103
1115
|
const {
|
|
1104
|
-
|
|
1116
|
+
connection: connectionLocal,
|
|
1105
1117
|
creatingConnection,
|
|
1106
1118
|
connectionCreatedEventName,
|
|
1107
1119
|
connectionFailedEventName,
|
|
1108
1120
|
blockReconnect,
|
|
1109
1121
|
} = connection;
|
|
1110
1122
|
|
|
1123
|
+
if (connection === this.oldPublishConnection) {
|
|
1124
|
+
debug('rabbit: getConnectionOld publish', { connectionLocal, creatingConnection, blockReconnect });
|
|
1125
|
+
} else if (connection === this.oldConsumeConnection) {
|
|
1126
|
+
debug('rabbit: getConnectionOld consume', { connectionLocal, creatingConnection, blockReconnect });
|
|
1127
|
+
}
|
|
1111
1128
|
if (blockReconnect) {
|
|
1112
1129
|
debug('rabbit: block reconnect');
|
|
1113
1130
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1150,7 +1167,12 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1150
1167
|
findServers,
|
|
1151
1168
|
});
|
|
1152
1169
|
|
|
1153
|
-
connection.
|
|
1170
|
+
connection.connection = newConnection;
|
|
1171
|
+
if (connection === this.oldPublishConnection) {
|
|
1172
|
+
debug('rabbit: oldPublishConnection set');
|
|
1173
|
+
} else if (connection === this.oldConsumeConnection) {
|
|
1174
|
+
debug('rabbit: oldConsumeConnection set');
|
|
1175
|
+
}
|
|
1154
1176
|
newConnection.on('error', (err) => {
|
|
1155
1177
|
logger.error('rabbit: connection error', { err });
|
|
1156
1178
|
if (!isResolved) {
|
|
@@ -1162,9 +1184,6 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1162
1184
|
|
|
1163
1185
|
newConnection.on('connectFailed', (err) => {
|
|
1164
1186
|
this.oldConsumersTags = [];
|
|
1165
|
-
if (typeof err.url === 'string') {
|
|
1166
|
-
err.url = this.maskURL(err.url);
|
|
1167
|
-
}
|
|
1168
1187
|
logger.error('rabbit: connection connectFailed', { err });
|
|
1169
1188
|
if (!isResolved) {
|
|
1170
1189
|
isResolved = true;
|
|
@@ -1187,7 +1206,7 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1187
1206
|
newConnection.once('connect', async () => {
|
|
1188
1207
|
debug('rabbit: connection established');
|
|
1189
1208
|
connection.creatingConnection = false;
|
|
1190
|
-
this.oldEm.emit(connectionCreatedEventName,
|
|
1209
|
+
this.oldEm.emit(connectionCreatedEventName, connection);
|
|
1191
1210
|
isResolved = true;
|
|
1192
1211
|
resolve(newConnection);
|
|
1193
1212
|
});
|
|
@@ -1261,6 +1280,11 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1261
1280
|
}
|
|
1262
1281
|
|
|
1263
1282
|
async assertChannelOld({ force = false, connection }: assertChannelOpts): Promise<ChannelWrapper> {
|
|
1283
|
+
if (connection === this.oldPublishConnection) {
|
|
1284
|
+
debug('rabbit: assertChannelOld publish', { force, promiseSetup: this.oldPublishChannelSetupPromise });
|
|
1285
|
+
} else if (connection === this.oldConsumeConnection) {
|
|
1286
|
+
debug('rabbit: assertChannelOld consume', { force, promiseSetup: this.oldPublishChannelSetupPromise });
|
|
1287
|
+
}
|
|
1264
1288
|
if (!this.oldPublishChannelSetupPromise) {
|
|
1265
1289
|
this.oldPublishChannelSetupPromise = new Promise<ChannelWrapper>(async (resolve, reject) => {
|
|
1266
1290
|
if (this.oldPublishChannel && !force) {
|
|
@@ -1269,10 +1293,16 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1269
1293
|
|
|
1270
1294
|
try {
|
|
1271
1295
|
const channel = await this.getNewChannelOld({ connection });
|
|
1296
|
+
if (connection === this.oldPublishConnection) {
|
|
1297
|
+
debug('rabbit: old new channel got publish', { force, channel });
|
|
1298
|
+
} else if (connection === this.oldConsumeConnection) {
|
|
1299
|
+
debug('rabbit: old new channel got consume', { force, channel });
|
|
1300
|
+
}
|
|
1272
1301
|
channel.on('error', (err) => {
|
|
1273
1302
|
logger.error('rabbit: channel error', { err });
|
|
1274
1303
|
});
|
|
1275
1304
|
if (this.oldPublishConnection === connection) {
|
|
1305
|
+
debug('rabbit: a new channel assigned to the oldPublishChannel', { connection });
|
|
1276
1306
|
this.oldPublishChannel = channel;
|
|
1277
1307
|
}
|
|
1278
1308
|
resolve(channel);
|
|
@@ -1309,17 +1339,6 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
1309
1339
|
this.oldExchanges[exchangeName] = await this.oldAssertExchangePromises[exchangeName];
|
|
1310
1340
|
return this.oldExchanges[exchangeName];
|
|
1311
1341
|
}
|
|
1312
|
-
|
|
1313
|
-
private maskURL = (url: string): string => {
|
|
1314
|
-
try {
|
|
1315
|
-
const urlObj = new URL(url);
|
|
1316
|
-
urlObj.username = '***';
|
|
1317
|
-
urlObj.password = '***';
|
|
1318
|
-
return urlObj.toString();
|
|
1319
|
-
} catch {
|
|
1320
|
-
return url;
|
|
1321
|
-
}
|
|
1322
|
-
}
|
|
1323
1342
|
}
|
|
1324
1343
|
|
|
1325
1344
|
export default RabbitMq;
|
package/src/lib/types.ts
CHANGED
|
@@ -64,7 +64,7 @@ export const CONSUMER_DEFAULT_OPTIONS: Options.Consume = {
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
export type ConnectionData = {
|
|
67
|
-
|
|
67
|
+
connection: AmqpConnectionManager | null;
|
|
68
68
|
creatingConnection: boolean;
|
|
69
69
|
connectionCreatedEventName: string;
|
|
70
70
|
connectionFailedEventName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
2
|
import 'jest';
|
|
3
|
-
import
|
|
3
|
+
import { IAfRabbitMq } from './index';
|
|
4
4
|
|
|
5
5
|
class RabbitMq implements IAfRabbitMq {
|
|
6
6
|
ack: any = jest.fn();
|
package/tsconfig.json
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"experimentalDecorators": true,
|
|
10
10
|
"emitDecoratorMetadata": true,
|
|
11
11
|
"skipLibCheck": true,
|
|
12
|
-
"
|
|
12
|
+
"types": ["@types/jest"]
|
|
13
13
|
},
|
|
14
14
|
"exclude": ["node_modules"],
|
|
15
|
-
"include": ["src
|
|
15
|
+
"include": ["src/**/*.ts"]
|
|
16
16
|
}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6HAA6H;AAC7H,mCAA4C;AAC5C,+BAAiC;AACjC,oDAA4B;AAC5B,4DAAmC;AACnC,qEAEiC;AAIjC,4CAE0B;AAC1B,6CAAyC;AACzC,sDAA8B;AAC9B,oEAA4C;AAC5C,wDAA4D;AAC5D,uCAA2E;AAC3E,yCAQsB;AACtB,uCAYqB;AAErB,yCAAyC;AACzC,MAAM,KAAK,GAAG,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAM,CAAC,CAAC;AAExC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AAwDlC,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,MAAM,QAAQ;IACZ,MAAM,CAAC,QAAQ,CAAC,GAAQ;QACtB,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QACtB,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI;YACF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC/B;QAAC,OAAO,CAAC,EAAE,GAAG;QAEf,OAAO;YACL,GAAG,GAAG;YACN,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,IAAY;QAC5C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;YACxB,MAAM,IAAI,qBAAW,CAAC,qBAAqB,IAAI,eAAe,CAAC,CAAC;SACjE;IACH,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,gBAAsC,EAAE;QAC/D,MAAM,KAAK,GAAG,IAAA,yBAAiB,GAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,oBAAW,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,uBAAc,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,gBAAQ,CAAC,iBAAiB,EAAE,CAAC;QACnD,OAAO;YACL,SAAS,EAAE,IAAA,gBAAM,GAAE,CAAC,IAAI,EAAE;YAC1B,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE;gBACP,iBAAiB,EAAE,IAAA,gBAAM,GAAE,CAAC,OAAO,EAAE;gBACrC,GAAG,aAAa;gBAChB,CAAC,4BAAmB,CAAC,EAAE,IAAI,EAAE,EAAE;gBAC/B,CAAC,uBAAc,CAAC,EAAE,OAAO,IAAI,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,uBAAc,CAAC;aACzE;SACF,CAAC;IACJ,CAAC;IAsED,YAAY,UAA2B,EAAE,EAAE,WAAyB;QApEpE,mBAAc,GAAG,+BAA+B,CAAC;QAEjD,kBAAa,GAAG,8CAA8C,CAAC;QAiCvD,cAAS,GAAsB,EAAE,CAAC;QAElC,mBAAc,GAAG,KAAK,CAAC;QAEvB,UAAK,GAAG,cAAc,CAAC;QA2BvB,iBAAY,GAAsB,EAAE,CAAC;QAsErC,gBAAW,GAAG,KAAK,IAAI,EAAE;YAC/B,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,OAAO;aACR;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;YAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;YAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC9E,MAAM,OAAO,GAAG;gBACd,aAAa,EAAE,SAAS,WAAW,EAAE;gBACrC,cAAc,EAAE,kBAAkB;aACnC,CAAC;YAEF,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAElI,MAAM,GAAG,GAAG,GAAG,UAAU,eAAe,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAEzE,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM,EAAE,KAAK;oBACb,OAAO;iBACR,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;oBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,gBAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnD,OAAO;iBACR;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;oBAC3B,gBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACpD,MAAM,IAAI,qBAAW,CAAC,uBAAuB,CAAC,CAAC;iBAChD;gBAED,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBACtC,MAAM,EAAE,KAAK;oBACb,OAAO;oBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;iBACvD,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;oBACtB,gBAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;oBACrE,MAAM,IAAI,qBAAW,CAAC,wBAAwB,CAAC,CAAC;iBACjD;gBAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,gBAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aACrD;YAAC,OAAO,KAAK,EAAE;gBACd,gBAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3D,MAAM,KAAK,CAAC;aACb;QACH,CAAC,CAAC;QAEM,oCAA+B,GAAG,KAAK,EAAE,GAAyB,EAAE,EAAE;YAC5E,IAAI,GAAG,EAAE;gBACP,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC;gBACxC,MAAM,SAAS,GAAG,OAAO,EAAE,iBAAiB,CAAC;gBAE7C,IAAI,SAAS,IAAI,OAAO,EAAE,2BAA2B,IAAI,IAAI,CAAC,WAAW,EAAE;oBACzE,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBAClG,OAAO,CAAC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;iBACjG;gBACD,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAA;QAEM,QAAG,GAAG,CAAC,OAAuB,EAAE,GAAyB,EAAE,0BAA0B,GAAG,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,OAAuB,EAAiB,EAAE;YAC5K,IAAI,GAAG,EAAE;gBACP,KAAK,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC;gBACxC,MAAM,SAAS,GAAG,OAAO,EAAE,iBAAiB,CAAC;gBAE7C,IAAI,0BAA0B,IAAI,SAAS,IAAI,OAAO,EAAE,2BAA2B,IAAI,IAAI,CAAC,WAAW,EAAE;oBACvG,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAChD,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,2BAA2B,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAClG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;iBAC7C;aACF;QACH,CAAC,CAAA;QAEM,SAAI,GAAG,CACZ,OAAuB,EACvB,KAAa,EACb,OAAY,EACZ,gBAAqC,EACrC,GAAyB,EACzB,WAAgB,EAChB,EAAE,CAAC,KAAK,EACR,OAA6B,EAC7B,EACE,SAAS,GAAG,KAAK,MACF,EAAG,EACL,EAAE;YACjB,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,OAAO,IAAI,GAAG,EAAE;gBAClB,IACE,CAAC,SAAS;uBACP,CACD,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,qBAAY,CAAC;2BACpC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAY,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CACxE,EACD;oBACA,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE;wBACrE,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO;wBACzB,CAAC,qBAAY,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,qBAAY,CAAC;4BACpD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAY,CAAC,GAAG,CAAC;4BAC1C,CAAC,CAAC,CAAC;qBACN,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,SAAS,GAAG,GAAG,KAAK,OAAO,CAAC;oBAClC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE;wBAClF,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO;wBACzB,CAAC,qBAAY,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,qBAAY,CAAC;4BACpD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAY,CAAC,GAAG,CAAC;4BAC1C,CAAC,CAAC,CAAC;qBACN,CAAC,CAAC;iBACJ;gBACD,KAAK,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACzE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACxB;iBAAM;gBACL,gBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;oBAChC,GAAG;iBACJ,CAAC,CAAC;aACJ;QACH,CAAC,CAAA;QA64BO,YAAO,GAAG,CAAC,GAAW,EAAU,EAAE;YACxC,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;aAC1B;YAAC,MAAM;gBACN,OAAO,GAAG,CAAC;aACZ;QACH,CAAC,CAAA;QAvlCC,IAAI,CAAC,EAAE,GAAG,IAAI,qBAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG;YACvB,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,0BAA0B;YACtD,yBAAyB,EAAE,yBAAyB;YACpD,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG;YACvB,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,0BAA0B;YACtD,yBAAyB,EAAE,yBAAyB;YACpD,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAA,eAAgB,EAAC,WAAW,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,IAAA,gBAAS,EAAC,IAAA,oBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAkB,CAAC;SAC1E;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,gBAAM,CAAC,IAAI,CAAC,4EAA4E,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE;YACvC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;SACJ;QAED,oGAAoG;QACpG,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAY,EAAE,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,oBAAoB,GAAG;YAC1B,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,6BAA6B;YACzD,yBAAyB,EAAE,4BAA4B;YACvD,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG;YAC1B,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,6BAA6B;YACzD,yBAAyB,EAAE,4BAA4B;YACvD,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAkID,KAAK,CAAC,aAAa,CAAC,UAA0B;QAC5C,OAAO,IAAI,OAAO,CAAwB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClE,MAAM,EACJ,cAAc,EAAE,eAAe,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,GACf,GAAG,UAAU,CAAC;YAEf,IAAI,cAAc,EAAE;gBAClB,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACjC,6DAA6D;gBAC7D,aAAa;gBACb,OAAO,OAAO,EAAE,CAAC;aAClB;YACD,IAAI,eAAe,KAAK,IAAI,EAAE;gBAC5B,IAAI,IAAI,CAAC,OAAO,EAAE,gBAAgB,IAAI,eAAe,EAAE,WAAW,EAAE,EAAE;oBACpE,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBAC3C,6DAA6D;oBAC7D,aAAa;oBACb,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC;iBACjC;gBACD,KAAK,CAAC,mCAAmC,CAAC,CAAC;aAC5C;YACD,IAAI,kBAAkB,EAAE;gBACtB,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;gBAChD,OAAO;aACR;YACD,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACrC,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,6DAA6D;YAC7D,2CAA2C;YAC3C,oCAAoC;YACpC,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;gBAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;gBAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC;gBAE1F,KAAK,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,UAAU,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,cAAc,SAAS,EAAE,CAAC,CAAC;YACzF,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;YAClC,MAAM,aAAa,GAA0B,MAAM,IAAA,iCAAO,EAAC,WAAW,EAAE;gBACtE,WAAW;aACZ,CAAC,CAAC;YAEH,UAAU,CAAC,cAAc,GAAG,aAAa,CAAC;YAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChC,gBAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,EAAE;oBACf,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE;oBAC/B,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACjC;gBACD,gBAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjH,IAAI,CAAC,UAAU,EAAE;oBACf,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC3C,8BAA8B;gBAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE;oBAClC,gBAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC5D,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;iBAClC;qBAAM;oBACL,gBAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;iBAC5D;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBACvC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACxC,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;gBACxD,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,CAAC,aAAa,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAClB,IAAI,GAAG,IAAA,YAAI,GAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,GACnD;QACf,IAAI,eAAuC,CAAC;QAC5C,IAAI;YACF,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACxD;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,mDAAmD,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,CAAC;SACT;QACD,MAAM,OAAO,GAAG,eAAe,EAAE,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAA,aAAI,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACnC,gBAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,SAAS,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI;YACF,MAAM,IAAA,aAAI,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/B,KAAK,CAAC,mBAAmB,IAAI,YAAY,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC;SAChB;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,EAAqB;QAClE,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACpC,IAAI,CAAC,0BAA0B,GAAG,IAAI,OAAO,CAAiB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtF,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE;oBACjC,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACrC;gBAED,IAAI;oBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;oBACzD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;wBAC1B,gBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjD,CAAC,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE;wBACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;qBAC/B;oBACD,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClB;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,UAA0B;QACnE,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAEzE,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAChC,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,GAAG,IAAA,4BAAoB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACxF,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,qBAAW,CAAC,wBAAwB,CAAC,CAAC;SACjD;QACD,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACrH,OAAO,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAA0B;QACjE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACzE,gBAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACvC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAgB;QAC7C,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACvG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,YAA4B,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACtG,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,OAA6B;QAC/D,IAAI,KAA0B,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC1C,MAAM,aAAa,GAAG;YACpB,GAAG,OAAO;YACV,OAAO,EAAE,IAAI;YACb,SAAS,EAAE;gBACT,GAAG,OAAO,EAAE,SAAS;gBACrB,oBAAoB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;gBACzC,cAAc,EAAE,QAAQ;aACzB;SACF,CAAC;QACF,IAAI;YACF,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,YAA4B,EAAE,EAAE;gBAC5D,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;SAC7D;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;gBAClC,KAAK,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACtE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAE9C,KAAK,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/D,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,YAA4B,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC7G,KAAK,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClE,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4IAA4I;IAC5I,MAAM,CAAC,eAAe,CAAC,SAAiB;QACtC,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAErE,IAAI,wBAAwB,KAAK,GAAG,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,wBAAwB,EAAE;YAC5B,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACtC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,OAA6B;QAChE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAmC;QACjG,MAAM,eAAe,GAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,EAAE;YACpB,gBAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,KAAK;gBACL,QAAQ;gBACR,OAAO;aACR,CAAC,CAAC;SACJ;IACH,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAwB;QAC/E,wGAAwG;QACxG,IAAI,OAAO,EAAE,aAAa,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,EAAE;YACpF,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjD;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAwB;QAClF,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAwB;QAClF,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAQ,EAAE,OAAY;QACpD,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,EAAE,iBAAiB,CAAC;QAC7C,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,IAAI,OAAO,CAAC,kBAAkB,IAAI,SAAS,IAAI,OAAO,EAAE,2BAA2B,IAAI,IAAI,CAAC,SAAS,EAAE;YACrG,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAChC,OAAO,CAAC,2BAA2B,EACnC,OAAO,EAAE,WAAW,IAAI,6BAAoB,CAC7C,CAAC;SACH;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAgB;QAChD,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE;YACjC,MAAM,WAAW,EAAE,CAAC;SACrB;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAwB;QACjG,MAAM,mBAAmB,GAAG,EAAE,GAAG,wBAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/D,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAA,wBAAU,GAAE,CAAC;QAC9B,MAAM,EACJ,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,GACxF,GAAG,mBAAmB,CAAC;QACxB,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,MAAM,IAAI,qBAAW,CAAC,iDAAiD,CAAC,CAAC;aAC1E;YACD,gBAAM,CAAC,IAAI,CAAC,0CAA0C,KAAK,sBAAsB,WAAW,IAAI,CAAC,CAAC;SACnG;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACjF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,cAA8B,EAAE,EAAE;YAC/D,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YAC7D,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,CAClD,KAAK,EACL,KAAK,EAAE,GAAyB,EAAE,EAAE;gBAClC,IAAI,CAAC,GAAG,EAAE;oBACR,OAAO,IAAI,CAAC;iBACb;gBAED,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,OAAQ,CAAC,uBAAc,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAQ,CAAC,4BAAmB,CAAC,CAAC;gBAC5D,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,OAAQ,CAAC,6BAAoB,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;gBACrF,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,kBAAU,CAAC,MAAM,CAAC,CAAC;gBAC1C,qDAAqD;gBACrD,MAAM,aAAa,GAAG,gBAAQ,CAAC,QAAQ,CAAC,kBAAU,CAAC,MAAM,CAAC,CAAC;gBAC3D,gGAAgG;gBAChG,mDAAmD;gBACnD,IAAI,MAAM,IAAI,iBAAiB,EAAE;oBAC/B,IAAI;wBACF,MAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,IAAA,8BAAsB,EAAC,KAAK,EAAE,MAAM,CAAC;4BACrC,IAAA,8BAAsB,EAAC,aAAa,EAAE,MAAM,CAAC;yBAC9C,CAAC,CAAC;qBACJ;oBAAC,OAAO,CAAC,EAAE;wBACV,gBAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;wBAChE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;qBACrH;iBACF;gBAED,IAAI,OAAO,EAAE;oBACV,KAAa,EAAE,OAAO,EAAE,GAAG,CAAC,uBAAc,EAAE,OAAO,CAAC,CAAC;oBACrD,aAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAc,EAAE,OAAO,CAAC,CAAC;iBAC9D;gBAED,IAAI,YAAY,EAAE;oBAChB,MAAM,YAAY,CAAC,KAAK,EAAE;wBACxB,MAAM;wBACN,YAAY;qBACb,CAAC,CAAC;iBACJ;gBACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;gBAChF,IAAI,CAAC,aAAa,EAAE;oBAClB,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;oBAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC3C;gBAED,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,2DAA2D;gBAE3D,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;oBAC1B,IAAI,YAAY,EAAE;wBAChB,OAAO;qBACR;oBACD,YAAY,GAAG,IAAI,CAAC;oBACpB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/D,CAAC,CAAC;gBAEF,MAAM,SAAS,GAAG,KAAK,EAAE,CAAuB,EAAE,cAA2B,EAAE,EAAE,EAAE;oBACjF,IAAI,YAAY,EAAE;wBAChB,OAAO;qBACR;oBACD,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC3F,YAAY,GAAG,IAAI,CAAC;oBACpB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACnI,CAAC,CAAC;gBAEF,IAAI;oBACF,MAAM,QAAQ,CACZ,aAAa,EACb,QAAQ,EACR,SAAS,CACV,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;iBACtB;YACH,CAAC,EAAE,gCAAwB,CAC5B,CAAC;YACF,IAAI,CAAC,WAAW,EAAE;gBAChB,gBAAM,CAAC,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;aAC/D;iBAAM;gBACL,gBAAM,CAAC,IAAI,CAAC,sBAAsB,WAAW,gBAAgB,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;aACxD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,QAAgB,EAAE,QAA0B,EAAE,OAAwB;QAC7G,MAAM,mBAAmB,GAAG,EAAE,GAAG,wBAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/D,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC;QACtD,mGAAmG;QACnG,IAAI,OAAO,EAAE,aAAa,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,EAAE;YACpF,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,aAAa,CAAC;gBACvD,IAAI,EAAE,oBAAoB,QAAQ,UAAU,KAAK,EAAE;gBACnD,UAAU,EAAE,IAAI,CAAC,iBAAiB;aACnC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAiB,EAAE,EAAE;gBACjD,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAoB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC/D,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;gBAC1C,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,OAAO,CAAC,GAAG,CAAC;oBACjB,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;oBAChC,IAAI,CAAC,UAAU,CACb,KAAK,EACL,QAAQ,EACR,OAAO,CACR;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QACD,uDAAuD;QACvD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC7D,IAAI,EAAE,oBAAoB,QAAQ,UAAU,KAAK,MAAM;YACvD,UAAU,EAAE,IAAI,CAAC,oBAAoB;SACtC,CAAC,CAAC;QACH,MAAM,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAiB,EAAE,EAAE;YACpD,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAoB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/D,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;YAC7C,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC;gBACjB,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,UAAU,CACb,KAAK,EACL,QAAQ,EACR,OAAO,CACR;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,kEAAkE;IAClE,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAY,EAAE,aAAmB;QAC/D,OAAO,IAAA,wBAAgB,EAAC,KAAK,IAAI,EAAE;YACjC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACvG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClE,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACpC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,kEAAkE;IAClE,KAAK,CAAC,WAAW,CACf,KAAa,EACb,OAAY,EACZ,OAAa,EACb,aAAmB;QAEnB,IAAI;YACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;SACxE;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,2EAA2E,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACxG,MAAM,CAAC,CAAC;SACT;QAED,IAAI;YACF,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,8CAA8C,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,CAAC;SACT;QAED,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,KAAK,EACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACpC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,4BAA4B,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,OAAO,GAAG,CAAC;SACZ;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,gBAAM,CAAC,KAAK,CAAC,+CAA+C,KAAK,kBAAkB,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACzG,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAED,kHAAkH;IAClH,KAAK,CAAC,WAAW;QACf,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACxC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAChG,IAAI,CAAC,cAAc,EAAE;YACnB,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;SACd;QACD,MAAM,UAAU,GAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAC/F,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,UAAU,CAAC,cAAc,EAAE;gBAC3B,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC5E,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;SACd;QACD,gBAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,kHAAkH;QAClH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5E,gBAAM,CAAC,IAAI,CAAC,0CAA0C,MAAM,gBAAgB,UAAU,UAAU,CAAC,CAAC;QAClG,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,gCAAgC;QAChC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,gBAAM,CAAC,IAAI,CAAC,kCAAkC,QAAQ,CAAC,MAAM,IAAI,UAAU,2BAA2B,QAAQ,EAAE,CAAC,CAAC;SACnH;aAAM;YACL,gBAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;SAC9E;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAwB;QACpG,MAAM,mBAAmB,GAAG,EAAE,GAAG,wBAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/D,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAA,wBAAU,GAAE,CAAC;QAC9B,MAAM,EACJ,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,GACxF,GAAG,mBAAmB,CAAC;QACxB,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,MAAM,IAAI,qBAAW,CAAC,iDAAiD,CAAC,CAAC;aAC1E;YACD,gBAAM,CAAC,IAAI,CAAC,0CAA0C,KAAK,sBAAsB,WAAW,IAAI,CAAC,CAAC;SACnG;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACvF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,cAA8B,EAAE,EAAE;YAC/D,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YAChE,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,CAClD,KAAK,EACL,KAAK,EAAE,GAAyB,EAAE,EAAE;gBAClC,IAAI,CAAC,GAAG,EAAE;oBACR,OAAO,IAAI,CAAC;iBACb;gBAED,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,OAAQ,CAAC,uBAAc,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAQ,CAAC,4BAAmB,CAAC,CAAC;gBAC5D,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,OAAQ,CAAC,6BAAoB,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;gBACrF,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,kBAAU,CAAC,MAAM,CAAC,CAAC;gBAC1C,qDAAqD;gBACrD,MAAM,aAAa,GAAG,gBAAQ,CAAC,QAAQ,CAAC,kBAAU,CAAC,MAAM,CAAC,CAAC;gBAC3D,gGAAgG;gBAChG,mDAAmD;gBACnD,IAAI,MAAM,IAAI,iBAAiB,EAAE;oBAC/B,IAAI;wBACF,MAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,IAAA,8BAAsB,EAAC,KAAK,EAAE,MAAM,CAAC;4BACrC,IAAA,8BAAsB,EAAC,aAAa,EAAE,MAAM,CAAC;yBAC9C,CAAC,CAAC;qBACJ;oBAAC,OAAO,CAAC,EAAE;wBACV,gBAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;wBAChE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;qBACrH;iBACF;gBAED,IAAI,OAAO,EAAE;oBACV,KAAa,EAAE,OAAO,EAAE,GAAG,CAAC,uBAAc,EAAE,OAAO,CAAC,CAAC;oBACrD,aAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAc,EAAE,OAAO,CAAC,CAAC;iBAC9D;gBAED,IAAI,YAAY,EAAE;oBAChB,MAAM,YAAY,CAAC,KAAK,EAAE;wBACxB,MAAM;wBACN,YAAY;qBACb,CAAC,CAAC;iBACJ;gBACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;gBAChF,IAAI,CAAC,aAAa,EAAE;oBAClB,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;oBAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC3C;gBAED,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,2DAA2D;gBAE3D,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;oBAC1B,IAAI,YAAY,EAAE;wBAChB,OAAO;qBACR;oBACD,YAAY,GAAG,IAAI,CAAC;oBACpB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/D,CAAC,CAAC;gBAEF,MAAM,SAAS,GAAG,KAAK,EAAE,CAAuB,EAAE,cAA2B,EAAE,EAAE,EAAE;oBACjF,IAAI,YAAY,EAAE;wBAChB,OAAO;qBACR;oBACD,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC3F,YAAY,GAAG,IAAI,CAAC;oBACpB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACnI,CAAC,CAAC;gBAEF,IAAI;oBACF,MAAM,QAAQ,CACZ,aAAa,EACb,QAAQ,EACR,SAAS,CACV,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;iBACtB;YACH,CAAC,EAAE,gCAAwB,CAC5B,CAAC;YACF,IAAI,CAAC,WAAW,EAAE;gBAChB,gBAAM,CAAC,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;aAC/D;iBAAM;gBACL,gBAAM,CAAC,IAAI,CAAC,sBAAsB,WAAW,gBAAgB,CAAC,CAAC;gBAC/D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;aAC3D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sJAAsJ;IACtJ,KAAK,CAAC,gBAAgB,CAAC,EACrB,IAAI,GAAG,IAAA,YAAI,GAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,GACnD;QACf,IAAI,eAAuC,CAAC;QAC5C,IAAI;YACF,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAC3D;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,mDAAmD,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,CAAC;SACT;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;SAC3E;QAED,MAAM,OAAO,GAAG,eAAe,EAAE,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAA,aAAI,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACnC,gBAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,SAAS,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI;YACF,MAAM,IAAA,aAAI,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/B,KAAK,CAAC,mBAAmB,IAAI,YAAY,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC;SAChB;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAA0B;QAC/C,OAAO,IAAI,OAAO,CAAwB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClE,MAAM,EACJ,cAAc,EAAE,eAAe,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,GACf,GAAG,UAAU,CAAC;YAEf,IAAI,cAAc,EAAE;gBAClB,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACjC,6DAA6D;gBAC7D,aAAa;gBACb,OAAO,OAAO,EAAE,CAAC;aAClB;YACD,IAAI,eAAe,KAAK,IAAI,EAAE;gBAC5B,IAAI,IAAI,CAAC,OAAO,EAAE,gBAAgB,IAAI,eAAe,EAAE,WAAW,EAAE,EAAE;oBACpE,KAAK,CAAC,mCAAmC,CAAC,CAAC;oBAC3C,6DAA6D;oBAC7D,aAAa;oBACb,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC;iBACjC;gBACD,KAAK,CAAC,mCAAmC,CAAC,CAAC;aAC5C;YACD,IAAI,kBAAkB,EAAE;gBACtB,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;gBACnD,OAAO;aACR;YACD,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACrC,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,6DAA6D;YAC7D,2CAA2C;YAC3C,oCAAoC;YACpC,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;gBAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC;gBAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CAAC;gBAE1F,KAAK,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBAEpE,OAAO,CAAC,UAAU,QAAQ,IAAI,QAAQ,IAAI,IAAI,cAAc,SAAS,EAAE,CAAC,CAAC;YAC3E,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;YAClC,MAAM,aAAa,GAA0B,MAAM,IAAA,iCAAO,EAAC,WAAW,EAAE;gBACtE,WAAW;aACZ,CAAC,CAAC;YAEH,UAAU,CAAC,cAAc,GAAG,aAAa,CAAC;YAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAChC,gBAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,EAAE;oBACf,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;iBACjD;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE;oBAC/B,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACjC;gBACD,gBAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,UAAU,EAAE;oBACf,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;iBACjD;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACzC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE;oBAClC,gBAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC5D,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC;iBAClC;qBAAM;oBACL,gBAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;iBAC5D;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBACvC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACxC,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;gBAC3D,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,CAAC,aAAa,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,KAAa,EAAE,QAA0B,EAAE,OAAmC;QACpG,MAAM,eAAe,GAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAChG,IAAI,CAAC,eAAe,EAAE;YACpB,gBAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,0BAA0B,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACrB,KAAK;gBACL,QAAQ;gBACR,OAAO;aACR,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,OAA6B;QACnE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE;YACzC,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAA6B;QAClE,IAAI,KAA0B,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG;YACpB,GAAG,OAAO;YACV,OAAO,EAAE,IAAI;YACb,SAAS,EAAE;gBACT,GAAG,OAAO,EAAE,SAAS;gBACrB,oBAAoB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;gBACzC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aACvD;SACF,CAAC;QACF,IAAI;YACF,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5E,KAAK,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,YAA4B,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;YAC7G,KAAK,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;SAC7D;QAAC,OAAO,CAAC,EAAE;YACV,gBAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;gBAClC,KAAK,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACzE,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAEjD,KAAK,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC/D,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,YAA4B,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC7G,KAAK,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClE,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;QAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,EAAqB;QACrE,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;YACvC,IAAI,CAAC,6BAA6B,GAAG,IAAI,OAAO,CAAiB,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzF,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE;oBACpC,OAAO,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;iBACxC;gBAED,IAAI;oBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;oBAC5D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;wBAC1B,gBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjD,CAAC,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,oBAAoB,KAAK,UAAU,EAAE;wBAC5C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;qBAClC;oBACD,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClB;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC,6BAA6B,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,UAA0B;QACpE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5E,gBAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACvC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,UAA0B;QACtE,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAE5E,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,GAAG,IAAA,4BAAoB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;CAYF;AAED,kBAAe,QAAQ,CAAC;AAExB,uCAEsB;AADpB,+GAAA,qBAAqB,OAAA"}
|
package/dist/lib/celery.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"celery.js","sourceRoot":"","sources":["../../src/lib/celery.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AACzC,uDAA+B;AAC/B,4BAA4B;AAC5B,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW;IACtD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO;IAClD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO;CAC1C,CAAC;AAoCX,KAAK,UAAU,qBAAqB,CAClC,IAAc,EACd,EAAE,QAAQ,EAAE,SAAS,EAAmB;IAExC,MAAM,MAAM,GAAG,UAAU,MAAM,CAAC,IAAI,8CAA8C,CAAC;IAEnF,MAAM,OAAO,GAAgB;QAC3B,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,IAAA,wBAAU,GAAE;QAChB,IAAI,EAAE,CAAC,IAAI,CAAC;KACb,CAAC;IAEF,MAAM,OAAO,GAAmB;QAC9B,UAAU,EAAE;YACV,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,kBAAkB;SACjC;QACD,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAChC,gBAAgB,EAAE,QAAQ;KAC3B,CAAC;IAEF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;aAClG;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,MAAM,MAAM,GAAoB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtD,gBAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;SACxD;aAAM;YACL,gBAAM,CAAC,KAAK,CAAC,2CAA2C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,gBAAM,CAAC,KAAK,CAAC,aAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACpD;KACF;IAAC,OAAO,KAAK,EAAE;QACd,gBAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/F,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAEQ,sDAAqB"}
|
package/dist/lib/consts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5C,QAAA,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC;AAChC,QAAA,YAAY,GAAG,eAAe,CAAC;AAC/B,QAAA,cAAc,GAAG,YAAY,CAAC;AAC9B,QAAA,mBAAmB,GAAG,cAAc,CAAC;AACrC,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAC5C,QAAA,WAAW,GAAG,YAAY,CAAC;AAC3B,QAAA,6BAA6B,GAAG,KAAK,CAAC;AACtC,QAAA,eAAe,GAAG;IAC7B,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,cAAc,EAAE,iCAAyB;IACzC,WAAW,EAAE,4BAAoB;IACjC,kBAAkB,EAAE,qCAA6B;IACjD,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,KAAK;CACzB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitError.js","sourceRoot":"","sources":["../../src/lib/rabbitError.ts"],"names":[],"mappings":";;AAAA,MAAqB,WAAY,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AALD,8BAKC"}
|
package/dist/lib/redis.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/lib/redis.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACnD,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAQ7C,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAElF,kBAAe,gBAAgB,CAAC"}
|
package/dist/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":";;;AAsDA,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE3C,QAAA,wBAAwB,GAAoB;IACvD,SAAS,EAAE;QACT,CAAC,qBAAqB,CAAC,EAAE,QAAQ;QACjC,CAAC,sBAAsB,CAAC,EAAE,QAAQ;KACnC;CACF,CAAC"}
|
package/dist/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;;AAGO,MAAM,oBAAoB,GAAG,KAAK,EACvC,CAAkC,EAClC,YAAoB,EACa,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAHlE,QAAA,oBAAoB,wBAG8C;AAExE,MAAM,gBAAgB,GAAG,CAAC,QAAmB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC5F,YAAY,CAAC,KAAK,IAAI,EAAE;QACtB,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,CAAC;SACf;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AATU,QAAA,gBAAgB,oBAS1B;AACI,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AAAhD,QAAA,IAAI,QAA4C"}
|
package/dist/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;AAAA,+DAAuC;AAEvC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,kBAAe,MAAM,CAAC"}
|
package/dist/mock/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mock/index.ts"],"names":[],"mappings":";;AAAA,gDAAgD;AAChD,gBAAc;AAGd,MAAM,QAAQ;IAAd;QACE,QAAG,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAErB,SAAI,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAEtB,kBAAa,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAE/B,mBAAc,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAEhC,gBAAW,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7B,YAAO,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAEzB,wBAAmB,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAErC,YAAO,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;QAEzB,gBAAW,GAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;IAC/B,CAAC;CAAA;AAED,kBAAe,QAAQ,CAAC"}
|
package/dist/mock/vitest.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { IAfRabbitMq } from '../index';
|
|
2
|
-
declare class RabbitMq implements IAfRabbitMq {
|
|
3
|
-
ack: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
4
|
-
nack: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
5
|
-
assertChannel: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
6
|
-
assertExchange: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
7
|
-
assertQueue: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
8
|
-
consume: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
9
|
-
consumeFromExchange: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
10
|
-
publish: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
11
|
-
sendToQueue: import("@vitest/spy").Mock<(...args: any[]) => any>;
|
|
12
|
-
}
|
|
13
|
-
export default RabbitMq;
|
package/dist/mock/vitest.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
class RabbitMq {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.ack = vitest_1.vi.fn();
|
|
7
|
-
this.nack = vitest_1.vi.fn();
|
|
8
|
-
this.assertChannel = vitest_1.vi.fn();
|
|
9
|
-
this.assertExchange = vitest_1.vi.fn();
|
|
10
|
-
this.assertQueue = vitest_1.vi.fn();
|
|
11
|
-
this.consume = vitest_1.vi.fn();
|
|
12
|
-
this.consumeFromExchange = vitest_1.vi.fn();
|
|
13
|
-
this.publish = vitest_1.vi.fn();
|
|
14
|
-
this.sendToQueue = vitest_1.vi.fn();
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.default = RabbitMq;
|
|
18
|
-
//# sourceMappingURL=vitest.js.map
|
package/dist/mock/vitest.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/mock/vitest.ts"],"names":[],"mappings":";;AAAA,mCAA4B;AAG5B,MAAM,QAAQ;IAAd;QACE,QAAG,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAEd,SAAI,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAEf,kBAAa,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAExB,mBAAc,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAEzB,gBAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAEtB,YAAO,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAElB,wBAAmB,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAE9B,YAAO,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAElB,gBAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC;CAAA;AAED,kBAAe,QAAQ,CAAC"}
|
package/src/mock/vitest.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { vi } from 'vitest';
|
|
2
|
-
import { IAfRabbitMq } from '../index';
|
|
3
|
-
|
|
4
|
-
class RabbitMq implements IAfRabbitMq {
|
|
5
|
-
ack = vi.fn();
|
|
6
|
-
|
|
7
|
-
nack = vi.fn();
|
|
8
|
-
|
|
9
|
-
assertChannel = vi.fn();
|
|
10
|
-
|
|
11
|
-
assertExchange = vi.fn();
|
|
12
|
-
|
|
13
|
-
assertQueue = vi.fn();
|
|
14
|
-
|
|
15
|
-
consume = vi.fn();
|
|
16
|
-
|
|
17
|
-
consumeFromExchange = vi.fn();
|
|
18
|
-
|
|
19
|
-
publish = vi.fn();
|
|
20
|
-
|
|
21
|
-
sendToQueue = vi.fn();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default RabbitMq;
|
package/tsconfig.build.json
DELETED
package/vitest.config.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line import/no-unresolved
|
|
2
|
-
import { defineConfig } from 'vitest/config';
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
test: {
|
|
6
|
-
coverage: {
|
|
7
|
-
provider: 'v8',
|
|
8
|
-
include: ['src/**/*.ts'],
|
|
9
|
-
exclude: ['src/example.ts', 'src/mock/*.ts'],
|
|
10
|
-
reporter: 'text',
|
|
11
|
-
thresholds: {
|
|
12
|
-
lines: 75,
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
});
|