@ariestools/threads 8.0.0

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 (209) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +946 -0
  3. package/dist/browser/common.d.ts +22 -0
  4. package/dist/browser/common.d.ts.map +1 -0
  5. package/dist/browser/index-browser.d.ts +9 -0
  6. package/dist/browser/index-browser.d.ts.map +1 -0
  7. package/dist/browser/index-browser.mjs +844 -0
  8. package/dist/browser/index-browser.mjs.map +7 -0
  9. package/dist/browser/index-node.d.ts +9 -0
  10. package/dist/browser/index-node.d.ts.map +1 -0
  11. package/dist/browser/isObservable.d.ts +2 -0
  12. package/dist/browser/isObservable.d.ts.map +1 -0
  13. package/dist/browser/master/get-bundle-url.browser.d.ts +4 -0
  14. package/dist/browser/master/get-bundle-url.browser.d.ts.map +1 -0
  15. package/dist/browser/master/implementation.browser.d.ts +14 -0
  16. package/dist/browser/master/implementation.browser.d.ts.map +1 -0
  17. package/dist/browser/master/implementation.browser.mjs +90 -0
  18. package/dist/browser/master/implementation.browser.mjs.map +7 -0
  19. package/dist/browser/master/implementation.node.d.ts +14 -0
  20. package/dist/browser/master/implementation.node.d.ts.map +1 -0
  21. package/dist/browser/master/index-browser.d.ts +13 -0
  22. package/dist/browser/master/index-browser.d.ts.map +1 -0
  23. package/dist/browser/master/index-browser.mjs +813 -0
  24. package/dist/browser/master/index-browser.mjs.map +7 -0
  25. package/dist/browser/master/index-node.d.ts +13 -0
  26. package/dist/browser/master/index-node.d.ts.map +1 -0
  27. package/dist/browser/master/invocation-proxy.d.ts +16 -0
  28. package/dist/browser/master/invocation-proxy.d.ts.map +1 -0
  29. package/dist/browser/master/pool-browser.d.ts +93 -0
  30. package/dist/browser/master/pool-browser.d.ts.map +1 -0
  31. package/dist/browser/master/pool-browser.mjs +308 -0
  32. package/dist/browser/master/pool-browser.mjs.map +7 -0
  33. package/dist/browser/master/pool-node.d.ts +93 -0
  34. package/dist/browser/master/pool-node.d.ts.map +1 -0
  35. package/dist/browser/master/pool-types.d.ts +68 -0
  36. package/dist/browser/master/pool-types.d.ts.map +1 -0
  37. package/dist/browser/master/register.d.ts +2 -0
  38. package/dist/browser/master/register.d.ts.map +1 -0
  39. package/dist/browser/master/spawn.d.ts +22 -0
  40. package/dist/browser/master/spawn.d.ts.map +1 -0
  41. package/dist/browser/master/thread.d.ts +14 -0
  42. package/dist/browser/master/thread.d.ts.map +1 -0
  43. package/dist/browser/observable-promise.d.ts +41 -0
  44. package/dist/browser/observable-promise.d.ts.map +1 -0
  45. package/dist/browser/observable.d.ts +24 -0
  46. package/dist/browser/observable.d.ts.map +1 -0
  47. package/dist/browser/promise.d.ts +6 -0
  48. package/dist/browser/promise.d.ts.map +1 -0
  49. package/dist/browser/serializers.d.ts +27 -0
  50. package/dist/browser/serializers.d.ts.map +1 -0
  51. package/dist/browser/symbols.d.ts +11 -0
  52. package/dist/browser/symbols.d.ts.map +1 -0
  53. package/dist/browser/transferable.d.ts +49 -0
  54. package/dist/browser/transferable.d.ts.map +1 -0
  55. package/dist/browser/types/master.d.ts +111 -0
  56. package/dist/browser/types/master.d.ts.map +1 -0
  57. package/dist/browser/types/messages.d.ts +71 -0
  58. package/dist/browser/types/messages.d.ts.map +1 -0
  59. package/dist/browser/types/worker.d.ts +13 -0
  60. package/dist/browser/types/worker.d.ts.map +1 -0
  61. package/dist/browser/worker/WorkerGlobalScope.d.ts +7 -0
  62. package/dist/browser/worker/WorkerGlobalScope.d.ts.map +1 -0
  63. package/dist/browser/worker/expose.d.ts +10 -0
  64. package/dist/browser/worker/expose.d.ts.map +1 -0
  65. package/dist/browser/worker/worker.browser.d.ts +20 -0
  66. package/dist/browser/worker/worker.browser.d.ts.map +1 -0
  67. package/dist/browser/worker/worker.browser.mjs +300 -0
  68. package/dist/browser/worker/worker.browser.mjs.map +7 -0
  69. package/dist/browser/worker/worker.node.d.ts +34 -0
  70. package/dist/browser/worker/worker.node.d.ts.map +1 -0
  71. package/dist/neutral/common.d.ts +22 -0
  72. package/dist/neutral/common.d.ts.map +1 -0
  73. package/dist/neutral/index-browser.d.ts +9 -0
  74. package/dist/neutral/index-browser.d.ts.map +1 -0
  75. package/dist/neutral/index-node.d.ts +9 -0
  76. package/dist/neutral/index-node.d.ts.map +1 -0
  77. package/dist/neutral/isObservable.d.ts +2 -0
  78. package/dist/neutral/isObservable.d.ts.map +1 -0
  79. package/dist/neutral/master/get-bundle-url.browser.d.ts +4 -0
  80. package/dist/neutral/master/get-bundle-url.browser.d.ts.map +1 -0
  81. package/dist/neutral/master/implementation.browser.d.ts +14 -0
  82. package/dist/neutral/master/implementation.browser.d.ts.map +1 -0
  83. package/dist/neutral/master/implementation.node.d.ts +14 -0
  84. package/dist/neutral/master/implementation.node.d.ts.map +1 -0
  85. package/dist/neutral/master/index-browser.d.ts +13 -0
  86. package/dist/neutral/master/index-browser.d.ts.map +1 -0
  87. package/dist/neutral/master/index-node.d.ts +13 -0
  88. package/dist/neutral/master/index-node.d.ts.map +1 -0
  89. package/dist/neutral/master/invocation-proxy.d.ts +16 -0
  90. package/dist/neutral/master/invocation-proxy.d.ts.map +1 -0
  91. package/dist/neutral/master/pool-browser.d.ts +93 -0
  92. package/dist/neutral/master/pool-browser.d.ts.map +1 -0
  93. package/dist/neutral/master/pool-node.d.ts +93 -0
  94. package/dist/neutral/master/pool-node.d.ts.map +1 -0
  95. package/dist/neutral/master/pool-types.d.ts +68 -0
  96. package/dist/neutral/master/pool-types.d.ts.map +1 -0
  97. package/dist/neutral/master/register.d.ts +2 -0
  98. package/dist/neutral/master/register.d.ts.map +1 -0
  99. package/dist/neutral/master/spawn.d.ts +22 -0
  100. package/dist/neutral/master/spawn.d.ts.map +1 -0
  101. package/dist/neutral/master/spawn.mjs +424 -0
  102. package/dist/neutral/master/spawn.mjs.map +7 -0
  103. package/dist/neutral/master/thread.d.ts +14 -0
  104. package/dist/neutral/master/thread.d.ts.map +1 -0
  105. package/dist/neutral/master/thread.mjs +24 -0
  106. package/dist/neutral/master/thread.mjs.map +7 -0
  107. package/dist/neutral/observable-promise.d.ts +41 -0
  108. package/dist/neutral/observable-promise.d.ts.map +1 -0
  109. package/dist/neutral/observable-promise.mjs +142 -0
  110. package/dist/neutral/observable-promise.mjs.map +7 -0
  111. package/dist/neutral/observable.d.ts +24 -0
  112. package/dist/neutral/observable.d.ts.map +1 -0
  113. package/dist/neutral/observable.mjs +32 -0
  114. package/dist/neutral/observable.mjs.map +7 -0
  115. package/dist/neutral/promise.d.ts +6 -0
  116. package/dist/neutral/promise.d.ts.map +1 -0
  117. package/dist/neutral/serializers.d.ts +27 -0
  118. package/dist/neutral/serializers.d.ts.map +1 -0
  119. package/dist/neutral/symbols.d.ts +11 -0
  120. package/dist/neutral/symbols.d.ts.map +1 -0
  121. package/dist/neutral/transferable.d.ts +49 -0
  122. package/dist/neutral/transferable.d.ts.map +1 -0
  123. package/dist/neutral/types/master.d.ts +111 -0
  124. package/dist/neutral/types/master.d.ts.map +1 -0
  125. package/dist/neutral/types/messages.d.ts +71 -0
  126. package/dist/neutral/types/messages.d.ts.map +1 -0
  127. package/dist/neutral/types/messages.mjs +19 -0
  128. package/dist/neutral/types/messages.mjs.map +7 -0
  129. package/dist/neutral/types/worker.d.ts +13 -0
  130. package/dist/neutral/types/worker.d.ts.map +1 -0
  131. package/dist/neutral/worker/WorkerGlobalScope.d.ts +7 -0
  132. package/dist/neutral/worker/WorkerGlobalScope.d.ts.map +1 -0
  133. package/dist/neutral/worker/expose.d.ts +10 -0
  134. package/dist/neutral/worker/expose.d.ts.map +1 -0
  135. package/dist/neutral/worker/worker.browser.d.ts +20 -0
  136. package/dist/neutral/worker/worker.browser.d.ts.map +1 -0
  137. package/dist/neutral/worker/worker.node.d.ts +34 -0
  138. package/dist/neutral/worker/worker.node.d.ts.map +1 -0
  139. package/dist/node/common.d.ts +22 -0
  140. package/dist/node/common.d.ts.map +1 -0
  141. package/dist/node/index-browser.d.ts +9 -0
  142. package/dist/node/index-browser.d.ts.map +1 -0
  143. package/dist/node/index-node.d.ts +9 -0
  144. package/dist/node/index-node.d.ts.map +1 -0
  145. package/dist/node/index-node.mjs +839 -0
  146. package/dist/node/index-node.mjs.map +7 -0
  147. package/dist/node/isObservable.d.ts +2 -0
  148. package/dist/node/isObservable.d.ts.map +1 -0
  149. package/dist/node/master/get-bundle-url.browser.d.ts +4 -0
  150. package/dist/node/master/get-bundle-url.browser.d.ts.map +1 -0
  151. package/dist/node/master/implementation.browser.d.ts +14 -0
  152. package/dist/node/master/implementation.browser.d.ts.map +1 -0
  153. package/dist/node/master/implementation.node.d.ts +14 -0
  154. package/dist/node/master/implementation.node.d.ts.map +1 -0
  155. package/dist/node/master/implementation.node.mjs +82 -0
  156. package/dist/node/master/implementation.node.mjs.map +7 -0
  157. package/dist/node/master/index-browser.d.ts +13 -0
  158. package/dist/node/master/index-browser.d.ts.map +1 -0
  159. package/dist/node/master/index-node.d.ts +13 -0
  160. package/dist/node/master/index-node.d.ts.map +1 -0
  161. package/dist/node/master/index-node.mjs +808 -0
  162. package/dist/node/master/index-node.mjs.map +7 -0
  163. package/dist/node/master/invocation-proxy.d.ts +16 -0
  164. package/dist/node/master/invocation-proxy.d.ts.map +1 -0
  165. package/dist/node/master/pool-browser.d.ts +93 -0
  166. package/dist/node/master/pool-browser.d.ts.map +1 -0
  167. package/dist/node/master/pool-node.d.ts +93 -0
  168. package/dist/node/master/pool-node.d.ts.map +1 -0
  169. package/dist/node/master/pool-node.mjs +309 -0
  170. package/dist/node/master/pool-node.mjs.map +7 -0
  171. package/dist/node/master/pool-types.d.ts +68 -0
  172. package/dist/node/master/pool-types.d.ts.map +1 -0
  173. package/dist/node/master/register.d.ts +2 -0
  174. package/dist/node/master/register.d.ts.map +1 -0
  175. package/dist/node/master/register.mjs +87 -0
  176. package/dist/node/master/register.mjs.map +7 -0
  177. package/dist/node/master/spawn.d.ts +22 -0
  178. package/dist/node/master/spawn.d.ts.map +1 -0
  179. package/dist/node/master/thread.d.ts +14 -0
  180. package/dist/node/master/thread.d.ts.map +1 -0
  181. package/dist/node/observable-promise.d.ts +41 -0
  182. package/dist/node/observable-promise.d.ts.map +1 -0
  183. package/dist/node/observable.d.ts +24 -0
  184. package/dist/node/observable.d.ts.map +1 -0
  185. package/dist/node/promise.d.ts +6 -0
  186. package/dist/node/promise.d.ts.map +1 -0
  187. package/dist/node/serializers.d.ts +27 -0
  188. package/dist/node/serializers.d.ts.map +1 -0
  189. package/dist/node/symbols.d.ts +11 -0
  190. package/dist/node/symbols.d.ts.map +1 -0
  191. package/dist/node/transferable.d.ts +49 -0
  192. package/dist/node/transferable.d.ts.map +1 -0
  193. package/dist/node/types/master.d.ts +111 -0
  194. package/dist/node/types/master.d.ts.map +1 -0
  195. package/dist/node/types/messages.d.ts +71 -0
  196. package/dist/node/types/messages.d.ts.map +1 -0
  197. package/dist/node/types/worker.d.ts +13 -0
  198. package/dist/node/types/worker.d.ts.map +1 -0
  199. package/dist/node/worker/WorkerGlobalScope.d.ts +7 -0
  200. package/dist/node/worker/WorkerGlobalScope.d.ts.map +1 -0
  201. package/dist/node/worker/expose.d.ts +10 -0
  202. package/dist/node/worker/expose.d.ts.map +1 -0
  203. package/dist/node/worker/worker.browser.d.ts +20 -0
  204. package/dist/node/worker/worker.browser.d.ts.map +1 -0
  205. package/dist/node/worker/worker.node.d.ts +34 -0
  206. package/dist/node/worker/worker.node.d.ts.map +1 -0
  207. package/dist/node/worker/worker.node.mjs +313 -0
  208. package/dist/node/worker/worker.node.mjs.map +7 -0
  209. package/package.json +147 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable-promise.d.ts","sourceRoot":"","sources":["../../src/observable-promise.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAK3C,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,aAAa,GAAG,IAAI,CAAA;AAEjF,KAAK,QAAQ,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,CAAA;CAAE,CAAA;AAEvG,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAoB/B;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,gCAA+B;IAC5D,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,kBAAkB,CAAmB;IAE7C,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,KAAK,CAAkD;gBAEnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IA4BhC,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IA0CrB,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EACjC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EACxE,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GACzE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAI/B,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS;IAIjG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAQlC,OAAO,CAAC,CAAC,CAAC;WAGD,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAerH"}
@@ -0,0 +1,24 @@
1
+ import type { ObservableLike } from 'observable-fns';
2
+ import { Observable } from 'observable-fns';
3
+ /**
4
+ * Observable subject. Implements the Observable interface, but also exposes
5
+ * the `next()`, `error()`, `complete()` methods to initiate observable
6
+ * updates "from the outside".
7
+ *
8
+ * Use `Observable.from(subject)` to derive an observable that proxies all
9
+ * values, errors and the completion raised on this subject, but does not
10
+ * expose the `next()`, `error()`, `complete()` methods.
11
+ */
12
+ export declare class Subject<T> extends Observable<T> implements ObservableLike<T> {
13
+ #private;
14
+ constructor();
15
+ /** Signal completion to all subscribers. */
16
+ complete(): void;
17
+ /** Signal an error to all subscribers. */
18
+ error(error: any): void;
19
+ /** Emit a new value to all subscribers. */
20
+ next(value: T): void;
21
+ }
22
+ /** Re-export of the Observable class from the `observable-fns` library. */
23
+ export { Observable } from 'observable-fns';
24
+ //# sourceMappingURL=observable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;GAQG;AACH,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;;;IAaxE,4CAA4C;IAC5C,QAAQ;IAIR,0CAA0C;IAC1C,KAAK,CAAC,KAAK,EAAE,GAAG;IAIhB,2CAA2C;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;CAGd;AAED,2EAA2E;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Creates a new promise and exposes its resolver function.
3
+ * Use with care!
4
+ */
5
+ export declare function createPromiseWithResolver<T>(): [Promise<T>, (result: T) => void];
6
+ //# sourceMappingURL=promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/promise.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,CAkBhF"}
@@ -0,0 +1,27 @@
1
+ /** A serializer that can convert between a message format and an input type. */
2
+ export interface Serializer<Msg = JsonSerializable, Input = any> {
3
+ deserialize(message: Msg): Input;
4
+ serialize(input: Input): Msg;
5
+ }
6
+ /** A serializer implementation that receives a fallback (default) serializer for chaining. */
7
+ export interface SerializerImplementation<Msg = JsonSerializable, Input = any> {
8
+ deserialize(message: Msg, defaultDeserialize: (msg: Msg) => Input): Input;
9
+ serialize(input: Input, defaultSerialize: (inp: Input) => Msg): Msg;
10
+ }
11
+ /**
12
+ * Extend a base serializer with an additional serializer implementation, creating a chain.
13
+ * @param extend - The base serializer to extend.
14
+ * @param implementation - The new serializer implementation that wraps the base.
15
+ * @returns A new serializer combining both behaviors.
16
+ */
17
+ export declare function extendSerializer<MessageType, InputType = any>(extend: Serializer<MessageType, InputType>, implementation: SerializerImplementation<MessageType, InputType>): Serializer<MessageType, InputType>;
18
+ type JsonSerializablePrimitive = string | number | boolean | null;
19
+ type JsonSerializableObject = {
20
+ [key: string]: JsonSerializablePrimitive | JsonSerializablePrimitive[] | JsonSerializableObject | JsonSerializableObject[] | undefined;
21
+ };
22
+ /** A JSON-compatible value that can be serialized for worker message passing. */
23
+ export type JsonSerializable = JsonSerializablePrimitive | JsonSerializablePrimitive[] | JsonSerializableObject | JsonSerializableObject[];
24
+ /** Default serializer that handles Error instances and passes other values through. */
25
+ export declare const DefaultSerializer: Serializer<JsonSerializable>;
26
+ export {};
27
+ //# sourceMappingURL=serializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../src/serializers.ts"],"names":[],"mappings":"AAGA,gFAAgF;AAChF,MAAM,WAAW,UAAU,CAAC,GAAG,GAAG,gBAAgB,EAAE,KAAK,GAAG,GAAG;IAC7D,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAA;IAChC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAA;CAC7B;AAED,8FAA8F;AAC9F,MAAM,WAAW,wBAAwB,CAAC,GAAG,GAAG,gBAAgB,EAAE,KAAK,GAAG,GAAG;IAC3E,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,GAAG,KAAK,CAAA;IACzE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,GAAG,GAAG,CAAA;CACpE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,SAAS,GAAG,GAAG,EAC3D,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAE,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC,GAC/D,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CASpC;AAED,KAAK,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAEjE,KAAK,sBAAsB,GAAG;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,GAAG,SAAS,CAAA;CACvI,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;AAqB1I,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,gBAAgB,CAG1D,CAAA"}
@@ -0,0 +1,11 @@
1
+ /** Symbol key for accessing a thread's error observable. */
2
+ export declare const $errors: unique symbol;
3
+ /** Symbol key for accessing a thread's event observable. */
4
+ export declare const $events: unique symbol;
5
+ /** Symbol key for accessing a thread's terminate function. */
6
+ export declare const $terminate: unique symbol;
7
+ /** Symbol key for marking an object as a transferable descriptor. */
8
+ export declare const $transferable: unique symbol;
9
+ /** Symbol key for accessing the underlying worker instance of a thread. */
10
+ export declare const $worker: unique symbol;
11
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/symbols.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,eAAO,MAAM,OAAO,eAA0B,CAAA;AAC9C,4DAA4D;AAC5D,eAAO,MAAM,OAAO,eAA0B,CAAA;AAC9C,8DAA8D;AAC9D,eAAO,MAAM,UAAU,eAA6B,CAAA;AACpD,qEAAqE;AACrE,eAAO,MAAM,aAAa,eAAgC,CAAA;AAC1D,2EAA2E;AAC3E,eAAO,MAAM,OAAO,eAA0B,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { $transferable } from './symbols.ts';
2
+ /** Descriptor wrapping a value with its associated transferable objects for zero-copy messaging. */
3
+ export interface TransferDescriptor<T = any> {
4
+ [$transferable]: true;
5
+ send: T;
6
+ transferables: Transferable[];
7
+ }
8
+ /**
9
+ * Check whether a value is a `TransferDescriptor` created by `Transfer()`.
10
+ * @param thing - The value to check.
11
+ * @returns True if the value is a transfer descriptor.
12
+ */
13
+ export declare function isTransferDescriptor(thing: any): thing is TransferDescriptor;
14
+ /**
15
+ * Mark a transferable object as such, so it will no be serialized and
16
+ * deserialized on messaging with the main thread, but to transfer
17
+ * ownership of it to the receiving thread.
18
+ *
19
+ * Only works with array buffers, message ports and few more special
20
+ * types of objects, but it's much faster than serializing and
21
+ * deserializing them.
22
+ *
23
+ * Note:
24
+ * The transferable object cannot be accessed by this thread again
25
+ * unless the receiving thread transfers it back again!
26
+ *
27
+ * @param transferable Array buffer, message port or similar.
28
+ * @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
29
+ */
30
+ export declare function Transfer(transferable: Transferable): TransferDescriptor;
31
+ /**
32
+ * Mark transferable objects within an arbitrary object or array as
33
+ * being a transferable object. They will then not be serialized
34
+ * and deserialized on messaging with the main thread, but ownership
35
+ * of them will be tranferred to the receiving thread.
36
+ *
37
+ * Only array buffers, message ports and few more special types of
38
+ * objects can be transferred, but it's much faster than serializing and
39
+ * deserializing them.
40
+ *
41
+ * Note:
42
+ * The transferable object cannot be accessed by this thread again
43
+ * unless the receiving thread transfers it back again!
44
+ *
45
+ * @param transferable Array buffer, message port or similar.
46
+ * @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
47
+ */
48
+ export declare function Transfer<T>(payload: T, transferables: Transferable[]): TransferDescriptor;
49
+ //# sourceMappingURL=transferable.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,111 @@
1
+ import type { Observable } from 'observable-fns';
2
+ import type { ObservablePromise } from '../observable-promise.ts';
3
+ import type { $errors, $events, $terminate, $worker } from '../symbols.ts';
4
+ import type { TransferDescriptor } from '../transferable.ts';
5
+ interface ObservableLikeSubscription {
6
+ unsubscribe(): any;
7
+ }
8
+ interface ObservableLike<T> {
9
+ subscribe(onNext: (value: T) => any, onError?: (error: any) => any, onComplete?: () => any): ObservableLikeSubscription;
10
+ subscribe(listeners: {
11
+ complete?(): any;
12
+ error?(error: any): any;
13
+ next?(value: T): any;
14
+ }): ObservableLikeSubscription;
15
+ }
16
+ /** Unwraps `Promise<T>` or `ObservableLike<T>` to their inner type `T`. */
17
+ export type StripAsync<Type> = Type extends Promise<infer PromiseBaseType> ? PromiseBaseType : Type extends ObservableLike<infer ObservableBaseType> ? ObservableBaseType : Type;
18
+ type StripTransfer<Type> = Type extends TransferDescriptor<infer BaseType> ? BaseType : Type;
19
+ /** An object whose keys are method names and values are functions, representing a worker module's methods. */
20
+ export type ModuleMethods = Record<string, (...args: any) => any>;
21
+ type ProxyableArgs<Args extends any[]> = Args extends [arg0: infer Arg0, ...rest: infer RestArgs] ? [Arg0 extends Transferable ? Arg0 | TransferDescriptor<Arg0> : Arg0, ...RestArgs] : Args;
22
+ /** A function proxied from a worker thread, returning an `ObservablePromise` of the unwrapped result. */
23
+ export type ProxyableFunction<Args extends any[], ReturnType> = Args extends [] ? () => ObservablePromise<StripTransfer<StripAsync<ReturnType>>> : (...args: ProxyableArgs<Args>) => ObservablePromise<StripTransfer<StripAsync<ReturnType>>>;
24
+ /** Proxy object mapping a worker module's methods to their proxied counterparts. */
25
+ export type ModuleProxy<Methods extends ModuleMethods> = {
26
+ [method in keyof Methods]: ProxyableFunction<Parameters<Methods[method]>, ReturnType<Methods[method]>>;
27
+ };
28
+ /** Internal symbol-keyed properties attached to every spawned thread. */
29
+ export interface PrivateThreadProps {
30
+ [$errors]: Observable<Error>;
31
+ [$events]: Observable<WorkerEvent>;
32
+ [$terminate]: () => Promise<void>;
33
+ [$worker]: Worker;
34
+ }
35
+ /** A thread wrapping a single exposed function. */
36
+ export type FunctionThread<Args extends any[] = any[], ReturnType = any> = ProxyableFunction<Args, ReturnType> & PrivateThreadProps;
37
+ /** A thread wrapping an exposed module of functions. */
38
+ export type ModuleThread<Methods extends ModuleMethods = any> = ModuleProxy<Methods> & PrivateThreadProps;
39
+ interface AnyFunctionThread extends PrivateThreadProps {
40
+ (...args: any[]): ObservablePromise<any>;
41
+ }
42
+ interface AnyModuleThread extends PrivateThreadProps {
43
+ }
44
+ /** Worker thread. Either a `FunctionThread` or a `ModuleThread`. */
45
+ export type Thread = AnyFunctionThread | AnyModuleThread;
46
+ /** List of `Transferable` objects to be transferred with a message. */
47
+ export type TransferList = Transferable[];
48
+ /** Worker instance. Either a web worker or a Node.js Worker provided by `worker_threads`. */
49
+ export interface Worker extends EventTarget {
50
+ postMessage(value: any, transferList?: TransferList): void;
51
+ /** In Node.js return type is Promise while in browser return type is void */
52
+ terminate(callback?: (error?: Error, exitCode?: number) => void): void | Promise<number>;
53
+ }
54
+ /** Options for configuring a worker thread, extending the standard `WorkerOptions`. */
55
+ export interface ThreadsWorkerOptions extends WorkerOptions {
56
+ /** Whether to apply CORS protection workaround. Defaults to true. */
57
+ CORSWorkaround?: boolean;
58
+ /** Prefix for the path passed to the Worker constructor. Web worker only. */
59
+ _baseURL?: string;
60
+ /** Resource limits passed on to Node worker_threads */
61
+ resourceLimits?: {
62
+ /** The size of a pre-allocated memory range used for generated code. */
63
+ codeRangeSizeMb?: number;
64
+ /** The maximum size of the main heap in MB. */
65
+ maxOldGenerationSizeMb?: number;
66
+ /** The maximum size of a heap space for recently created objects. */
67
+ maxYoungGenerationSizeMb?: number;
68
+ };
69
+ /** Data passed on to Node.js worker_threads. */
70
+ workerData?: any;
71
+ }
72
+ /** Worker implementation. Either web worker or a Node.js Worker class. */
73
+ export declare class WorkerImplementation extends EventTarget implements Worker {
74
+ constructor(path: string, options?: ThreadsWorkerOptions);
75
+ postMessage(value: any, transferList?: TransferList): void;
76
+ terminate(): void | Promise<number>;
77
+ }
78
+ /** Class to spawn workers from a blob or source string. */
79
+ export declare class BlobWorker extends WorkerImplementation {
80
+ constructor(blob: Blob, options?: ThreadsWorkerOptions);
81
+ static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation;
82
+ }
83
+ /** Export shape for platform-specific worker implementations. */
84
+ export interface ImplementationExport {
85
+ blob: typeof BlobWorker;
86
+ default: typeof WorkerImplementation;
87
+ }
88
+ /** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */
89
+ export declare enum WorkerEventType {
90
+ internalError = "internalError",
91
+ message = "message",
92
+ termination = "termination"
93
+ }
94
+ /** Event indicating an internal error occurred in the worker. */
95
+ export interface WorkerInternalErrorEvent {
96
+ error: Error;
97
+ type: WorkerEventType.internalError;
98
+ }
99
+ /** Event containing a message received from the worker. */
100
+ export interface WorkerMessageEvent<Data> {
101
+ data: Data;
102
+ type: WorkerEventType.message;
103
+ }
104
+ /** Event indicating the worker has been terminated. */
105
+ export interface WorkerTerminationEvent {
106
+ type: WorkerEventType.termination;
107
+ }
108
+ /** Union of all possible worker event types. */
109
+ export type WorkerEvent = WorkerInternalErrorEvent | WorkerMessageEvent<any> | WorkerTerminationEvent;
110
+ export {};
111
+ //# sourceMappingURL=master.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /** Serialized representation of an Error for transmission between threads. */
2
+ export interface SerializedError {
3
+ __error_marker: '$$error';
4
+ message: string;
5
+ name: string;
6
+ stack?: string;
7
+ }
8
+ /** Types of messages that the master thread can send to a worker. */
9
+ export declare enum MasterMessageType {
10
+ cancel = "cancel",
11
+ run = "run"
12
+ }
13
+ /** Message sent by the master to cancel a running job. */
14
+ export type MasterJobCancelMessage = {
15
+ type: MasterMessageType.cancel;
16
+ uid: number;
17
+ };
18
+ /** Message sent by the master to run a function in the worker. */
19
+ export type MasterJobRunMessage = {
20
+ type: MasterMessageType.run;
21
+ uid: number;
22
+ method?: string;
23
+ args: any[];
24
+ };
25
+ /** Types of messages that a worker thread can send to the master. */
26
+ export declare enum WorkerMessageType {
27
+ error = "error",
28
+ init = "init",
29
+ result = "result",
30
+ running = "running",
31
+ uncaughtError = "uncaughtError"
32
+ }
33
+ /** Message sent by a worker when an uncaught error occurs. */
34
+ export type WorkerUncaughtErrorMessage = {
35
+ type: WorkerMessageType.uncaughtError;
36
+ error: {
37
+ message: string;
38
+ name: string;
39
+ stack?: string;
40
+ };
41
+ };
42
+ /** Message sent by a worker after calling `expose()` to signal its API to the master. */
43
+ export type WorkerInitMessage = {
44
+ type: WorkerMessageType.init;
45
+ exposed: {
46
+ type: 'function';
47
+ } | {
48
+ type: 'module';
49
+ methods: string[];
50
+ };
51
+ };
52
+ /** Message sent by a worker when a job encounters an error. */
53
+ export type WorkerJobErrorMessage = {
54
+ type: WorkerMessageType.error;
55
+ uid: number;
56
+ error: SerializedError;
57
+ };
58
+ /** Message sent by a worker containing a job's result value. */
59
+ export type WorkerJobResultMessage = {
60
+ type: WorkerMessageType.result;
61
+ uid: number;
62
+ complete?: true;
63
+ payload?: any;
64
+ };
65
+ /** Message sent by a worker when a job starts executing. */
66
+ export type WorkerJobStartMessage = {
67
+ type: WorkerMessageType.running;
68
+ uid: number;
69
+ resultType: 'observable' | 'promise';
70
+ };
71
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ type UnsubscribeFn = () => void;
2
+ /** Abstraction layer for the worker runtime API, used by `expose()` to communicate with the master thread. */
3
+ export interface AbstractedWorkerAPI {
4
+ isWorkerRuntime(): boolean;
5
+ postMessageToMaster(message: any, transferList?: Transferable[]): void;
6
+ subscribeToMasterMessages(onMessage: (data: any) => void): UnsubscribeFn;
7
+ }
8
+ /** A function that can be exposed from a worker thread. */
9
+ export type WorkerFunction = ((...args: any[]) => any) | (() => any);
10
+ /** An object whose values are functions, representing a module exposed from a worker thread. */
11
+ export type WorkerModule<Keys extends string> = Record<Keys, WorkerFunction>;
12
+ export {};
13
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,7 @@
1
+ /** Minimal interface representing the global scope inside a web worker. */
2
+ export interface WorkerGlobalScope {
3
+ addEventListener(eventName: string, listener: (event: Event) => void): void;
4
+ postMessage(message: unknown, transferList?: readonly Transferable[]): void;
5
+ removeEventListener(eventName: string, listener: (event: Event) => void): void;
6
+ }
7
+ //# sourceMappingURL=WorkerGlobalScope.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ import type { AbstractedWorkerAPI, WorkerFunction, WorkerModule } from '../types/worker.ts';
2
+ import type { WorkerGlobalScope } from './WorkerGlobalScope.ts';
3
+ /**
4
+ * Create an `expose()` function bound to a specific worker API implementation and global scope.
5
+ * @param implementation - The abstracted worker API for communicating with the master thread.
6
+ * @param self - The worker's global scope for subscribing to error events.
7
+ * @returns The `expose()` function that workers call to register their API.
8
+ */
9
+ export declare function createExpose(implementation: AbstractedWorkerAPI, self: WorkerGlobalScope): (exposed: WorkerFunction | WorkerModule<any>) => void;
10
+ //# sourceMappingURL=expose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../../src/worker/expose.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAClD,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAa/D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,aAmI9D,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,UAoF5D"}
@@ -0,0 +1,20 @@
1
+ import type { AbstractedWorkerAPI } from '../types/worker.ts';
2
+ /** Check if the current code is running inside a browser web worker context. */
3
+ declare const isWorkerRuntime: AbstractedWorkerAPI['isWorkerRuntime'];
4
+ /** Post a message from this worker to the master thread via the global `postMessage`. */
5
+ declare const postMessageToMaster: AbstractedWorkerAPI['postMessageToMaster'];
6
+ /** Subscribe to messages from the master thread via the global `addEventListener`. */
7
+ declare const subscribeToMasterMessages: AbstractedWorkerAPI['subscribeToMasterMessages'];
8
+ /** Bound `addEventListener` from the worker global scope. */
9
+ declare const addEventListener: (eventName: string, listener: (event: Event) => void) => void;
10
+ /** Bound `postMessage` from the worker global scope. */
11
+ declare const postMessage: (message: unknown, transferList?: readonly Transferable[]) => void;
12
+ /** Bound `removeEventListener` from the worker global scope. */
13
+ declare const removeEventListener: (eventName: string, listener: (event: Event) => void) => void;
14
+ export { addEventListener, postMessage, removeEventListener, };
15
+ declare const expose: (exposed: import("../types/worker.ts").WorkerFunction | import("../types/worker.ts").WorkerModule<any>) => void;
16
+ export { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, };
17
+ export { registerSerializer } from '../common.ts';
18
+ export { Transfer } from '../transferable.ts';
19
+ export { expose };
20
+ //# sourceMappingURL=worker.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.browser.d.ts","sourceRoot":"","sources":["../../../src/worker/worker.browser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAM7D,gFAAgF;AAChF,QAAA,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAG3D,CAAA;AAED,yFAAyF;AACzF,QAAA,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAEnE,CAAA;AAED,sFAAsF;AACtF,QAAA,MAAM,yBAAyB,EAAE,mBAAmB,CAAC,2BAA2B,CAS/E,CAAA;AAED,6DAA6D;AAE7D,QAAA,MAAM,gBAAgB,+DAAmC,CAAA;AACzD,wDAAwD;AAExD,QAAA,MAAM,WAAW,oEAA8B,CAAA;AAC/C,gEAAgE;AAEhE,QAAA,MAAM,mBAAmB,+DAAsC,CAAA;AAE/D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,CAAA;AAED,QAAA,MAAM,MAAM,iHAIV,CAAA;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,34 @@
1
+ import type { MessagePort, Transferable as NodeTransferable } from 'node:worker_threads';
2
+ import type { AbstractedWorkerAPI } from '../types/worker.ts';
3
+ /** Check if the current code is running inside a Node.js worker thread. */
4
+ declare const isWorkerRuntime: AbstractedWorkerAPI['isWorkerRuntime'];
5
+ /** Post a message from this worker to the master thread via the parent port. */
6
+ declare const postMessageToMaster: AbstractedWorkerAPI['postMessageToMaster'];
7
+ /** Subscribe to messages from the master thread on the parent port. */
8
+ declare const subscribeToMasterMessages: AbstractedWorkerAPI['subscribeToMasterMessages'];
9
+ /** Bound `on` method from the parent port for adding event listeners. */
10
+ declare const addEventListener: {
11
+ (event: "close", listener: (ev: Event) => void): MessagePort;
12
+ (event: "message", listener: (value: any) => void): MessagePort;
13
+ (event: "messageerror", listener: (error: Error) => void): MessagePort;
14
+ (event: string, listener: (arg: any) => void): MessagePort;
15
+ };
16
+ /** Bound `postMessage` method from the parent port. */
17
+ declare const postMessage: {
18
+ (message: any, transfer: NodeTransferable[]): void;
19
+ (message: any, options?: import("node:worker_threads").StructuredSerializeOptions): void;
20
+ };
21
+ /** Bound `off` method from the parent port for removing event listeners. */
22
+ declare const removeEventListener: {
23
+ (event: "close", listener: (ev: Event) => void, options?: EventListenerOptions): MessagePort;
24
+ (event: "message", listener: (value: any) => void, options?: EventListenerOptions): MessagePort;
25
+ (event: "messageerror", listener: (error: Error) => void, options?: EventListenerOptions): MessagePort;
26
+ (event: string, listener: (arg: any) => void, options?: EventListenerOptions): MessagePort;
27
+ };
28
+ export { addEventListener, postMessage, removeEventListener, };
29
+ declare const expose: (exposed: import("../types/worker.ts").WorkerFunction | import("../types/worker.ts").WorkerModule<any>) => void;
30
+ export { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, };
31
+ export { registerSerializer } from '../common.ts';
32
+ export { Transfer } from '../transferable.ts';
33
+ export { expose };
34
+ //# sourceMappingURL=worker.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.node.d.ts","sourceRoot":"","sources":["../../../src/worker/worker.node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAKxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAY7D,2EAA2E;AAC3E,QAAA,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAE3D,CAAA;AAED,gFAAgF;AAChF,QAAA,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAEnE,CAAA;AAED,uEAAuE;AACvE,QAAA,MAAM,yBAAyB,EAAE,mBAAmB,CAAC,2BAA2B,CAY/E,CAAA;AAED,yEAAyE;AACzE,QAAA,MAAM,gBAAgB;;;;;CAAkC,CAAA;AACxD,uDAAuD;AACvD,QAAA,MAAM,WAAW;;;CAA2C,CAAA;AAC5D,4EAA4E;AAC5E,QAAA,MAAM,mBAAmB;;;;;CAAmC,CAAA;AAE5D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,CAAA;AAED,QAAA,MAAM,MAAM,iHAIV,CAAA;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,CAAA"}