bunqueue 2.4.0 → 2.4.1

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 (72) hide show
  1. package/dist/application/queueManager.d.ts.map +1 -1
  2. package/dist/application/queueManager.js +1 -37
  3. package/dist/application/queueManager.js.map +1 -1
  4. package/dist/application/statsManager.d.ts +10 -0
  5. package/dist/application/statsManager.d.ts.map +1 -1
  6. package/dist/application/statsManager.js +42 -0
  7. package/dist/application/statsManager.js.map +1 -1
  8. package/dist/client/jobConversion.d.ts +3 -76
  9. package/dist/client/jobConversion.d.ts.map +1 -1
  10. package/dist/client/jobConversion.js +2 -100
  11. package/dist/client/jobConversion.js.map +1 -1
  12. package/dist/client/jobConversionHelpers.d.ts +13 -0
  13. package/dist/client/jobConversionHelpers.d.ts.map +1 -0
  14. package/dist/client/jobConversionHelpers.js +105 -0
  15. package/dist/client/jobConversionHelpers.js.map +1 -0
  16. package/dist/client/jobConversionTypes.d.ts +81 -0
  17. package/dist/client/jobConversionTypes.d.ts.map +1 -0
  18. package/dist/client/jobConversionTypes.js +6 -0
  19. package/dist/client/jobConversionTypes.js.map +1 -0
  20. package/dist/client/worker/worker.d.ts +4 -95
  21. package/dist/client/worker/worker.d.ts.map +1 -1
  22. package/dist/client/worker/worker.js +50 -282
  23. package/dist/client/worker/worker.js.map +1 -1
  24. package/dist/client/worker/workerHeartbeat.d.ts +16 -0
  25. package/dist/client/worker/workerHeartbeat.d.ts.map +1 -0
  26. package/dist/client/worker/workerHeartbeat.js +44 -0
  27. package/dist/client/worker/workerHeartbeat.js.map +1 -0
  28. package/dist/client/worker/workerPull.d.ts +21 -0
  29. package/dist/client/worker/workerPull.d.ts.map +1 -0
  30. package/dist/client/worker/workerPull.js +60 -0
  31. package/dist/client/worker/workerPull.js.map +1 -0
  32. package/dist/client/worker/workerRateLimiter.d.ts +37 -0
  33. package/dist/client/worker/workerRateLimiter.d.ts.map +1 -0
  34. package/dist/client/worker/workerRateLimiter.js +84 -0
  35. package/dist/client/worker/workerRateLimiter.js.map +1 -0
  36. package/dist/domain/queue/shard.d.ts +8 -23
  37. package/dist/domain/queue/shard.d.ts.map +1 -1
  38. package/dist/domain/queue/shard.js +30 -90
  39. package/dist/domain/queue/shard.js.map +1 -1
  40. package/dist/domain/queue/shardCounters.d.ts +36 -0
  41. package/dist/domain/queue/shardCounters.d.ts.map +1 -0
  42. package/dist/domain/queue/shardCounters.js +68 -0
  43. package/dist/domain/queue/shardCounters.js.map +1 -0
  44. package/dist/domain/queue/waiterManager.d.ts +19 -0
  45. package/dist/domain/queue/waiterManager.d.ts.map +1 -0
  46. package/dist/domain/queue/waiterManager.js +64 -0
  47. package/dist/domain/queue/waiterManager.js.map +1 -0
  48. package/dist/shared/boundedMap.d.ts +31 -0
  49. package/dist/shared/boundedMap.d.ts.map +1 -0
  50. package/dist/shared/boundedMap.js +78 -0
  51. package/dist/shared/boundedMap.js.map +1 -0
  52. package/dist/shared/boundedSet.d.ts +27 -0
  53. package/dist/shared/boundedSet.d.ts.map +1 -0
  54. package/dist/shared/boundedSet.js +64 -0
  55. package/dist/shared/boundedSet.js.map +1 -0
  56. package/dist/shared/lru.d.ts +5 -197
  57. package/dist/shared/lru.d.ts.map +1 -1
  58. package/dist/shared/lru.js +5 -538
  59. package/dist/shared/lru.js.map +1 -1
  60. package/dist/shared/lruMap.d.ts +43 -0
  61. package/dist/shared/lruMap.d.ts.map +1 -0
  62. package/dist/shared/lruMap.js +142 -0
  63. package/dist/shared/lruMap.js.map +1 -0
  64. package/dist/shared/lruSet.d.ts +37 -0
  65. package/dist/shared/lruSet.d.ts.map +1 -0
  66. package/dist/shared/lruSet.js +106 -0
  67. package/dist/shared/lruSet.js.map +1 -0
  68. package/dist/shared/ttlMap.d.ts +82 -0
  69. package/dist/shared/ttlMap.d.ts.map +1 -0
  70. package/dist/shared/ttlMap.js +169 -0
  71. package/dist/shared/ttlMap.js.map +1 -0
  72. package/package.json +1 -1
@@ -2,201 +2,9 @@
2
2
  * LRU (Least Recently Used) Cache implementations
3
3
  * Bounded collections with automatic eviction
4
4
  */
5
- /** Map-like interface for LRU compatibility */
6
- export interface MapLike<K, V> {
7
- get(key: K): V | undefined;
8
- set(key: K, value: V): void;
9
- has(key: K): boolean;
10
- delete(key: K): boolean;
11
- clear(): void;
12
- readonly size: number;
13
- }
14
- /** Set-like interface for LRU compatibility */
15
- export interface SetLike<T> {
16
- add(value: T): void;
17
- has(value: T): boolean;
18
- delete(value: T): boolean;
19
- clear(): void;
20
- readonly size: number;
21
- }
22
- /**
23
- * LRU Map - automatically evicts least recently used entries
24
- * Optimized with doubly-linked list for O(1) move-to-front
25
- * without delete+re-insert overhead
26
- */
27
- export declare class LRUMap<K, V> implements MapLike<K, V> {
28
- private readonly cache;
29
- private readonly maxSize;
30
- private readonly onEvict?;
31
- private head;
32
- private tail;
33
- constructor(maxSize: number, onEvict?: (key: K, value: V) => void);
34
- /** Move node to front (most recently used) - O(1) */
35
- private moveToFront;
36
- /** Remove node from list - O(1) */
37
- private removeNode;
38
- /** Add node to front - O(1) */
39
- private addToFront;
40
- get(key: K): V | undefined;
41
- set(key: K, value: V): void;
42
- has(key: K): boolean;
43
- delete(key: K): boolean;
44
- clear(): void;
45
- get size(): number;
46
- keys(): IterableIterator<K>;
47
- values(): IterableIterator<V>;
48
- entries(): IterableIterator<[K, V]>;
49
- forEach(callback: (value: V, key: K) => void): void;
50
- [Symbol.iterator](): IterableIterator<[K, V]>;
51
- }
52
- /**
53
- * LRU Set - automatically evicts least recently used entries
54
- * Optimized with doubly-linked list for O(1) move-to-front
55
- */
56
- export declare class LRUSet<T> implements SetLike<T> {
57
- private readonly cache;
58
- private readonly maxSize;
59
- private readonly onEvict?;
60
- private head;
61
- private tail;
62
- constructor(maxSize: number, onEvict?: (value: T) => void);
63
- /** Move node to front - O(1) */
64
- private moveToFront;
65
- /** Remove node from list - O(1) */
66
- private removeNode;
67
- /** Add node to front - O(1) */
68
- private addToFront;
69
- add(value: T): void;
70
- has(value: T): boolean;
71
- delete(value: T): boolean;
72
- clear(): void;
73
- get size(): number;
74
- values(): IterableIterator<T>;
75
- [Symbol.iterator](): IterableIterator<T>;
76
- }
77
- /**
78
- * Bounded Set - fast FIFO eviction without LRU tracking
79
- * Optimized for high-throughput scenarios where recency doesn't matter
80
- * Uses batch eviction to avoid per-item iterator overhead
81
- */
82
- export declare class BoundedSet<T> implements SetLike<T> {
83
- private readonly cache;
84
- private readonly maxSize;
85
- private readonly onEvict?;
86
- /** Evict 10% of items at once to amortize iterator cost */
87
- private readonly evictBatchSize;
88
- constructor(maxSize: number, onEvict?: (value: T) => void);
89
- add(value: T): void;
90
- /** Evict multiple items at once - more efficient than one at a time */
91
- private evictBatch;
92
- has(value: T): boolean;
93
- delete(value: T): boolean;
94
- clear(): void;
95
- get size(): number;
96
- values(): IterableIterator<T>;
97
- [Symbol.iterator](): IterableIterator<T>;
98
- }
99
- /**
100
- * Bounded Map - fast FIFO eviction without LRU tracking
101
- * Optimized for high-throughput scenarios where recency doesn't matter
102
- * Uses batch eviction to avoid per-item iterator overhead
103
- */
104
- export declare class BoundedMap<K, V> implements MapLike<K, V> {
105
- private readonly cache;
106
- private readonly maxSize;
107
- private readonly onEvict?;
108
- /** Evict 10% of items at once to amortize iterator cost */
109
- private readonly evictBatchSize;
110
- constructor(maxSize: number, onEvict?: (key: K, value: V) => void);
111
- get(key: K): V | undefined;
112
- set(key: K, value: V): void;
113
- /** Evict multiple items at once - more efficient than one at a time */
114
- private evictBatch;
115
- has(key: K): boolean;
116
- delete(key: K): boolean;
117
- clear(): void;
118
- get size(): number;
119
- keys(): IterableIterator<K>;
120
- values(): IterableIterator<V>;
121
- entries(): IterableIterator<[K, V]>;
122
- forEach(callback: (value: V, key: K) => void): void;
123
- [Symbol.iterator](): IterableIterator<[K, V]>;
124
- }
125
- /**
126
- * TTL Map - entries expire after timeout
127
- * Optimized with MinHeap for O(log n) insert and O(k) cleanup
128
- *
129
- * IMPORTANT: You MUST call stop() when done with this instance to prevent memory leaks.
130
- * The cleanup interval will keep running until stop() is called, preventing the instance
131
- * from being garbage collected.
132
- *
133
- * @example
134
- * ```typescript
135
- * const map = new TTLMap<string, number>(60_000); // 60s TTL
136
- * try {
137
- * map.set('key', 123);
138
- * // use map...
139
- * } finally {
140
- * map.stop(); // REQUIRED: stops cleanup interval
141
- * }
142
- * ```
143
- *
144
- * Memory leak prevention:
145
- * - Each heap entry stores (expiresAt, key)
146
- * - During cleanup, we verify the key still exists in cache AND has matching expiresAt
147
- * - Stale entries (deleted keys or updated TTLs) are skipped and removed from heap
148
- * - Periodic compaction rebuilds heap when stale ratio exceeds threshold
149
- */
150
- export declare class TTLMap<K, V> {
151
- private readonly cache;
152
- private readonly ttlMs;
153
- private cleanupInterval;
154
- /**
155
- * Expiry heap: MinHeap of (expiresAt, key) for efficient cleanup
156
- * O(log n) insert instead of O(n) with array splice
157
- */
158
- private readonly expiryHeap;
159
- /** Count of stale entries in heap (deleted or updated keys) */
160
- private staleCount;
161
- /** Rebuild heap when stale entries exceed this ratio of heap size */
162
- private static readonly COMPACTION_THRESHOLD;
163
- /** Minimum heap size before considering compaction (avoid frequent rebuilds for small heaps) */
164
- private static readonly MIN_COMPACTION_SIZE;
165
- /**
166
- * Create a new TTLMap instance.
167
- *
168
- * @param ttlMs - Default time-to-live for entries in milliseconds
169
- * @param cleanupIntervalMs - Interval between cleanup runs (default: 60000ms / 1 minute).
170
- * Lower values = more frequent cleanup but higher CPU usage.
171
- * Set based on expected entry volume and TTL duration.
172
- */
173
- constructor(ttlMs: number, cleanupIntervalMs?: number);
174
- private startCleanup;
175
- /** O(k log n) cleanup where k = expired entries */
176
- private cleanup;
177
- /**
178
- * Rebuild heap if stale entry ratio exceeds threshold
179
- * This prevents unbounded heap growth from delete() and set() updates
180
- */
181
- private maybeCompact;
182
- /** Rebuild heap with only valid entries - O(n log n) */
183
- private rebuildHeap;
184
- get(key: K): V | undefined;
185
- /** O(log n) insert with MinHeap instead of O(n) with array splice */
186
- set(key: K, value: V, ttlMs?: number): void;
187
- has(key: K): boolean;
188
- delete(key: K): boolean;
189
- clear(): void;
190
- /**
191
- * Stop the cleanup interval. MUST be called when done with this instance
192
- * to prevent memory leaks. The interval keeps a reference to the instance,
193
- * preventing garbage collection until stop() is called.
194
- */
195
- stop(): void;
196
- get size(): number;
197
- /** Get heap size (for debugging/monitoring) */
198
- get heapSize(): number;
199
- /** Get count of stale heap entries (for debugging/monitoring) */
200
- get staleEntryCount(): number;
201
- }
5
+ export { type MapLike, LRUMap } from './lruMap';
6
+ export { type SetLike, LRUSet } from './lruSet';
7
+ export { BoundedSet } from './boundedSet';
8
+ export { BoundedMap } from './boundedMap';
9
+ export { TTLMap } from './ttlMap';
202
10
  //# sourceMappingURL=lru.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lru.d.ts","sourceRoot":"","sources":["../../src/shared/lru.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lru.d.ts","sourceRoot":"","sources":["../../src/shared/lru.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}