bunqueue 2.5.6 → 2.5.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 (47) hide show
  1. package/dist/application/contextFactory.d.ts +1 -0
  2. package/dist/application/contextFactory.d.ts.map +1 -1
  3. package/dist/application/contextFactory.js +1 -0
  4. package/dist/application/contextFactory.js.map +1 -1
  5. package/dist/application/operations/jobManagement.d.ts +1 -0
  6. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  7. package/dist/application/operations/jobManagement.js +29 -5
  8. package/dist/application/operations/jobManagement.js.map +1 -1
  9. package/dist/application/queueManager.d.ts +1 -0
  10. package/dist/application/queueManager.d.ts.map +1 -1
  11. package/dist/application/queueManager.js +14 -0
  12. package/dist/application/queueManager.js.map +1 -1
  13. package/dist/cli/help.js +1 -1
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +12 -0
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/client/flow.d.ts +2 -0
  18. package/dist/client/flow.d.ts.map +1 -1
  19. package/dist/client/flow.js +30 -4
  20. package/dist/client/flow.js.map +1 -1
  21. package/dist/client/flowJobFactory.d.ts +14 -1
  22. package/dist/client/flowJobFactory.d.ts.map +1 -1
  23. package/dist/client/flowJobFactory.js +33 -17
  24. package/dist/client/flowJobFactory.js.map +1 -1
  25. package/dist/client/index.d.ts +1 -1
  26. package/dist/client/index.d.ts.map +1 -1
  27. package/dist/client/sandboxed/queueOps.d.ts +23 -0
  28. package/dist/client/sandboxed/queueOps.d.ts.map +1 -0
  29. package/dist/client/sandboxed/queueOps.js +51 -0
  30. package/dist/client/sandboxed/queueOps.js.map +1 -0
  31. package/dist/client/sandboxed/types.d.ts +5 -0
  32. package/dist/client/sandboxed/types.d.ts.map +1 -1
  33. package/dist/client/sandboxed/worker.d.ts +14 -2
  34. package/dist/client/sandboxed/worker.d.ts.map +1 -1
  35. package/dist/client/sandboxed/worker.js +103 -21
  36. package/dist/client/sandboxed/worker.js.map +1 -1
  37. package/dist/client/types.d.ts +17 -1
  38. package/dist/client/types.d.ts.map +1 -1
  39. package/dist/client/types.js.map +1 -1
  40. package/dist/client/worker/processor.d.ts.map +1 -1
  41. package/dist/client/worker/processor.js +0 -1
  42. package/dist/client/worker/processor.js.map +1 -1
  43. package/dist/client/worker/worker.d.ts +23 -1
  44. package/dist/client/worker/worker.d.ts.map +1 -1
  45. package/dist/client/worker/worker.js +8 -0
  46. package/dist/client/worker/worker.js.map +1 -1
  47. package/package.json +1 -1
@@ -3,8 +3,21 @@
3
3
  * Creates simple Job objects for FlowProducer results
4
4
  */
5
5
  import type { Job } from './types';
6
+ /** Callbacks for flow job mutation operations */
7
+ export interface FlowJobCallbacks {
8
+ updateData?: (id: string, data: unknown) => Promise<void>;
9
+ updateProgress?: (id: string, progress: number | object) => Promise<void>;
10
+ log?: (id: string, message: string) => Promise<void>;
11
+ promote?: (id: string) => Promise<void>;
12
+ remove?: (id: string) => Promise<void>;
13
+ changePriority?: (id: string, priority: number) => Promise<void>;
14
+ changeDelay?: (id: string, delay: number) => Promise<void>;
15
+ clearLogs?: (id: string) => Promise<void>;
16
+ retry?: (id: string) => Promise<void>;
17
+ getState?: (id: string) => Promise<string>;
18
+ }
6
19
  /** Extract user data (remove internal fields like __parentId, __childrenIds, name) */
7
20
  export declare function extractUserDataFromInternal(data: Record<string, unknown>): unknown;
8
21
  /** Create a simple Job object for flow results */
9
- export declare function createFlowJobObject<T>(id: string, name: string, data: T, queueName: string): Job<T>;
22
+ export declare function createFlowJobObject<T>(id: string, name: string, data: T, queueName: string, callbacks?: FlowJobCallbacks): Job<T>;
10
23
  //# sourceMappingURL=flowJobFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowJobFactory.d.ts","sourceRoot":"","sources":["../../src/client/flowJobFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEnC,sFAAsF;AACtF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQlF;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,GAChB,GAAG,CAAC,CAAC,CAAC,CAuFR"}
1
+ {"version":3,"file":"flowJobFactory.d.ts","sourceRoot":"","sources":["../../src/client/flowJobFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEnC,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,sFAAsF;AACtF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQlF;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,gBAAgB,GAC3B,GAAG,CAAC,CAAC,CAAC,CAmHR"}
@@ -13,7 +13,7 @@ export function extractUserDataFromInternal(data) {
13
13
  return result;
14
14
  }
15
15
  /** Create a simple Job object for flow results */
16
- export function createFlowJobObject(id, name, data, queueName) {
16
+ export function createFlowJobObject(id, name, data, queueName, callbacks) {
17
17
  const ts = Date.now();
18
18
  return {
19
19
  id,
@@ -37,27 +37,43 @@ export function createFlowJobObject(id, name, data, queueName) {
37
37
  deduplicationId: undefined,
38
38
  repeatJobKey: undefined,
39
39
  attemptsStarted: 0,
40
- // Methods - no-op implementations for flow results
41
- updateProgress: () => Promise.resolve(),
42
- log: () => Promise.resolve(),
43
- getState: () => Promise.resolve('waiting'),
44
- remove: () => Promise.resolve(),
45
- retry: () => Promise.resolve(),
40
+ // Methods - wired to callbacks when available, otherwise no-op
41
+ updateProgress: (progress) => callbacks?.updateProgress
42
+ ? callbacks.updateProgress(id, progress)
43
+ : Promise.resolve(),
44
+ log: (message) => (callbacks?.log ? callbacks.log(id, message) : Promise.resolve()),
45
+ getState: () => callbacks?.getState
46
+ ? callbacks.getState(id)
47
+ : Promise.resolve('waiting'),
48
+ remove: () => (callbacks?.remove ? callbacks.remove(id) : Promise.resolve()),
49
+ retry: () => (callbacks?.retry ? callbacks.retry(id) : Promise.resolve()),
46
50
  getChildrenValues: () => Promise.resolve({}),
47
51
  // BullMQ v5 state check methods
48
- isWaiting: () => Promise.resolve(true),
49
- isActive: () => Promise.resolve(false),
50
- isDelayed: () => Promise.resolve(false),
51
- isCompleted: () => Promise.resolve(false),
52
- isFailed: () => Promise.resolve(false),
52
+ isWaiting: () => callbacks?.getState
53
+ ? callbacks.getState(id).then((s) => s === 'waiting')
54
+ : Promise.resolve(true),
55
+ isActive: () => callbacks?.getState
56
+ ? callbacks.getState(id).then((s) => s === 'active')
57
+ : Promise.resolve(false),
58
+ isDelayed: () => callbacks?.getState
59
+ ? callbacks.getState(id).then((s) => s === 'delayed')
60
+ : Promise.resolve(false),
61
+ isCompleted: () => callbacks?.getState
62
+ ? callbacks.getState(id).then((s) => s === 'completed')
63
+ : Promise.resolve(false),
64
+ isFailed: () => callbacks?.getState
65
+ ? callbacks.getState(id).then((s) => s === 'failed')
66
+ : Promise.resolve(false),
53
67
  isWaitingChildren: () => Promise.resolve(false),
54
68
  // BullMQ v5 mutation methods
55
- updateData: () => Promise.resolve(),
56
- promote: () => Promise.resolve(),
57
- changeDelay: () => Promise.resolve(),
58
- changePriority: () => Promise.resolve(),
69
+ updateData: (newData) => callbacks?.updateData ? callbacks.updateData(id, newData) : Promise.resolve(),
70
+ promote: () => (callbacks?.promote ? callbacks.promote(id) : Promise.resolve()),
71
+ changeDelay: (delay) => callbacks?.changeDelay ? callbacks.changeDelay(id, delay) : Promise.resolve(),
72
+ changePriority: (opts) => callbacks?.changePriority
73
+ ? callbacks.changePriority(id, opts.priority)
74
+ : Promise.resolve(),
59
75
  extendLock: () => Promise.resolve(0),
60
- clearLogs: () => Promise.resolve(),
76
+ clearLogs: () => (callbacks?.clearLogs ? callbacks.clearLogs(id) : Promise.resolve()),
61
77
  // BullMQ v5 dependency methods
62
78
  getDependencies: () => Promise.resolve({ processed: {}, unprocessed: [] }),
63
79
  getDependenciesCount: () => Promise.resolve({ processed: 0, unprocessed: 0 }),
@@ -1 +1 @@
1
- {"version":3,"file":"flowJobFactory.js","sourceRoot":"","sources":["../../src/client/flowJobFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flowJobFactory.js","sourceRoot":"","sources":["../../src/client/flowJobFactory.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export { shutdownManager } from './manager';
28
28
  export { closeSharedTcpClient } from './tcpClient';
29
29
  export type { ConnectionHealth } from './tcpClient';
30
30
  export { TcpConnectionPool, getSharedPool, closeAllSharedPools } from './tcpPool';
31
- export type { Job, JobOptions, JobJson, JobJsonRaw, QueueOptions, WorkerOptions, Processor, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter, FailureReason, ConnectionOptions, ParentOpts, RateLimiterOptions, ChangePriorityOpts, GetDependenciesOpts, JobDependencies, JobDependenciesCount, } from './types';
31
+ export type { Job, JobOptions, JobJson, JobJsonRaw, QueueOptions, WorkerOptions, Processor, FlowJobData, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter, FailureReason, ConnectionOptions, ParentOpts, RateLimiterOptions, ChangePriorityOpts, GetDependenciesOpts, JobDependencies, JobDependenciesCount, } from './types';
32
32
  export type { FlowStep, FlowResult, FlowJob, JobNode, FlowProducerOptions } from './flow';
33
33
  export type { SandboxedWorkerOptions } from './sandboxedWorker';
34
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EACV,GAAG,EACH,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC1F,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EACV,GAAG,EACH,UAAU,EACV,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC1F,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Queue Operations for SandboxedWorker
3
+ * Provides a unified interface for embedded and TCP mode queue operations
4
+ */
5
+ import type { Job as DomainJob, JobId } from '../../domain/types/job';
6
+ import type { SharedManager } from '../manager';
7
+ import type { TcpConnectionPool } from '../tcpPool';
8
+ /** Unified queue operations interface */
9
+ export interface QueueOps {
10
+ pull(queue: string, workerId: string, timeout: number): Promise<{
11
+ job: DomainJob | null;
12
+ token: string | null;
13
+ }>;
14
+ ack(id: JobId, result: unknown, token?: string): Promise<void>;
15
+ fail(id: JobId, error: string, token?: string): Promise<void>;
16
+ updateProgress(id: JobId, progress: number): Promise<void>;
17
+ sendHeartbeat(ids: string[], tokens: string[]): Promise<void>;
18
+ }
19
+ /** Create embedded mode operations using shared QueueManager */
20
+ export declare function createEmbeddedOps(manager: SharedManager): QueueOps;
21
+ /** Create TCP mode operations using connection pool */
22
+ export declare function createTcpOps(tcp: TcpConnectionPool): QueueOps;
23
+ //# sourceMappingURL=queueOps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queueOps.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/queueOps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,yCAAyC;AACzC,MAAM,WAAW,QAAQ;IACvB,IAAI,CACF,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC5D,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAUlE;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,GAAG,QAAQ,CA4B7D"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Queue Operations for SandboxedWorker
3
+ * Provides a unified interface for embedded and TCP mode queue operations
4
+ */
5
+ import { parseJobFromResponse } from '../worker/jobParser';
6
+ /** Create embedded mode operations using shared QueueManager */
7
+ export function createEmbeddedOps(manager) {
8
+ return {
9
+ pull: (queue, workerId, timeout) => manager.pullWithLock(queue, workerId, timeout),
10
+ ack: (id, result, token) => manager.ack(id, result, token),
11
+ fail: (id, error, token) => manager.fail(id, error, token),
12
+ updateProgress: async (id, progress) => {
13
+ await manager.updateProgress(id, progress);
14
+ },
15
+ sendHeartbeat: async () => { },
16
+ };
17
+ }
18
+ /** Create TCP mode operations using connection pool */
19
+ export function createTcpOps(tcp) {
20
+ return {
21
+ async pull(queue, workerId, timeout) {
22
+ const res = await tcp.send({ cmd: 'PULL', queue, owner: workerId, timeout });
23
+ if (!res.ok || !res.job)
24
+ return { job: null, token: null };
25
+ return {
26
+ job: parseJobFromResponse(res.job, queue),
27
+ token: res.token ?? null,
28
+ };
29
+ },
30
+ async ack(id, result, token) {
31
+ await tcp.send({ cmd: 'ACK', id: String(id), result, token: token ?? undefined });
32
+ },
33
+ async fail(id, error, token) {
34
+ await tcp.send({ cmd: 'FAIL', id: String(id), error, token: token ?? undefined });
35
+ },
36
+ async updateProgress(id, progress) {
37
+ await tcp.send({ cmd: 'Progress', id: String(id), progress });
38
+ },
39
+ async sendHeartbeat(ids, tokens) {
40
+ if (ids.length === 0)
41
+ return;
42
+ if (ids.length === 1) {
43
+ await tcp.send({ cmd: 'JobHeartbeat', id: ids[0], token: tokens[0] || undefined });
44
+ }
45
+ else {
46
+ await tcp.send({ cmd: 'JobHeartbeatB', ids, tokens });
47
+ }
48
+ },
49
+ };
50
+ }
51
+ //# sourceMappingURL=queueOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queueOps.js","sourceRoot":"","sources":["../../../src/client/sandboxed/queueOps.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Type definitions for sandboxed worker processes
4
4
  */
5
5
  import type { SharedManager } from '../manager';
6
+ import type { ConnectionOptions } from '../types';
6
7
  import type { Job as DomainJob } from '../../domain/types/job';
7
8
  /** Sandboxed worker configuration */
8
9
  export interface SandboxedWorkerOptions {
@@ -22,6 +23,10 @@ export interface SandboxedWorkerOptions {
22
23
  pollInterval?: number;
23
24
  /** Custom QueueManager (for testing, defaults to shared manager) */
24
25
  manager?: SharedManager;
26
+ /** TCP connection options (if provided, uses TCP mode instead of embedded) */
27
+ connection?: ConnectionOptions;
28
+ /** Heartbeat interval in ms for TCP lock renewal (default: 10000 for TCP, 0 for embedded) */
29
+ heartbeatInterval?: number;
25
30
  }
26
31
  /** Required options with defaults applied */
27
32
  export interface RequiredSandboxedWorkerOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,6CAA6C;AAC7C,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2BAA2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -2,19 +2,23 @@
2
2
  * Sandboxed Worker
3
3
  * Runs job processors in isolated Bun Worker processes
4
4
  */
5
+ import { EventEmitter } from 'events';
5
6
  import type { SandboxedWorkerOptions } from './types';
6
7
  /**
7
8
  * Sandboxed Worker - runs processors in isolated Bun Worker processes
8
9
  */
9
- export declare class SandboxedWorker {
10
+ export declare class SandboxedWorker extends EventEmitter {
10
11
  private readonly queueName;
11
12
  private readonly options;
12
13
  private readonly workers;
13
14
  private running;
14
15
  private pullPromise;
15
16
  private wrapperPath;
16
- private readonly manager;
17
+ private readonly ops;
18
+ private readonly tcp;
17
19
  private readonly workerId;
20
+ private heartbeatTimer;
21
+ private readonly heartbeatInterval;
18
22
  constructor(queueName: string, options: SandboxedWorkerOptions);
19
23
  /** Start the sandboxed worker pool */
20
24
  start(): Promise<void>;
@@ -37,5 +41,13 @@ export declare class SandboxedWorker {
37
41
  private fail;
38
42
  private handleTimeout;
39
43
  private handleCrash;
44
+ /** Start heartbeat timer for TCP lock renewal */
45
+ private startHeartbeat;
46
+ /** Send heartbeat for all active jobs */
47
+ private sendHeartbeat;
48
+ /** Emit 'error' only if there are listeners (avoids uncaught exception) */
49
+ private safeEmitError;
50
+ /** Create a public Job object from a DomainJob for event payloads */
51
+ private createEventJob;
40
52
  }
41
53
  //# sourceMappingURL=worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,sBAAsB,EAKvB,MAAM,SAAS,CAAC;AAyBjB;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAe9D,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,kCAAkC;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,4BAA4B;IAC5B,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAM3E,iCAAiC;IACjC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,WAAW;YAkDL,QAAQ;IAatB,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;CAuBpB"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,KAAK,EACV,sBAAsB,EAKvB,MAAM,SAAS,CAAC;AA0BjB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAW;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAE/B,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IA0B9D,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B,kCAAkC;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,4BAA4B;IAC5B,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAM3E,iCAAiC;IACjC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,WAAW;YAkDL,QAAQ;IAatB,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IA+BnB,iDAAiD;IACjD,OAAO,CAAC,cAAc;IAKtB,yCAAyC;YAC3B,aAAa;IAgB3B,2EAA2E;IAC3E,OAAO,CAAC,aAAa;IAMrB,qEAAqE;IACrE,OAAO,CAAC,cAAc;CASvB"}
@@ -2,8 +2,12 @@
2
2
  * Sandboxed Worker
3
3
  * Runs job processors in isolated Bun Worker processes
4
4
  */
5
+ import { EventEmitter } from 'events';
5
6
  import { getSharedManager } from '../manager';
7
+ import { getSharedPool, releaseSharedPool } from '../tcpPool';
8
+ import { createPublicJob } from '../jobConversion';
6
9
  import { createWrapperScript, cleanupWrapperScript } from './wrapper';
10
+ import { createEmbeddedOps, createTcpOps } from './queueOps';
7
11
  const LOG_PREFIX = '[SandboxedWorker]';
8
12
  /** Structured log helper */
9
13
  function log(level, message, data) {
@@ -23,19 +27,32 @@ function log(level, message, data) {
23
27
  /**
24
28
  * Sandboxed Worker - runs processors in isolated Bun Worker processes
25
29
  */
26
- export class SandboxedWorker {
30
+ export class SandboxedWorker extends EventEmitter {
27
31
  queueName;
28
32
  options;
29
33
  workers = [];
30
34
  running = false;
31
35
  pullPromise = null;
32
36
  wrapperPath = null;
33
- manager;
37
+ ops;
38
+ tcp;
34
39
  workerId;
40
+ heartbeatTimer = null;
41
+ heartbeatInterval;
35
42
  constructor(queueName, options) {
43
+ super();
36
44
  this.queueName = queueName;
37
- this.manager = options.manager ?? getSharedManager();
38
45
  this.workerId = `sandboxed-worker-${queueName}-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
46
+ if (options.connection) {
47
+ this.tcp = getSharedPool(options.connection);
48
+ this.ops = createTcpOps(this.tcp);
49
+ this.heartbeatInterval = options.heartbeatInterval ?? 10000;
50
+ }
51
+ else {
52
+ this.tcp = null;
53
+ this.ops = createEmbeddedOps(options.manager ?? getSharedManager());
54
+ this.heartbeatInterval = options.heartbeatInterval ?? 0;
55
+ }
39
56
  this.options = {
40
57
  processor: options.processor,
41
58
  concurrency: options.concurrency ?? 1,
@@ -51,6 +68,8 @@ export class SandboxedWorker {
51
68
  if (this.running)
52
69
  return;
53
70
  this.running = true;
71
+ if (this.tcp)
72
+ await this.tcp.connect();
54
73
  this.wrapperPath = await createWrapperScript(this.queueName, this.options.processor);
55
74
  // Spawn all workers and wait for them to be ready
56
75
  const spawnPromises = [];
@@ -58,11 +77,17 @@ export class SandboxedWorker {
58
77
  spawnPromises.push(this.spawnWorker(i));
59
78
  }
60
79
  await Promise.all(spawnPromises);
80
+ this.startHeartbeat();
81
+ this.emit('ready');
61
82
  this.pullPromise = this.pullLoop();
62
83
  }
63
84
  /** Stop all workers gracefully */
64
85
  async stop() {
65
86
  this.running = false;
87
+ if (this.heartbeatTimer) {
88
+ clearInterval(this.heartbeatTimer);
89
+ this.heartbeatTimer = null;
90
+ }
66
91
  for (const wp of this.workers) {
67
92
  if (wp.timeoutId)
68
93
  clearTimeout(wp.timeoutId);
@@ -72,6 +97,9 @@ export class SandboxedWorker {
72
97
  if (this.pullPromise)
73
98
  await this.pullPromise;
74
99
  await cleanupWrapperScript(this.wrapperPath);
100
+ if (this.tcp)
101
+ releaseSharedPool(this.tcp);
102
+ this.emit('closed');
75
103
  }
76
104
  /** Get worker pool stats */
77
105
  getStats() {
@@ -142,7 +170,7 @@ export class SandboxedWorker {
142
170
  await Bun.sleep(this.options.pollInterval);
143
171
  continue;
144
172
  }
145
- const { job, token } = await this.manager.pullWithLock(this.queueName, this.workerId, 1000);
173
+ const { job, token } = await this.ops.pull(this.queueName, this.workerId, 1000);
146
174
  if (job)
147
175
  this.dispatch(idle, job, token);
148
176
  }
@@ -154,6 +182,7 @@ export class SandboxedWorker {
154
182
  wp.timeoutId = setTimeout(() => {
155
183
  this.handleTimeout(wp, job);
156
184
  }, this.options.timeout);
185
+ this.emit('active', this.createEventJob(job));
157
186
  const request = {
158
187
  type: 'job',
159
188
  job: { id: String(job.id), data: job.data, queue: job.queue, attempts: job.attempts },
@@ -162,12 +191,14 @@ export class SandboxedWorker {
162
191
  wp.worker.postMessage(request);
163
192
  }
164
193
  catch (err) {
165
- log('error', 'Failed to dispatch job', {
194
+ const errMsg = err instanceof Error ? err.message : String(err);
195
+ log('error', 'Failed to dispatch job', { jobId: String(job.id), error: errMsg });
196
+ this.safeEmitError(Object.assign(new Error(`Dispatch failed: ${errMsg}`), {
166
197
  jobId: String(job.id),
167
- error: err instanceof Error ? err.message : String(err),
168
- });
198
+ context: 'dispatch',
199
+ }));
169
200
  this.resetWorkerState(wp);
170
- this.manager
201
+ this.ops
171
202
  .fail(job.id, 'Dispatch failed: worker terminated', token ?? undefined)
172
203
  .catch(() => { });
173
204
  }
@@ -186,43 +217,52 @@ export class SandboxedWorker {
186
217
  break;
187
218
  case 'progress':
188
219
  if (msg.progress !== undefined) {
189
- this.manager.updateProgress(wp.currentJob.id, msg.progress).catch(() => { });
220
+ this.ops.updateProgress(wp.currentJob.id, msg.progress).catch(() => { });
221
+ this.emit('progress', this.createEventJob(wp.currentJob), msg.progress);
190
222
  }
191
223
  break;
192
224
  }
193
225
  }
194
226
  complete(wp, result) {
195
- if (wp.currentJob) {
196
- const jobId = wp.currentJob.id;
227
+ const job = wp.currentJob;
228
+ if (job) {
197
229
  const token = wp.currentToken ?? undefined;
198
- this.manager.ack(jobId, result, token).catch((e) => {
230
+ this.ops.ack(job.id, result, token).catch((e) => {
199
231
  log('error', 'Failed to ack job', {
200
- jobId: String(jobId),
232
+ jobId: String(job.id),
201
233
  error: e instanceof Error ? e.message : String(e),
202
234
  });
203
235
  });
236
+ const eventJob = this.createEventJob(job);
237
+ eventJob.returnvalue = result;
238
+ this.emit('completed', eventJob, result);
204
239
  }
205
240
  this.resetWorkerState(wp);
206
241
  }
207
242
  fail(wp, error) {
208
- if (wp.currentJob) {
209
- const jobId = wp.currentJob.id;
243
+ const job = wp.currentJob;
244
+ if (job) {
210
245
  const token = wp.currentToken ?? undefined;
211
- this.manager.fail(jobId, error, token).catch((e) => {
246
+ this.ops.fail(job.id, error, token).catch((e) => {
212
247
  log('error', 'Failed to mark job as failed', {
213
- jobId: String(jobId),
248
+ jobId: String(job.id),
214
249
  error: e instanceof Error ? e.message : String(e),
215
250
  });
216
251
  });
252
+ const eventJob = this.createEventJob(job);
253
+ eventJob.failedReason = error;
254
+ this.emit('failed', eventJob, new Error(error));
217
255
  }
218
256
  this.resetWorkerState(wp);
219
257
  }
220
258
  handleTimeout(wp, job) {
221
259
  wp.worker.terminate();
260
+ const errorMsg = `Job timed out after ${this.options.timeout}ms`;
222
261
  const token = wp.currentToken ?? undefined;
223
- this.manager
224
- .fail(job.id, `Job timed out after ${this.options.timeout}ms`, token)
225
- .catch(() => { });
262
+ this.ops.fail(job.id, errorMsg, token).catch(() => { });
263
+ const eventJob = this.createEventJob(job);
264
+ eventJob.failedReason = errorMsg;
265
+ this.emit('failed', eventJob, new Error(errorMsg));
226
266
  this.resetWorkerState(wp);
227
267
  const index = this.workers.indexOf(wp);
228
268
  if (index !== -1)
@@ -231,8 +271,12 @@ export class SandboxedWorker {
231
271
  handleCrash(wp, index) {
232
272
  if (wp.currentJob) {
233
273
  const token = wp.currentToken ?? undefined;
234
- this.manager.fail(wp.currentJob.id, 'Worker crashed', token).catch(() => { });
274
+ this.ops.fail(wp.currentJob.id, 'Worker crashed', token).catch(() => { });
235
275
  }
276
+ this.safeEmitError(Object.assign(new Error('Worker crashed'), {
277
+ workerIndex: index,
278
+ context: 'crash',
279
+ }));
236
280
  this.resetWorkerState(wp);
237
281
  wp.restarts++;
238
282
  if (this.options.autoRestart && wp.restarts < this.options.maxRestarts && this.running) {
@@ -250,5 +294,43 @@ export class SandboxedWorker {
250
294
  });
251
295
  }
252
296
  }
297
+ /** Start heartbeat timer for TCP lock renewal */
298
+ startHeartbeat() {
299
+ if (this.heartbeatInterval <= 0)
300
+ return;
301
+ this.heartbeatTimer = setInterval(() => void this.sendHeartbeat(), this.heartbeatInterval);
302
+ }
303
+ /** Send heartbeat for all active jobs */
304
+ async sendHeartbeat() {
305
+ const active = this.workers.filter((w) => w.busy && w.currentJob);
306
+ if (active.length === 0)
307
+ return;
308
+ try {
309
+ const ids = active.map((w) => String(w.currentJob?.id));
310
+ const tokens = active.map((w) => w.currentToken ?? '');
311
+ await this.ops.sendHeartbeat(ids, tokens);
312
+ }
313
+ catch (err) {
314
+ this.safeEmitError(Object.assign(err instanceof Error ? err : new Error(String(err)), {
315
+ context: 'heartbeat',
316
+ }));
317
+ }
318
+ }
319
+ /** Emit 'error' only if there are listeners (avoids uncaught exception) */
320
+ safeEmitError(error) {
321
+ if (this.listenerCount('error') > 0) {
322
+ this.emit('error', error);
323
+ }
324
+ }
325
+ /** Create a public Job object from a DomainJob for event payloads */
326
+ createEventJob(domainJob) {
327
+ const data = domainJob.data;
328
+ return createPublicJob({
329
+ job: domainJob,
330
+ name: data?.name ?? 'default',
331
+ updateProgress: async () => { },
332
+ log: async () => { },
333
+ });
334
+ }
253
335
  }
254
336
  //# sourceMappingURL=worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/client/sandboxed/worker.ts"],"names":[],"mappings":"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"}
@@ -521,8 +521,24 @@ export interface DlqFilter {
521
521
  limit?: number;
522
522
  offset?: number;
523
523
  }
524
+ /**
525
+ * Flow-injected fields automatically added to job data by FlowProducer.
526
+ * These fields are present on job.data when a job is part of a flow.
527
+ */
528
+ export interface FlowJobData {
529
+ /** Parent job ID (injected by FlowProducer.addChain / addTree) */
530
+ __flowParentId?: string;
531
+ /** Array of parent job IDs (injected by FlowProducer.addBulkThen for merge flows) */
532
+ __flowParentIds?: string[];
533
+ /** Parent job ID (injected by FlowProducer.add for BullMQ v5 compatible flows) */
534
+ __parentId?: string;
535
+ /** Parent job queue name (injected by FlowProducer.add for BullMQ v5 compatible flows) */
536
+ __parentQueue?: string;
537
+ /** Children job IDs (injected by FlowProducer.add for BullMQ v5 compatible flows) */
538
+ __childrenIds?: string[];
539
+ }
524
540
  /** Job processor function */
525
- export type Processor<T = unknown, R = unknown> = (job: Job<T>) => Promise<R> | R;
541
+ export type Processor<T = unknown, R = unknown> = (job: Job<T & FlowJobData>) => Promise<R> | R;
526
542
  /** Queue events */
527
543
  export type QueueEventType = 'waiting' | 'active' | 'completed' | 'failed' | 'progress' | 'removed' | 'drained';
528
544
  export { createPublicJob, toPublicJob, toDlqEntry } from './jobConversion';