bunqueue 1.9.1 → 1.9.3

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 (165) 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/client.d.ts +6 -0
  9. package/dist/cli/client.d.ts.map +1 -1
  10. package/dist/cli/client.js +60 -48
  11. package/dist/cli/client.js.map +1 -1
  12. package/dist/cli/commands/server.d.ts.map +1 -1
  13. package/dist/cli/commands/server.js +30 -14
  14. package/dist/cli/commands/server.js.map +1 -1
  15. package/dist/cli/help.d.ts.map +1 -1
  16. package/dist/cli/help.js +10 -6
  17. package/dist/cli/help.js.map +1 -1
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/index.js +15 -2
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/client/queue/dlqOps.d.ts +24 -0
  22. package/dist/client/queue/dlqOps.d.ts.map +1 -0
  23. package/dist/client/queue/dlqOps.js +73 -0
  24. package/dist/client/queue/dlqOps.js.map +1 -0
  25. package/dist/client/queue/helpers.d.ts +20 -0
  26. package/dist/client/queue/helpers.d.ts.map +1 -0
  27. package/dist/client/queue/helpers.js +34 -0
  28. package/dist/client/queue/helpers.js.map +1 -0
  29. package/dist/client/queue/index.d.ts +8 -0
  30. package/dist/client/queue/index.d.ts.map +1 -0
  31. package/dist/client/queue/index.js +8 -0
  32. package/dist/client/queue/index.js.map +1 -0
  33. package/dist/client/queue/queue.d.ts +60 -0
  34. package/dist/client/queue/queue.d.ts.map +1 -0
  35. package/dist/client/queue/queue.js +322 -0
  36. package/dist/client/queue/queue.js.map +1 -0
  37. package/dist/client/queue.d.ts +3 -78
  38. package/dist/client/queue.d.ts.map +1 -1
  39. package/dist/client/queue.js +3 -463
  40. package/dist/client/queue.js.map +1 -1
  41. package/dist/client/sandboxed/index.d.ts +8 -0
  42. package/dist/client/sandboxed/index.d.ts.map +1 -0
  43. package/dist/client/sandboxed/index.js +7 -0
  44. package/dist/client/sandboxed/index.js.map +1 -0
  45. package/dist/client/sandboxed/types.d.ts +62 -0
  46. package/dist/client/sandboxed/types.d.ts.map +1 -0
  47. package/dist/client/sandboxed/types.js +6 -0
  48. package/dist/client/sandboxed/types.js.map +1 -0
  49. package/dist/client/sandboxed/worker.d.ts +38 -0
  50. package/dist/client/sandboxed/worker.d.ts.map +1 -0
  51. package/dist/client/sandboxed/worker.js +176 -0
  52. package/dist/client/sandboxed/worker.js.map +1 -0
  53. package/dist/client/sandboxed/wrapper.d.ts +13 -0
  54. package/dist/client/sandboxed/wrapper.d.ts.map +1 -0
  55. package/dist/client/sandboxed/wrapper.js +65 -0
  56. package/dist/client/sandboxed/wrapper.js.map +1 -0
  57. package/dist/client/sandboxedWorker.d.ts +4 -87
  58. package/dist/client/sandboxedWorker.d.ts.map +1 -1
  59. package/dist/client/sandboxedWorker.js +3 -296
  60. package/dist/client/sandboxedWorker.js.map +1 -1
  61. package/dist/client/tcp/client.d.ts +40 -0
  62. package/dist/client/tcp/client.d.ts.map +1 -0
  63. package/dist/client/tcp/client.js +289 -0
  64. package/dist/client/tcp/client.js.map +1 -0
  65. package/dist/client/tcp/connection.d.ts +57 -0
  66. package/dist/client/tcp/connection.d.ts.map +1 -0
  67. package/dist/client/tcp/connection.js +162 -0
  68. package/dist/client/tcp/connection.js.map +1 -0
  69. package/dist/client/tcp/health.d.ts +47 -0
  70. package/dist/client/tcp/health.d.ts.map +1 -0
  71. package/dist/client/tcp/health.js +95 -0
  72. package/dist/client/tcp/health.js.map +1 -0
  73. package/dist/client/tcp/index.d.ts +13 -0
  74. package/dist/client/tcp/index.d.ts.map +1 -0
  75. package/dist/client/tcp/index.js +12 -0
  76. package/dist/client/tcp/index.js.map +1 -0
  77. package/dist/client/tcp/lineBuffer.d.ts +17 -0
  78. package/dist/client/tcp/lineBuffer.d.ts.map +1 -0
  79. package/dist/client/tcp/lineBuffer.js +32 -0
  80. package/dist/client/tcp/lineBuffer.js.map +1 -0
  81. package/dist/client/tcp/reconnect.d.ts +38 -0
  82. package/dist/client/tcp/reconnect.d.ts.map +1 -0
  83. package/dist/client/tcp/reconnect.js +70 -0
  84. package/dist/client/tcp/reconnect.js.map +1 -0
  85. package/dist/client/tcp/shared.d.ts +11 -0
  86. package/dist/client/tcp/shared.d.ts.map +1 -0
  87. package/dist/client/tcp/shared.js +20 -0
  88. package/dist/client/tcp/shared.js.map +1 -0
  89. package/dist/client/tcp/types.d.ts +76 -0
  90. package/dist/client/tcp/types.d.ts.map +1 -0
  91. package/dist/client/tcp/types.js +20 -0
  92. package/dist/client/tcp/types.js.map +1 -0
  93. package/dist/client/tcpClient.d.ts +4 -110
  94. package/dist/client/tcpClient.d.ts.map +1 -1
  95. package/dist/client/tcpClient.js +3 -523
  96. package/dist/client/tcpClient.js.map +1 -1
  97. package/dist/client/tcpPool.d.ts +3 -0
  98. package/dist/client/tcpPool.d.ts.map +1 -1
  99. package/dist/client/tcpPool.js +21 -2
  100. package/dist/client/tcpPool.js.map +1 -1
  101. package/dist/client/types.d.ts +11 -2
  102. package/dist/client/types.d.ts.map +1 -1
  103. package/dist/client/types.js.map +1 -1
  104. package/dist/client/worker/ackBatcher.d.ts +40 -0
  105. package/dist/client/worker/ackBatcher.d.ts.map +1 -0
  106. package/dist/client/worker/ackBatcher.js +137 -0
  107. package/dist/client/worker/ackBatcher.js.map +1 -0
  108. package/dist/client/worker/index.d.ts +11 -0
  109. package/dist/client/worker/index.d.ts.map +1 -0
  110. package/dist/client/worker/index.js +10 -0
  111. package/dist/client/worker/index.js.map +1 -0
  112. package/dist/client/worker/jobParser.d.ts +10 -0
  113. package/dist/client/worker/jobParser.d.ts.map +1 -0
  114. package/dist/client/worker/jobParser.js +43 -0
  115. package/dist/client/worker/jobParser.js.map +1 -0
  116. package/dist/client/worker/processor.d.ts +24 -0
  117. package/dist/client/worker/processor.d.ts.map +1 -0
  118. package/dist/client/worker/processor.js +86 -0
  119. package/dist/client/worker/processor.js.map +1 -0
  120. package/dist/client/worker/types.d.ts +38 -0
  121. package/dist/client/worker/types.d.ts.map +1 -0
  122. package/dist/client/worker/types.js +14 -0
  123. package/dist/client/worker/types.js.map +1 -0
  124. package/dist/client/worker/worker.d.ts +53 -0
  125. package/dist/client/worker/worker.d.ts.map +1 -0
  126. package/dist/client/worker/worker.js +367 -0
  127. package/dist/client/worker/worker.js.map +1 -0
  128. package/dist/client/worker.d.ts +3 -69
  129. package/dist/client/worker.d.ts.map +1 -1
  130. package/dist/client/worker.js +3 -472
  131. package/dist/client/worker.js.map +1 -1
  132. package/dist/domain/queue/shard.d.ts +19 -2
  133. package/dist/domain/queue/shard.d.ts.map +1 -1
  134. package/dist/domain/queue/shard.js +36 -4
  135. package/dist/domain/queue/shard.js.map +1 -1
  136. package/dist/domain/types/command.d.ts +9 -0
  137. package/dist/domain/types/command.d.ts.map +1 -1
  138. package/dist/domain/types/job.d.ts +27 -0
  139. package/dist/domain/types/job.d.ts.map +1 -1
  140. package/dist/domain/types/job.js +34 -0
  141. package/dist/domain/types/job.js.map +1 -1
  142. package/dist/domain/types/response.d.ts +15 -1
  143. package/dist/domain/types/response.d.ts.map +1 -1
  144. package/dist/domain/types/response.js +16 -0
  145. package/dist/domain/types/response.js.map +1 -1
  146. package/dist/infrastructure/server/handlers/core.d.ts +1 -1
  147. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -1
  148. package/dist/infrastructure/server/handlers/core.js +74 -15
  149. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  150. package/dist/infrastructure/server/handlers/monitoring.d.ts.map +1 -1
  151. package/dist/infrastructure/server/handlers/monitoring.js +6 -4
  152. package/dist/infrastructure/server/handlers/monitoring.js.map +1 -1
  153. package/dist/infrastructure/server/http.d.ts +10 -3
  154. package/dist/infrastructure/server/http.d.ts.map +1 -1
  155. package/dist/infrastructure/server/http.js +244 -163
  156. package/dist/infrastructure/server/http.js.map +1 -1
  157. package/dist/infrastructure/server/tcp.d.ts +8 -3
  158. package/dist/infrastructure/server/tcp.d.ts.map +1 -1
  159. package/dist/infrastructure/server/tcp.js +77 -57
  160. package/dist/infrastructure/server/tcp.js.map +1 -1
  161. package/dist/infrastructure/server/types.d.ts +2 -0
  162. package/dist/infrastructure/server/types.d.ts.map +1 -1
  163. package/dist/main.js +24 -4
  164. package/dist/main.js.map +1 -1
  165. package/package.json +1 -1
@@ -1,81 +1,6 @@
1
1
  /**
2
- * Queue - BullMQ-style API
3
- * Default: TCP connection to localhost:6789
4
- * Optional: embedded mode with { embedded: true }
2
+ * Queue - Re-exports from queue module
3
+ * @deprecated Import from './queue' instead
5
4
  */
6
- import type { Job, JobOptions, QueueOptions, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter } from './types';
7
- /**
8
- * Queue class for adding and managing jobs
9
- * Default: connects to bunqueue server via TCP
10
- * Use { embedded: true } for in-process mode
11
- * Set BUNQUEUE_EMBEDDED=1 env var to force embedded mode
12
- */
13
- export declare class Queue<T = unknown> {
14
- readonly name: string;
15
- private readonly opts;
16
- private readonly embedded;
17
- private readonly tcpPool;
18
- private readonly useSharedPool;
19
- constructor(name: string, opts?: QueueOptions);
20
- /** Get TCP connection pool */
21
- private get tcp();
22
- /** Add a job to the queue */
23
- add(name: string, data: T, opts?: JobOptions): Promise<Job<T>>;
24
- private addTcp;
25
- private addEmbedded;
26
- /** Add multiple jobs (batch optimized) */
27
- addBulk(jobs: Array<{
28
- name: string;
29
- data: T;
30
- opts?: JobOptions;
31
- }>): Promise<Job<T>[]>;
32
- private addBulkTcp;
33
- private addBulkEmbedded;
34
- /** Get a job by ID */
35
- getJob(id: string): Promise<Job<T> | null>;
36
- /** Remove a job by ID */
37
- remove(id: string): void;
38
- /** Get job counts by state */
39
- getJobCounts(): {
40
- waiting: number;
41
- active: number;
42
- completed: number;
43
- failed: number;
44
- };
45
- /** Get job counts (async, works with TCP) */
46
- getJobCountsAsync(): Promise<{
47
- waiting: number;
48
- active: number;
49
- completed: number;
50
- failed: number;
51
- }>;
52
- /** Pause the queue */
53
- pause(): void;
54
- /** Resume the queue */
55
- resume(): void;
56
- /** Remove all waiting jobs */
57
- drain(): void;
58
- /** Remove all queue data (waiting, active, completed, failed) */
59
- obliterate(): void;
60
- /** Configure stall detection for this queue */
61
- setStallConfig(config: Partial<StallConfig>): void;
62
- /** Get stall detection configuration */
63
- getStallConfig(): StallConfig;
64
- /** Configure DLQ for this queue (embedded only) */
65
- setDlqConfig(config: Partial<DlqConfig>): void;
66
- /** Get DLQ configuration (embedded only) */
67
- getDlqConfig(): DlqConfig;
68
- /** Get DLQ entries with optional filter */
69
- getDlq(filter?: DlqFilter): DlqEntry<T>[];
70
- /** Get DLQ statistics (embedded only) */
71
- getDlqStats(): DlqStats;
72
- /** Retry jobs from DLQ */
73
- retryDlq(id?: string): number;
74
- /** Retry DLQ jobs by filter (embedded only) */
75
- retryDlqByFilter(filter: DlqFilter): number;
76
- /** Purge all jobs from DLQ */
77
- purgeDlq(): number;
78
- /** Close the queue */
79
- close(): void;
80
- }
5
+ export { Queue } from './queue/queue';
81
6
  //# sourceMappingURL=queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/client/queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,GAAG,EACH,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EAGV,MAAM,SAAS,CAAC;AAkCjB;;;;;GAKG;AACH,qBAAa,KAAK,CAAC,CAAC,GAAG,OAAO;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB;IAkCjD,8BAA8B;IAC9B,OAAO,KAAK,GAAG,GAKd;IAED,6BAA6B;IACvB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAS1D,MAAM;YA+CN,WAAW;IAiBzB,0CAA0C;IACpC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAS7E,UAAU;YA4CV,eAAe;IAmC7B,sBAAsB;IAChB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAiChD,yBAAyB;IACzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASxB,8BAA8B;IAC9B,YAAY,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAgBtF,6CAA6C;IACvC,iBAAiB,IAAI,OAAO,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAqBF,sBAAsB;IACtB,KAAK,IAAI,IAAI;IAQb,uBAAuB;IACvB,MAAM,IAAI,IAAI;IAQd,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAQb,iEAAiE;IACjE,UAAU,IAAI,IAAI;IAUlB,+CAA+C;IAC/C,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAUlD,wCAAwC;IACxC,cAAc,IAAI,WAAW;IAY7B,mDAAmD;IACnD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAU9C,4CAA4C;IAC5C,YAAY,IAAI,SAAS;IAUzB,2CAA2C;IAC3C,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IAWzC,yCAAyC;IACzC,WAAW,IAAI,QAAQ;IAyBvB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAS7B,+CAA+C;IAC/C,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAY3C,8BAA8B;IAC9B,QAAQ,IAAI,MAAM;IAQlB,sBAAsB;IACtB,KAAK,IAAI,IAAI;CAWd"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/client/queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC"}
@@ -1,466 +1,6 @@
1
1
  /**
2
- * Queue - BullMQ-style API
3
- * Default: TCP connection to localhost:6789
4
- * Optional: embedded mode with { embedded: true }
2
+ * Queue - Re-exports from queue module
3
+ * @deprecated Import from './queue' instead
5
4
  */
6
- import { getSharedManager } from './manager';
7
- import { TcpConnectionPool, getSharedPool, releaseSharedPool } from './tcpPool';
8
- import { toPublicJob, toDlqEntry } from './types';
9
- import { jobId } from '../domain/types/job';
10
- import { shardIndex } from '../shared/hash';
11
- import * as dlqOps from '../application/dlqManager';
12
- /** Helper to get shard from manager (embedded mode only) */
13
- function getShard(manager, queue) {
14
- const idx = shardIndex(queue);
15
- return manager.shards[idx];
16
- }
17
- /** Helper to create DLQ context (embedded mode only) */
18
- function getDlqContext(manager) {
19
- return {
20
- shards: manager.shards,
21
- jobIndex: manager.getJobIndex(),
22
- };
23
- }
24
- /** Convert client filter to domain filter */
25
- function toDomainFilter(filter) {
26
- if (!filter)
27
- return undefined;
28
- return filter;
29
- }
30
- /** Check if embedded mode should be forced (for tests) */
31
- const FORCE_EMBEDDED = process.env.BUNQUEUE_EMBEDDED === '1';
32
- /**
33
- * Queue class for adding and managing jobs
34
- * Default: connects to bunqueue server via TCP
35
- * Use { embedded: true } for in-process mode
36
- * Set BUNQUEUE_EMBEDDED=1 env var to force embedded mode
37
- */
38
- export class Queue {
39
- name;
40
- opts;
41
- embedded;
42
- tcpPool;
43
- useSharedPool;
44
- constructor(name, opts = {}) {
45
- this.name = name;
46
- this.opts = opts;
47
- this.embedded = opts.embedded ?? FORCE_EMBEDDED;
48
- if (this.embedded) {
49
- this.tcpPool = null;
50
- this.useSharedPool = false;
51
- }
52
- else {
53
- const connOpts = opts.connection ?? {};
54
- const poolSize = connOpts.poolSize ?? 4;
55
- // Use shared pool by default (saves connections across Queue instances)
56
- // Only create dedicated pool if poolSize differs from default
57
- if (poolSize === 4 && !connOpts.token) {
58
- this.tcpPool = getSharedPool({
59
- host: connOpts.host,
60
- port: connOpts.port,
61
- poolSize,
62
- });
63
- this.useSharedPool = true;
64
- }
65
- else {
66
- // Create dedicated pool for custom settings
67
- this.tcpPool = new TcpConnectionPool({
68
- host: connOpts.host ?? 'localhost',
69
- port: connOpts.port ?? 6789,
70
- token: connOpts.token,
71
- poolSize,
72
- });
73
- this.useSharedPool = false;
74
- }
75
- }
76
- }
77
- /** Get TCP connection pool */
78
- get tcp() {
79
- if (!this.tcpPool) {
80
- throw new Error('No TCP connection available');
81
- }
82
- return this.tcpPool;
83
- }
84
- /** Add a job to the queue */
85
- async add(name, data, opts = {}) {
86
- const merged = { ...this.opts.defaultJobOptions, ...opts };
87
- if (this.embedded) {
88
- return this.addEmbedded(name, data, merged);
89
- }
90
- return this.addTcp(name, data, merged);
91
- }
92
- async addTcp(name, data, opts) {
93
- const response = await this.tcp.send({
94
- cmd: 'PUSH',
95
- queue: this.name,
96
- data: { name, ...data },
97
- priority: opts.priority,
98
- delay: opts.delay,
99
- maxAttempts: opts.attempts,
100
- backoff: opts.backoff,
101
- timeout: opts.timeout,
102
- customId: opts.jobId,
103
- removeOnComplete: opts.removeOnComplete,
104
- removeOnFail: opts.removeOnFail,
105
- });
106
- if (!response.ok) {
107
- const errorMsg = response.error;
108
- throw new Error(errorMsg ?? 'Failed to add job');
109
- }
110
- const jobId = response.id;
111
- return {
112
- id: jobId,
113
- name,
114
- data,
115
- queueName: this.name,
116
- attemptsMade: 0,
117
- timestamp: Date.now(),
118
- progress: 0,
119
- updateProgress: async (progress, message) => {
120
- await this.tcp.send({
121
- cmd: 'Progress',
122
- id: jobId,
123
- progress,
124
- message,
125
- });
126
- },
127
- log: async (message) => {
128
- await this.tcp.send({
129
- cmd: 'AddLog',
130
- id: jobId,
131
- message,
132
- });
133
- },
134
- };
135
- }
136
- async addEmbedded(name, data, opts) {
137
- const manager = getSharedManager();
138
- const job = await manager.push(this.name, {
139
- data: { name, ...data },
140
- priority: opts.priority,
141
- delay: opts.delay,
142
- maxAttempts: opts.attempts,
143
- backoff: opts.backoff,
144
- timeout: opts.timeout,
145
- customId: opts.jobId,
146
- removeOnComplete: opts.removeOnComplete,
147
- removeOnFail: opts.removeOnFail,
148
- repeat: opts.repeat,
149
- });
150
- return toPublicJob(job, name);
151
- }
152
- /** Add multiple jobs (batch optimized) */
153
- async addBulk(jobs) {
154
- if (jobs.length === 0)
155
- return [];
156
- if (this.embedded) {
157
- return this.addBulkEmbedded(jobs);
158
- }
159
- return this.addBulkTcp(jobs);
160
- }
161
- async addBulkTcp(jobs) {
162
- const now = Date.now();
163
- const jobInputs = jobs.map(({ name, data, opts }) => {
164
- const merged = { ...this.opts.defaultJobOptions, ...opts };
165
- return {
166
- data: { name, ...data },
167
- priority: merged.priority,
168
- delay: merged.delay,
169
- maxAttempts: merged.attempts,
170
- backoff: merged.backoff,
171
- timeout: merged.timeout,
172
- customId: merged.jobId,
173
- removeOnComplete: merged.removeOnComplete,
174
- removeOnFail: merged.removeOnFail,
175
- };
176
- });
177
- const response = await this.tcp.send({
178
- cmd: 'PUSHB',
179
- queue: this.name,
180
- jobs: jobInputs,
181
- });
182
- if (!response.ok) {
183
- const errorMsg = response.error;
184
- throw new Error(errorMsg ?? 'Failed to add jobs');
185
- }
186
- const ids = response.ids;
187
- return ids.map((id, i) => ({
188
- id,
189
- name: jobs[i].name,
190
- data: jobs[i].data,
191
- queueName: this.name,
192
- attemptsMade: 0,
193
- timestamp: now,
194
- progress: 0,
195
- updateProgress: async () => { },
196
- log: async () => { },
197
- }));
198
- }
199
- async addBulkEmbedded(jobs) {
200
- const manager = getSharedManager();
201
- const now = Date.now();
202
- const inputs = jobs.map(({ name, data, opts }) => {
203
- const merged = { ...this.opts.defaultJobOptions, ...opts };
204
- return {
205
- data: { name, ...data },
206
- priority: merged.priority,
207
- delay: merged.delay,
208
- maxAttempts: merged.attempts,
209
- backoff: merged.backoff,
210
- timeout: merged.timeout,
211
- customId: merged.jobId,
212
- removeOnComplete: merged.removeOnComplete,
213
- removeOnFail: merged.removeOnFail,
214
- repeat: merged.repeat,
215
- };
216
- });
217
- const jobIds = await manager.pushBatch(this.name, inputs);
218
- return jobIds.map((id, i) => ({
219
- id: String(id),
220
- name: jobs[i].name,
221
- data: jobs[i].data,
222
- queueName: this.name,
223
- attemptsMade: 0,
224
- timestamp: now,
225
- progress: 0,
226
- updateProgress: async () => { },
227
- log: async () => { },
228
- }));
229
- }
230
- /** Get a job by ID */
231
- async getJob(id) {
232
- if (this.embedded) {
233
- const manager = getSharedManager();
234
- const job = await manager.getJob(jobId(id));
235
- if (!job)
236
- return null;
237
- const jobData = job.data;
238
- return toPublicJob(job, jobData?.name ?? 'default');
239
- }
240
- const response = await this.tcp.send({
241
- cmd: 'GetJob',
242
- id,
243
- });
244
- if (!response.ok || !response.job)
245
- return null;
246
- const jobData = response.job;
247
- const data = jobData.data;
248
- const attempts = jobData.attempts;
249
- const createdAt = jobData.createdAt;
250
- const progress = jobData.progress;
251
- return {
252
- id: String(jobData.id),
253
- name: data?.name ?? 'default',
254
- data: jobData.data,
255
- queueName: this.name,
256
- attemptsMade: attempts ?? 0,
257
- timestamp: createdAt ?? Date.now(),
258
- progress: progress ?? 0,
259
- updateProgress: async () => { },
260
- log: async () => { },
261
- };
262
- }
263
- /** Remove a job by ID */
264
- remove(id) {
265
- if (this.embedded) {
266
- const manager = getSharedManager();
267
- void manager.cancel(jobId(id));
268
- }
269
- else {
270
- void this.tcp.send({ cmd: 'Cancel', id });
271
- }
272
- }
273
- /** Get job counts by state */
274
- getJobCounts() {
275
- if (this.embedded) {
276
- const stats = getSharedManager().getStats();
277
- return {
278
- waiting: stats.waiting,
279
- active: stats.active,
280
- completed: stats.completed,
281
- failed: stats.dlq,
282
- };
283
- }
284
- // TCP mode - sync call not ideal, return zeros
285
- // For accurate counts, use getJobCountsAsync
286
- return { waiting: 0, active: 0, completed: 0, failed: 0 };
287
- }
288
- /** Get job counts (async, works with TCP) */
289
- async getJobCountsAsync() {
290
- if (this.embedded) {
291
- return this.getJobCounts();
292
- }
293
- const response = await this.tcp.send({ cmd: 'Stats' });
294
- if (!response.ok) {
295
- return { waiting: 0, active: 0, completed: 0, failed: 0 };
296
- }
297
- const stats = response.stats;
298
- if (!stats) {
299
- return { waiting: 0, active: 0, completed: 0, failed: 0 };
300
- }
301
- return {
302
- waiting: stats.queued ?? 0,
303
- active: stats.processing ?? 0,
304
- completed: stats.completed ?? 0,
305
- failed: stats.dlq ?? 0,
306
- };
307
- }
308
- /** Pause the queue */
309
- pause() {
310
- if (this.embedded) {
311
- getSharedManager().pause(this.name);
312
- }
313
- else {
314
- void this.tcp.send({ cmd: 'Pause', queue: this.name });
315
- }
316
- }
317
- /** Resume the queue */
318
- resume() {
319
- if (this.embedded) {
320
- getSharedManager().resume(this.name);
321
- }
322
- else {
323
- void this.tcp.send({ cmd: 'Resume', queue: this.name });
324
- }
325
- }
326
- /** Remove all waiting jobs */
327
- drain() {
328
- if (this.embedded) {
329
- getSharedManager().drain(this.name);
330
- }
331
- else {
332
- void this.tcp.send({ cmd: 'Drain', queue: this.name });
333
- }
334
- }
335
- /** Remove all queue data (waiting, active, completed, failed) */
336
- obliterate() {
337
- if (this.embedded) {
338
- getSharedManager().obliterate(this.name);
339
- }
340
- else {
341
- void this.tcp.send({ cmd: 'Obliterate', queue: this.name });
342
- }
343
- }
344
- // ============ Stall Detection (embedded only for now) ============
345
- /** Configure stall detection for this queue */
346
- setStallConfig(config) {
347
- if (!this.embedded) {
348
- console.warn('setStallConfig is only supported in embedded mode');
349
- return;
350
- }
351
- const manager = getSharedManager();
352
- const shard = getShard(manager, this.name);
353
- shard.setStallConfig(this.name, config);
354
- }
355
- /** Get stall detection configuration */
356
- getStallConfig() {
357
- if (!this.embedded) {
358
- console.warn('getStallConfig is only supported in embedded mode');
359
- return { enabled: true, stallInterval: 30000, maxStalls: 3, gracePeriod: 5000 };
360
- }
361
- const manager = getSharedManager();
362
- const shard = getShard(manager, this.name);
363
- return shard.getStallConfig(this.name);
364
- }
365
- // ============ DLQ Operations ============
366
- /** Configure DLQ for this queue (embedded only) */
367
- setDlqConfig(config) {
368
- if (!this.embedded) {
369
- console.warn('setDlqConfig is only supported in embedded mode');
370
- return;
371
- }
372
- const manager = getSharedManager();
373
- const ctx = getDlqContext(manager);
374
- dlqOps.configureDlq(this.name, ctx, config);
375
- }
376
- /** Get DLQ configuration (embedded only) */
377
- getDlqConfig() {
378
- if (!this.embedded) {
379
- console.warn('getDlqConfig is only supported in embedded mode');
380
- return {};
381
- }
382
- const manager = getSharedManager();
383
- const ctx = getDlqContext(manager);
384
- return dlqOps.getDlqConfig(this.name, ctx);
385
- }
386
- /** Get DLQ entries with optional filter */
387
- getDlq(filter) {
388
- if (!this.embedded) {
389
- console.warn('getDlq is only supported in embedded mode, use getDlqAsync for TCP');
390
- return [];
391
- }
392
- const manager = getSharedManager();
393
- const ctx = getDlqContext(manager);
394
- const entries = dlqOps.getDlqEntries(this.name, ctx, toDomainFilter(filter));
395
- return entries.map((entry) => toDlqEntry(entry));
396
- }
397
- /** Get DLQ statistics (embedded only) */
398
- getDlqStats() {
399
- if (!this.embedded) {
400
- console.warn('getDlqStats is only supported in embedded mode');
401
- return {
402
- total: 0,
403
- byReason: {},
404
- pendingRetry: 0,
405
- expired: 0,
406
- oldestEntry: null,
407
- newestEntry: null,
408
- };
409
- }
410
- const manager = getSharedManager();
411
- const ctx = getDlqContext(manager);
412
- const stats = dlqOps.getDlqStats(this.name, ctx);
413
- return {
414
- total: stats.total,
415
- byReason: stats.byReason,
416
- pendingRetry: stats.pendingRetry,
417
- expired: stats.expired,
418
- oldestEntry: stats.oldestEntry,
419
- newestEntry: stats.newestEntry,
420
- };
421
- }
422
- /** Retry jobs from DLQ */
423
- retryDlq(id) {
424
- if (this.embedded) {
425
- const manager = getSharedManager();
426
- return manager.retryDlq(this.name, id ? jobId(id) : undefined);
427
- }
428
- void this.tcp.send({ cmd: 'RetryDlq', queue: this.name, id });
429
- return 0; // TCP doesn't return count synchronously
430
- }
431
- /** Retry DLQ jobs by filter (embedded only) */
432
- retryDlqByFilter(filter) {
433
- if (!this.embedded) {
434
- console.warn('retryDlqByFilter is only supported in embedded mode');
435
- return 0;
436
- }
437
- const manager = getSharedManager();
438
- const ctx = getDlqContext(manager);
439
- const domainFilter = toDomainFilter(filter);
440
- if (!domainFilter)
441
- return 0;
442
- return dlqOps.retryDlqByFilter(this.name, ctx, domainFilter);
443
- }
444
- /** Purge all jobs from DLQ */
445
- purgeDlq() {
446
- if (this.embedded) {
447
- return getSharedManager().purgeDlq(this.name);
448
- }
449
- void this.tcp.send({ cmd: 'PurgeDlq', queue: this.name });
450
- return 0;
451
- }
452
- /** Close the queue */
453
- close() {
454
- if (this.tcpPool) {
455
- if (this.useSharedPool) {
456
- // Release reference to shared pool
457
- releaseSharedPool(this.tcpPool);
458
- }
459
- else {
460
- // Close dedicated pool
461
- this.tcpPool.close();
462
- }
463
- }
464
- }
465
- }
5
+ export { Queue } from './queue/queue';
466
6
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/client/queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAahF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAM5C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAEpD,4DAA4D;AAC5D,SAAS,QAAQ,CAAC,OAA4C,EAAE,KAAa;IAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAQ,OAA0C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,wDAAwD;AACxD,SAAS,aAAa,CAAC,OAA4C;IACjE,OAAO;QACL,MAAM,EAAG,OAA0C,CAAC,MAAM;QAC1D,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,SAAS,cAAc,CAAC,MAA6B;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,MAAoC,CAAC;AAC9C,CAAC;AAED,0DAA0D;AAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,OAAO,KAAK;IACP,IAAI,CAAS;IACL,IAAI,CAAe;IACnB,QAAQ,CAAU;IAClB,OAAO,CAA2B;IAClC,aAAa,CAAU;IAExC,YAAY,IAAY,EAAE,OAAqB,EAAE;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC;QAEhD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAsB,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;YAExC,wEAAwE;YACxE,8DAA8D;YAC9D,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;oBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,QAAQ;iBACT,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,4CAA4C;gBAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC;oBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,WAAW;oBAClC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;oBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,QAAQ;iBACT,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAY,GAAG;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,IAAO,EAAE,OAAmB,EAAE;QACpD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;QAE3D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAO,EAAE,IAAgB;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAA2B,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAY,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,KAAK,EAAE,QAAgB,EAAE,OAAgB,EAAE,EAAE;gBAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAClB,GAAG,EAAE,UAAU;oBACf,EAAE,EAAE,KAAK;oBACT,QAAQ;oBACR,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YACD,GAAG,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAClB,GAAG,EAAE,QAAQ;oBACb,EAAE,EAAE,KAAK;oBACT,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAO,EAAE,IAAgB;QAC/D,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,OAAO,WAAW,CAAI,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,OAAO,CAAC,IAAyD;QACrE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,IAAyD;QAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,QAAQ;gBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,KAAK;gBACtB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAA2B,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAe,CAAC;QACrC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,EAAE;YACF,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAClB,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,GAAG;YACd,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SACpB,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAyD;QAEzD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;YAC3D,OAAO;gBACL,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,QAAQ;gBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,KAAK;gBACtB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAClB,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,GAAG;YACd,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SACpB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAgC,CAAC;YACrD,OAAO,WAAW,CAAI,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,GAAG,EAAE,QAAQ;YACb,EAAE;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAA8B,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAgC,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA8B,CAAC;QACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAA+B,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA8B,CAAC;QACxD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAS;YACvB,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,YAAY,EAAE,QAAQ,IAAI,CAAC;YAC3B,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;YAClC,QAAQ,EAAE,QAAQ,IAAI,CAAC;YACvB,cAAc,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SACpB,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,EAAU;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,YAAY;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,GAAG;aAClB,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,6CAA6C;QAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,iBAAiB;QAMrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAuD,CAAC;QAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;YAC1B,MAAM,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,oEAAoE;IAEpE,+CAA+C;IAC/C,cAAc,CAAC,MAA4B;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,wCAAwC;IACxC,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAClF,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,2CAA2C;IAE3C,mDAAmD;IACnD,YAAY,CAAC,MAA0B;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAkC,CAAC,CAAC;IAC1E,CAAC;IAED,4CAA4C;IAC5C,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,2CAA2C;IAC3C,MAAM,CAAC,MAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;YACnF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAI,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,yCAAyC;IACzC,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC/D,OAAO;gBACL,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,EAAmC;gBAC7C,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAyC;YACzD,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,EAAW;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,CAAC,yCAAyC;IACrD,CAAC;IAED,+CAA+C;IAC/C,gBAAgB,CAAC,MAAiB;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;IAED,8BAA8B;IAC9B,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,gBAAgB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,mCAAmC;gBACnC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,uBAAuB;gBACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/client/queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Sandboxed Worker Module
3
+ * Re-exports all sandboxed worker components
4
+ */
5
+ export type { SandboxedWorkerOptions, RequiredSandboxedWorkerOptions, WorkerProcess, IPCRequest, IPCResponse, } from './types';
6
+ export { createWrapperScript, cleanupWrapperScript } from './wrapper';
7
+ export { SandboxedWorker } from './worker';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sandboxed Worker Module
3
+ * Re-exports all sandboxed worker components
4
+ */
5
+ export { createWrapperScript, cleanupWrapperScript } from './wrapper';
6
+ export { SandboxedWorker } from './worker';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/sandboxed/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Sandboxed Worker Types
3
+ * Type definitions for sandboxed worker processes
4
+ */
5
+ import type { SharedManager } from '../manager';
6
+ import type { Job as DomainJob } from '../../domain/types/job';
7
+ /** Sandboxed worker configuration */
8
+ export interface SandboxedWorkerOptions {
9
+ /** Path to processor file (must export default async function) */
10
+ processor: string;
11
+ /** Number of worker processes (default: 1) */
12
+ concurrency?: number;
13
+ /** Max memory per worker in MB - uses smol mode if <= 64 (default: 256) */
14
+ maxMemory?: number;
15
+ /** Job timeout in ms (default: 30000) */
16
+ timeout?: number;
17
+ /** Auto-restart crashed workers (default: true) */
18
+ autoRestart?: boolean;
19
+ /** Max restarts before giving up (default: 10) */
20
+ maxRestarts?: number;
21
+ /** Poll interval when no workers are idle (default: 10ms) */
22
+ pollInterval?: number;
23
+ /** Custom QueueManager (for testing, defaults to shared manager) */
24
+ manager?: SharedManager;
25
+ }
26
+ /** Required options with defaults applied */
27
+ export interface RequiredSandboxedWorkerOptions {
28
+ processor: string;
29
+ concurrency: number;
30
+ maxMemory: number;
31
+ timeout: number;
32
+ autoRestart: boolean;
33
+ maxRestarts: number;
34
+ pollInterval: number;
35
+ }
36
+ /** Worker process state */
37
+ export interface WorkerProcess {
38
+ worker: Worker;
39
+ busy: boolean;
40
+ currentJob: DomainJob | null;
41
+ restarts: number;
42
+ timeoutId: Timer | null;
43
+ }
44
+ /** IPC message from main to worker */
45
+ export interface IPCRequest {
46
+ type: 'job';
47
+ job: {
48
+ id: string;
49
+ data: unknown;
50
+ queue: string;
51
+ attempts: number;
52
+ };
53
+ }
54
+ /** IPC message from worker to main */
55
+ export interface IPCResponse {
56
+ type: 'result' | 'error' | 'progress';
57
+ jobId: string;
58
+ result?: unknown;
59
+ error?: string;
60
+ progress?: number;
61
+ }
62
+ //# sourceMappingURL=types.d.ts.map