bunqueue 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/dlqManager.js +2 -2
- package/dist/application/dlqManager.js.map +1 -1
- package/dist/application/operations/ack.js +1 -1
- package/dist/application/operations/ack.js.map +1 -1
- package/dist/application/operations/jobManagement.js +1 -1
- package/dist/application/operations/jobManagement.js.map +1 -1
- package/dist/application/operations/push.js +2 -2
- package/dist/application/operations/push.js.map +1 -1
- package/dist/application/queueManager.js +1 -1
- package/dist/application/queueManager.js.map +1 -1
- package/dist/cli/dashboard.d.ts +32 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +183 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/domain/queue/shard.d.ts +22 -6
- package/dist/domain/queue/shard.d.ts.map +1 -1
- package/dist/domain/queue/shard.js +61 -45
- package/dist/domain/queue/shard.js.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.d.ts +8 -3
- package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.js +49 -26
- package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
- package/dist/shared/lru.d.ts +24 -4
- package/dist/shared/lru.d.ts.map +1 -1
- package/dist/shared/lru.js +187 -66
- package/dist/shared/lru.js.map +1 -1
- package/dist/shared/skipList.d.ts +95 -0
- package/dist/shared/skipList.d.ts.map +1 -0
- package/dist/shared/skipList.js +277 -0
- package/dist/shared/skipList.js.map +1 -0
- package/package.json +1 -1
|
@@ -32,8 +32,15 @@ export declare class Shard {
|
|
|
32
32
|
/** Set of delayed job IDs for tracking when they become ready */
|
|
33
33
|
private readonly delayedJobIds;
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* Min-heap of delayed jobs ordered by runAt for O(k) refresh
|
|
36
|
+
* Instead of O(n × queues) iteration
|
|
37
|
+
*/
|
|
38
|
+
private readonly delayedHeap;
|
|
39
|
+
/** Map from jobId to current runAt for stale detection in delayedHeap */
|
|
40
|
+
private readonly delayedRunAt;
|
|
41
|
+
/**
|
|
42
|
+
* Temporal index: Skip List for O(log n) insert/delete instead of O(n) splice
|
|
43
|
+
* Ordered by createdAt for efficient cleanQueue range queries
|
|
37
44
|
*/
|
|
38
45
|
private readonly temporalIndex;
|
|
39
46
|
/** Unique keys per queue for deduplication */
|
|
@@ -130,20 +137,26 @@ export declare class Shard {
|
|
|
130
137
|
/** Get shard statistics - O(1) */
|
|
131
138
|
getStats(): ShardStats;
|
|
132
139
|
/** Increment queued jobs counter and add to temporal index */
|
|
133
|
-
incrementQueued(jobId: JobId, isDelayed: boolean, createdAt?: number, queue?: string): void;
|
|
140
|
+
incrementQueued(jobId: JobId, isDelayed: boolean, createdAt?: number, queue?: string, runAt?: number): void;
|
|
134
141
|
/** Decrement queued jobs counter and remove from temporal index */
|
|
135
142
|
decrementQueued(jobId: JobId): void;
|
|
136
143
|
/** Increment DLQ counter */
|
|
137
144
|
incrementDlq(): void;
|
|
138
145
|
/** Decrement DLQ counter */
|
|
139
146
|
decrementDlq(count?: number): void;
|
|
140
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* Update delayed jobs that have become ready (call periodically)
|
|
149
|
+
* O(k) where k = jobs that became ready, instead of O(n × queues)
|
|
150
|
+
*/
|
|
141
151
|
refreshDelayedCount(now: number): void;
|
|
142
152
|
/** Reset all counters (used after drain/obliterate) */
|
|
143
153
|
resetQueuedCounters(): void;
|
|
144
154
|
/** Reset DLQ counter */
|
|
145
155
|
resetDlqCounter(): void;
|
|
146
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* Add job to temporal index - O(log n) with Skip List
|
|
158
|
+
* Previously O(n) with array splice
|
|
159
|
+
*/
|
|
147
160
|
private addToTemporalIndex;
|
|
148
161
|
/**
|
|
149
162
|
* Get old jobs from temporal index - O(log n + k) where k = returned jobs
|
|
@@ -153,7 +166,10 @@ export declare class Shard {
|
|
|
153
166
|
jobId: JobId;
|
|
154
167
|
createdAt: number;
|
|
155
168
|
}>;
|
|
156
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* Remove job from temporal index (called after job is cleaned)
|
|
171
|
+
* O(n) in worst case but typically fast with deleteWhere
|
|
172
|
+
*/
|
|
157
173
|
removeFromTemporalIndex(jobId: JobId): void;
|
|
158
174
|
/** Clear temporal index for a queue */
|
|
159
175
|
clearTemporalIndexForQueue(queue: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../../src/domain/queue/shard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,UAAU,EAAoB,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"shard.d.ts","sourceRoot":"","sources":["../../../src/domain/queue/shard.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { createQueueState, RateLimiter, ConcurrencyLimiter } from '../types/queue';
|
|
6
6
|
import { IndexedPriorityQueue } from './priorityQueue';
|
|
7
|
+
import { SkipList } from '../../shared/skipList';
|
|
8
|
+
import { MinHeap } from '../../shared/minHeap';
|
|
7
9
|
/**
|
|
8
10
|
* Shard contains:
|
|
9
11
|
* - Queues (waiting + delayed jobs)
|
|
@@ -26,10 +28,17 @@ export class Shard {
|
|
|
26
28
|
/** Set of delayed job IDs for tracking when they become ready */
|
|
27
29
|
delayedJobIds = new Set();
|
|
28
30
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
+
* Min-heap of delayed jobs ordered by runAt for O(k) refresh
|
|
32
|
+
* Instead of O(n × queues) iteration
|
|
31
33
|
*/
|
|
32
|
-
|
|
34
|
+
delayedHeap = new MinHeap((a, b) => a.runAt - b.runAt);
|
|
35
|
+
/** Map from jobId to current runAt for stale detection in delayedHeap */
|
|
36
|
+
delayedRunAt = new Map();
|
|
37
|
+
/**
|
|
38
|
+
* Temporal index: Skip List for O(log n) insert/delete instead of O(n) splice
|
|
39
|
+
* Ordered by createdAt for efficient cleanQueue range queries
|
|
40
|
+
*/
|
|
41
|
+
temporalIndex = new SkipList((a, b) => a.createdAt - b.createdAt);
|
|
33
42
|
/** Unique keys per queue for deduplication */
|
|
34
43
|
uniqueKeys = new Map();
|
|
35
44
|
/** Jobs waiting for dependencies */
|
|
@@ -309,11 +318,17 @@ export class Shard {
|
|
|
309
318
|
return { ...this.stats };
|
|
310
319
|
}
|
|
311
320
|
/** Increment queued jobs counter and add to temporal index */
|
|
312
|
-
incrementQueued(jobId, isDelayed, createdAt, queue) {
|
|
321
|
+
incrementQueued(jobId, isDelayed, createdAt, queue, runAt) {
|
|
313
322
|
this.stats.queuedJobs++;
|
|
314
323
|
if (isDelayed) {
|
|
315
324
|
this.stats.delayedJobs++;
|
|
316
325
|
this.delayedJobIds.add(jobId);
|
|
326
|
+
// Add to min-heap for O(k) refresh instead of O(n × queues)
|
|
327
|
+
// Only if runAt is provided (for full optimization)
|
|
328
|
+
if (runAt !== undefined) {
|
|
329
|
+
this.delayedHeap.push({ jobId, runAt });
|
|
330
|
+
this.delayedRunAt.set(jobId, runAt);
|
|
331
|
+
}
|
|
317
332
|
}
|
|
318
333
|
// Add to temporal index for efficient cleanQueue
|
|
319
334
|
if (createdAt !== undefined && queue !== undefined) {
|
|
@@ -326,6 +341,8 @@ export class Shard {
|
|
|
326
341
|
if (this.delayedJobIds.has(jobId)) {
|
|
327
342
|
this.stats.delayedJobs = Math.max(0, this.stats.delayedJobs - 1);
|
|
328
343
|
this.delayedJobIds.delete(jobId);
|
|
344
|
+
// Mark as stale in heap (lazy removal)
|
|
345
|
+
this.delayedRunAt.delete(jobId);
|
|
329
346
|
}
|
|
330
347
|
// Remove from temporal index (lazy removal - will be cleaned on next cleanQueue)
|
|
331
348
|
}
|
|
@@ -337,21 +354,31 @@ export class Shard {
|
|
|
337
354
|
decrementDlq(count = 1) {
|
|
338
355
|
this.stats.dlqJobs = Math.max(0, this.stats.dlqJobs - count);
|
|
339
356
|
}
|
|
340
|
-
/**
|
|
357
|
+
/**
|
|
358
|
+
* Update delayed jobs that have become ready (call periodically)
|
|
359
|
+
* O(k) where k = jobs that became ready, instead of O(n × queues)
|
|
360
|
+
*/
|
|
341
361
|
refreshDelayedCount(now) {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
362
|
+
// Process heap from top - jobs ordered by runAt ascending
|
|
363
|
+
while (!this.delayedHeap.isEmpty) {
|
|
364
|
+
const top = this.delayedHeap.peek();
|
|
365
|
+
if (!top || top.runAt > now)
|
|
366
|
+
break;
|
|
367
|
+
// Pop from heap
|
|
368
|
+
this.delayedHeap.pop();
|
|
369
|
+
// Check if stale (job was removed or runAt changed)
|
|
370
|
+
const currentRunAt = this.delayedRunAt.get(top.jobId);
|
|
371
|
+
if (currentRunAt === undefined) {
|
|
372
|
+
// Job was removed, skip
|
|
373
|
+
continue;
|
|
351
374
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
375
|
+
if (currentRunAt !== top.runAt) {
|
|
376
|
+
// runAt changed, this entry is stale, skip
|
|
377
|
+
continue;
|
|
378
|
+
}
|
|
379
|
+
// Job is ready - remove from delayed tracking
|
|
380
|
+
this.delayedJobIds.delete(top.jobId);
|
|
381
|
+
this.delayedRunAt.delete(top.jobId);
|
|
355
382
|
this.stats.delayedJobs = Math.max(0, this.stats.delayedJobs - 1);
|
|
356
383
|
}
|
|
357
384
|
}
|
|
@@ -360,27 +387,20 @@ export class Shard {
|
|
|
360
387
|
this.stats.queuedJobs = 0;
|
|
361
388
|
this.stats.delayedJobs = 0;
|
|
362
389
|
this.delayedJobIds.clear();
|
|
390
|
+
this.delayedHeap.clear();
|
|
391
|
+
this.delayedRunAt.clear();
|
|
363
392
|
}
|
|
364
393
|
/** Reset DLQ counter */
|
|
365
394
|
resetDlqCounter() {
|
|
366
395
|
this.stats.dlqJobs = 0;
|
|
367
396
|
}
|
|
368
397
|
// ============ Temporal Index (for efficient cleanQueue) ============
|
|
369
|
-
/**
|
|
398
|
+
/**
|
|
399
|
+
* Add job to temporal index - O(log n) with Skip List
|
|
400
|
+
* Previously O(n) with array splice
|
|
401
|
+
*/
|
|
370
402
|
addToTemporalIndex(createdAt, jobId, queue) {
|
|
371
|
-
|
|
372
|
-
let lo = 0;
|
|
373
|
-
let hi = this.temporalIndex.length;
|
|
374
|
-
while (lo < hi) {
|
|
375
|
-
const mid = (lo + hi) >>> 1;
|
|
376
|
-
if (this.temporalIndex[mid].createdAt < createdAt) {
|
|
377
|
-
lo = mid + 1;
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
hi = mid;
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
this.temporalIndex.splice(lo, 0, { createdAt, jobId, queue });
|
|
403
|
+
this.temporalIndex.insert({ createdAt, jobId, queue });
|
|
384
404
|
}
|
|
385
405
|
/**
|
|
386
406
|
* Get old jobs from temporal index - O(log n + k) where k = returned jobs
|
|
@@ -390,9 +410,9 @@ export class Shard {
|
|
|
390
410
|
const now = Date.now();
|
|
391
411
|
const threshold = now - thresholdMs;
|
|
392
412
|
const result = [];
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
for (const entry of this.temporalIndex) {
|
|
413
|
+
// Use Skip List takeWhile for O(k) iteration from start
|
|
414
|
+
// Stops when createdAt > threshold
|
|
415
|
+
for (const entry of this.temporalIndex.values()) {
|
|
396
416
|
if (entry.createdAt > threshold)
|
|
397
417
|
break;
|
|
398
418
|
if (entry.queue === queue) {
|
|
@@ -403,21 +423,17 @@ export class Shard {
|
|
|
403
423
|
}
|
|
404
424
|
return result;
|
|
405
425
|
}
|
|
406
|
-
/**
|
|
426
|
+
/**
|
|
427
|
+
* Remove job from temporal index (called after job is cleaned)
|
|
428
|
+
* O(n) in worst case but typically fast with deleteWhere
|
|
429
|
+
*/
|
|
407
430
|
removeFromTemporalIndex(jobId) {
|
|
408
|
-
|
|
409
|
-
if (idx !== -1) {
|
|
410
|
-
this.temporalIndex.splice(idx, 1);
|
|
411
|
-
}
|
|
431
|
+
this.temporalIndex.deleteWhere((e) => e.jobId === jobId);
|
|
412
432
|
}
|
|
413
433
|
/** Clear temporal index for a queue */
|
|
414
434
|
clearTemporalIndexForQueue(queue) {
|
|
415
|
-
//
|
|
416
|
-
|
|
417
|
-
if (this.temporalIndex[i].queue === queue) {
|
|
418
|
-
this.temporalIndex.splice(i, 1);
|
|
419
|
-
}
|
|
420
|
-
}
|
|
435
|
+
// Remove all entries for this queue
|
|
436
|
+
this.temporalIndex.removeAll((e) => e.queue === queue);
|
|
421
437
|
}
|
|
422
438
|
/** Drain all waiting jobs from queue */
|
|
423
439
|
drain(queue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../src/domain/queue/shard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAmB,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAYvD;;;;;;;GAOG;AACH,MAAM,OAAO,KAAK;IAChB,oCAAoC;IAC3B,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE1D,sCAAsC;IAC7B,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IAExC,mEAAmE;IAClD,KAAK,GAAe;QACnC,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;KACX,CAAC;IAEF,iEAAiE;IAChD,aAAa,GAAG,IAAI,GAAG,EAAS,CAAC;IAElD;;;OAGG;IACc,aAAa,GAA8D,EAAE,CAAC;IAE/F,8CAA8C;IACrC,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAErD,oCAAoC;IAC3B,WAAW,GAAG,IAAI,GAAG,EAAc,CAAC;IAE7C;;;OAGG;IACM,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IAExD,mDAAmD;IAC1C,eAAe,GAAG,IAAI,GAAG,EAAc,CAAC;IAEjD,mDAAmD;IAC1C,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEpD,mCAAmC;IAC1B,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,8BAA8B;IACrB,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,qCAAqC;IAC5B,mBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAErE,wDAAwD;IACvC,OAAO,GAAsB,EAAE,CAAC;IAEjD,yDAAyD;IACzD,MAAM;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,UAAU,CAAC,SAAiB;QAC1B,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,iBAAiB;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE5B,mBAAmB;YACnB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,oDAAoD;QACrG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAE7C,0BAA0B;IAC1B,QAAQ,CAAC,IAAY;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,QAAQ,CAAC,IAAY;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;IACpD,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,mBAAmB;IACnB,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,kDAAkD;IAElD,uCAAuC;IACvC,iBAAiB,CAAC,KAAa,EAAE,GAAW;QAC1C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,iBAAiB,CAAC,KAAa,EAAE,GAAW;QAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,yBAAyB;IACzB,gBAAgB,CAAC,KAAa,EAAE,GAAW;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAElD,oCAAoC;IACpC,aAAa,CAAC,KAAa,EAAE,OAAe;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IAC7D,CAAC;IAED,gCAAgC;IAChC,aAAa,CAAC,KAAa,EAAE,OAAe;QAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,yBAAyB;IACzB,YAAY,CAAC,KAAa,EAAE,OAAe;QACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,wDAAwD;IAExD,+BAA+B;IAC/B,YAAY,CAAC,KAAa,EAAE,KAAa;QACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,uBAAuB;IACvB,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,sCAAsC;IACtC,mBAAmB,CAAC,KAAa;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,sCAAsC;IACtC,cAAc,CAAC,KAAa,EAAE,KAAa;QACzC,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChD,CAAC;IAED,8BAA8B;IAC9B,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC3C,CAAC;IAED,sCAAsC;IACtC,qBAAqB,CAAC,KAAa;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,+BAA+B;IAC/B,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,6CAA6C;IAE7C,sCAAsC;IACtC,mBAAmB,CAAC,KAAa,EAAE,SAAwB,EAAE,OAAsB;QACjF,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,wDAAwD;IAExD;;;OAGG;IACH,oBAAoB,CAAC,KAAY,EAAE,SAAkB;QACnD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,KAAY,EAAE,SAAkB;QACrD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAY;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,2CAA2C;IAE3C,qBAAqB;IACrB,QAAQ,CAAC,GAAQ;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,mBAAmB;IACnB,MAAM,CAAC,KAAa,EAAE,KAAc;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,0BAA0B;IAC1B,aAAa,CAAC,KAAa,EAAE,KAAY;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QACjD,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAa;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IAExC,sCAAsC;IACtC,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,8BAA8B;IAC9B,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,wCAAwC;IACxC,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,0DAA0D;IAE1D,kCAAkC;IAClC,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,8DAA8D;IAC9D,eAAe,CAAC,KAAY,EAAE,SAAkB,EAAE,SAAkB,EAAE,KAAc;QAClF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,iDAAiD;QACjD,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,eAAe,CAAC,KAAY;QAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,iFAAiF;IACnF,CAAC;IAED,4BAA4B;IAC5B,YAAY;QACV,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,4BAA4B;IAC5B,YAAY,CAAC,QAAgB,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,qEAAqE;IACrE,mBAAmB,CAAC,GAAW;QAC7B,MAAM,QAAQ,GAAY,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,oCAAoC;YACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;oBAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,mBAAmB;QACjB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,wBAAwB;IACxB,eAAe;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,sEAAsE;IAEtE,sEAAsE;IAC9D,kBAAkB,CAAC,SAAiB,EAAE,KAAY,EAAE,KAAa;QACvE,wCAAwC;QACxC,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;gBAClD,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,GAAG,CAAC;YACX,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,UAAU,CACR,KAAa,EACb,WAAmB,EACnB,KAAa;QAEb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;QACpC,MAAM,MAAM,GAA+C,EAAE,CAAC;QAE9D,iEAAiE;QACjE,6DAA6D;QAC7D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS;gBAAE,MAAM;YACvC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChE,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM;YACpC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mEAAmE;IACnE,uBAAuB,CAAC,KAAY;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACnE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,0BAA0B,CAAC,KAAa;QACtC,oCAAoC;QACpC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,KAAa;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACrB,+CAA+C;QAC/C,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,sCAAsC;QACtC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACvC,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kCAAkC;IAClC,UAAU,CAAC,KAAa;QACtB,kCAAkC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QACD,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACjD,sCAAsC;QACtC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../src/domain/queue/shard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAmB,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAY/C;;;;;;;GAOG;AACH,MAAM,OAAO,KAAK;IAChB,oCAAoC;IAC3B,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE1D,sCAAsC;IAC7B,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAC;IAExC,mEAAmE;IAClD,KAAK,GAAe;QACnC,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;KACX,CAAC;IAEF,iEAAiE;IAChD,aAAa,GAAG,IAAI,GAAG,EAAS,CAAC;IAElD;;;OAGG;IACc,WAAW,GAAG,IAAI,OAAO,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAC5B,CAAC;IAEF,yEAAyE;IACxD,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEzD;;;OAGG;IACc,aAAa,GAAG,IAAI,QAAQ,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CACpC,CAAC;IAEF,8CAA8C;IACrC,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAErD,oCAAoC;IAC3B,WAAW,GAAG,IAAI,GAAG,EAAc,CAAC;IAE7C;;;OAGG;IACM,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IAExD,mDAAmD;IAC1C,eAAe,GAAG,IAAI,GAAG,EAAc,CAAC;IAEjD,mDAAmD;IAC1C,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEpD,mCAAmC;IAC1B,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,8BAA8B;IACrB,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,qCAAqC;IAC5B,mBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAErE,wDAAwD;IACvC,OAAO,GAAsB,EAAE,CAAC;IAEjD,yDAAyD;IACzD,MAAM;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,UAAU,CAAC,SAAiB;QAC1B,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,iBAAiB;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE5B,mBAAmB;YACnB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,oDAAoD;QACrG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAE7C,0BAA0B;IAC1B,QAAQ,CAAC,IAAY;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,QAAQ,CAAC,IAAY;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;IACpD,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,mBAAmB;IACnB,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,kDAAkD;IAElD,uCAAuC;IACvC,iBAAiB,CAAC,KAAa,EAAE,GAAW;QAC1C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,iBAAiB,CAAC,KAAa,EAAE,GAAW;QAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,yBAAyB;IACzB,gBAAgB,CAAC,KAAa,EAAE,GAAW;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAElD,oCAAoC;IACpC,aAAa,CAAC,KAAa,EAAE,OAAe;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IAC7D,CAAC;IAED,gCAAgC;IAChC,aAAa,CAAC,KAAa,EAAE,OAAe;QAC1C,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,yBAAyB;IACzB,YAAY,CAAC,KAAa,EAAE,OAAe;QACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,wDAAwD;IAExD,+BAA+B;IAC/B,YAAY,CAAC,KAAa,EAAE,KAAa;QACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,uBAAuB;IACvB,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,sCAAsC;IACtC,mBAAmB,CAAC,KAAa;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,sCAAsC;IACtC,cAAc,CAAC,KAAa,EAAE,KAAa;QACzC,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChD,CAAC;IAED,8BAA8B;IAC9B,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC3C,CAAC;IAED,sCAAsC;IACtC,qBAAqB,CAAC,KAAa;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,+BAA+B;IAC/B,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,6CAA6C;IAE7C,sCAAsC;IACtC,mBAAmB,CAAC,KAAa,EAAE,SAAwB,EAAE,OAAsB;QACjF,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,wDAAwD;IAExD;;;OAGG;IACH,oBAAoB,CAAC,KAAY,EAAE,SAAkB;QACnD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,KAAY,EAAE,SAAkB;QACrD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAY;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,2CAA2C;IAE3C,qBAAqB;IACrB,QAAQ,CAAC,GAAQ;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,mBAAmB;IACnB,MAAM,CAAC,KAAa,EAAE,KAAc;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,0BAA0B;IAC1B,aAAa,CAAC,KAAa,EAAE,KAAY;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QACjD,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAa;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAwC;IAExC,sCAAsC;IACtC,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,8BAA8B;IAC9B,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,wCAAwC;IACxC,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,0DAA0D;IAE1D,kCAAkC;IAClC,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,8DAA8D;IAC9D,eAAe,CACb,KAAY,EACZ,SAAkB,EAClB,SAAkB,EAClB,KAAc,EACd,KAAc;QAEd,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,4DAA4D;YAC5D,oDAAoD;YACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,iDAAiD;QACjD,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,eAAe,CAAC,KAAY;QAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,uCAAuC;YACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,iFAAiF;IACnF,CAAC;IAED,4BAA4B;IAC5B,YAAY;QACV,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,4BAA4B;IAC5B,YAAY,CAAC,QAAgB,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,GAAW;QAC7B,0DAA0D;QAC1D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG;gBAAE,MAAM;YAEnC,gBAAgB;YAChB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAEvB,oDAAoD;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,wBAAwB;gBACxB,SAAS;YACX,CAAC;YACD,IAAI,YAAY,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC/B,2CAA2C;gBAC3C,SAAS;YACX,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,mBAAmB;QACjB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,wBAAwB;IACxB,eAAe;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,sEAAsE;IAEtE;;;OAGG;IACK,kBAAkB,CAAC,SAAiB,EAAE,KAAY,EAAE,KAAa;QACvE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,UAAU,CACR,KAAa,EACb,WAAmB,EACnB,KAAa;QAEb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;QACpC,MAAM,MAAM,GAA+C,EAAE,CAAC;QAE9D,wDAAwD;QACxD,mCAAmC;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS;gBAAE,MAAM;YACvC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChE,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM;YACpC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,KAAY;QAClC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,uCAAuC;IACvC,0BAA0B,CAAC,KAAa;QACtC,oCAAoC;QACpC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,KAAa;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACrB,+CAA+C;QAC/C,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,sCAAsC;QACtC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACvC,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kCAAkC;IAClC,UAAU,CAAC,KAAa;QACtB,kCAAkC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QACD,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACjD,sCAAsC;QACtC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -15,13 +15,16 @@ export type PushJobCallback = (queue: string, input: JobInput) => Promise<void>;
|
|
|
15
15
|
* Cron Scheduler
|
|
16
16
|
* Periodically checks and executes due cron jobs
|
|
17
17
|
* Optimized with min-heap for O(k log n) tick where k = due crons
|
|
18
|
+
* Uses lazy deletion with generation numbers for O(1) remove
|
|
18
19
|
*/
|
|
19
20
|
export declare class CronScheduler {
|
|
20
21
|
private readonly config;
|
|
21
|
-
/** Map for O(1) lookup by name */
|
|
22
|
+
/** Map for O(1) lookup by name with generation tracking */
|
|
22
23
|
private readonly cronJobs;
|
|
23
24
|
/** Min-heap ordered by nextRun for O(k log n) tick */
|
|
24
25
|
private readonly cronHeap;
|
|
26
|
+
/** Current generation counter */
|
|
27
|
+
private generation;
|
|
25
28
|
private checkInterval;
|
|
26
29
|
private pushJob;
|
|
27
30
|
constructor(config?: CronSchedulerConfig);
|
|
@@ -42,7 +45,8 @@ export declare class CronScheduler {
|
|
|
42
45
|
*/
|
|
43
46
|
add(input: CronJobInput): CronJob;
|
|
44
47
|
/**
|
|
45
|
-
* Remove a cron job
|
|
48
|
+
* Remove a cron job - O(1) with lazy deletion
|
|
49
|
+
* The heap entry becomes stale and will be skipped in tick()
|
|
46
50
|
*/
|
|
47
51
|
remove(name: string): boolean;
|
|
48
52
|
/**
|
|
@@ -60,11 +64,12 @@ export declare class CronScheduler {
|
|
|
60
64
|
/**
|
|
61
65
|
* Check and execute due cron jobs
|
|
62
66
|
* O(k log n) where k = number of due crons, instead of O(n) full scan
|
|
67
|
+
* Skips stale entries (lazy deletion) automatically
|
|
63
68
|
*/
|
|
64
69
|
private tick;
|
|
65
70
|
/**
|
|
66
71
|
* Get scheduler stats
|
|
67
|
-
* O(1) for nextRun using min-heap peek
|
|
72
|
+
* O(1) for nextRun using min-heap peek (skips stale entries)
|
|
68
73
|
*/
|
|
69
74
|
getStats(): {
|
|
70
75
|
total: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAQhF;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,iCAAiC;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,OAAO,CAAgC;gBAEnC,MAAM,GAAE,mBAAwB;IAI5C;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAoCjC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC;;OAEG;IACH,IAAI,IAAI,OAAO,EAAE;IAIjB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAY5B;;;;OAIG;YACW,IAAI;IA2ElB;;;OAGG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CA4BvE"}
|
|
@@ -14,13 +14,16 @@ const DEFAULT_CONFIG = {
|
|
|
14
14
|
* Cron Scheduler
|
|
15
15
|
* Periodically checks and executes due cron jobs
|
|
16
16
|
* Optimized with min-heap for O(k log n) tick where k = due crons
|
|
17
|
+
* Uses lazy deletion with generation numbers for O(1) remove
|
|
17
18
|
*/
|
|
18
19
|
export class CronScheduler {
|
|
19
20
|
config;
|
|
20
|
-
/** Map for O(1) lookup by name */
|
|
21
|
+
/** Map for O(1) lookup by name with generation tracking */
|
|
21
22
|
cronJobs = new Map();
|
|
22
23
|
/** Min-heap ordered by nextRun for O(k log n) tick */
|
|
23
|
-
cronHeap = new MinHeap((a, b) => a.nextRun - b.nextRun);
|
|
24
|
+
cronHeap = new MinHeap((a, b) => a.cron.nextRun - b.cron.nextRun);
|
|
25
|
+
/** Current generation counter */
|
|
26
|
+
generation = 0;
|
|
24
27
|
checkInterval = null;
|
|
25
28
|
pushJob = null;
|
|
26
29
|
constructor(config = {}) {
|
|
@@ -78,23 +81,24 @@ export class CronScheduler {
|
|
|
78
81
|
else {
|
|
79
82
|
nextRun = getNextIntervalRun(input.repeatEvery, now);
|
|
80
83
|
}
|
|
81
|
-
// Create cron job
|
|
84
|
+
// Create cron job with generation tracking
|
|
82
85
|
const cron = createCronJob(input, nextRun);
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
86
|
+
const gen = this.generation++;
|
|
87
|
+
this.cronJobs.set(cron.name, { cron, generation: gen });
|
|
88
|
+
this.cronHeap.push({ cron, generation: gen });
|
|
85
89
|
cronLog.info('Added job', { name: cron.name, nextRun: new Date(nextRun).toISOString() });
|
|
86
90
|
return cron;
|
|
87
91
|
}
|
|
88
92
|
/**
|
|
89
|
-
* Remove a cron job
|
|
93
|
+
* Remove a cron job - O(1) with lazy deletion
|
|
94
|
+
* The heap entry becomes stale and will be skipped in tick()
|
|
90
95
|
*/
|
|
91
96
|
remove(name) {
|
|
92
|
-
const
|
|
93
|
-
if (!
|
|
97
|
+
const entry = this.cronJobs.get(name);
|
|
98
|
+
if (!entry)
|
|
94
99
|
return false;
|
|
100
|
+
// Just remove from map - heap entry becomes stale (lazy deletion)
|
|
95
101
|
this.cronJobs.delete(name);
|
|
96
|
-
// Remove from heap - O(n) but rare operation
|
|
97
|
-
this.cronHeap.removeWhere((c) => c.name === name);
|
|
98
102
|
cronLog.info('Removed job', { name });
|
|
99
103
|
return true;
|
|
100
104
|
}
|
|
@@ -102,28 +106,32 @@ export class CronScheduler {
|
|
|
102
106
|
* Get a cron job by name
|
|
103
107
|
*/
|
|
104
108
|
get(name) {
|
|
105
|
-
return this.cronJobs.get(name);
|
|
109
|
+
return this.cronJobs.get(name)?.cron;
|
|
106
110
|
}
|
|
107
111
|
/**
|
|
108
112
|
* List all cron jobs
|
|
109
113
|
*/
|
|
110
114
|
list() {
|
|
111
|
-
return Array.from(this.cronJobs.values());
|
|
115
|
+
return Array.from(this.cronJobs.values()).map((e) => e.cron);
|
|
112
116
|
}
|
|
113
117
|
/**
|
|
114
118
|
* Load cron jobs from storage
|
|
115
119
|
*/
|
|
116
120
|
load(crons) {
|
|
121
|
+
const entries = [];
|
|
117
122
|
for (const cron of crons) {
|
|
118
|
-
this.
|
|
123
|
+
const gen = this.generation++;
|
|
124
|
+
this.cronJobs.set(cron.name, { cron, generation: gen });
|
|
125
|
+
entries.push({ cron, generation: gen });
|
|
119
126
|
}
|
|
120
127
|
// Rebuild heap from loaded crons - O(n)
|
|
121
|
-
this.cronHeap.buildFrom(
|
|
128
|
+
this.cronHeap.buildFrom(entries);
|
|
122
129
|
cronLog.info('Loaded jobs', { count: crons.length });
|
|
123
130
|
}
|
|
124
131
|
/**
|
|
125
132
|
* Check and execute due cron jobs
|
|
126
133
|
* O(k log n) where k = number of due crons, instead of O(n) full scan
|
|
134
|
+
* Skips stale entries (lazy deletion) automatically
|
|
127
135
|
*/
|
|
128
136
|
async tick() {
|
|
129
137
|
if (!this.pushJob)
|
|
@@ -133,11 +141,18 @@ export class CronScheduler {
|
|
|
133
141
|
const toRemove = [];
|
|
134
142
|
// Process only due crons from heap - O(k log n)
|
|
135
143
|
while (!this.cronHeap.isEmpty) {
|
|
136
|
-
const
|
|
137
|
-
if (!
|
|
144
|
+
const entry = this.cronHeap.peek();
|
|
145
|
+
if (!entry || entry.cron.nextRun > now)
|
|
138
146
|
break;
|
|
139
147
|
// Remove from heap
|
|
140
148
|
this.cronHeap.pop();
|
|
149
|
+
// Check if stale (cron was removed or updated)
|
|
150
|
+
const current = this.cronJobs.get(entry.cron.name);
|
|
151
|
+
if (current?.generation !== entry.generation) {
|
|
152
|
+
// Stale entry, skip
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
const cron = entry.cron;
|
|
141
156
|
// Check if at limit
|
|
142
157
|
if (isAtLimit(cron)) {
|
|
143
158
|
cronLog.info('Job reached execution limit', { name: cron.name });
|
|
@@ -160,8 +175,8 @@ export class CronScheduler {
|
|
|
160
175
|
else if (cron.repeatEvery) {
|
|
161
176
|
cron.nextRun = getNextIntervalRun(cron.repeatEvery, now);
|
|
162
177
|
}
|
|
163
|
-
// Re-insert with
|
|
164
|
-
toReinsert.push(
|
|
178
|
+
// Re-insert with same generation (not stale)
|
|
179
|
+
toReinsert.push(entry);
|
|
165
180
|
cronLog.info('Executed job', {
|
|
166
181
|
name: cron.name,
|
|
167
182
|
executions: cron.executions,
|
|
@@ -171,12 +186,12 @@ export class CronScheduler {
|
|
|
171
186
|
catch (err) {
|
|
172
187
|
cronLog.error('Failed to execute job', { name: cron.name, error: String(err) });
|
|
173
188
|
// Re-insert even on failure to retry next tick
|
|
174
|
-
toReinsert.push(
|
|
189
|
+
toReinsert.push(entry);
|
|
175
190
|
}
|
|
176
191
|
}
|
|
177
192
|
// Re-insert processed crons with updated nextRun
|
|
178
|
-
for (const
|
|
179
|
-
this.cronHeap.push(
|
|
193
|
+
for (const entry of toReinsert) {
|
|
194
|
+
this.cronHeap.push(entry);
|
|
180
195
|
}
|
|
181
196
|
// Remove limit-reached crons from map
|
|
182
197
|
for (const name of toRemove) {
|
|
@@ -185,15 +200,23 @@ export class CronScheduler {
|
|
|
185
200
|
}
|
|
186
201
|
/**
|
|
187
202
|
* Get scheduler stats
|
|
188
|
-
* O(1) for nextRun using min-heap peek
|
|
203
|
+
* O(1) for nextRun using min-heap peek (skips stale entries)
|
|
189
204
|
*/
|
|
190
205
|
getStats() {
|
|
191
|
-
//
|
|
192
|
-
|
|
193
|
-
|
|
206
|
+
// Find first non-stale entry for nextRun
|
|
207
|
+
let nextRun = null;
|
|
208
|
+
// Peek and skip stale entries to find valid nextRun
|
|
209
|
+
// This is typically O(1) as stale entries are cleaned during tick()
|
|
210
|
+
const entry = this.cronHeap.peek();
|
|
211
|
+
if (entry) {
|
|
212
|
+
const current = this.cronJobs.get(entry.cron.name);
|
|
213
|
+
if (current?.generation === entry.generation && !isAtLimit(entry.cron)) {
|
|
214
|
+
nextRun = entry.cron.nextRun;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
194
217
|
// Count pending (crons not at limit) - still O(n) but called rarely
|
|
195
218
|
let pending = 0;
|
|
196
|
-
for (const cron of this.cronJobs.values()) {
|
|
219
|
+
for (const { cron } of this.cronJobs.values()) {
|
|
197
220
|
if (!isAtLimit(cron)) {
|
|
198
221
|
pending++;
|
|
199
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAmC,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpG,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,MAAM,cAAc,GAAkC;IACpD,eAAe,EAAE,IAAI;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"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"}
|