bunqueue 1.9.7 → 1.9.9

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 (245) hide show
  1. package/dist/application/backgroundTasks.d.ts +3 -6
  2. package/dist/application/backgroundTasks.d.ts.map +1 -1
  3. package/dist/application/backgroundTasks.js +10 -179
  4. package/dist/application/backgroundTasks.js.map +1 -1
  5. package/dist/application/cleanupTasks.d.ts +1 -1
  6. package/dist/application/cleanupTasks.d.ts.map +1 -1
  7. package/dist/application/cleanupTasks.js +61 -22
  8. package/dist/application/cleanupTasks.js.map +1 -1
  9. package/dist/application/clientTracking.d.ts +22 -0
  10. package/dist/application/clientTracking.d.ts.map +1 -0
  11. package/dist/application/clientTracking.js +118 -0
  12. package/dist/application/clientTracking.js.map +1 -0
  13. package/dist/application/contextFactory.d.ts +97 -0
  14. package/dist/application/contextFactory.d.ts.map +1 -0
  15. package/dist/application/contextFactory.js +170 -0
  16. package/dist/application/contextFactory.js.map +1 -0
  17. package/dist/application/dependencyProcessor.d.ts +11 -0
  18. package/dist/application/dependencyProcessor.d.ts.map +1 -0
  19. package/dist/application/dependencyProcessor.js +69 -0
  20. package/dist/application/dependencyProcessor.js.map +1 -0
  21. package/dist/application/dlqManager.d.ts +12 -0
  22. package/dist/application/dlqManager.d.ts.map +1 -1
  23. package/dist/application/dlqManager.js +36 -0
  24. package/dist/application/dlqManager.js.map +1 -1
  25. package/dist/application/lockManager.d.ts +3 -49
  26. package/dist/application/lockManager.d.ts.map +1 -1
  27. package/dist/application/lockManager.js +101 -272
  28. package/dist/application/lockManager.js.map +1 -1
  29. package/dist/application/lockOperations.d.ts +39 -0
  30. package/dist/application/lockOperations.d.ts.map +1 -0
  31. package/dist/application/lockOperations.js +101 -0
  32. package/dist/application/lockOperations.js.map +1 -0
  33. package/dist/application/operations/ack.d.ts +1 -5
  34. package/dist/application/operations/ack.d.ts.map +1 -1
  35. package/dist/application/operations/ack.js +43 -259
  36. package/dist/application/operations/ack.js.map +1 -1
  37. package/dist/application/operations/ackHelpers.d.ts +79 -0
  38. package/dist/application/operations/ackHelpers.d.ts.map +1 -0
  39. package/dist/application/operations/ackHelpers.js +173 -0
  40. package/dist/application/operations/ackHelpers.js.map +1 -0
  41. package/dist/application/operations/jobManagement.d.ts +2 -0
  42. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  43. package/dist/application/operations/jobManagement.js +8 -0
  44. package/dist/application/operations/jobManagement.js.map +1 -1
  45. package/dist/application/operations/push.d.ts.map +1 -1
  46. package/dist/application/operations/push.js +20 -6
  47. package/dist/application/operations/push.js.map +1 -1
  48. package/dist/application/operations/queryOperations.d.ts +11 -0
  49. package/dist/application/operations/queryOperations.d.ts.map +1 -1
  50. package/dist/application/operations/queryOperations.js +32 -0
  51. package/dist/application/operations/queryOperations.js.map +1 -1
  52. package/dist/application/queueManager.d.ts +3 -11
  53. package/dist/application/queueManager.d.ts.map +1 -1
  54. package/dist/application/queueManager.js +98 -244
  55. package/dist/application/queueManager.js.map +1 -1
  56. package/dist/application/stallDetection.d.ts +11 -0
  57. package/dist/application/stallDetection.d.ts.map +1 -0
  58. package/dist/application/stallDetection.js +128 -0
  59. package/dist/application/stallDetection.js.map +1 -0
  60. package/dist/application/types.js +1 -1
  61. package/dist/application/types.js.map +1 -1
  62. package/dist/cli/client.d.ts +3 -5
  63. package/dist/cli/client.d.ts.map +1 -1
  64. package/dist/cli/client.js +31 -27
  65. package/dist/cli/client.js.map +1 -1
  66. package/dist/cli/commands/core.js +3 -3
  67. package/dist/cli/commands/core.js.map +1 -1
  68. package/dist/cli/commands/job.js +14 -14
  69. package/dist/cli/commands/job.js.map +1 -1
  70. package/dist/cli/commands/server.d.ts.map +1 -1
  71. package/dist/cli/commands/server.js +5 -29
  72. package/dist/cli/commands/server.js.map +1 -1
  73. package/dist/cli/index.d.ts.map +1 -1
  74. package/dist/cli/index.js +1 -9
  75. package/dist/cli/index.js.map +1 -1
  76. package/dist/client/events.d.ts +0 -1
  77. package/dist/client/events.d.ts.map +1 -1
  78. package/dist/client/events.js +4 -7
  79. package/dist/client/events.js.map +1 -1
  80. package/dist/client/flow.d.ts +23 -1
  81. package/dist/client/flow.d.ts.map +1 -1
  82. package/dist/client/flow.js +166 -68
  83. package/dist/client/flow.js.map +1 -1
  84. package/dist/client/queue/queue.d.ts.map +1 -1
  85. package/dist/client/queue/queue.js +3 -1
  86. package/dist/client/queue/queue.js.map +1 -1
  87. package/dist/client/sandboxed/types.d.ts +1 -0
  88. package/dist/client/sandboxed/types.d.ts.map +1 -1
  89. package/dist/client/sandboxed/worker.d.ts +1 -0
  90. package/dist/client/sandboxed/worker.d.ts.map +1 -1
  91. package/dist/client/sandboxed/worker.js +31 -8
  92. package/dist/client/sandboxed/worker.js.map +1 -1
  93. package/dist/client/sandboxed/wrapper.d.ts.map +1 -1
  94. package/dist/client/sandboxed/wrapper.js +10 -1
  95. package/dist/client/sandboxed/wrapper.js.map +1 -1
  96. package/dist/client/tcp/client.d.ts +4 -1
  97. package/dist/client/tcp/client.d.ts.map +1 -1
  98. package/dist/client/tcp/client.js +26 -8
  99. package/dist/client/tcp/client.js.map +1 -1
  100. package/dist/client/tcp/connection.d.ts +6 -8
  101. package/dist/client/tcp/connection.d.ts.map +1 -1
  102. package/dist/client/tcp/connection.js +24 -22
  103. package/dist/client/tcp/connection.js.map +1 -1
  104. package/dist/client/tcp/index.d.ts +0 -1
  105. package/dist/client/tcp/index.d.ts.map +1 -1
  106. package/dist/client/tcp/index.js +0 -1
  107. package/dist/client/tcp/index.js.map +1 -1
  108. package/dist/client/tcp/types.d.ts +8 -13
  109. package/dist/client/tcp/types.d.ts.map +1 -1
  110. package/dist/client/tcp/types.js +0 -1
  111. package/dist/client/tcp/types.js.map +1 -1
  112. package/dist/client/tcpPool.d.ts.map +1 -1
  113. package/dist/client/tcpPool.js +0 -6
  114. package/dist/client/tcpPool.js.map +1 -1
  115. package/dist/client/worker/ackBatcher.d.ts +1 -1
  116. package/dist/client/worker/ackBatcher.d.ts.map +1 -1
  117. package/dist/client/worker/ackBatcher.js +20 -18
  118. package/dist/client/worker/ackBatcher.js.map +1 -1
  119. package/dist/client/worker/jobParser.d.ts.map +1 -1
  120. package/dist/client/worker/jobParser.js +8 -7
  121. package/dist/client/worker/jobParser.js.map +1 -1
  122. package/dist/client/worker/processor.d.ts.map +1 -1
  123. package/dist/client/worker/processor.js +10 -6
  124. package/dist/client/worker/processor.js.map +1 -1
  125. package/dist/domain/queue/dependencyTracker.d.ts +74 -0
  126. package/dist/domain/queue/dependencyTracker.d.ts.map +1 -0
  127. package/dist/domain/queue/dependencyTracker.js +126 -0
  128. package/dist/domain/queue/dependencyTracker.js.map +1 -0
  129. package/dist/domain/queue/dlqShard.d.ts +61 -0
  130. package/dist/domain/queue/dlqShard.d.ts.map +1 -0
  131. package/dist/domain/queue/dlqShard.js +175 -0
  132. package/dist/domain/queue/dlqShard.js.map +1 -0
  133. package/dist/domain/queue/limiterManager.d.ts +44 -0
  134. package/dist/domain/queue/limiterManager.d.ts.map +1 -0
  135. package/dist/domain/queue/limiterManager.js +99 -0
  136. package/dist/domain/queue/limiterManager.js.map +1 -0
  137. package/dist/domain/queue/shard.d.ts +33 -124
  138. package/dist/domain/queue/shard.d.ts.map +1 -1
  139. package/dist/domain/queue/shard.js +157 -427
  140. package/dist/domain/queue/shard.js.map +1 -1
  141. package/dist/domain/queue/temporalManager.d.ts +82 -0
  142. package/dist/domain/queue/temporalManager.d.ts.map +1 -0
  143. package/dist/domain/queue/temporalManager.js +150 -0
  144. package/dist/domain/queue/temporalManager.js.map +1 -0
  145. package/dist/domain/queue/uniqueKeyManager.d.ts +32 -0
  146. package/dist/domain/queue/uniqueKeyManager.d.ts.map +1 -0
  147. package/dist/domain/queue/uniqueKeyManager.js +87 -0
  148. package/dist/domain/queue/uniqueKeyManager.js.map +1 -0
  149. package/dist/domain/types/command.d.ts +6 -0
  150. package/dist/domain/types/command.d.ts.map +1 -1
  151. package/dist/infrastructure/backup/s3Backup.d.ts +3 -40
  152. package/dist/infrastructure/backup/s3Backup.d.ts.map +1 -1
  153. package/dist/infrastructure/backup/s3Backup.js +10 -182
  154. package/dist/infrastructure/backup/s3Backup.js.map +1 -1
  155. package/dist/infrastructure/backup/s3BackupConfig.d.ts +67 -0
  156. package/dist/infrastructure/backup/s3BackupConfig.d.ts.map +1 -0
  157. package/dist/infrastructure/backup/s3BackupConfig.js +48 -0
  158. package/dist/infrastructure/backup/s3BackupConfig.js.map +1 -0
  159. package/dist/infrastructure/backup/s3BackupOperations.d.ts +23 -0
  160. package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -0
  161. package/dist/infrastructure/backup/s3BackupOperations.js +170 -0
  162. package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -0
  163. package/dist/infrastructure/persistence/sqlite.d.ts +6 -13
  164. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
  165. package/dist/infrastructure/persistence/sqlite.js +28 -179
  166. package/dist/infrastructure/persistence/sqlite.js.map +1 -1
  167. package/dist/infrastructure/persistence/sqliteBatch.d.ts +38 -0
  168. package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -0
  169. package/dist/infrastructure/persistence/sqliteBatch.js +124 -0
  170. package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -0
  171. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +17 -0
  172. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -0
  173. package/dist/infrastructure/persistence/sqliteSerializer.js +81 -0
  174. package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -0
  175. package/dist/infrastructure/persistence/statements.d.ts +1 -1
  176. package/dist/infrastructure/persistence/statements.d.ts.map +1 -1
  177. package/dist/infrastructure/persistence/statements.js +3 -2
  178. package/dist/infrastructure/persistence/statements.js.map +1 -1
  179. package/dist/infrastructure/scheduler/cronScheduler.d.ts +7 -0
  180. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
  181. package/dist/infrastructure/scheduler/cronScheduler.js +23 -3
  182. package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
  183. package/dist/infrastructure/server/handler.d.ts.map +1 -1
  184. package/dist/infrastructure/server/handler.js +1 -186
  185. package/dist/infrastructure/server/handler.js.map +1 -1
  186. package/dist/infrastructure/server/handlerRoutes.d.ts +23 -0
  187. package/dist/infrastructure/server/handlerRoutes.d.ts.map +1 -0
  188. package/dist/infrastructure/server/handlerRoutes.js +190 -0
  189. package/dist/infrastructure/server/handlerRoutes.js.map +1 -0
  190. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
  191. package/dist/infrastructure/server/handlers/core.js +26 -19
  192. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  193. package/dist/infrastructure/server/http.d.ts +4 -25
  194. package/dist/infrastructure/server/http.d.ts.map +1 -1
  195. package/dist/infrastructure/server/http.js +68 -285
  196. package/dist/infrastructure/server/http.js.map +1 -1
  197. package/dist/infrastructure/server/httpEndpoints.d.ts +19 -0
  198. package/dist/infrastructure/server/httpEndpoints.d.ts.map +1 -0
  199. package/dist/infrastructure/server/httpEndpoints.js +151 -0
  200. package/dist/infrastructure/server/httpEndpoints.js.map +1 -0
  201. package/dist/infrastructure/server/protocol.d.ts +15 -1
  202. package/dist/infrastructure/server/protocol.d.ts.map +1 -1
  203. package/dist/infrastructure/server/protocol.js +37 -3
  204. package/dist/infrastructure/server/protocol.js.map +1 -1
  205. package/dist/infrastructure/server/sseHandler.d.ts +27 -0
  206. package/dist/infrastructure/server/sseHandler.d.ts.map +1 -0
  207. package/dist/infrastructure/server/sseHandler.js +77 -0
  208. package/dist/infrastructure/server/sseHandler.js.map +1 -0
  209. package/dist/infrastructure/server/tcp.d.ts +8 -10
  210. package/dist/infrastructure/server/tcp.d.ts.map +1 -1
  211. package/dist/infrastructure/server/tcp.js +51 -42
  212. package/dist/infrastructure/server/tcp.js.map +1 -1
  213. package/dist/infrastructure/server/wsHandler.d.ts +31 -0
  214. package/dist/infrastructure/server/wsHandler.d.ts.map +1 -0
  215. package/dist/infrastructure/server/wsHandler.js +63 -0
  216. package/dist/infrastructure/server/wsHandler.js.map +1 -0
  217. package/dist/main.js +2 -4
  218. package/dist/main.js.map +1 -1
  219. package/dist/mcp/index.js +3 -465
  220. package/dist/mcp/index.js.map +1 -1
  221. package/dist/mcp/mcpHandlers.d.ts +129 -0
  222. package/dist/mcp/mcpHandlers.d.ts.map +1 -0
  223. package/dist/mcp/mcpHandlers.js +204 -0
  224. package/dist/mcp/mcpHandlers.js.map +1 -0
  225. package/dist/mcp/mcpTools.d.ts +15 -0
  226. package/dist/mcp/mcpTools.d.ts.map +1 -0
  227. package/dist/mcp/mcpTools.js +277 -0
  228. package/dist/mcp/mcpTools.js.map +1 -0
  229. package/dist/shared/lru.d.ts +23 -0
  230. package/dist/shared/lru.d.ts.map +1 -1
  231. package/dist/shared/lru.js +61 -3
  232. package/dist/shared/lru.js.map +1 -1
  233. package/dist/shared/skipList.d.ts +10 -2
  234. package/dist/shared/skipList.d.ts.map +1 -1
  235. package/dist/shared/skipList.js +22 -1
  236. package/dist/shared/skipList.js.map +1 -1
  237. package/package.json +2 -2
  238. package/dist/cli/dashboard.d.ts +0 -32
  239. package/dist/cli/dashboard.d.ts.map +0 -1
  240. package/dist/cli/dashboard.js +0 -183
  241. package/dist/cli/dashboard.js.map +0 -1
  242. package/dist/client/tcp/lineBuffer.d.ts +0 -17
  243. package/dist/client/tcp/lineBuffer.d.ts.map +0 -1
  244. package/dist/client/tcp/lineBuffer.js +0 -32
  245. package/dist/client/tcp/lineBuffer.js.map +0 -1
@@ -380,6 +380,12 @@ export class BoundedMap {
380
380
  /**
381
381
  * TTL Map - entries expire after timeout
382
382
  * Optimized with MinHeap for O(log n) insert and O(k) cleanup
383
+ *
384
+ * Memory leak prevention:
385
+ * - Each heap entry stores (expiresAt, key)
386
+ * - During cleanup, we verify the key still exists in cache AND has matching expiresAt
387
+ * - Stale entries (deleted keys or updated TTLs) are skipped and removed from heap
388
+ * - Periodic compaction rebuilds heap when stale ratio exceeds threshold
383
389
  */
384
390
  export class TTLMap {
385
391
  cache = new Map();
@@ -390,6 +396,12 @@ export class TTLMap {
390
396
  * O(log n) insert instead of O(n) with array splice
391
397
  */
392
398
  expiryHeap = new MinHeap((a, b) => a.expiresAt - b.expiresAt);
399
+ /** Count of stale entries in heap (deleted or updated keys) */
400
+ staleCount = 0;
401
+ /** Rebuild heap when stale entries exceed this ratio of heap size */
402
+ static COMPACTION_THRESHOLD = 0.5;
403
+ /** Minimum heap size before considering compaction (avoid frequent rebuilds for small heaps) */
404
+ static MIN_COMPACTION_SIZE = 100;
393
405
  constructor(ttlMs, cleanupIntervalMs = 60_000) {
394
406
  this.ttlMs = ttlMs;
395
407
  this.startCleanup(cleanupIntervalMs);
@@ -409,11 +421,39 @@ export class TTLMap {
409
421
  break;
410
422
  this.expiryHeap.pop();
411
423
  const { key, expiresAt } = top;
412
- // Verify entry still exists and has same expiry (might have been updated)
424
+ // Verify entry still exists and has same expiry (might have been updated or deleted)
413
425
  const entry = this.cache.get(key);
414
426
  if (entry?.expiresAt === expiresAt) {
427
+ // Valid expired entry - delete from cache
415
428
  this.cache.delete(key);
416
429
  }
430
+ else {
431
+ // Stale heap entry (key deleted or TTL updated) - already removed, decrement counter
432
+ if (this.staleCount > 0)
433
+ this.staleCount--;
434
+ }
435
+ }
436
+ // Compact heap if too many stale entries accumulated
437
+ this.maybeCompact();
438
+ }
439
+ /**
440
+ * Rebuild heap if stale entry ratio exceeds threshold
441
+ * This prevents unbounded heap growth from delete() and set() updates
442
+ */
443
+ maybeCompact() {
444
+ const heapSize = this.expiryHeap.size;
445
+ if (heapSize >= TTLMap.MIN_COMPACTION_SIZE &&
446
+ this.staleCount / heapSize > TTLMap.COMPACTION_THRESHOLD) {
447
+ this.rebuildHeap();
448
+ }
449
+ }
450
+ /** Rebuild heap with only valid entries - O(n log n) */
451
+ rebuildHeap() {
452
+ this.expiryHeap.clear();
453
+ this.staleCount = 0;
454
+ // Re-add all valid cache entries to heap
455
+ for (const [key, entry] of this.cache) {
456
+ this.expiryHeap.push({ expiresAt: entry.expiresAt, key });
417
457
  }
418
458
  }
419
459
  get(key) {
@@ -422,6 +462,7 @@ export class TTLMap {
422
462
  return undefined;
423
463
  if (entry.expiresAt <= Date.now()) {
424
464
  this.cache.delete(key);
465
+ this.staleCount++; // Heap entry is now stale
425
466
  return undefined;
426
467
  }
427
468
  return entry.value;
@@ -429,6 +470,10 @@ export class TTLMap {
429
470
  /** O(log n) insert with MinHeap instead of O(n) with array splice */
430
471
  set(key, value, ttlMs) {
431
472
  const expiresAt = Date.now() + (ttlMs ?? this.ttlMs);
473
+ // Check if key already exists - old heap entry becomes stale
474
+ if (this.cache.has(key)) {
475
+ this.staleCount++;
476
+ }
432
477
  this.cache.set(key, { value, expiresAt });
433
478
  // Add to expiry heap - O(log n) with MinHeap
434
479
  this.expiryHeap.push({ expiresAt, key });
@@ -437,12 +482,17 @@ export class TTLMap {
437
482
  return this.get(key) !== undefined;
438
483
  }
439
484
  delete(key) {
440
- // Note: we don't remove from expiryHeap - it will be cleaned up lazily
441
- return this.cache.delete(key);
485
+ const existed = this.cache.delete(key);
486
+ if (existed) {
487
+ // Heap entry is now stale - will be cleaned up lazily or during compaction
488
+ this.staleCount++;
489
+ }
490
+ return existed;
442
491
  }
443
492
  clear() {
444
493
  this.cache.clear();
445
494
  this.expiryHeap.clear();
495
+ this.staleCount = 0;
446
496
  }
447
497
  stop() {
448
498
  if (this.cleanupInterval) {
@@ -453,5 +503,13 @@ export class TTLMap {
453
503
  get size() {
454
504
  return this.cache.size;
455
505
  }
506
+ /** Get heap size (for debugging/monitoring) */
507
+ get heapSize() {
508
+ return this.expiryHeap.size;
509
+ }
510
+ /** Get count of stale heap entries (for debugging/monitoring) */
511
+ get staleEntryCount() {
512
+ return this.staleCount;
513
+ }
456
514
  }
457
515
  //# sourceMappingURL=lru.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lru.js","sourceRoot":"","sources":["../../src/shared/lru.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lru.js","sourceRoot":"","sources":["../../src/shared/lru.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class SkipList<T> {
14
14
  private readonly maxLevel;
15
15
  private readonly probability;
16
16
  private readonly compare;
17
+ private readonly equals?;
17
18
  private head;
18
19
  private level;
19
20
  private _size;
@@ -22,8 +23,11 @@ export declare class SkipList<T> {
22
23
  * @param compare Comparator function (negative if a < b, positive if a > b, 0 if equal)
23
24
  * @param maxLevel Maximum level (default 16, supports ~65k elements efficiently)
24
25
  * @param probability Level promotion probability (default 0.5)
26
+ * @param equals Optional equality function for duplicate detection. If provided,
27
+ * duplicates where equals returns true are skipped during insert.
28
+ * If not provided, multiple entries with same comparator result are allowed.
25
29
  */
26
- constructor(compare: (a: T, b: T) => number, maxLevel?: number, probability?: number);
30
+ constructor(compare: (a: T, b: T) => number, maxLevel?: number, probability?: number, equals?: (a: T, b: T) => boolean);
27
31
  /** Current number of elements */
28
32
  get size(): number;
29
33
  /** Check if empty */
@@ -32,8 +36,12 @@ export declare class SkipList<T> {
32
36
  private randomLevel;
33
37
  /**
34
38
  * Insert value - O(log n)
39
+ * If an equals function was provided to the constructor, duplicates
40
+ * (where equals returns true) are skipped. Otherwise, multiple entries
41
+ * with the same comparator result are allowed (sorted multiset behavior).
42
+ * @returns true if inserted, false if duplicate was skipped
35
43
  */
36
- insert(value: T): void;
44
+ insert(value: T): boolean;
37
45
  /**
38
46
  * Delete value - O(log n)
39
47
  * @returns true if found and deleted
@@ -1 +1 @@
1
- {"version":3,"file":"skipList.d.ts","sourceRoot":"","sources":["../../src/shared/skipList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;;;;GAMG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAa;IAE1B;;;;;OAKG;gBACS,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE,QAAQ,GAAE,MAAW,EAAE,WAAW,GAAE,MAAY;IAO7F,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qBAAqB;IACrB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,yCAAyC;IACzC,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAkDtB;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IA0CzB;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI;IAYvD;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAkBxB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAItB;;OAEG;IACH,KAAK,IAAI,CAAC,GAAG,IAAI;IAIjB;;OAEG;IACH,KAAK,IAAI,CAAC,GAAG,IAAI;IAOjB;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAa5C;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAahE;;OAEG;IACF,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;IAQvB;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE;CAejD"}
1
+ {"version":3,"file":"skipList.d.ts","sourceRoot":"","sources":["../../src/shared/skipList.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;;;;GAMG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA0B;IAClD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAa;IAE1B;;;;;;;;OAQG;gBAED,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,EAC/B,QAAQ,GAAE,MAAW,EACrB,WAAW,GAAE,MAAY,EACzB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO;IASlC,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qBAAqB;IACrB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,yCAAyC;IACzC,OAAO,CAAC,WAAW;IAQnB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IA+DzB;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IA0CzB;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,IAAI;IAYvD;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAkBxB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAItB;;OAEG;IACH,KAAK,IAAI,CAAC,GAAG,IAAI;IAIjB;;OAEG;IACH,KAAK,IAAI,CAAC,GAAG,IAAI;IAOjB;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAa5C;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;IAahE;;OAEG;IACF,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;IAQvB;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE;CAejD"}
@@ -25,6 +25,7 @@ export class SkipList {
25
25
  maxLevel;
26
26
  probability;
27
27
  compare;
28
+ equals;
28
29
  head;
29
30
  level = 0;
30
31
  _size = 0;
@@ -33,11 +34,15 @@ export class SkipList {
33
34
  * @param compare Comparator function (negative if a < b, positive if a > b, 0 if equal)
34
35
  * @param maxLevel Maximum level (default 16, supports ~65k elements efficiently)
35
36
  * @param probability Level promotion probability (default 0.5)
37
+ * @param equals Optional equality function for duplicate detection. If provided,
38
+ * duplicates where equals returns true are skipped during insert.
39
+ * If not provided, multiple entries with same comparator result are allowed.
36
40
  */
37
- constructor(compare, maxLevel = 16, probability = 0.5) {
41
+ constructor(compare, maxLevel = 16, probability = 0.5, equals) {
38
42
  this.compare = compare;
39
43
  this.maxLevel = maxLevel;
40
44
  this.probability = probability;
45
+ this.equals = equals;
41
46
  this.head = createHead(maxLevel);
42
47
  }
43
48
  /** Current number of elements */
@@ -58,6 +63,10 @@ export class SkipList {
58
63
  }
59
64
  /**
60
65
  * Insert value - O(log n)
66
+ * If an equals function was provided to the constructor, duplicates
67
+ * (where equals returns true) are skipped. Otherwise, multiple entries
68
+ * with the same comparator result are allowed (sorted multiset behavior).
69
+ * @returns true if inserted, false if duplicate was skipped
61
70
  */
62
71
  insert(value) {
63
72
  const update = [];
@@ -74,6 +83,17 @@ export class SkipList {
74
83
  }
75
84
  update[i] = current;
76
85
  }
86
+ // Check for duplicate if equals function is provided
87
+ if (this.equals) {
88
+ // Check all nodes with same comparator result for true equality
89
+ let node = current.forward[0];
90
+ while (node !== null && this.compare(node.value, value) === 0) {
91
+ if (this.equals(node.value, value)) {
92
+ return false; // True duplicate found - skip insertion
93
+ }
94
+ node = node.forward[0];
95
+ }
96
+ }
77
97
  // Generate level for new node
78
98
  const newLevel = this.randomLevel();
79
99
  // If new level is higher than current, update head
@@ -101,6 +121,7 @@ export class SkipList {
101
121
  }
102
122
  }
103
123
  this._size++;
124
+ return true;
104
125
  }
105
126
  /**
106
127
  * Delete value - O(log n)
@@ -1 +1 @@
1
- {"version":3,"file":"skipList.js","sourceRoot":"","sources":["../../src/shared/skipList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skipList.js","sourceRoot":"","sources":["../../src/shared/skipList.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bunqueue",
3
- "version": "1.9.7",
3
+ "version": "1.9.9",
4
4
  "description": "High-performance job queue server written in Bun. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks. Minimal dependencies.",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",
@@ -58,7 +58,7 @@
58
58
  "prepublishOnly": "bun run build:lib"
59
59
  },
60
60
  "dependencies": {
61
- "@msgpack/msgpack": "^3.0.0",
61
+ "msgpackr": "^1.11.0",
62
62
  "croner": "^9.0.0"
63
63
  },
64
64
  "devDependencies": {
@@ -1,32 +0,0 @@
1
- /**
2
- * Live Dashboard for bunqueue server
3
- * Interactive terminal UI with real-time stats
4
- */
5
- import type { QueueManager } from '../application/queueManager';
6
- interface DashboardContext {
7
- queueManager: QueueManager;
8
- tcpConnections: () => number;
9
- wsClients: () => number;
10
- sseClients: () => number;
11
- }
12
- interface Activity {
13
- time: string;
14
- type: 'completed' | 'failed' | 'started' | 'pushed';
15
- queue: string;
16
- jobId: string;
17
- duration?: number;
18
- }
19
- /**
20
- * Add activity entry
21
- */
22
- export declare function addActivity(type: Activity['type'], queue: string, jobId: string, duration?: number): void;
23
- /**
24
- * Render the dashboard
25
- */
26
- export declare function renderDashboard(ctx: DashboardContext): string;
27
- /**
28
- * Start dashboard mode
29
- */
30
- export declare function startDashboard(ctx: DashboardContext): () => void;
31
- export {};
32
- //# sourceMappingURL=dashboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAkBhE,UAAU,gBAAgB;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,MAAM,CAAC;CAC1B;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAON;AAqCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAqH7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAehE"}
@@ -1,183 +0,0 @@
1
- /**
2
- * Live Dashboard for bunqueue server
3
- * Interactive terminal UI with real-time stats
4
- */
5
- import { VERSION } from '../shared/version';
6
- // ANSI escape codes
7
- const ESC = '\x1b';
8
- const CLEAR = `${ESC}[2J${ESC}[H`;
9
- const HIDE_CURSOR = `${ESC}[?25l`;
10
- const SHOW_CURSOR = `${ESC}[?25h`;
11
- const BOLD = `${ESC}[1m`;
12
- const DIM = `${ESC}[2m`;
13
- const RESET = `${ESC}[0m`;
14
- const CYAN = `${ESC}[36m`;
15
- const GREEN = `${ESC}[32m`;
16
- const YELLOW = `${ESC}[33m`;
17
- const RED = `${ESC}[31m`;
18
- const WHITE = `${ESC}[37m`;
19
- const BG_GRAY = `${ESC}[48;5;236m`;
20
- const recentActivity = [];
21
- const MAX_ACTIVITY = 8;
22
- let lastTotalCompleted = 0n;
23
- let lastTotalPushed = 0n;
24
- let lastCheckTime = Date.now();
25
- let throughputIn = 0;
26
- let throughputOut = 0;
27
- /**
28
- * Add activity entry
29
- */
30
- export function addActivity(type, queue, jobId, duration) {
31
- const now = new Date();
32
- const time = now.toLocaleTimeString('en-US', { hour12: false });
33
- recentActivity.unshift({ time, type, queue, jobId, duration });
34
- if (recentActivity.length > MAX_ACTIVITY) {
35
- recentActivity.pop();
36
- }
37
- }
38
- /**
39
- * Format uptime
40
- */
41
- function formatUptime(ms) {
42
- const seconds = Math.floor(ms / 1000);
43
- const minutes = Math.floor(seconds / 60);
44
- const hours = Math.floor(minutes / 60);
45
- const days = Math.floor(hours / 24);
46
- if (days > 0)
47
- return `${days}d ${hours % 24}h`;
48
- if (hours > 0)
49
- return `${hours}h ${minutes % 60}m`;
50
- if (minutes > 0)
51
- return `${minutes}m ${seconds % 60}s`;
52
- return `${seconds}s`;
53
- }
54
- /**
55
- * Create progress bar
56
- */
57
- function progressBar(value, max, width = 20) {
58
- if (max === 0)
59
- return DIM + '░'.repeat(width) + RESET;
60
- const filled = Math.round((value / max) * width);
61
- const empty = width - filled;
62
- return GREEN + '█'.repeat(filled) + DIM + '░'.repeat(empty) + RESET;
63
- }
64
- /**
65
- * Format number with K/M suffix
66
- */
67
- function formatNum(n) {
68
- const num = typeof n === 'bigint' ? Number(n) : n;
69
- if (num >= 1_000_000)
70
- return (num / 1_000_000).toFixed(1) + 'M';
71
- if (num >= 1_000)
72
- return (num / 1_000).toFixed(1) + 'K';
73
- return String(num);
74
- }
75
- /**
76
- * Render the dashboard
77
- */
78
- export function renderDashboard(ctx) {
79
- const stats = ctx.queueManager.getStats();
80
- const workerStats = ctx.queueManager.workerManager.getStats();
81
- const queues = ctx.queueManager.listQueues();
82
- // Calculate throughput
83
- const now = Date.now();
84
- const elapsed = (now - lastCheckTime) / 1000;
85
- if (elapsed >= 1) {
86
- throughputIn = Number(stats.totalPushed - lastTotalPushed) / elapsed;
87
- throughputOut = Number(stats.totalCompleted - lastTotalCompleted) / elapsed;
88
- lastTotalPushed = stats.totalPushed;
89
- lastTotalCompleted = stats.totalCompleted;
90
- lastCheckTime = now;
91
- }
92
- const total = stats.waiting + stats.active + Number(stats.totalCompleted) + stats.dlq;
93
- const lines = [];
94
- // Header
95
- lines.push(`${BG_GRAY}${WHITE}${BOLD} bunqueue v${VERSION}${RESET}${BG_GRAY}${DIM}${' '.repeat(30)}uptime: ${formatUptime(stats.uptime)} ${RESET}`);
96
- lines.push('');
97
- // Stats boxes
98
- const col1 = 28;
99
- lines.push(`${BOLD} THROUGHPUT${RESET}${' '.repeat(col1 - 12)}${BOLD}JOBS${RESET}`);
100
- lines.push(` ${GREEN}↑${RESET} ${throughputIn.toFixed(0).padStart(6)} jobs/sec${' '.repeat(col1 - 19)}waiting: ${formatNum(stats.waiting).padStart(7)} ${progressBar(stats.waiting, total, 15)}`);
101
- lines.push(` ${CYAN}↓${RESET} ${throughputOut.toFixed(0).padStart(6)} jobs/sec${' '.repeat(col1 - 19)}active: ${formatNum(stats.active).padStart(7)} ${progressBar(stats.active, total, 15)}`);
102
- lines.push(`${' '.repeat(col1)}completed: ${formatNum(stats.totalCompleted).padStart(7)} ${progressBar(Number(stats.totalCompleted), total, 15)}`);
103
- lines.push(` ${BOLD}CONNECTIONS${RESET}${' '.repeat(col1 - 12)}failed: ${formatNum(stats.totalFailed).padStart(7)} ${RED}${stats.totalFailed > 0n ? '!' : ' '}${RESET}`);
104
- lines.push(` TCP: ${ctx.tcpConnections().toString().padStart(3)} WS: ${ctx.wsClients().toString().padStart(3)} SSE: ${ctx.sseClients().toString().padStart(3)}${' '.repeat(3)}dlq: ${formatNum(stats.dlq).padStart(7)} ${stats.dlq > 0 ? RED + '!' + RESET : ' '}`);
105
- lines.push('');
106
- // Queues table
107
- lines.push(`${DIM}${'─'.repeat(68)}${RESET}`);
108
- lines.push(`${BOLD} QUEUE${' '.repeat(24)}COUNT WORKERS STATUS${RESET}`);
109
- lines.push(`${DIM}${'─'.repeat(68)}${RESET}`);
110
- if (queues.length === 0) {
111
- lines.push(`${DIM} (no queues)${RESET}`);
112
- }
113
- else {
114
- const displayQueues = queues.slice(0, 8);
115
- for (const queueName of displayQueues) {
116
- const count = ctx.queueManager.count(queueName);
117
- const isPaused = ctx.queueManager.isPaused(queueName);
118
- const status = isPaused
119
- ? `${YELLOW}⏸ paused${RESET}`
120
- : `${GREEN}● running${RESET}`;
121
- const name = queueName.length > 28 ? queueName.slice(0, 25) + '...' : queueName;
122
- lines.push(` ${name.padEnd(30)} ${count.toString().padStart(6)} ${workerStats.active.toString().padStart(3)} ${status}`);
123
- }
124
- if (queues.length > 8) {
125
- lines.push(`${DIM} ... and ${queues.length - 8} more queues${RESET}`);
126
- }
127
- }
128
- lines.push('');
129
- lines.push(`${DIM}${'─'.repeat(68)}${RESET}`);
130
- lines.push(`${BOLD} RECENT ACTIVITY${RESET}`);
131
- lines.push(`${DIM}${'─'.repeat(68)}${RESET}`);
132
- if (recentActivity.length === 0) {
133
- lines.push(`${DIM} (no recent activity)${RESET}`);
134
- }
135
- else {
136
- for (const act of recentActivity.slice(0, 6)) {
137
- let icon;
138
- let color;
139
- switch (act.type) {
140
- case 'completed':
141
- icon = '✓';
142
- color = GREEN;
143
- break;
144
- case 'failed':
145
- icon = '✗';
146
- color = RED;
147
- break;
148
- case 'started':
149
- icon = '→';
150
- color = CYAN;
151
- break;
152
- case 'pushed':
153
- icon = '+';
154
- color = YELLOW;
155
- break;
156
- }
157
- const duration = act.duration ? ` (${act.duration}ms)` : '';
158
- const shortQueue = act.queue.length > 20 ? act.queue.slice(0, 17) + '...' : act.queue;
159
- lines.push(` ${DIM}${act.time}${RESET} ${color}${icon}${RESET} ${shortQueue}/${act.jobId.slice(0, 8)}${DIM}${duration}${RESET}`);
160
- }
161
- }
162
- lines.push('');
163
- lines.push(`${DIM}${'─'.repeat(68)}${RESET}`);
164
- lines.push(` ${DIM}Press${RESET} ${BOLD}d${RESET}${DIM} banner${RESET} ${BOLD}p${RESET}${DIM} pause all${RESET} ${BOLD}r${RESET}${DIM} resume all${RESET} ${BOLD}q${RESET}${DIM} quit${RESET}`);
165
- return CLEAR + lines.join('\n');
166
- }
167
- /**
168
- * Start dashboard mode
169
- */
170
- export function startDashboard(ctx) {
171
- process.stdout.write(HIDE_CURSOR);
172
- const interval = setInterval(() => {
173
- process.stdout.write(renderDashboard(ctx));
174
- }, 500);
175
- // Initial render
176
- process.stdout.write(renderDashboard(ctx));
177
- return () => {
178
- clearInterval(interval);
179
- process.stdout.write(SHOW_CURSOR);
180
- process.stdout.write(CLEAR);
181
- };
182
- }
183
- //# sourceMappingURL=dashboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Line Buffer
3
- * Efficient parsing of newline-delimited JSON protocol
4
- */
5
- import type { LineBuffer as ILineBuffer } from './types';
6
- /**
7
- * Line buffer for efficient parsing of streaming data
8
- * Handles partial messages across TCP packet boundaries
9
- */
10
- export declare class LineBuffer implements ILineBuffer {
11
- private partial;
12
- /** Add data and return complete lines */
13
- addData(data: string): string[];
14
- /** Clear buffer */
15
- clear(): void;
16
- }
17
- //# sourceMappingURL=lineBuffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lineBuffer.d.ts","sourceRoot":"","sources":["../../../src/client/tcp/lineBuffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C,OAAO,CAAC,OAAO,CAAM;IAErB,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAkB/B,mBAAmB;IACnB,KAAK,IAAI,IAAI;CAGd"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Line Buffer
3
- * Efficient parsing of newline-delimited JSON protocol
4
- */
5
- /**
6
- * Line buffer for efficient parsing of streaming data
7
- * Handles partial messages across TCP packet boundaries
8
- */
9
- export class LineBuffer {
10
- partial = '';
11
- /** Add data and return complete lines */
12
- addData(data) {
13
- const combined = this.partial + data;
14
- const lines = [];
15
- let start = 0;
16
- let idx;
17
- while ((idx = combined.indexOf('\n', start)) !== -1) {
18
- const line = combined.slice(start, idx);
19
- if (line.length > 0) {
20
- lines.push(line);
21
- }
22
- start = idx + 1;
23
- }
24
- this.partial = start < combined.length ? combined.slice(start) : '';
25
- return lines;
26
- }
27
- /** Clear buffer */
28
- clear() {
29
- this.partial = '';
30
- }
31
- }
32
- //# sourceMappingURL=lineBuffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lineBuffer.js","sourceRoot":"","sources":["../../../src/client/tcp/lineBuffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,MAAM,OAAO,UAAU;IACb,OAAO,GAAG,EAAE,CAAC;IAErB,yCAAyC;IACzC,OAAO,CAAC,IAAY;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAW,CAAC;QAEhB,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF"}