bunqueue 1.9.9 → 2.0.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 (123) hide show
  1. package/dist/application/backgroundTasks.d.ts +10 -0
  2. package/dist/application/backgroundTasks.d.ts.map +1 -1
  3. package/dist/application/backgroundTasks.js +67 -6
  4. package/dist/application/backgroundTasks.js.map +1 -1
  5. package/dist/application/cleanupTasks.js +1 -1
  6. package/dist/application/cleanupTasks.js.map +1 -1
  7. package/dist/application/clientTracking.d.ts.map +1 -1
  8. package/dist/application/clientTracking.js +23 -10
  9. package/dist/application/clientTracking.js.map +1 -1
  10. package/dist/application/dependencyProcessor.d.ts.map +1 -1
  11. package/dist/application/dependencyProcessor.js +14 -13
  12. package/dist/application/dependencyProcessor.js.map +1 -1
  13. package/dist/application/eventsManager.d.ts.map +1 -1
  14. package/dist/application/eventsManager.js +16 -4
  15. package/dist/application/eventsManager.js.map +1 -1
  16. package/dist/application/jobLogsManager.d.ts +2 -2
  17. package/dist/application/jobLogsManager.d.ts.map +1 -1
  18. package/dist/application/jobLogsManager.js +13 -3
  19. package/dist/application/jobLogsManager.js.map +1 -1
  20. package/dist/application/lockManager.js +1 -1
  21. package/dist/application/lockManager.js.map +1 -1
  22. package/dist/application/operations/ack.d.ts +2 -1
  23. package/dist/application/operations/ack.d.ts.map +1 -1
  24. package/dist/application/operations/ack.js +12 -0
  25. package/dist/application/operations/ack.js.map +1 -1
  26. package/dist/application/operations/jobManagement.d.ts +1 -1
  27. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  28. package/dist/application/operations/jobManagement.js +23 -3
  29. package/dist/application/operations/jobManagement.js.map +1 -1
  30. package/dist/application/operations/push.d.ts +1 -1
  31. package/dist/application/operations/push.d.ts.map +1 -1
  32. package/dist/application/operations/push.js +13 -5
  33. package/dist/application/operations/push.js.map +1 -1
  34. package/dist/application/operations/queryOperations.d.ts +3 -0
  35. package/dist/application/operations/queryOperations.d.ts.map +1 -1
  36. package/dist/application/operations/queryOperations.js +29 -0
  37. package/dist/application/operations/queryOperations.js.map +1 -1
  38. package/dist/application/queueManager.d.ts +15 -1
  39. package/dist/application/queueManager.d.ts.map +1 -1
  40. package/dist/application/queueManager.js +69 -2
  41. package/dist/application/queueManager.js.map +1 -1
  42. package/dist/application/stallDetection.js +25 -20
  43. package/dist/application/stallDetection.js.map +1 -1
  44. package/dist/application/webhookManager.d.ts.map +1 -1
  45. package/dist/application/webhookManager.js +18 -2
  46. package/dist/application/webhookManager.js.map +1 -1
  47. package/dist/application/workerManager.d.ts.map +1 -1
  48. package/dist/application/workerManager.js +4 -2
  49. package/dist/application/workerManager.js.map +1 -1
  50. package/dist/client/events.d.ts +29 -0
  51. package/dist/client/events.d.ts.map +1 -1
  52. package/dist/client/events.js +92 -21
  53. package/dist/client/events.js.map +1 -1
  54. package/dist/client/flow.d.ts +122 -3
  55. package/dist/client/flow.d.ts.map +1 -1
  56. package/dist/client/flow.js +374 -2
  57. package/dist/client/flow.js.map +1 -1
  58. package/dist/client/index.d.ts +2 -2
  59. package/dist/client/index.d.ts.map +1 -1
  60. package/dist/client/queue/queue.d.ts +260 -1
  61. package/dist/client/queue/queue.d.ts.map +1 -1
  62. package/dist/client/queue/queue.js +1343 -16
  63. package/dist/client/queue/queue.js.map +1 -1
  64. package/dist/client/tcpPool.d.ts.map +1 -1
  65. package/dist/client/tcpPool.js +19 -8
  66. package/dist/client/tcpPool.js.map +1 -1
  67. package/dist/client/types.d.ts +430 -13
  68. package/dist/client/types.d.ts.map +1 -1
  69. package/dist/client/types.js +346 -5
  70. package/dist/client/types.js.map +1 -1
  71. package/dist/client/worker/ackBatcher.d.ts +1 -0
  72. package/dist/client/worker/ackBatcher.d.ts.map +1 -1
  73. package/dist/client/worker/ackBatcher.js +9 -0
  74. package/dist/client/worker/ackBatcher.js.map +1 -1
  75. package/dist/client/worker/processor.js +6 -1
  76. package/dist/client/worker/processor.js.map +1 -1
  77. package/dist/client/worker/worker.d.ts +117 -0
  78. package/dist/client/worker/worker.d.ts.map +1 -1
  79. package/dist/client/worker/worker.js +375 -3
  80. package/dist/client/worker/worker.js.map +1 -1
  81. package/dist/domain/queue/priorityQueue.d.ts.map +1 -1
  82. package/dist/domain/queue/priorityQueue.js +24 -18
  83. package/dist/domain/queue/priorityQueue.js.map +1 -1
  84. package/dist/domain/queue/shard.d.ts +4 -0
  85. package/dist/domain/queue/shard.d.ts.map +1 -1
  86. package/dist/domain/queue/shard.js +21 -7
  87. package/dist/domain/queue/shard.js.map +1 -1
  88. package/dist/domain/types/job.d.ts +89 -2
  89. package/dist/domain/types/job.d.ts.map +1 -1
  90. package/dist/domain/types/job.js +94 -26
  91. package/dist/domain/types/job.js.map +1 -1
  92. package/dist/domain/types/queue.d.ts +11 -1
  93. package/dist/domain/types/queue.d.ts.map +1 -1
  94. package/dist/infrastructure/persistence/sqliteBatch.d.ts +9 -4
  95. package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -1
  96. package/dist/infrastructure/persistence/sqliteBatch.js +34 -17
  97. package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -1
  98. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -1
  99. package/dist/infrastructure/persistence/sqliteSerializer.js +14 -0
  100. package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -1
  101. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
  102. package/dist/infrastructure/scheduler/cronScheduler.js +29 -15
  103. package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
  104. package/dist/infrastructure/server/handlers/query.d.ts.map +1 -1
  105. package/dist/infrastructure/server/handlers/query.js +1 -16
  106. package/dist/infrastructure/server/handlers/query.js.map +1 -1
  107. package/dist/infrastructure/server/rateLimiter.d.ts.map +1 -1
  108. package/dist/infrastructure/server/rateLimiter.js +5 -3
  109. package/dist/infrastructure/server/rateLimiter.js.map +1 -1
  110. package/dist/infrastructure/server/tcp.d.ts.map +1 -1
  111. package/dist/infrastructure/server/tcp.js +36 -4
  112. package/dist/infrastructure/server/tcp.js.map +1 -1
  113. package/dist/main.js +5 -2
  114. package/dist/main.js.map +1 -1
  115. package/dist/shared/lock.d.ts +1 -1
  116. package/dist/shared/lock.d.ts.map +1 -1
  117. package/dist/shared/lock.js +6 -4
  118. package/dist/shared/lock.js.map +1 -1
  119. package/dist/shared/lru.d.ts +28 -0
  120. package/dist/shared/lru.d.ts.map +1 -1
  121. package/dist/shared/lru.js +28 -0
  122. package/dist/shared/lru.js.map +1 -1
  123. package/package.json +1 -1
@@ -2,6 +2,71 @@
2
2
  * Client Types
3
3
  */
4
4
  import type { Job as InternalJob } from '../domain/types/job';
5
+ /** Job state type */
6
+ export type JobStateType = 'waiting' | 'delayed' | 'active' | 'completed' | 'failed' | 'unknown';
7
+ /** Job JSON representation (BullMQ v5 compatible) */
8
+ export interface JobJson<T = unknown> {
9
+ id: string;
10
+ name: string;
11
+ data: T;
12
+ opts: JobOptions;
13
+ progress: number;
14
+ delay: number;
15
+ timestamp: number;
16
+ attemptsMade: number;
17
+ stacktrace: string[] | null;
18
+ returnvalue?: unknown;
19
+ failedReason?: string;
20
+ finishedOn?: number;
21
+ processedOn?: number;
22
+ queueQualifiedName: string;
23
+ parentKey?: string;
24
+ }
25
+ /** Job JSON raw representation (BullMQ v5 compatible) */
26
+ export interface JobJsonRaw {
27
+ id: string;
28
+ name: string;
29
+ data: string;
30
+ opts: string;
31
+ progress: string;
32
+ delay: string;
33
+ timestamp: string;
34
+ attemptsMade: string;
35
+ stacktrace: string | null;
36
+ returnvalue?: string;
37
+ failedReason?: string;
38
+ finishedOn?: string;
39
+ processedOn?: string;
40
+ parentKey?: string;
41
+ }
42
+ /** Options for changePriority (BullMQ v5 compatible) */
43
+ export interface ChangePriorityOpts {
44
+ priority: number;
45
+ lifo?: boolean;
46
+ }
47
+ /** Options for getDependencies (BullMQ v5 compatible) */
48
+ export interface GetDependenciesOpts {
49
+ processed?: {
50
+ cursor?: number;
51
+ count?: number;
52
+ };
53
+ unprocessed?: {
54
+ cursor?: number;
55
+ count?: number;
56
+ };
57
+ }
58
+ /** Dependencies result (BullMQ v5 compatible) */
59
+ export interface JobDependencies {
60
+ processed: Record<string, unknown>;
61
+ unprocessed: string[];
62
+ nextProcessedCursor?: number;
63
+ nextUnprocessedCursor?: number;
64
+ }
65
+ /** Dependencies count result (BullMQ v5 compatible) */
66
+ export interface JobDependenciesCount {
67
+ processed: number;
68
+ unprocessed: number;
69
+ }
5
70
  /** Job interface exposed to users */
6
71
  export interface Job<T = unknown> {
7
72
  id: string;
@@ -13,38 +78,282 @@ export interface Job<T = unknown> {
13
78
  progress: number;
14
79
  returnvalue?: unknown;
15
80
  failedReason?: string;
81
+ /** Parent job reference (if this job is part of a flow) */
82
+ parent?: {
83
+ id: string;
84
+ queueQualifiedName: string;
85
+ };
86
+ /** Delay in ms before job becomes available for processing */
87
+ delay: number;
88
+ /** Timestamp when job started processing */
89
+ processedOn?: number;
90
+ /** Timestamp when job finished (completed or failed) */
91
+ finishedOn?: number;
92
+ /** Stack traces from failed attempts */
93
+ stacktrace: string[] | null;
94
+ /** Number of times this job has been stalled */
95
+ stalledCounter: number;
96
+ /** Job priority (higher = processed sooner) */
97
+ priority: number;
98
+ /** Parent key in format queueName:jobId */
99
+ parentKey?: string;
100
+ /** Original job options */
101
+ opts: JobOptions;
102
+ /** Lock token for this job (if processing) */
103
+ token?: string;
104
+ /** Worker/client identifier processing this job */
105
+ processedBy?: string;
106
+ /** Deduplication ID (if set via jobId) */
107
+ deduplicationId?: string;
108
+ /** Repeat job key (for repeatable jobs) */
109
+ repeatJobKey?: string;
110
+ /** Number of times job processing has been started (includes retries) */
111
+ attemptsStarted: number;
16
112
  /** Update job progress (0-100) */
17
113
  updateProgress(progress: number, message?: string): Promise<void>;
18
114
  /** Log a message to the job */
19
115
  log(message: string): Promise<void>;
116
+ /** Get current job state */
117
+ getState(): Promise<JobStateType>;
118
+ /** Remove this job from the queue */
119
+ remove(): Promise<void>;
120
+ /** Retry this job */
121
+ retry(): Promise<void>;
122
+ /**
123
+ * Get the return values of all children jobs (BullMQ v5 compatible).
124
+ * Returns a Record where keys are job keys (queueName:jobId) and values are return values.
125
+ */
126
+ getChildrenValues(): Promise<Record<string, unknown>>;
127
+ /** Check if job is in waiting state */
128
+ isWaiting(): Promise<boolean>;
129
+ /** Check if job is currently active/processing */
130
+ isActive(): Promise<boolean>;
131
+ /** Check if job is delayed */
132
+ isDelayed(): Promise<boolean>;
133
+ /** Check if job has completed successfully */
134
+ isCompleted(): Promise<boolean>;
135
+ /** Check if job has failed */
136
+ isFailed(): Promise<boolean>;
137
+ /** Check if job is waiting for children to complete */
138
+ isWaitingChildren(): Promise<boolean>;
139
+ /** Update job data */
140
+ updateData(data: T): Promise<void>;
141
+ /** Promote delayed job to waiting */
142
+ promote(): Promise<void>;
143
+ /** Change job delay */
144
+ changeDelay(delay: number): Promise<void>;
145
+ /** Change job priority */
146
+ changePriority(opts: ChangePriorityOpts): Promise<void>;
147
+ /** Extend job lock duration */
148
+ extendLock(token: string, duration: number): Promise<number>;
149
+ /** Clear job logs */
150
+ clearLogs(keepLogs?: number): Promise<void>;
151
+ /** Get job dependencies (children) */
152
+ getDependencies(opts?: GetDependenciesOpts): Promise<JobDependencies>;
153
+ /** Get count of job dependencies */
154
+ getDependenciesCount(opts?: GetDependenciesOpts): Promise<JobDependenciesCount>;
155
+ /** Get job as JSON object */
156
+ toJSON(): JobJson<T>;
157
+ /** Get job as raw JSON (stringified values) */
158
+ asJSON(): JobJsonRaw;
159
+ /**
160
+ * Move job to completed state.
161
+ * @param returnValue - The return value of the job
162
+ * @param token - Lock token (optional in embedded mode)
163
+ * @param fetchNext - Whether to fetch the next job (default: true)
164
+ * @returns The next job data or null
165
+ */
166
+ moveToCompleted(returnValue: unknown, token?: string, fetchNext?: boolean): Promise<unknown>;
167
+ /**
168
+ * Move job to failed state.
169
+ * @param error - The error that caused the failure
170
+ * @param token - Lock token (optional in embedded mode)
171
+ * @param fetchNext - Whether to fetch the next job (default: true)
172
+ */
173
+ moveToFailed(error: Error, token?: string, fetchNext?: boolean): Promise<void>;
174
+ /**
175
+ * Move job back to waiting state.
176
+ * @param token - Lock token (optional in embedded mode)
177
+ * @returns true if job was moved
178
+ */
179
+ moveToWait(token?: string): Promise<boolean>;
180
+ /**
181
+ * Move job to delayed state.
182
+ * @param timestamp - When the job should become available
183
+ * @param token - Lock token (optional in embedded mode)
184
+ */
185
+ moveToDelayed(timestamp: number, token?: string): Promise<void>;
186
+ /**
187
+ * Move job to waiting-children state.
188
+ * Job will wait for all children to complete before processing.
189
+ * @param token - Lock token (optional in embedded mode)
190
+ * @param opts - Options for the operation
191
+ * @returns true if job was moved
192
+ */
193
+ moveToWaitingChildren(token?: string, opts?: {
194
+ child?: {
195
+ id: string;
196
+ queue: string;
197
+ };
198
+ }): Promise<boolean>;
199
+ /**
200
+ * Wait until the job has finished (completed or failed).
201
+ * @param queueEvents - QueueEvents instance to listen on
202
+ * @param ttl - Maximum time to wait in ms (optional)
203
+ * @returns The job's return value
204
+ * @throws Error if job fails or times out
205
+ */
206
+ waitUntilFinished(queueEvents: unknown, ttl?: number): Promise<unknown>;
207
+ /**
208
+ * Discard this job - marks it to not be processed further.
209
+ * The job will be moved to failed state with a "discarded" reason.
210
+ */
211
+ discard(): void;
212
+ /**
213
+ * Get return values of failed children jobs.
214
+ * @returns Record where keys are job keys (queueName:jobId) and values are failure reasons
215
+ */
216
+ getFailedChildrenValues(): Promise<Record<string, string>>;
217
+ /**
218
+ * Get child job failures that were explicitly ignored (via ignoreDependencyOnFailure).
219
+ * @returns Record where keys are job keys and values are failure reasons
220
+ */
221
+ getIgnoredChildrenFailures(): Promise<Record<string, string>>;
222
+ /**
223
+ * Remove this job's dependency relationship with its parent.
224
+ * @returns true if dependency was removed
225
+ */
226
+ removeChildDependency(): Promise<boolean>;
227
+ /**
228
+ * Remove the deduplication key associated with this job.
229
+ * @returns true if key was removed
230
+ */
231
+ removeDeduplicationKey(): Promise<boolean>;
232
+ /**
233
+ * Remove all unprocessed child jobs of this job.
234
+ */
235
+ removeUnprocessedChildren(): Promise<void>;
236
+ }
237
+ /** Parent job reference for flow dependencies */
238
+ export interface ParentOpts {
239
+ /** Parent job ID */
240
+ id: string;
241
+ /** Parent job queue name */
242
+ queue: string;
243
+ }
244
+ /** Backoff configuration (BullMQ v5 compatible) */
245
+ export interface BackoffOptions {
246
+ /** Backoff strategy type */
247
+ type: 'fixed' | 'exponential';
248
+ /** Base delay in milliseconds */
249
+ delay: number;
250
+ }
251
+ /** Keep jobs configuration (BullMQ v5 compatible) */
252
+ export interface KeepJobs {
253
+ /** Maximum age in milliseconds */
254
+ age?: number;
255
+ /** Maximum count of jobs to keep */
256
+ count?: number;
257
+ }
258
+ /** Deduplication options (BullMQ v5 compatible) */
259
+ export interface DeduplicationOptions {
260
+ /** Unique deduplication ID */
261
+ id: string;
262
+ /** TTL in milliseconds for the deduplication key */
263
+ ttl?: number;
264
+ /** Extend TTL when duplicate job arrives (for debounce mode) */
265
+ extend?: boolean;
266
+ /** Replace job data when duplicate arrives while in delayed state */
267
+ replace?: boolean;
268
+ }
269
+ /** Debounce options (BullMQ v5 compatible) */
270
+ export interface DebounceOptions {
271
+ /** Unique debounce ID */
272
+ id: string;
273
+ /** TTL in milliseconds for the debounce window */
274
+ ttl: number;
275
+ }
276
+ /** Repeat configuration (BullMQ v5 compatible) */
277
+ export interface RepeatOptions {
278
+ /** Repeat every N milliseconds */
279
+ every?: number;
280
+ /** Maximum repetitions (omit for infinite) */
281
+ limit?: number;
282
+ /** Cron pattern (alternative to every) */
283
+ pattern?: string;
284
+ /** Start date for repeat jobs */
285
+ startDate?: Date | string | number;
286
+ /** End date for repeat jobs */
287
+ endDate?: Date | string | number;
288
+ /** Timezone for cron pattern */
289
+ tz?: string;
290
+ /** Execute immediately on start */
291
+ immediately?: boolean;
292
+ /** Current repeat count (internal) */
293
+ count?: number;
294
+ /** Previous execution timestamp (internal) */
295
+ prevMillis?: number;
296
+ /** Offset in milliseconds */
297
+ offset?: number;
298
+ /** Custom job ID for repeat jobs */
299
+ jobId?: string;
20
300
  }
21
301
  /** Job options when adding to queue */
22
302
  export interface JobOptions {
303
+ /** Job priority (higher = processed sooner) */
23
304
  priority?: number;
305
+ /** Delay in milliseconds before job becomes available */
24
306
  delay?: number;
307
+ /** Maximum number of attempts */
25
308
  attempts?: number;
26
- backoff?: number;
309
+ /** Backoff delay or configuration between retries */
310
+ backoff?: number | BackoffOptions;
311
+ /** Processing timeout in milliseconds */
27
312
  timeout?: number;
313
+ /** Custom job ID (for idempotent/deduplication) */
28
314
  jobId?: string;
29
- removeOnComplete?: boolean;
30
- removeOnFail?: boolean;
315
+ /** Remove job on completion (can be boolean, max age in ms, or KeepJobs config) */
316
+ removeOnComplete?: boolean | number | KeepJobs;
317
+ /** Remove job on failure (can be boolean, max age in ms, or KeepJobs config) */
318
+ removeOnFail?: boolean | number | KeepJobs;
31
319
  /** Stall timeout in ms - job is stalled if no heartbeat after this time */
32
320
  stallTimeout?: number;
33
321
  /** Repeat configuration for recurring jobs */
34
- repeat?: {
35
- /** Repeat every N milliseconds */
36
- every?: number;
37
- /** Maximum repetitions (omit for infinite) */
38
- limit?: number;
39
- /** Cron pattern (alternative to every) */
40
- pattern?: string;
41
- };
322
+ repeat?: RepeatOptions;
42
323
  /**
43
324
  * Force immediate persistence to disk (bypass write buffer).
44
325
  * Use for critical jobs where data loss is unacceptable.
45
326
  * Default: false (uses buffered writes for better throughput)
46
327
  */
47
328
  durable?: boolean;
329
+ /**
330
+ * Parent job reference for flow dependencies (BullMQ v5 compatible).
331
+ * When set, this job becomes a child of the specified parent.
332
+ * The parent will wait for all children to complete before processing.
333
+ */
334
+ parent?: ParentOpts;
335
+ /** Process jobs in LIFO order (newest first) */
336
+ lifo?: boolean;
337
+ /** Maximum stack trace lines to store on failure */
338
+ stackTraceLimit?: number;
339
+ /** Maximum number of log entries to keep */
340
+ keepLogs?: number;
341
+ /** Maximum job data size in bytes */
342
+ sizeLimit?: number;
343
+ /** Fail parent job if this child job fails */
344
+ failParentOnFailure?: boolean;
345
+ /** Remove dependency relationship if this job fails */
346
+ removeDependencyOnFailure?: boolean;
347
+ /** Continue parent processing even if this child fails */
348
+ continueParentOnFailure?: boolean;
349
+ /** Move job to parent's failed dependencies instead of blocking parent */
350
+ ignoreDependencyOnFailure?: boolean;
351
+ /** Job creation timestamp (default: Date.now()) */
352
+ timestamp?: number;
353
+ /** Deduplication configuration */
354
+ deduplication?: DeduplicationOptions;
355
+ /** Debounce configuration */
356
+ debounce?: DebounceOptions;
48
357
  }
49
358
  /** Connection options for TCP mode */
50
359
  export interface ConnectionOptions {
@@ -67,6 +376,15 @@ export interface QueueOptions {
67
376
  /** Use embedded mode (in-process SQLite) instead of TCP */
68
377
  embedded?: boolean;
69
378
  }
379
+ /** Rate limiter configuration for Worker (BullMQ v5 compatible) */
380
+ export interface RateLimiterOptions {
381
+ /** Maximum number of jobs to process in the duration window */
382
+ max: number;
383
+ /** Duration window in milliseconds */
384
+ duration: number;
385
+ /** Optional group key for per-group rate limiting */
386
+ groupKey?: string;
387
+ }
70
388
  /** Worker options */
71
389
  export interface WorkerOptions {
72
390
  concurrency?: number;
@@ -88,6 +406,31 @@ export interface WorkerOptions {
88
406
  * Default: true
89
407
  */
90
408
  useLocks?: boolean;
409
+ /**
410
+ * Rate limiter for controlling job processing rate (BullMQ v5 compatible).
411
+ * When set, limits the number of jobs processed within the duration window.
412
+ */
413
+ limiter?: RateLimiterOptions;
414
+ /** Lock duration in ms (default: 30000) - how long a job lock lasts before expiring */
415
+ lockDuration?: number;
416
+ /** Maximum number of times a job can be stalled before being moved to failed (default: 1) */
417
+ maxStalledCount?: number;
418
+ /** Skip stalled job check (default: false) */
419
+ skipStalledCheck?: boolean;
420
+ /** Skip lock renewal via heartbeat (default: false) */
421
+ skipLockRenewal?: boolean;
422
+ /** Delay in ms when draining queue (default: 5000) */
423
+ drainDelay?: number;
424
+ /** Remove jobs on complete (can be boolean or max age/count) */
425
+ removeOnComplete?: boolean | number | {
426
+ age?: number;
427
+ count?: number;
428
+ };
429
+ /** Remove jobs on fail (can be boolean or max age/count) */
430
+ removeOnFail?: boolean | number | {
431
+ age?: number;
432
+ count?: number;
433
+ };
91
434
  }
92
435
  /** Stall configuration for a queue */
93
436
  export interface StallConfig {
@@ -157,10 +500,84 @@ export interface DlqFilter {
157
500
  export type Processor<T = unknown, R = unknown> = (job: Job<T>) => Promise<R> | R;
158
501
  /** Queue events */
159
502
  export type QueueEventType = 'waiting' | 'active' | 'completed' | 'failed' | 'progress' | 'removed' | 'drained';
503
+ /** Options for creating a public job */
504
+ export interface CreatePublicJobOptions {
505
+ job: InternalJob;
506
+ name: string;
507
+ updateProgress: (id: string, progress: number, message?: string) => Promise<void>;
508
+ log: (id: string, message: string) => Promise<void>;
509
+ getState?: (id: string) => Promise<JobStateType>;
510
+ remove?: (id: string) => Promise<void>;
511
+ retry?: (id: string) => Promise<void>;
512
+ getChildrenValues?: (id: string) => Promise<Record<string, unknown>>;
513
+ updateData?: (id: string, data: unknown) => Promise<void>;
514
+ promote?: (id: string) => Promise<void>;
515
+ changeDelay?: (id: string, delay: number) => Promise<void>;
516
+ changePriority?: (id: string, opts: ChangePriorityOpts) => Promise<void>;
517
+ extendLock?: (id: string, token: string, duration: number) => Promise<number>;
518
+ clearLogs?: (id: string, keepLogs?: number) => Promise<void>;
519
+ getDependencies?: (id: string, opts?: GetDependenciesOpts) => Promise<JobDependencies>;
520
+ getDependenciesCount?: (id: string, opts?: GetDependenciesOpts) => Promise<JobDependenciesCount>;
521
+ moveToCompleted?: (id: string, returnValue: unknown, token?: string) => Promise<unknown>;
522
+ moveToFailed?: (id: string, error: Error, token?: string) => Promise<void>;
523
+ moveToWait?: (id: string, token?: string) => Promise<boolean>;
524
+ moveToDelayed?: (id: string, timestamp: number, token?: string) => Promise<void>;
525
+ moveToWaitingChildren?: (id: string, token?: string, opts?: {
526
+ child?: {
527
+ id: string;
528
+ queue: string;
529
+ };
530
+ }) => Promise<boolean>;
531
+ waitUntilFinished?: (id: string, queueEvents: unknown, ttl?: number) => Promise<unknown>;
532
+ discard?: (id: string) => void;
533
+ getFailedChildrenValues?: (id: string) => Promise<Record<string, string>>;
534
+ getIgnoredChildrenFailures?: (id: string) => Promise<Record<string, string>>;
535
+ removeChildDependency?: (id: string) => Promise<boolean>;
536
+ removeDeduplicationKey?: (id: string) => Promise<boolean>;
537
+ removeUnprocessedChildren?: (id: string) => Promise<void>;
538
+ token?: string;
539
+ processedBy?: string;
540
+ stacktrace?: string[] | null;
541
+ }
160
542
  /** Convert internal job to public job (with methods) */
161
- export declare function createPublicJob<T>(job: InternalJob, name: string, updateProgress: (id: string, progress: number, message?: string) => Promise<void>, log: (id: string, message: string) => Promise<void>): Job<T>;
543
+ export declare function createPublicJob<T>(opts: CreatePublicJobOptions): Job<T>;
544
+ /** Options for creating a simple public job */
545
+ export interface ToPublicJobOptions {
546
+ job: InternalJob;
547
+ name: string;
548
+ getState?: (id: string) => Promise<JobStateType>;
549
+ remove?: (id: string) => Promise<void>;
550
+ retry?: (id: string) => Promise<void>;
551
+ getChildrenValues?: (id: string) => Promise<Record<string, unknown>>;
552
+ updateData?: (id: string, data: unknown) => Promise<void>;
553
+ promote?: (id: string) => Promise<void>;
554
+ changeDelay?: (id: string, delay: number) => Promise<void>;
555
+ changePriority?: (id: string, opts: ChangePriorityOpts) => Promise<void>;
556
+ extendLock?: (id: string, token: string, duration: number) => Promise<number>;
557
+ clearLogs?: (id: string, keepLogs?: number) => Promise<void>;
558
+ getDependencies?: (id: string, opts?: GetDependenciesOpts) => Promise<JobDependencies>;
559
+ getDependenciesCount?: (id: string, opts?: GetDependenciesOpts) => Promise<JobDependenciesCount>;
560
+ moveToCompleted?: (id: string, returnValue: unknown, token?: string) => Promise<unknown>;
561
+ moveToFailed?: (id: string, error: Error, token?: string) => Promise<void>;
562
+ moveToWait?: (id: string, token?: string) => Promise<boolean>;
563
+ moveToDelayed?: (id: string, timestamp: number, token?: string) => Promise<void>;
564
+ moveToWaitingChildren?: (id: string, token?: string, opts?: {
565
+ child?: {
566
+ id: string;
567
+ queue: string;
568
+ };
569
+ }) => Promise<boolean>;
570
+ waitUntilFinished?: (id: string, queueEvents: unknown, ttl?: number) => Promise<unknown>;
571
+ discard?: (id: string) => void;
572
+ getFailedChildrenValues?: (id: string) => Promise<Record<string, string>>;
573
+ getIgnoredChildrenFailures?: (id: string) => Promise<Record<string, string>>;
574
+ removeChildDependency?: (id: string) => Promise<boolean>;
575
+ removeDeduplicationKey?: (id: string) => Promise<boolean>;
576
+ removeUnprocessedChildren?: (id: string) => Promise<void>;
577
+ stacktrace?: string[] | null;
578
+ }
162
579
  /** Simple public job without methods (for Queue.getJob) */
163
- export declare function toPublicJob<T>(job: InternalJob, name: string): Job<T>;
580
+ export declare function toPublicJob<T>(opts: ToPublicJobOptions): Job<T>;
164
581
  import type { DlqEntry as InternalDlqEntry } from '../domain/types/dlq';
165
582
  /** Convert internal DLQ entry to public DLQ entry */
166
583
  export declare function toDlqEntry<T>(entry: InternalDlqEntry): DlqEntry<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}