bunqueue 1.9.0 → 1.9.2

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.
Files changed (156) hide show
  1. package/dist/application/operations/queueControl.d.ts.map +1 -1
  2. package/dist/application/operations/queueControl.js +6 -1
  3. package/dist/application/operations/queueControl.js.map +1 -1
  4. package/dist/application/queueManager.d.ts +115 -9
  5. package/dist/application/queueManager.d.ts.map +1 -1
  6. package/dist/application/queueManager.js +535 -26
  7. package/dist/application/queueManager.js.map +1 -1
  8. package/dist/cli/commands/server.d.ts.map +1 -1
  9. package/dist/cli/commands/server.js +4 -9
  10. package/dist/cli/commands/server.js.map +1 -1
  11. package/dist/client/index.d.ts +1 -0
  12. package/dist/client/index.d.ts.map +1 -1
  13. package/dist/client/index.js.map +1 -1
  14. package/dist/client/queue/dlqOps.d.ts +24 -0
  15. package/dist/client/queue/dlqOps.d.ts.map +1 -0
  16. package/dist/client/queue/dlqOps.js +73 -0
  17. package/dist/client/queue/dlqOps.js.map +1 -0
  18. package/dist/client/queue/helpers.d.ts +20 -0
  19. package/dist/client/queue/helpers.d.ts.map +1 -0
  20. package/dist/client/queue/helpers.js +34 -0
  21. package/dist/client/queue/helpers.js.map +1 -0
  22. package/dist/client/queue/index.d.ts +8 -0
  23. package/dist/client/queue/index.d.ts.map +1 -0
  24. package/dist/client/queue/index.js +8 -0
  25. package/dist/client/queue/index.js.map +1 -0
  26. package/dist/client/queue/queue.d.ts +60 -0
  27. package/dist/client/queue/queue.d.ts.map +1 -0
  28. package/dist/client/queue/queue.js +322 -0
  29. package/dist/client/queue/queue.js.map +1 -0
  30. package/dist/client/queue.d.ts +3 -78
  31. package/dist/client/queue.d.ts.map +1 -1
  32. package/dist/client/queue.js +3 -463
  33. package/dist/client/queue.js.map +1 -1
  34. package/dist/client/sandboxed/index.d.ts +8 -0
  35. package/dist/client/sandboxed/index.d.ts.map +1 -0
  36. package/dist/client/sandboxed/index.js +7 -0
  37. package/dist/client/sandboxed/index.js.map +1 -0
  38. package/dist/client/sandboxed/types.d.ts +62 -0
  39. package/dist/client/sandboxed/types.d.ts.map +1 -0
  40. package/dist/client/sandboxed/types.js +6 -0
  41. package/dist/client/sandboxed/types.js.map +1 -0
  42. package/dist/client/sandboxed/worker.d.ts +38 -0
  43. package/dist/client/sandboxed/worker.d.ts.map +1 -0
  44. package/dist/client/sandboxed/worker.js +176 -0
  45. package/dist/client/sandboxed/worker.js.map +1 -0
  46. package/dist/client/sandboxed/wrapper.d.ts +13 -0
  47. package/dist/client/sandboxed/wrapper.d.ts.map +1 -0
  48. package/dist/client/sandboxed/wrapper.js +65 -0
  49. package/dist/client/sandboxed/wrapper.js.map +1 -0
  50. package/dist/client/sandboxedWorker.d.ts +4 -87
  51. package/dist/client/sandboxedWorker.d.ts.map +1 -1
  52. package/dist/client/sandboxedWorker.js +3 -296
  53. package/dist/client/sandboxedWorker.js.map +1 -1
  54. package/dist/client/tcp/client.d.ts +43 -0
  55. package/dist/client/tcp/client.d.ts.map +1 -0
  56. package/dist/client/tcp/client.js +288 -0
  57. package/dist/client/tcp/client.js.map +1 -0
  58. package/dist/client/tcp/connection.d.ts +48 -0
  59. package/dist/client/tcp/connection.d.ts.map +1 -0
  60. package/dist/client/tcp/connection.js +150 -0
  61. package/dist/client/tcp/connection.js.map +1 -0
  62. package/dist/client/tcp/health.d.ts +47 -0
  63. package/dist/client/tcp/health.d.ts.map +1 -0
  64. package/dist/client/tcp/health.js +95 -0
  65. package/dist/client/tcp/health.js.map +1 -0
  66. package/dist/client/tcp/index.d.ts +13 -0
  67. package/dist/client/tcp/index.d.ts.map +1 -0
  68. package/dist/client/tcp/index.js +12 -0
  69. package/dist/client/tcp/index.js.map +1 -0
  70. package/dist/client/tcp/lineBuffer.d.ts +17 -0
  71. package/dist/client/tcp/lineBuffer.d.ts.map +1 -0
  72. package/dist/client/tcp/lineBuffer.js +32 -0
  73. package/dist/client/tcp/lineBuffer.js.map +1 -0
  74. package/dist/client/tcp/reconnect.d.ts +38 -0
  75. package/dist/client/tcp/reconnect.d.ts.map +1 -0
  76. package/dist/client/tcp/reconnect.js +70 -0
  77. package/dist/client/tcp/reconnect.js.map +1 -0
  78. package/dist/client/tcp/shared.d.ts +11 -0
  79. package/dist/client/tcp/shared.d.ts.map +1 -0
  80. package/dist/client/tcp/shared.js +20 -0
  81. package/dist/client/tcp/shared.js.map +1 -0
  82. package/dist/client/tcp/types.d.ts +69 -0
  83. package/dist/client/tcp/types.d.ts.map +1 -0
  84. package/dist/client/tcp/types.js +19 -0
  85. package/dist/client/tcp/types.js.map +1 -0
  86. package/dist/client/tcpClient.d.ts +4 -71
  87. package/dist/client/tcpClient.d.ts.map +1 -1
  88. package/dist/client/tcpClient.js +3 -405
  89. package/dist/client/tcpClient.js.map +1 -1
  90. package/dist/client/tcpPool.d.ts +14 -1
  91. package/dist/client/tcpPool.d.ts.map +1 -1
  92. package/dist/client/tcpPool.js +37 -2
  93. package/dist/client/tcpPool.js.map +1 -1
  94. package/dist/client/types.d.ts +7 -0
  95. package/dist/client/types.d.ts.map +1 -1
  96. package/dist/client/types.js.map +1 -1
  97. package/dist/client/worker/ackBatcher.d.ts +40 -0
  98. package/dist/client/worker/ackBatcher.d.ts.map +1 -0
  99. package/dist/client/worker/ackBatcher.js +137 -0
  100. package/dist/client/worker/ackBatcher.js.map +1 -0
  101. package/dist/client/worker/index.d.ts +11 -0
  102. package/dist/client/worker/index.d.ts.map +1 -0
  103. package/dist/client/worker/index.js +10 -0
  104. package/dist/client/worker/index.js.map +1 -0
  105. package/dist/client/worker/jobParser.d.ts +10 -0
  106. package/dist/client/worker/jobParser.d.ts.map +1 -0
  107. package/dist/client/worker/jobParser.js +43 -0
  108. package/dist/client/worker/jobParser.js.map +1 -0
  109. package/dist/client/worker/processor.d.ts +24 -0
  110. package/dist/client/worker/processor.d.ts.map +1 -0
  111. package/dist/client/worker/processor.js +86 -0
  112. package/dist/client/worker/processor.js.map +1 -0
  113. package/dist/client/worker/types.d.ts +38 -0
  114. package/dist/client/worker/types.d.ts.map +1 -0
  115. package/dist/client/worker/types.js +14 -0
  116. package/dist/client/worker/types.js.map +1 -0
  117. package/dist/client/worker/worker.d.ts +53 -0
  118. package/dist/client/worker/worker.d.ts.map +1 -0
  119. package/dist/client/worker/worker.js +367 -0
  120. package/dist/client/worker/worker.js.map +1 -0
  121. package/dist/client/worker.d.ts +3 -69
  122. package/dist/client/worker.d.ts.map +1 -1
  123. package/dist/client/worker.js +3 -472
  124. package/dist/client/worker.js.map +1 -1
  125. package/dist/domain/queue/shard.d.ts +19 -2
  126. package/dist/domain/queue/shard.d.ts.map +1 -1
  127. package/dist/domain/queue/shard.js +36 -4
  128. package/dist/domain/queue/shard.js.map +1 -1
  129. package/dist/domain/types/command.d.ts +9 -0
  130. package/dist/domain/types/command.d.ts.map +1 -1
  131. package/dist/domain/types/job.d.ts +27 -0
  132. package/dist/domain/types/job.d.ts.map +1 -1
  133. package/dist/domain/types/job.js +34 -0
  134. package/dist/domain/types/job.js.map +1 -1
  135. package/dist/domain/types/response.d.ts +15 -1
  136. package/dist/domain/types/response.d.ts.map +1 -1
  137. package/dist/domain/types/response.js +16 -0
  138. package/dist/domain/types/response.js.map +1 -1
  139. package/dist/infrastructure/server/handlers/core.d.ts +1 -1
  140. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
  141. package/dist/infrastructure/server/handlers/core.js +74 -15
  142. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  143. package/dist/infrastructure/server/handlers/monitoring.d.ts.map +1 -1
  144. package/dist/infrastructure/server/handlers/monitoring.js +6 -4
  145. package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
  146. package/dist/infrastructure/server/http.d.ts.map +1 -1
  147. package/dist/infrastructure/server/http.js +67 -0
  148. package/dist/infrastructure/server/http.js.map +1 -1
  149. package/dist/infrastructure/server/tcp.d.ts.map +1 -1
  150. package/dist/infrastructure/server/tcp.js +9 -1
  151. package/dist/infrastructure/server/tcp.js.map +1 -1
  152. package/dist/infrastructure/server/types.d.ts +2 -0
  153. package/dist/infrastructure/server/types.d.ts.map +1 -1
  154. package/dist/main.js +8 -0
  155. package/dist/main.js.map +1 -1
  156. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"queueControl.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,oBAAoB;AACpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGxE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAG9E;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAG1E;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAG7E;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAQhE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CA2BR;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAI7E"}
1
+ {"version":3,"file":"queueControl.d.ts","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E;AAED,oBAAoB;AACpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGxE;AAED,qBAAqB;AACrB,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAGzE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAG9E;AAED,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAQ1E;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAG7E;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAQhE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CA2BR;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAI7E"}
@@ -21,7 +21,12 @@ export function isQueuePaused(queue, ctx) {
21
21
  /** Drain all waiting jobs from queue */
22
22
  export function drainQueue(queue, ctx) {
23
23
  const idx = shardIndex(queue);
24
- return ctx.shards[idx].drain(queue);
24
+ const { count, jobIds } = ctx.shards[idx].drain(queue);
25
+ // Clean up jobIndex for all drained jobs
26
+ for (const jobId of jobIds) {
27
+ ctx.jobIndex.delete(jobId);
28
+ }
29
+ return count;
25
30
  }
26
31
  /** Remove all queue data */
27
32
  export function obliterateQueue(queue, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"queueControl.js","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueControl.js","sourceRoot":"","sources":["../../../src/application/operations/queueControl.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Queue Manager
3
3
  * Core orchestrator for all queue operations
4
4
  */
5
- import type { Job, JobId, JobInput } from '../domain/types/job';
5
+ import type { Job, JobId, JobInput, JobLock, LockToken } from '../domain/types/job';
6
6
  import type { JobLocation, JobEvent } from '../domain/types/queue';
7
7
  import type { CronJob, CronJobInput } from '../domain/types/cron';
8
8
  import type { JobLogEntry } from '../domain/types/worker';
@@ -40,6 +40,9 @@ export declare class QueueManager {
40
40
  private readonly jobLogs;
41
41
  private readonly pendingDepChecks;
42
42
  private depCheckInterval;
43
+ private readonly stalledCandidates;
44
+ private readonly jobLocks;
45
+ private readonly clientJobs;
43
46
  private readonly cronScheduler;
44
47
  readonly webhookManager: WebhookManager;
45
48
  readonly workerManager: WorkerManager;
@@ -51,6 +54,7 @@ export declare class QueueManager {
51
54
  private timeoutInterval;
52
55
  private stallCheckInterval;
53
56
  private dlqMaintenanceInterval;
57
+ private lockCheckInterval;
54
58
  private readonly queueNamesCache;
55
59
  constructor(config?: QueueManagerConfig);
56
60
  private getPushContext;
@@ -64,21 +68,95 @@ export declare class QueueManager {
64
68
  push(queue: string, input: JobInput): Promise<Job>;
65
69
  pushBatch(queue: string, inputs: JobInput[]): Promise<JobId[]>;
66
70
  pull(queue: string, timeoutMs?: number): Promise<Job | null>;
71
+ /**
72
+ * Pull a job and create a lock for it (BullMQ-style).
73
+ * Returns both the job and its lock token for ownership verification.
74
+ */
75
+ pullWithLock(queue: string, owner: string, timeoutMs?: number, lockTtl?: number): Promise<{
76
+ job: Job | null;
77
+ token: string | null;
78
+ }>;
67
79
  /** Pull multiple jobs in single lock acquisition - O(1) instead of O(n) locks */
68
80
  pullBatch(queue: string, count: number, timeoutMs?: number): Promise<Job[]>;
69
- ack(jobId: JobId, result?: unknown): Promise<void>;
81
+ /**
82
+ * Pull multiple jobs and create locks for them (BullMQ-style).
83
+ * Returns both jobs and their lock tokens for ownership verification.
84
+ */
85
+ pullBatchWithLock(queue: string, count: number, owner: string, timeoutMs?: number, lockTtl?: number): Promise<{
86
+ jobs: Job[];
87
+ tokens: string[];
88
+ }>;
89
+ ack(jobId: JobId, result?: unknown, token?: string): Promise<void>;
70
90
  /** Acknowledge multiple jobs in parallel with Promise.all */
71
- ackBatch(jobIds: JobId[]): Promise<void>;
91
+ ackBatch(jobIds: JobId[], tokens?: string[]): Promise<void>;
72
92
  /** Acknowledge multiple jobs with individual results - batch optimized */
73
93
  ackBatchWithResults(items: Array<{
74
94
  id: JobId;
75
95
  result: unknown;
96
+ token?: string;
76
97
  }>): Promise<void>;
77
- fail(jobId: JobId, error?: string): Promise<void>;
78
- /** Update job heartbeat for stall detection (single job) */
79
- jobHeartbeat(jobId: JobId): boolean;
80
- /** Update job heartbeat for multiple jobs (batch) */
81
- jobHeartbeatBatch(jobIds: JobId[]): number;
98
+ fail(jobId: JobId, error?: string, token?: string): Promise<void>;
99
+ /**
100
+ * Update job heartbeat for stall detection (single job).
101
+ * If token is provided, also renews the lock.
102
+ */
103
+ jobHeartbeat(jobId: JobId, token?: string): boolean;
104
+ /**
105
+ * Update job heartbeat for multiple jobs (batch).
106
+ * If tokens are provided, also renews the locks.
107
+ */
108
+ jobHeartbeatBatch(jobIds: JobId[], tokens?: string[]): number;
109
+ /**
110
+ * Create a lock for a job when it's pulled for processing.
111
+ * @returns The lock token, or null if job not in processing
112
+ */
113
+ createLock(jobId: JobId, owner: string, ttl?: number): LockToken | null;
114
+ /**
115
+ * Verify that a token is valid for a job.
116
+ * @returns true if token matches the active lock
117
+ */
118
+ verifyLock(jobId: JobId, token: string): boolean;
119
+ /**
120
+ * Renew a lock with the given token.
121
+ * @returns true if renewal succeeded, false if token invalid or lock expired
122
+ */
123
+ renewJobLock(jobId: JobId, token: string, newTtl?: number): boolean;
124
+ /**
125
+ * Renew locks for multiple jobs (batch operation).
126
+ * @returns Array of jobIds that were successfully renewed
127
+ */
128
+ renewJobLockBatch(items: Array<{
129
+ id: JobId;
130
+ token: string;
131
+ ttl?: number;
132
+ }>): string[];
133
+ /**
134
+ * Release a lock when job is completed or failed.
135
+ * Should be called by ACK/FAIL operations.
136
+ */
137
+ releaseLock(jobId: JobId, token?: string): boolean;
138
+ /**
139
+ * Get lock info for a job (for debugging/monitoring).
140
+ */
141
+ getLockInfo(jobId: JobId): JobLock | null;
142
+ /**
143
+ * Register a job as owned by a client (called on PULL).
144
+ */
145
+ registerClientJob(clientId: string, jobId: JobId): void;
146
+ /**
147
+ * Unregister a job from a client (called on ACK/FAIL).
148
+ */
149
+ unregisterClientJob(clientId: string | undefined, jobId: JobId): void;
150
+ /**
151
+ * Release all jobs owned by a client back to queue (called on TCP disconnect).
152
+ * Returns the number of jobs released.
153
+ */
154
+ releaseClientJobs(clientId: string): number;
155
+ /**
156
+ * Check and handle expired locks.
157
+ * Jobs with expired locks are requeued for retry.
158
+ */
159
+ private checkExpiredLocks;
82
160
  getJob(jobId: JobId): Promise<Job | null>;
83
161
  getResult(jobId: JobId): unknown;
84
162
  getJobByCustomId(customId: string): Job | null;
@@ -151,7 +229,9 @@ export declare class QueueManager {
151
229
  private checkJobTimeouts;
152
230
  /**
153
231
  * Check for stalled jobs and handle them
154
- * Stalled = active job with no heartbeat for too long
232
+ * Uses two-phase detection (like BullMQ) to prevent false positives:
233
+ * - Phase 1: Jobs marked as candidates in previous check are confirmed stalled
234
+ * - Phase 2: Current processing jobs are marked as candidates for next check
155
235
  */
156
236
  private checkStalledJobs;
157
237
  /**
@@ -179,5 +259,31 @@ export declare class QueueManager {
179
259
  cronJobs: number;
180
260
  cronPending: number;
181
261
  };
262
+ /**
263
+ * Get detailed memory statistics for debugging memory issues.
264
+ * Returns counts of entries in all major collections.
265
+ */
266
+ getMemoryStats(): {
267
+ jobIndex: number;
268
+ completedJobs: number;
269
+ jobResults: number;
270
+ jobLogs: number;
271
+ customIdMap: number;
272
+ jobLocks: number;
273
+ clientJobs: number;
274
+ clientJobsTotal: number;
275
+ pendingDepChecks: number;
276
+ stalledCandidates: number;
277
+ processingTotal: number;
278
+ queuedTotal: number;
279
+ waitingDepsTotal: number;
280
+ temporalIndexTotal: number;
281
+ delayedHeapTotal: number;
282
+ };
283
+ /**
284
+ * Force compact all collections to reduce memory usage.
285
+ * Use after large batch operations or when memory pressure is high.
286
+ */
287
+ compactMemory(): void;
182
288
  }
183
289
  //# sourceMappingURL=queueManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queueManager.d.ts","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queueManager.d.ts","sourceRoot":"","sources":["../../src/application/queueManager.ts"],"names":[],"mappings":"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"}