bunqueue 2.6.62 → 2.6.63

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.
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,EACZ,MAAM,aAAa,CAAC;AAUrB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,GACZ,MAAM,aAAa,CAAC;AAIrB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,IAAI,GAAE,mBAAwB;IAqC1C,4CAA4C;IAC5C,OAAO,KAAK,OAAO,GAElB;IAED,+DAA+D;IAC/D,KAAK,IAAI,IAAI;IAQb,4EAA4E;IAC5E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mEAAmE;IAC7D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,qFAAqF;IAC/E,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI7D,iDAAiD;IAC3C,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAQtE,kEAAkE;IAC5D,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAYzE,8EAA8E;IACxE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BtE,sDAAsD;IAChD,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EACvB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BtD,0DAA0D;IACpD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAWlE;;;OAGG;IAEH,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK7D;;;OAGG;IACH,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAelE,iFAAiF;IACjF,OAAO,CAAC,cAAc;YAwBR,eAAe;YAWf,UAAU;YAcV,YAAY;YA6BZ,mBAAmB;YAyCnB,WAAW;YA4CX,WAAW;CAoB1B"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,EACZ,MAAM,aAAa,CAAC;AAUrB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,GACZ,MAAM,aAAa,CAAC;AAIrB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,IAAI,GAAE,mBAAwB;IAqC1C,4CAA4C;IAC5C,OAAO,KAAK,OAAO,GAElB;IAED,+DAA+D;IAC/D,KAAK,IAAI,IAAI;IAQb,4EAA4E;IAC5E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mEAAmE;IAC7D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,qFAAqF;IAC/E,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI7D,iDAAiD;IAC3C,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAItE,kEAAkE;IAC5D,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAYzE,8EAA8E;IACxE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BtE,sDAAsD;IAChD,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EACvB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA+CtD,0DAA0D;IACpD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAWlE;;;OAGG;IAEH,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK7D;;;OAGG;IACH,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAelE,iFAAiF;IACjF,OAAO,CAAC,cAAc;YAwBR,eAAe;YAWf,UAAU;YAcV,YAAY;YA6BZ,mBAAmB;YAyCnB,WAAW;YA+CX,WAAW;CAoB1B"}
@@ -107,11 +107,7 @@ export class FlowProducer {
107
107
  }
108
108
  /** Add multiple flows (BullMQ v5 compatible). */
109
109
  async addBulk(flows) {
110
- const results = [];
111
- for (const flow of flows) {
112
- results.push(await this.add(flow));
113
- }
114
- return results;
110
+ return Promise.all(flows.map((flow) => this.add(flow)));
115
111
  }
116
112
  /** Get a flow tree starting from a job (BullMQ v5 compatible). */
117
113
  async getFlow(opts) {
@@ -148,10 +144,25 @@ export class FlowProducer {
148
144
  async addBulkThen(parallel, final) {
149
145
  const parallelIds = [];
150
146
  try {
151
- for (const step of parallel) {
147
+ // Push parallel jobs concurrently — they are independent by design
148
+ const results = await Promise.allSettled(parallel.map(async (step) => {
152
149
  const data = { name: step.name, ...step.data };
153
- const id = await pushJob(this.pushCtx, step.queueName, data, step.opts ?? {});
154
- parallelIds.push(id);
150
+ return pushJob(this.pushCtx, step.queueName, data, step.opts ?? {});
151
+ }));
152
+ // Collect successful IDs and check for failures
153
+ const errors = [];
154
+ for (const r of results) {
155
+ if (r.status === 'fulfilled') {
156
+ parallelIds.push(r.value);
157
+ }
158
+ else {
159
+ errors.push(r.reason);
160
+ }
161
+ }
162
+ if (errors.length > 0) {
163
+ // Clean up successfully created jobs before throwing
164
+ await cleanupJobs(this.pushCtx, parallelIds);
165
+ throw errors[0] instanceof Error ? errors[0] : new Error(String(errors[0]));
155
166
  }
156
167
  const finalData = {
157
168
  name: final.name,
@@ -291,8 +302,9 @@ export class FlowProducer {
291
302
  const childIds = [];
292
303
  if (node.children && node.children.length > 0) {
293
304
  const tempParentRef = { id: 'pending', queue: node.queueName };
294
- for (const child of node.children) {
295
- const childNode = await this.addFlowNode(child, tempParentRef);
305
+ // Siblings are independent create them concurrently
306
+ const results = await Promise.all(node.children.map((child) => this.addFlowNode(child, tempParentRef)));
307
+ for (const childNode of results) {
296
308
  childNodes.push(childNode);
297
309
  childIds.push(childNode.job.id);
298
310
  }
@@ -322,8 +334,7 @@ export class FlowProducer {
322
334
  const id = await pushJob(this.pushCtx, step.queueName, data, step.opts ?? {}, parentId ? [parentId] : undefined);
323
335
  jobIds.push(id);
324
336
  if (step.children) {
325
- for (const child of step.children)
326
- await this.addTreeNode(child, id, jobIds);
337
+ await Promise.all(step.children.map((child) => this.addTreeNode(child, id, jobIds)));
327
338
  }
328
339
  return id;
329
340
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,22 @@
1
1
  /**
2
2
  * WorkerRateLimiter - Rate limiting for worker job processing
3
3
  * BullMQ v5 compatible sliding window rate limiter
4
+ *
5
+ * Uses a head-pointer approach instead of Array.filter() for O(1) amortized
6
+ * token expiration. Tokens are always pushed in chronological order, so
7
+ * expired tokens are always at the front — we just advance the head pointer.
4
8
  */
5
9
  import type { RateLimiterOptions } from '../types';
6
10
  export declare class WorkerRateLimiter {
7
11
  private readonly limiter;
8
12
  private limiterTokens;
13
+ private head;
9
14
  private rateLimitExpiration;
10
15
  constructor(limiter: RateLimiterOptions | null);
11
16
  /**
12
17
  * Check if rate limiter allows processing another job.
13
18
  * Returns true if we can process, false if rate limited.
19
+ * O(1) amortized — advances head pointer past expired tokens.
14
20
  */
15
21
  canProcessWithinLimit(): boolean;
16
22
  /** Record a job completion for rate limiting. */
@@ -18,6 +24,7 @@ export declare class WorkerRateLimiter {
18
24
  /**
19
25
  * Get time until rate limiter allows next job (ms).
20
26
  * Returns 0 if not rate limited.
27
+ * O(1) — oldest active token is at this.limiterTokens[this.head].
21
28
  */
22
29
  getTimeUntilNextSlot(): number;
23
30
  /** Get rate limiter info (for debugging/monitoring). */
@@ -33,5 +40,9 @@ export declare class WorkerRateLimiter {
33
40
  rateLimit(expireTimeMs: number): void;
34
41
  /** Check if worker is currently rate limited. */
35
42
  isRateLimited(): boolean;
43
+ /** Number of active (non-expired) tokens. */
44
+ private activeCount;
45
+ /** Advance head pointer past expired tokens. Compact when head > half the array. */
46
+ private evictExpired;
36
47
  }
37
48
  //# sourceMappingURL=workerRateLimiter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerRateLimiter.d.ts","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,qBAAa,iBAAiB;IAIhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAK;gBAEH,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAE/D;;;OAGG;IACH,qBAAqB,IAAI,OAAO;IAahC,iDAAiD;IACjD,mBAAmB,IAAI,IAAI;IAK3B;;;OAGG;IACH,oBAAoB,IAAI,MAAM;IAkB9B,wDAAwD;IACxD,kBAAkB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAc/E;;;OAGG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAcrC,iDAAiD;IACjD,aAAa,IAAI,OAAO;CAGzB"}
1
+ {"version":3,"file":"workerRateLimiter.d.ts","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,mBAAmB,CAAK;gBAEH,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAE/D;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAShC,iDAAiD;IACjD,mBAAmB,IAAI,IAAI;IAK3B;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAgB9B,wDAAwD;IACxD,kBAAkB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAa/E;;;OAGG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAarC,iDAAiD;IACjD,aAAa,IAAI,OAAO;IAIxB,6CAA6C;IAC7C,OAAO,CAAC,WAAW;IAInB,oFAAoF;IACpF,OAAO,CAAC,YAAY;CAWrB"}
@@ -1,10 +1,15 @@
1
1
  /**
2
2
  * WorkerRateLimiter - Rate limiting for worker job processing
3
3
  * BullMQ v5 compatible sliding window rate limiter
4
+ *
5
+ * Uses a head-pointer approach instead of Array.filter() for O(1) amortized
6
+ * token expiration. Tokens are always pushed in chronological order, so
7
+ * expired tokens are always at the front — we just advance the head pointer.
4
8
  */
5
9
  export class WorkerRateLimiter {
6
10
  limiter;
7
11
  limiterTokens = [];
12
+ head = 0;
8
13
  rateLimitExpiration = 0;
9
14
  constructor(limiter) {
10
15
  this.limiter = limiter;
@@ -12,16 +17,14 @@ export class WorkerRateLimiter {
12
17
  /**
13
18
  * Check if rate limiter allows processing another job.
14
19
  * Returns true if we can process, false if rate limited.
20
+ * O(1) amortized — advances head pointer past expired tokens.
15
21
  */
16
22
  canProcessWithinLimit() {
17
23
  if (!this.limiter)
18
24
  return true;
19
- const now = Date.now();
20
- const windowStart = now - this.limiter.duration;
21
- // Remove expired tokens
22
- this.limiterTokens = this.limiterTokens.filter((t) => t > windowStart);
23
- // Check if we have capacity
24
- return this.limiterTokens.length < this.limiter.max;
25
+ const windowStart = Date.now() - this.limiter.duration;
26
+ this.evictExpired(windowStart);
27
+ return this.activeCount() < this.limiter.max;
25
28
  }
26
29
  /** Record a job completion for rate limiting. */
27
30
  recordJobForLimiter() {
@@ -32,30 +35,29 @@ export class WorkerRateLimiter {
32
35
  /**
33
36
  * Get time until rate limiter allows next job (ms).
34
37
  * Returns 0 if not rate limited.
38
+ * O(1) — oldest active token is at this.limiterTokens[this.head].
35
39
  */
36
40
  getTimeUntilNextSlot() {
37
41
  if (!this.limiter)
38
42
  return 0;
39
43
  const now = Date.now();
40
44
  const windowStart = now - this.limiter.duration;
41
- // Remove expired tokens
42
- this.limiterTokens = this.limiterTokens.filter((t) => t > windowStart);
43
- if (this.limiterTokens.length < this.limiter.max) {
45
+ this.evictExpired(windowStart);
46
+ if (this.activeCount() < this.limiter.max) {
44
47
  return 0;
45
48
  }
46
- // Find oldest token and calculate when it expires
47
- const oldestToken = Math.min(...this.limiterTokens);
49
+ // Oldest active token is at head no need for Math.min(...spread)
50
+ const oldestToken = this.limiterTokens[this.head];
48
51
  return oldestToken + this.limiter.duration - now;
49
52
  }
50
53
  /** Get rate limiter info (for debugging/monitoring). */
51
54
  getRateLimiterInfo() {
52
55
  if (!this.limiter)
53
56
  return null;
54
- const now = Date.now();
55
- const windowStart = now - this.limiter.duration;
56
- const currentTokens = this.limiterTokens.filter((t) => t > windowStart).length;
57
+ const windowStart = Date.now() - this.limiter.duration;
58
+ this.evictExpired(windowStart);
57
59
  return {
58
- current: currentTokens,
60
+ current: this.activeCount(),
59
61
  max: this.limiter.max,
60
62
  duration: this.limiter.duration,
61
63
  };
@@ -67,7 +69,6 @@ export class WorkerRateLimiter {
67
69
  rateLimit(expireTimeMs) {
68
70
  if (expireTimeMs <= 0)
69
71
  return;
70
- // Fill rate limiter tokens to block processing
71
72
  if (this.limiter) {
72
73
  const now = Date.now();
73
74
  for (let i = 0; i < this.limiter.max; i++) {
@@ -80,5 +81,20 @@ export class WorkerRateLimiter {
80
81
  isRateLimited() {
81
82
  return Date.now() < this.rateLimitExpiration;
82
83
  }
84
+ /** Number of active (non-expired) tokens. */
85
+ activeCount() {
86
+ return this.limiterTokens.length - this.head;
87
+ }
88
+ /** Advance head pointer past expired tokens. Compact when head > half the array. */
89
+ evictExpired(windowStart) {
90
+ while (this.head < this.limiterTokens.length && this.limiterTokens[this.head] <= windowStart) {
91
+ this.head++;
92
+ }
93
+ // Compact: reclaim memory when more than half the array is dead space
94
+ if (this.head > 0 && this.head > this.limiterTokens.length / 2) {
95
+ this.limiterTokens = this.limiterTokens.slice(this.head);
96
+ this.head = 0;
97
+ }
98
+ }
83
99
  }
84
100
  //# sourceMappingURL=workerRateLimiter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerRateLimiter.js","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerRateLimiter.js","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bunqueue",
3
- "version": "2.6.62",
3
+ "version": "2.6.63",
4
4
  "description": "High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",