@ariestools/threads 8.1.1 → 8.1.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 (114) hide show
  1. package/dist/browser/index-browser.mjs +9 -0
  2. package/dist/browser/index-browser.mjs.map +2 -2
  3. package/dist/browser/isObservable.d.ts +1 -0
  4. package/dist/browser/isObservable.d.ts.map +1 -1
  5. package/dist/browser/master/implementation.node.d.ts +28 -0
  6. package/dist/browser/master/implementation.node.d.ts.map +1 -1
  7. package/dist/browser/master/index-browser.d.ts +2 -0
  8. package/dist/browser/master/index-browser.d.ts.map +1 -1
  9. package/dist/browser/master/index-browser.mjs +9 -0
  10. package/dist/browser/master/index-browser.mjs.map +2 -2
  11. package/dist/browser/master/index-node.d.ts +4 -1
  12. package/dist/browser/master/index-node.d.ts.map +1 -1
  13. package/dist/browser/master/pool-browser.d.ts +1 -0
  14. package/dist/browser/master/pool-browser.d.ts.map +1 -1
  15. package/dist/browser/master/pool-browser.mjs.map +2 -2
  16. package/dist/browser/master/pool-node.d.ts +1 -0
  17. package/dist/browser/master/pool-node.d.ts.map +1 -1
  18. package/dist/browser/master/pool-types.d.ts +10 -0
  19. package/dist/browser/master/pool-types.d.ts.map +1 -1
  20. package/dist/browser/observable-promise.d.ts +9 -0
  21. package/dist/browser/observable-promise.d.ts.map +1 -1
  22. package/dist/browser/observable.d.ts +1 -0
  23. package/dist/browser/observable.d.ts.map +1 -1
  24. package/dist/browser/serializers.d.ts +4 -0
  25. package/dist/browser/serializers.d.ts.map +1 -1
  26. package/dist/browser/transferable.d.ts +5 -2
  27. package/dist/browser/transferable.d.ts.map +1 -1
  28. package/dist/browser/types/master.d.ts +20 -0
  29. package/dist/browser/types/master.d.ts.map +1 -1
  30. package/dist/browser/types/messages.d.ts +31 -0
  31. package/dist/browser/types/messages.d.ts.map +1 -1
  32. package/dist/browser/types/worker.d.ts +3 -0
  33. package/dist/browser/types/worker.d.ts.map +1 -1
  34. package/dist/browser/worker/WorkerGlobalScope.d.ts +3 -0
  35. package/dist/browser/worker/WorkerGlobalScope.d.ts.map +1 -1
  36. package/dist/browser/worker/worker.browser.mjs.map +2 -2
  37. package/dist/neutral/isObservable.d.ts +1 -0
  38. package/dist/neutral/isObservable.d.ts.map +1 -1
  39. package/dist/neutral/master/implementation.node.d.ts +28 -0
  40. package/dist/neutral/master/implementation.node.d.ts.map +1 -1
  41. package/dist/neutral/master/index-browser.d.ts +2 -0
  42. package/dist/neutral/master/index-browser.d.ts.map +1 -1
  43. package/dist/neutral/master/index-node.d.ts +4 -1
  44. package/dist/neutral/master/index-node.d.ts.map +1 -1
  45. package/dist/neutral/master/pool-browser.d.ts +1 -0
  46. package/dist/neutral/master/pool-browser.d.ts.map +1 -1
  47. package/dist/neutral/master/pool-node.d.ts +1 -0
  48. package/dist/neutral/master/pool-node.d.ts.map +1 -1
  49. package/dist/neutral/master/pool-types.d.ts +10 -0
  50. package/dist/neutral/master/pool-types.d.ts.map +1 -1
  51. package/dist/neutral/master/spawn.mjs +9 -0
  52. package/dist/neutral/master/spawn.mjs.map +2 -2
  53. package/dist/neutral/observable-promise.d.ts +9 -0
  54. package/dist/neutral/observable-promise.d.ts.map +1 -1
  55. package/dist/neutral/observable-promise.mjs +9 -0
  56. package/dist/neutral/observable-promise.mjs.map +2 -2
  57. package/dist/neutral/observable.d.ts +1 -0
  58. package/dist/neutral/observable.d.ts.map +1 -1
  59. package/dist/neutral/observable.mjs +2 -0
  60. package/dist/neutral/observable.mjs.map +2 -2
  61. package/dist/neutral/serializers.d.ts +4 -0
  62. package/dist/neutral/serializers.d.ts.map +1 -1
  63. package/dist/neutral/transferable.d.ts +5 -2
  64. package/dist/neutral/transferable.d.ts.map +1 -1
  65. package/dist/neutral/types/master.d.ts +20 -0
  66. package/dist/neutral/types/master.d.ts.map +1 -1
  67. package/dist/neutral/types/messages.d.ts +31 -0
  68. package/dist/neutral/types/messages.d.ts.map +1 -1
  69. package/dist/neutral/types/messages.mjs.map +2 -2
  70. package/dist/neutral/types/worker.d.ts +3 -0
  71. package/dist/neutral/types/worker.d.ts.map +1 -1
  72. package/dist/neutral/worker/WorkerGlobalScope.d.ts +3 -0
  73. package/dist/neutral/worker/WorkerGlobalScope.d.ts.map +1 -1
  74. package/dist/node/index-node.mjs +52 -16
  75. package/dist/node/index-node.mjs.map +2 -2
  76. package/dist/node/isObservable.d.ts +1 -0
  77. package/dist/node/isObservable.d.ts.map +1 -1
  78. package/dist/node/master/implementation.node.d.ts +28 -0
  79. package/dist/node/master/implementation.node.d.ts.map +1 -1
  80. package/dist/node/master/implementation.node.mjs +43 -16
  81. package/dist/node/master/implementation.node.mjs.map +2 -2
  82. package/dist/node/master/index-browser.d.ts +2 -0
  83. package/dist/node/master/index-browser.d.ts.map +1 -1
  84. package/dist/node/master/index-node.d.ts +4 -1
  85. package/dist/node/master/index-node.d.ts.map +1 -1
  86. package/dist/node/master/index-node.mjs +52 -16
  87. package/dist/node/master/index-node.mjs.map +2 -2
  88. package/dist/node/master/pool-browser.d.ts +1 -0
  89. package/dist/node/master/pool-browser.d.ts.map +1 -1
  90. package/dist/node/master/pool-node.d.ts +1 -0
  91. package/dist/node/master/pool-node.d.ts.map +1 -1
  92. package/dist/node/master/pool-node.mjs.map +2 -2
  93. package/dist/node/master/pool-types.d.ts +10 -0
  94. package/dist/node/master/pool-types.d.ts.map +1 -1
  95. package/dist/node/master/register.mjs +8 -15
  96. package/dist/node/master/register.mjs.map +2 -2
  97. package/dist/node/observable-promise.d.ts +9 -0
  98. package/dist/node/observable-promise.d.ts.map +1 -1
  99. package/dist/node/observable.d.ts +1 -0
  100. package/dist/node/observable.d.ts.map +1 -1
  101. package/dist/node/serializers.d.ts +4 -0
  102. package/dist/node/serializers.d.ts.map +1 -1
  103. package/dist/node/transferable.d.ts +5 -2
  104. package/dist/node/transferable.d.ts.map +1 -1
  105. package/dist/node/types/master.d.ts +20 -0
  106. package/dist/node/types/master.d.ts.map +1 -1
  107. package/dist/node/types/messages.d.ts +31 -0
  108. package/dist/node/types/messages.d.ts.map +1 -1
  109. package/dist/node/types/worker.d.ts +3 -0
  110. package/dist/node/types/worker.d.ts.map +1 -1
  111. package/dist/node/worker/WorkerGlobalScope.d.ts +3 -0
  112. package/dist/node/worker/WorkerGlobalScope.d.ts.map +1 -1
  113. package/dist/node/worker/worker.node.mjs.map +2 -2
  114. package/package.json +6 -6
@@ -1,8 +1,11 @@
1
1
  import { $transferable } from './symbols.ts';
2
2
  /** Descriptor wrapping a value with its associated transferable objects for zero-copy messaging. */
3
3
  export interface TransferDescriptor<T = any> {
4
+ /** Marker identifying the object as a transfer descriptor. */
4
5
  [$transferable]: true;
6
+ /** Payload sent to the receiving thread. */
5
7
  send: T;
8
+ /** Objects whose ownership is transferred with the payload. */
6
9
  transferables: Transferable[];
7
10
  }
8
11
  /**
@@ -24,7 +27,6 @@ export declare function isTransferDescriptor(thing: any): thing is TransferDescr
24
27
  * The transferable object cannot be accessed by this thread again
25
28
  * unless the receiving thread transfers it back again!
26
29
  *
27
- * @param transferable Array buffer, message port or similar.
28
30
  * @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
29
31
  */
30
32
  export declare function Transfer(transferable: Transferable): TransferDescriptor;
@@ -42,7 +44,8 @@ export declare function Transfer(transferable: Transferable): TransferDescriptor
42
44
  * The transferable object cannot be accessed by this thread again
43
45
  * unless the receiving thread transfers it back again!
44
46
  *
45
- * @param transferable Array buffer, message port or similar.
47
+ * @param payload Value sent to the receiving thread.
48
+ * @param transferables Array buffers, message ports, or similar objects transferred with the payload.
46
49
  * @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
47
50
  */
48
51
  export declare function Transfer<T>(payload: T, transferables: Transferable[]): TransferDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/transferable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,oGAAoG;AACpG,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;IACrB,IAAI,EAAE,CAAC,CAAA;IACP,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAAA;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAA"}
1
+ {"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/transferable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,oGAAoG;AACpG,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,8DAA8D;IAC9D,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;IACrB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAA;IACP,+DAA+D;IAC/D,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAAA;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAA"}
@@ -27,9 +27,13 @@ export type ModuleProxy<Methods extends ModuleMethods> = {
27
27
  };
28
28
  /** Internal symbol-keyed properties attached to every spawned thread. */
29
29
  export interface PrivateThreadProps {
30
+ /** Observable stream of worker errors. */
30
31
  [$errors]: Observable<Error>;
32
+ /** Observable stream of worker lifecycle events. */
31
33
  [$events]: Observable<WorkerEvent>;
34
+ /** Terminates the backing worker. */
32
35
  [$terminate]: () => Promise<void>;
36
+ /** Worker backing the thread proxy. */
33
37
  [$worker]: Worker;
34
38
  }
35
39
  /** A thread wrapping a single exposed function. */
@@ -47,6 +51,7 @@ export type Thread = AnyFunctionThread | AnyModuleThread;
47
51
  export type TransferList = Transferable[];
48
52
  /** Worker instance. Either a web worker or a Node.js Worker provided by `worker_threads`. */
49
53
  export interface Worker extends EventTarget {
54
+ /** Send a value and optional transfer list to the worker. */
50
55
  postMessage(value: any, transferList?: TransferList): void;
51
56
  /** In Node.js return type is Promise while in browser return type is void */
52
57
  terminate(callback?: (error?: Error, exitCode?: number) => void): void | Promise<number>;
@@ -71,38 +76,53 @@ export interface ThreadsWorkerOptions extends WorkerOptions {
71
76
  }
72
77
  /** Worker implementation. Either web worker or a Node.js Worker class. */
73
78
  export declare class WorkerImplementation extends EventTarget implements Worker {
79
+ /** Create a worker for the given script path. */
74
80
  constructor(path: string, options?: ThreadsWorkerOptions);
81
+ /** Send a value and optional transfer list to the worker. */
75
82
  postMessage(value: any, transferList?: TransferList): void;
83
+ /** Terminate the worker. */
76
84
  terminate(): void | Promise<number>;
77
85
  }
78
86
  /** Class to spawn workers from a blob or source string. */
79
87
  export declare class BlobWorker extends WorkerImplementation {
88
+ /** Create a worker from a source blob. */
80
89
  constructor(blob: Blob, options?: ThreadsWorkerOptions);
90
+ /** Create a worker from JavaScript source text. */
81
91
  static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation;
82
92
  }
83
93
  /** Export shape for platform-specific worker implementations. */
84
94
  export interface ImplementationExport {
95
+ /** Constructor used for blob-backed workers. */
85
96
  blob: typeof BlobWorker;
97
+ /** Default constructor used for path-backed workers. */
86
98
  default: typeof WorkerImplementation;
87
99
  }
88
100
  /** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */
89
101
  export declare enum WorkerEventType {
102
+ /** The threads implementation encountered an internal error. */
90
103
  internalError = "internalError",
104
+ /** The worker emitted a message. */
91
105
  message = "message",
106
+ /** The worker terminated. */
92
107
  termination = "termination"
93
108
  }
94
109
  /** Event indicating an internal error occurred in the worker. */
95
110
  export interface WorkerInternalErrorEvent {
111
+ /** Error raised by the worker implementation. */
96
112
  error: Error;
113
+ /** Event discriminant. */
97
114
  type: WorkerEventType.internalError;
98
115
  }
99
116
  /** Event containing a message received from the worker. */
100
117
  export interface WorkerMessageEvent<Data> {
118
+ /** Message data received from the worker. */
101
119
  data: Data;
120
+ /** Event discriminant. */
102
121
  type: WorkerEventType.message;
103
122
  }
104
123
  /** Event indicating the worker has been terminated. */
105
124
  export interface WorkerTerminationEvent {
125
+ /** Event discriminant. */
106
126
  type: WorkerEventType.termination;
107
127
  }
108
128
  /** Union of all possible worker event types. */
@@ -1 +1 @@
1
- {"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,57 @@
1
1
  /** Serialized representation of an Error for transmission between threads. */
2
2
  export interface SerializedError {
3
+ /** Marker distinguishing serialized errors from ordinary values. */
3
4
  __error_marker: '$$error';
5
+ /** Error message. */
4
6
  message: string;
7
+ /** Error class name. */
5
8
  name: string;
9
+ /** Captured stack trace, when available. */
6
10
  stack?: string;
7
11
  }
8
12
  /** Types of messages that the master thread can send to a worker. */
9
13
  export declare enum MasterMessageType {
14
+ /** Cancel a previously submitted job. */
10
15
  cancel = "cancel",
16
+ /** Run a job in the worker. */
11
17
  run = "run"
12
18
  }
13
19
  /** Message sent by the master to cancel a running job. */
14
20
  export type MasterJobCancelMessage = {
21
+ /** Message discriminant. */
15
22
  type: MasterMessageType.cancel;
23
+ /** Unique identifier of the job to cancel. */
16
24
  uid: number;
17
25
  };
18
26
  /** Message sent by the master to run a function in the worker. */
19
27
  export type MasterJobRunMessage = {
28
+ /** Message discriminant. */
20
29
  type: MasterMessageType.run;
30
+ /** Unique identifier assigned to the job. */
21
31
  uid: number;
32
+ /** Exposed module method to invoke, or omitted for an exposed function. */
22
33
  method?: string;
34
+ /** Arguments passed to the exposed function or method. */
23
35
  args: any[];
24
36
  };
25
37
  /** Types of messages that a worker thread can send to the master. */
26
38
  export declare enum WorkerMessageType {
39
+ /** A job failed. */
27
40
  error = "error",
41
+ /** The worker exposed its callable API. */
28
42
  init = "init",
43
+ /** A job produced a result. */
29
44
  result = "result",
45
+ /** A job started running. */
30
46
  running = "running",
47
+ /** An error escaped the worker job handler. */
31
48
  uncaughtError = "uncaughtError"
32
49
  }
33
50
  /** Message sent by a worker when an uncaught error occurs. */
34
51
  export type WorkerUncaughtErrorMessage = {
52
+ /** Message discriminant. */
35
53
  type: WorkerMessageType.uncaughtError;
54
+ /** Uncaught error details. */
36
55
  error: {
37
56
  message: string;
38
57
  name: string;
@@ -41,7 +60,9 @@ export type WorkerUncaughtErrorMessage = {
41
60
  };
42
61
  /** Message sent by a worker after calling `expose()` to signal its API to the master. */
43
62
  export type WorkerInitMessage = {
63
+ /** Message discriminant. */
44
64
  type: WorkerMessageType.init;
65
+ /** Shape of the function or module exposed by the worker. */
45
66
  exposed: {
46
67
  type: 'function';
47
68
  } | {
@@ -51,21 +72,31 @@ export type WorkerInitMessage = {
51
72
  };
52
73
  /** Message sent by a worker when a job encounters an error. */
53
74
  export type WorkerJobErrorMessage = {
75
+ /** Message discriminant. */
54
76
  type: WorkerMessageType.error;
77
+ /** Unique identifier of the failed job. */
55
78
  uid: number;
79
+ /** Serialized failure raised by the job. */
56
80
  error: SerializedError;
57
81
  };
58
82
  /** Message sent by a worker containing a job's result value. */
59
83
  export type WorkerJobResultMessage = {
84
+ /** Message discriminant. */
60
85
  type: WorkerMessageType.result;
86
+ /** Unique identifier of the completed or updated job. */
61
87
  uid: number;
88
+ /** Whether an observable job has finished emitting values. */
62
89
  complete?: true;
90
+ /** Result value or observable emission. */
63
91
  payload?: any;
64
92
  };
65
93
  /** Message sent by a worker when a job starts executing. */
66
94
  export type WorkerJobStartMessage = {
95
+ /** Message discriminant. */
67
96
  type: WorkerMessageType.running;
97
+ /** Unique identifier of the started job. */
68
98
  uid: number;
99
+ /** Asynchronous result protocol used by the job. */
69
100
  resultType: 'observable' | 'promise';
70
101
  };
71
102
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,SAAS,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,0DAA0D;AAC1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAKD,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,aAAa,kBAAkB;CAChC;AAED,8DAA8D;AAC9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAA;IACrC,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAA;IAC5B,OAAO,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACtE,CAAA;AAED,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,CAAA;AAED,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAA;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,YAAY,GAAG,SAAS,CAAA;CACrC,CAAA"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,cAAc,EAAE,SAAS,CAAA;IACzB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,yCAAyC;IACzC,MAAM,WAAW;IACjB,+BAA+B;IAC/B,GAAG,QAAQ;CACZ;AAED,0DAA0D;AAC1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG;IAChC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAA;IAC3B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAKD,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,oBAAoB;IACpB,KAAK,UAAU;IACf,2CAA2C;IAC3C,IAAI,SAAS;IACb,+BAA+B;IAC/B,MAAM,WAAW;IACjB,6BAA6B;IAC7B,OAAO,YAAY;IACnB,+CAA+C;IAC/C,aAAa,kBAAkB;CAChC;AAED,8DAA8D;AAC9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAA;IACrC,8BAA8B;IAC9B,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAA;IAC5B,6DAA6D;IAC7D,OAAO,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACtE,CAAA;AAED,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAA;IAC7B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,4CAA4C;IAC5C,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,sBAAsB,GAAG;IACnC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAA;IACX,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,2CAA2C;IAC3C,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,CAAA;AAED,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAA;IAC/B,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,oDAAoD;IACpD,UAAU,EAAE,YAAY,GAAG,SAAS,CAAA;CACrC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/messages.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/member-ordering */\n\n/** Serialized representation of an Error for transmission between threads. */\nexport interface SerializedError {\n __error_marker: '$$error'\n message: string\n name: string\n stack?: string\n}\n\n/////////////////////////////\n// Messages sent by master:\n\n/** Types of messages that the master thread can send to a worker. */\nexport enum MasterMessageType {\n cancel = 'cancel',\n run = 'run',\n}\n\n/** Message sent by the master to cancel a running job. */\nexport type MasterJobCancelMessage = {\n type: MasterMessageType.cancel\n uid: number\n}\n\n/** Message sent by the master to run a function in the worker. */\nexport type MasterJobRunMessage = {\n type: MasterMessageType.run\n uid: number\n method?: string\n args: any[]\n}\n\n////////////////////////////\n// Messages sent by worker:\n\n/** Types of messages that a worker thread can send to the master. */\nexport enum WorkerMessageType {\n error = 'error',\n init = 'init',\n result = 'result',\n running = 'running',\n uncaughtError = 'uncaughtError',\n}\n\n/** Message sent by a worker when an uncaught error occurs. */\nexport type WorkerUncaughtErrorMessage = {\n type: WorkerMessageType.uncaughtError\n error: {\n message: string\n name: string\n stack?: string\n }\n}\n\n/** Message sent by a worker after calling `expose()` to signal its API to the master. */\nexport type WorkerInitMessage = {\n type: WorkerMessageType.init\n exposed: { type: 'function' } | { type: 'module'; methods: string[] }\n}\n\n/** Message sent by a worker when a job encounters an error. */\nexport type WorkerJobErrorMessage = {\n type: WorkerMessageType.error\n uid: number\n error: SerializedError\n}\n\n/** Message sent by a worker containing a job's result value. */\nexport type WorkerJobResultMessage = {\n type: WorkerMessageType.result\n uid: number\n complete?: true\n payload?: any\n}\n\n/** Message sent by a worker when a job starts executing. */\nexport type WorkerJobStartMessage = {\n type: WorkerMessageType.running\n uid: number\n resultType: 'observable' | 'promise'\n}\n"],
5
- "mappings": ";AAeO,IAAK,oBAAL,kBAAKA,uBAAL;AACL,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,SAAM;AAFI,SAAAA;AAAA,GAAA;AAuBL,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,UAAO;AACP,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,mBAAgB;AALN,SAAAA;AAAA,GAAA;",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/member-ordering */\n\n/** Serialized representation of an Error for transmission between threads. */\nexport interface SerializedError {\n /** Marker distinguishing serialized errors from ordinary values. */\n __error_marker: '$$error'\n /** Error message. */\n message: string\n /** Error class name. */\n name: string\n /** Captured stack trace, when available. */\n stack?: string\n}\n\n/////////////////////////////\n// Messages sent by master:\n\n/** Types of messages that the master thread can send to a worker. */\nexport enum MasterMessageType {\n /** Cancel a previously submitted job. */\n cancel = 'cancel',\n /** Run a job in the worker. */\n run = 'run',\n}\n\n/** Message sent by the master to cancel a running job. */\nexport type MasterJobCancelMessage = {\n /** Message discriminant. */\n type: MasterMessageType.cancel\n /** Unique identifier of the job to cancel. */\n uid: number\n}\n\n/** Message sent by the master to run a function in the worker. */\nexport type MasterJobRunMessage = {\n /** Message discriminant. */\n type: MasterMessageType.run\n /** Unique identifier assigned to the job. */\n uid: number\n /** Exposed module method to invoke, or omitted for an exposed function. */\n method?: string\n /** Arguments passed to the exposed function or method. */\n args: any[]\n}\n\n////////////////////////////\n// Messages sent by worker:\n\n/** Types of messages that a worker thread can send to the master. */\nexport enum WorkerMessageType {\n /** A job failed. */\n error = 'error',\n /** The worker exposed its callable API. */\n init = 'init',\n /** A job produced a result. */\n result = 'result',\n /** A job started running. */\n running = 'running',\n /** An error escaped the worker job handler. */\n uncaughtError = 'uncaughtError',\n}\n\n/** Message sent by a worker when an uncaught error occurs. */\nexport type WorkerUncaughtErrorMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.uncaughtError\n /** Uncaught error details. */\n error: {\n message: string\n name: string\n stack?: string\n }\n}\n\n/** Message sent by a worker after calling `expose()` to signal its API to the master. */\nexport type WorkerInitMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.init\n /** Shape of the function or module exposed by the worker. */\n exposed: { type: 'function' } | { type: 'module'; methods: string[] }\n}\n\n/** Message sent by a worker when a job encounters an error. */\nexport type WorkerJobErrorMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.error\n /** Unique identifier of the failed job. */\n uid: number\n /** Serialized failure raised by the job. */\n error: SerializedError\n}\n\n/** Message sent by a worker containing a job's result value. */\nexport type WorkerJobResultMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.result\n /** Unique identifier of the completed or updated job. */\n uid: number\n /** Whether an observable job has finished emitting values. */\n complete?: true\n /** Result value or observable emission. */\n payload?: any\n}\n\n/** Message sent by a worker when a job starts executing. */\nexport type WorkerJobStartMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.running\n /** Unique identifier of the started job. */\n uid: number\n /** Asynchronous result protocol used by the job. */\n resultType: 'observable' | 'promise'\n}\n"],
5
+ "mappings": ";AAmBO,IAAK,oBAAL,kBAAKA,uBAAL;AAEL,EAAAA,mBAAA,YAAS;AAET,EAAAA,mBAAA,SAAM;AAJI,SAAAA;AAAA,GAAA;AA+BL,IAAK,oBAAL,kBAAKC,uBAAL;AAEL,EAAAA,mBAAA,WAAQ;AAER,EAAAA,mBAAA,UAAO;AAEP,EAAAA,mBAAA,YAAS;AAET,EAAAA,mBAAA,aAAU;AAEV,EAAAA,mBAAA,mBAAgB;AAVN,SAAAA;AAAA,GAAA;",
6
6
  "names": ["MasterMessageType", "WorkerMessageType"]
7
7
  }
@@ -1,8 +1,11 @@
1
1
  type UnsubscribeFn = () => void;
2
2
  /** Abstraction layer for the worker runtime API, used by `expose()` to communicate with the master thread. */
3
3
  export interface AbstractedWorkerAPI {
4
+ /** Determine whether the current runtime is a worker. */
4
5
  isWorkerRuntime(): boolean;
6
+ /** Send a message and optional transfer list to the master thread. */
5
7
  postMessageToMaster(message: any, transferList?: Transferable[]): void;
8
+ /** Subscribe to messages sent by the master thread. */
6
9
  subscribeToMasterMessages(onMessage: (data: any) => void): UnsubscribeFn;
7
10
  }
8
11
  /** A function that can be exposed from a worker thread. */
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/types/worker.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,8GAA8G;AAC9G,MAAM,WAAW,mBAAmB;IAClC,eAAe,IAAI,OAAO,CAAA;IAC1B,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IACtE,yBAAyB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAA;CACzE;AAED,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAEpE,gGAAgG;AAChG,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/types/worker.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,8GAA8G;AAC9G,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,eAAe,IAAI,OAAO,CAAA;IAC1B,sEAAsE;IACtE,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IACtE,uDAAuD;IACvD,yBAAyB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAA;CACzE;AAED,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAEpE,gGAAgG;AAChG,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA"}
@@ -1,7 +1,10 @@
1
1
  /** Minimal interface representing the global scope inside a web worker. */
2
2
  export interface WorkerGlobalScope {
3
+ /** Register a worker-global event listener. */
3
4
  addEventListener(eventName: string, listener: (event: Event) => void): void;
5
+ /** Send a message and optional transfer list to the master context. */
4
6
  postMessage(message: unknown, transferList?: readonly Transferable[]): void;
7
+ /** Remove a worker-global event listener. */
5
8
  removeEventListener(eventName: string, listener: (event: Event) => void): void;
6
9
  }
7
10
  //# sourceMappingURL=WorkerGlobalScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerGlobalScope.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC3E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAA;IAC3E,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CAC/E"}
1
+ {"version":3,"file":"WorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerGlobalScope.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC3E,uEAAuE;IACvE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAA;IAC3E,6CAA6C;IAC7C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CAC/E"}
@@ -53,8 +53,16 @@ function resolveScriptPath(scriptPath, baseURL) {
53
53
  const absolutePath = makeAbsolute(scriptPath);
54
54
  return absolutePath;
55
55
  }
56
+ var registry = {
57
+ allWorkers: [],
58
+ signalHandlers: /* @__PURE__ */ new Map()
59
+ };
60
+ async function terminateAllWorkers() {
61
+ const workers = [...registry.allWorkers];
62
+ registry.allWorkers = [];
63
+ await Promise.all(workers.map((worker) => worker.terminate()));
64
+ }
56
65
  function initWorkerThreadsWorker() {
57
- let allWorkers = [];
58
66
  class Worker3 extends NativeWorker {
59
67
  mappedEventListeners;
60
68
  constructor(scriptPath, options) {
@@ -66,7 +74,10 @@ function initWorkerThreadsWorker() {
66
74
  super(resolvedScriptPath, options);
67
75
  }
68
76
  this.mappedEventListeners = /* @__PURE__ */ new WeakMap();
69
- allWorkers.push(this);
77
+ registry.allWorkers.push(this);
78
+ this.once("exit", () => {
79
+ registry.allWorkers = registry.allWorkers.filter((worker) => worker !== this);
80
+ });
70
81
  }
71
82
  addEventListener(eventName, rawListener) {
72
83
  const listener = (message) => {
@@ -80,19 +91,6 @@ function initWorkerThreadsWorker() {
80
91
  this.off(eventName, listener);
81
92
  }
82
93
  }
83
- const terminateWorkersAndMaster = () => {
84
- void (async () => {
85
- try {
86
- await Promise.all(allWorkers.map((worker) => worker.terminate()));
87
- process.exit(0);
88
- } catch {
89
- process.exit(1);
90
- }
91
- })();
92
- allWorkers = [];
93
- };
94
- process.on("SIGINT", () => terminateWorkersAndMaster());
95
- process.on("SIGTERM", () => terminateWorkersAndMaster());
96
94
  class BlobWorker2 extends Worker3 {
97
95
  constructor(blob, options) {
98
96
  super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
@@ -116,6 +114,33 @@ function getWorkerImplementation() {
116
114
  function isWorkerRuntime() {
117
115
  return !isMainThread;
118
116
  }
117
+ function installWorkerSignalHandlers(options = {}) {
118
+ getWorkerImplementation();
119
+ const signals = options.signals ?? ["SIGINT", "SIGTERM"];
120
+ const exitProcess = options.exitProcess === true;
121
+ uninstallWorkerSignalHandlers();
122
+ for (const signal of signals) {
123
+ const handler = () => {
124
+ void (async () => {
125
+ try {
126
+ await terminateAllWorkers();
127
+ if (exitProcess) process.exit(0);
128
+ } catch {
129
+ if (exitProcess) process.exit(1);
130
+ }
131
+ })();
132
+ };
133
+ process.on(signal, handler);
134
+ registry.signalHandlers.set(signal, handler);
135
+ }
136
+ return uninstallWorkerSignalHandlers;
137
+ }
138
+ function uninstallWorkerSignalHandlers() {
139
+ for (const [signal, handler] of registry.signalHandlers) {
140
+ process.off(signal, handler);
141
+ }
142
+ registry.signalHandlers.clear();
143
+ }
119
144
 
120
145
  // src/master/pool-browser.ts
121
146
  import DebugLogger from "debug";
@@ -469,6 +494,7 @@ function isThenable(thing) {
469
494
  return thing != null && typeof thing.then === "function";
470
495
  }
471
496
  var ObservablePromise = class _ObservablePromise extends Observable2 {
497
+ /** Standard object tag identifying this hybrid promise. */
472
498
  [Symbol.toStringTag] = "[object ObservablePromise]";
473
499
  initHasRun = false;
474
500
  fulfillmentCallbacks = [];
@@ -477,6 +503,10 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
477
503
  firstValueSet = false;
478
504
  rejection;
479
505
  state = "pending";
506
+ /**
507
+ * Create an observable promise.
508
+ * @param init Initializes each observable subscription.
509
+ */
480
510
  constructor(init) {
481
511
  super((originalObserver) => {
482
512
  const self = this;
@@ -559,12 +589,15 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
559
589
  this.rejectionCallbacks.push(rejectionCallback);
560
590
  });
561
591
  }
592
+ /** Register handlers for the first emitted value or a rejection. */
562
593
  then(onFulfilledRaw, onRejectedRaw) {
563
594
  return this.createPromise(onFulfilledRaw, onRejectedRaw);
564
595
  }
596
+ /** Register a rejection handler. */
565
597
  catch(onRejected) {
566
598
  return this.createPromise(void 0, onRejected);
567
599
  }
600
+ /** Register a handler invoked after fulfillment or rejection. */
568
601
  finally(onCompleted) {
569
602
  const handler = onCompleted || doNothing2;
570
603
  return this.createPromise(
@@ -575,6 +608,7 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
575
608
  () => handler()
576
609
  );
577
610
  }
611
+ /** Convert an observable, thenable, or array-like value to an observable promise. */
578
612
  static from(thing) {
579
613
  return isThenable(thing) ? new _ObservablePromise((observer) => {
580
614
  void (async () => {
@@ -832,8 +866,10 @@ export {
832
866
  Thread,
833
867
  Transfer,
834
868
  Worker2 as Worker,
869
+ installWorkerSignalHandlers,
835
870
  isWorkerRuntime,
836
871
  registerSerializer,
837
- spawn
872
+ spawn,
873
+ uninstallWorkerSignalHandlers
838
874
  };
839
875
  //# sourceMappingURL=index-node.mjs.map