easy-web-worker 4.0.8 → 6.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.
@@ -12,33 +12,29 @@ export interface IWorkerConfig<TPrimitiveParameters extends any[] = unknown[]> {
12
12
  ** Identifier of your worker, this is in case you want to add a name to your worker file, otherwise an unique generic Id will be added as a name
13
13
  */
14
14
  name: string;
15
- workerOptions?: WorkerOptions;
15
+ workerOptions: WorkerOptions;
16
16
  /**
17
17
  * Callback that will be executed when the worker fails, this not necessary affect the current message execution
18
18
  * */
19
19
  onWorkerError: (error: ErrorEvent) => void;
20
- /**
21
- * Url of the worker file, this is reserver for EasyWebWorker created from a Worker Instance
22
- */
23
- url?: string;
24
20
  /**
25
21
  * Maximum quantity of workers that will be created, default is 4
26
22
  */
27
- maxWorkers?: number;
23
+ maxWorkers: number;
28
24
  /**
29
25
  * Indicates if the worker should be kept alive after the message is completed
30
26
  * otherwise, the workers will be terminated after a configured delay has passed and there is no messages in the queue
31
27
  */
32
- keepAlive?: boolean;
28
+ keepAlive: boolean;
33
29
  /**
34
30
  * Quantity of milliseconds to wait before terminating the worker if there is no messages in the queue
35
31
  */
36
- terminationDelay?: number;
32
+ terminationDelay: number;
37
33
  /**
38
34
  * Indicates whenever the maximum quantity of workers should be created at the initialization of the easy web worker,
39
35
  * If warmUp is true keepAlive will be set to true
40
36
  */
41
- warmUpWorkers?: boolean;
37
+ warmUpWorkers: boolean;
42
38
  /**
43
39
  * Allows to pass static primitive parameters to the worker
44
40
  */
@@ -47,6 +43,11 @@ export interface IWorkerConfig<TPrimitiveParameters extends any[] = unknown[]> {
47
43
  * Allows to override the worker file origin
48
44
  */
49
45
  origin?: string;
46
+ /**
47
+ * @deprecated This url parameter don't have any effect on the worker, it will be removed in the next major version
48
+ * To create a worker from an external file, you should pass the url as the first parameter of the EasyWebWorker constructor
49
+ */
50
+ url?: string;
50
51
  }
51
52
  export interface IWorkerData<IPayload> {
52
53
  /**
@@ -90,7 +91,7 @@ export interface IMessageData<IPayload = null> {
90
91
  /**
91
92
  * When present, this means that the message was canceled from inside the worker
92
93
  * */
93
- readonly worker_canceled?: {
94
+ readonly worker_cancelation?: {
94
95
  reason: unknown;
95
96
  };
96
97
  /**
@@ -166,6 +167,11 @@ context: DedicatedWorkerGlobalScope & {
166
167
  primitiveParameters: TPrimitiveParameters;
167
168
  } & Record<string, unknown>) => void;
168
169
  export interface IEasyWebWorkerMessage<TPayload = null, TResult = void> {
170
+ origin?: string;
171
+ /**
172
+ * This is the method name targeted by the message
173
+ */
174
+ method?: string;
169
175
  /**
170
176
  * This is the message id
171
177
  */
@@ -177,23 +183,25 @@ export interface IEasyWebWorkerMessage<TPayload = null, TResult = void> {
177
183
  /**
178
184
  * This method is used to reject the message from inside the worker
179
185
  * */
180
- readonly reject: (reason?: unknown) => void;
186
+ readonly reject: (reason?: unknown, transfer?: Transferable[]) => void;
181
187
  /**
182
188
  * This method is used to report the progress of the message from inside the worker
183
189
  * */
184
- readonly reportProgress: (percentage: number, payload?: unknown) => void;
190
+ readonly reportProgress: (percentage: number, payload?: unknown, transfer?: Transferable[]) => void;
185
191
  /**
186
192
  * This method is used to resolve the message from inside the worker
187
193
  * */
188
- readonly resolve: [TResult] extends [void] ? () => void : (payload: TResult) => void;
194
+ readonly resolve: [TResult] extends [void] ? () => void : (payload: TResult, transfer?: Transferable[]) => void;
189
195
  /**
190
196
  * This method is used to cancel the message from inside the worker
191
197
  * */
192
- readonly cancel: (reason?: unknown) => void;
198
+ readonly cancel: (reason?: unknown, transfer?: Transferable[]) => void;
193
199
  /**
194
200
  * Thus method is used to subscribe to the cancel event from the main thread
195
201
  */
196
202
  readonly onCancel: (callback: (reason?: unknown) => void) => void;
203
+ readonly getStatus: () => 'pending' | 'resolved' | 'rejected' | 'canceled';
204
+ readonly isPending: () => boolean;
197
205
  }
198
206
  export declare const createBlobWorker: <IPayload = null, IResult = void, TPrimitiveParameters extends any[] = unknown[]>(source: EasyWebWorkerBody<IPayload, IResult, unknown[]> | EasyWebWorkerBody<IPayload, IResult, unknown[]>[], imports?: string[], origin?: string, { primitiveParameters, }?: {
199
207
  primitiveParameters?: TPrimitiveParameters;
@@ -217,33 +225,67 @@ export declare class EasyWebWorker<TPayload = null, TResult = void, TPrimitivePa
217
225
  * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
218
226
  * you could easily identify what is on the context of your Worker.
219
227
  */
220
- protected source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[] | string | Worker | Worker[];
228
+ protected source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<any, any>[] | string | URL | Worker | Worker[];
229
+ /**
230
+ * This is the URL of the worker file
231
+ */
232
+ workerUrl?: string | URL | null;
233
+ /**
234
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
235
+ */
221
236
  name: string;
237
+ /**
238
+ * Worker configuration
239
+ */
240
+ config: Partial<IWorkerConfig<TPrimitiveParameters>>;
222
241
  /**
223
242
  * @deprecated Directly modifying the worker may lead to unexpected behavior. Use it only if you know what you are doing.
243
+ * this property will be removed in the next major version
224
244
  */
225
245
  get worker(): Worker;
246
+ /**
247
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
248
+ */
226
249
  maxWorkers: number;
227
- private workers;
250
+ /**
251
+ * @deprecated avoid direct access to the workers unless you know what you are doing
252
+ */
253
+ workers: Worker[];
254
+ /**
255
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
256
+ */
228
257
  keepAlive: boolean;
258
+ /**
259
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
260
+ */
229
261
  warmUpWorkers: boolean;
262
+ /**
263
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
264
+ */
230
265
  terminationDelay: number;
266
+ /**
267
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
268
+ */
231
269
  origin: string;
270
+ /**
271
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
272
+ */
232
273
  primitiveParameters: TPrimitiveParameters;
274
+ /**
275
+ * @deprecated this will be removed in the next major version and keep it just inside the config object
276
+ */
233
277
  workerOptions?: WorkerOptions;
234
278
  /**
235
279
  * These where send to the worker but not yet resolved
236
280
  */
237
281
  private messagesQueue;
238
282
  /**
239
- * This is the URL of the worker file
240
- */
241
- workerUrl: string;
242
- /**
283
+ * @deprecated this will be removed in the next major version to be grouped as a worker option object
243
284
  * This is the list of scripts that will be imported into the worker
244
285
  */
245
286
  scripts: string[];
246
287
  /**
288
+ * @deprecated this will be removed in the next major version to be grouped as a worker option object
247
289
  * This is the callback that will be executed when the worker throws an error
248
290
  */
249
291
  onWorkerError: (error: ErrorEvent) => void;
@@ -255,11 +297,11 @@ export declare class EasyWebWorker<TPayload = null, TResult = void, TPrimitivePa
255
297
  * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
256
298
  * you could easily identify what is on the context of your Worker.
257
299
  */
258
- source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[] | string | Worker | Worker[],
300
+ source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<any, any>[] | string | URL | Worker | Worker[],
259
301
  /**
260
302
  * You could import scripts into your worker, this is useful if you want to use external libraries
261
303
  */
262
- { scripts, name, onWorkerError, url, maxWorkers, keepAlive: _keepAlive, terminationDelay, warmUpWorkers: _warmUpWorkers, primitiveParameters, origin, workerOptions, }?: Partial<IWorkerConfig<TPrimitiveParameters>>);
304
+ config?: Partial<IWorkerConfig<TPrimitiveParameters>>);
263
305
  private warmUp;
264
306
  private fillWorkerMethods;
265
307
  private createNewWorker;
@@ -279,7 +321,7 @@ export declare class EasyWebWorker<TPayload = null, TResult = void, TPrimitivePa
279
321
  */
280
322
  cancelAll(reason?: unknown, { force }?: {
281
323
  force?: boolean;
282
- }): any;
324
+ }): CancelablePromise<unknown[]>;
283
325
  protected addMessageToQueue(message: EasyWebWorkerMessage<unknown, unknown>): void;
284
326
  /**
285
327
  * Send a message to the worker queue to an specific method
@@ -315,7 +357,7 @@ export declare class EasyWebWorker<TPayload = null, TResult = void, TPrimitivePa
315
357
  * This method will reboot the worker and cancel all the messages in the queue
316
358
  * @param {unknown} reason - reason why the worker will be restarted
317
359
  */
318
- reboot(reason?: unknown): any;
360
+ reboot(reason?: unknown): CancelablePromise<unknown[]>;
319
361
  /**
320
362
  * This method will remove the WebWorker and the BlobUrl
321
363
  */
@@ -1,2 +1,2 @@
1
1
  import { EasyWebWorker, EasyWebWorkerBody, IWorkerConfig } from './EasyWebWorker';
2
- export declare const createEasyWebWorker: <TPayload = null, TResult = void>(source: string | Worker | Worker[] | EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[], parameters?: Partial<IWorkerConfig>) => EasyWebWorker<TPayload, TResult, unknown[]>;
2
+ export declare const createEasyWebWorker: <TPayload = null, TResult = void>(source: string | URL | Worker | Worker[] | EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[], parameters?: Partial<IWorkerConfig>) => EasyWebWorker<TPayload, TResult, unknown[]>;
@@ -1,2 +1,10 @@
1
1
  export declare const generatedId: () => string;
2
- export declare const getWorkerTemplate: () => string;
2
+ /**
3
+ * This function contains an obfuscated version of the StaticEasyWebWorker internal auto invocable function, without comments or types
4
+ * this template is used to create dynamic workers from strings templates
5
+ * PLEASE KEEP THIS FUNCTION UPDATED WITH THE LATEST VERSION OF THE StaticEasyWebWorker CLASS
6
+ * [IMPORTANT] Avoid ";" at the end of the template, and dont forget to inject the targetOrigin variable: ({targetOrigin:'${origin}'})
7
+ */
8
+ export declare const getWorkerTemplate: ({ origin }: {
9
+ origin: string;
10
+ }) => string;
@@ -1,4 +1,4 @@
1
- import { TDecoupledCancelablePromise } from 'cancelable-promise-jq';
1
+ import { CancelablePromise, TDecoupledCancelablePromise } from 'cancelable-promise-jq';
2
2
  /**
3
3
  * This class represents a message that will be send to a worker
4
4
  */
@@ -6,35 +6,31 @@ export declare class EasyWebWorkerMessage<TPayload = null, TResult = void> {
6
6
  /**
7
7
  * This is the message id, it's generated automatically
8
8
  */
9
- messageId: string;
9
+ readonly messageId: string;
10
10
  /**
11
11
  * When present, this means that the message was resolved
12
12
  */
13
- resolved?: {
13
+ readonly resolved?: {
14
14
  payload: [TPayload?];
15
15
  };
16
16
  /**
17
17
  * When present, this means that the message was rejected
18
18
  * */
19
- rejected?: {
19
+ readonly rejected?: {
20
20
  reason: unknown;
21
21
  };
22
22
  /**
23
23
  * When present, this means that the message was canceled
24
24
  * */
25
- canceled?: {
26
- reason: unknown;
27
- };
28
- /**
29
- * When present, this means that the message was canceled
30
- * */
31
- worker_canceled?: {
25
+ readonly canceled?: {
32
26
  reason: unknown;
33
27
  };
34
28
  /**
35
29
  * Decoupled promise that will be resolved when the message is completed
36
30
  * The decoupled promise is a promise that can be resolved, rejected or canceled from outside
37
31
  */
38
- decoupledPromise: TDecoupledCancelablePromise<TResult>;
32
+ readonly decoupledPromise: TDecoupledCancelablePromise<TResult> & {
33
+ _cancel?: (reason?: unknown) => CancelablePromise<TResult>;
34
+ };
39
35
  constructor();
40
36
  }
package/lib/bundle.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see bundle.js.LICENSE.txt */
2
- !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports["easy-web-worker"]=r():e["easy-web-worker"]=r()}(this,(()=>{return e={797:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.createEasyWebWorker=void 0;var n=t(30);r.createEasyWebWorker=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new n.EasyWebWorker(e,r)}},30:(e,r,t)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;u=!1}else for(;!(u=(n=i.call(t)).done)&&(c.push(n.value),c.length!==r);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,r)||i(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,r){if(e){if("string"==typeof e)return a(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,r):void 0}}function a(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function c(){c=function(){return e};var e={},r=Object.prototype,t=r.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{l({},"")}catch(e){l=function(e,r,t){return e[r]=t}}function f(e,r,t,n){var i=r&&r.prototype instanceof d?r:d,a=Object.create(i.prototype),c=new W(n||[]);return o(a,"_invoke",{value:j(e,t,c)}),a}function p(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var h={};function d(){}function v(){}function y(){}var m={};l(m,a,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(_([])));b&&b!==r&&t.call(b,a)&&(m=b);var w=y.prototype=d.prototype=Object.create(m);function k(e){["next","throw","return"].forEach((function(r){l(e,r,(function(e){return this._invoke(r,e)}))}))}function P(e,r){function i(o,a,c,u){var s=p(e[o],e,a);if("throw"!==s.type){var l=s.arg,f=l.value;return f&&"object"==n(f)&&t.call(f,"__await")?r.resolve(f.__await).then((function(e){i("next",e,c,u)}),(function(e){i("throw",e,c,u)})):r.resolve(f).then((function(e){l.value=e,c(l)}),(function(e){return i("throw",e,c,u)}))}u(s.arg)}var a;o(this,"_invoke",{value:function(e,t){function n(){return new r((function(r,n){i(e,t,r,n)}))}return a=a?a.then(n,n):n()}})}function j(e,r,t){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var c=O(a,t);if(c){if(c===h)continue;return c}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var u=p(e,r,t);if("normal"===u.type){if(n=t.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n="completed",t.method="throw",t.arg=u.arg)}}}function O(e,r){var t=r.method,n=e.iterator[t];if(void 0===n)return r.delegate=null,"throw"===t&&e.iterator.return&&(r.method="return",r.arg=void 0,O(e,r),"throw"===r.method)||"return"!==t&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+t+"' method")),h;var o=p(n,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,h;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,h):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function E(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function x(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function W(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function _(e){if(e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(t.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return v.prototype=y,o(w,"constructor",{value:y,configurable:!0}),o(y,"constructor",{value:v,configurable:!0}),v.displayName=l(y,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===v||"GeneratorFunction"===(r.displayName||r.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,l(e,s,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},k(P.prototype),l(P.prototype,u,(function(){return this})),e.AsyncIterator=P,e.async=function(r,t,n,o,i){void 0===i&&(i=Promise);var a=new P(f(r,t,n,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(w),l(w,s,"Generator"),l(w,a,(function(){return this})),l(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=_,W.prototype={constructor:W,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var r in this)"t"===r.charAt(0)&&t.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(t,n){return a.type="throw",a.arg=e,r.next=t,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=t.call(i,"catchLoc"),u=t.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,r){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),h},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),x(t),h}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;x(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,t){return this.delegate={iterator:_(e),resultName:r,nextLoc:t},"next"===this.method&&(this.arg=void 0),h}},e}function u(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(void 0,i=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===n(i)?i:String(i)),o)}var i}var s=function(e,r,t,n){return new(t||(t=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function c(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(a,c)}u((n=n.apply(e,r||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.EasyWebWorker=r.createBlobWorker=void 0;var l=t(213),f=t(726),p=t(367);r.createBlobWorker=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).primitiveParameters,o=void 0===n?[]:n,i=Array.isArray(e)?e:[e],a="self.primitiveParameters=JSON.parse(`".concat(JSON.stringify(null!=o?o:[]),"`);").concat(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.length?'self.importScripts(["'.concat(e.join('","'),'"]);'):""}(r)).concat((0,f.getWorkerTemplate)()).concat(i.map((function(e){return'self.ew$=self.cw$("'.concat(t,'");(').concat(e,")(self.ew$, self);")})).join(""));return(window.URL||window.webkitURL).createObjectURL(new Blob([a],{type:"application/javascript"}))};var h=function(){function e(r){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.scripts,a=void 0===i?[]:i,u=n.name,h=n.onWorkerError,d=void 0===h?null:h,v=n.url,y=void 0===v?null:v,m=n.maxWorkers,g=void 0===m?1:m,b=n.keepAlive,w=void 0===b?null:b,k=n.terminationDelay,P=void 0===k?1e3:k,j=n.warmUpWorkers,O=void 0===j?null:j,E=n.primitiveParameters,x=n.origin,W=void 0===x?"":x,_=n.workerOptions;!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.source=r,this.maxWorkers=1,this.workers=[],this.keepAlive=!0,this.warmUpWorkers=!1,this.terminationDelay=1e3,this.origin="",this.primitiveParameters=[],this.messagesQueue=new Map,this.workerUrl=null,this.scripts=[],this.warmUp=function(){if(t.warmUpWorkers){var e=t.maxWorkers;new Array(e).fill(null).forEach((function(){return t.getWorkerFromPool()}))}},this.fillWorkerMethods=function(e){return e.onmessage=function(e){t.executeMessageCallback(e)},e.onerror=function(e){if(!t.onWorkerError)throw e;t.onWorkerError(e)},e},this.createNewWorker=function(){var e,r=new Worker(t.workerUrl,Object.assign(Object.assign({},t.workerOptions),{name:(e=t.workers.length,0===e?t.name:"".concat(t.name,"-").concat(e))}));return t.fillWorkerMethods(r)},this.getWorkerFromPool=function(){var e=t.maxWorkers,r=t.messagesQueue.size;if(!t.workers.length||t.workers.length<e&&r){var n=t.createNewWorker();return t.workers.push(n),n}var o=t.workers.shift();return t.workers.push(o),o},this.computeWorkerBaseSource=function(){var e=function(){var e,r;if(t.source instanceof Worker)return t.workers=[t.fillWorkerMethods(t.source)],{isArrayOfWebWorkers:!1,workerUrl:null};var n="string"==typeof t.source,o="function"==typeof t.source;if(n||o)return{isArrayOfWebWorkers:!1,workerUrl:null!==(e=t.workerUrl)&&void 0!==e?e:t.getWorkerUrl()};var i=Array.isArray(t.source);if(i&&"function"==typeof t.source[0])return{isArrayOfWebWorkers:!1,workerUrl:null!==(r=t.workerUrl)&&void 0!==r?r:t.getWorkerUrl()};var a=i&&t.source[0]instanceof Worker;return a?(t.workers=t.source.map(t.fillWorkerMethods),{isArrayOfWebWorkers:a,workerUrl:null}):{isArrayOfWebWorkers:!1,workerUrl:null}}(),r=e.workerUrl,n=e.isArrayOfWebWorkers;t.workerUrl=r,t.maxWorkers=n?t.workers.length:t.maxWorkers,t.keepAlive=!!n||t.keepAlive},this.send=function(e,r){return t.sendToWorker({payload:e},r)},this.sendToWorker=function(e,r){var n,o,i=e.payload,a=e.method,c=new l.EasyWebWorkerMessage,u=c.messageId,s=c.decoupledPromise,f=s.cancel,h=t.getWorkerFromPool();s.promise.cancel=function(e){s.cancel=f;var n={messageId:u,method:a,cancelation:{reason:e}};return t.workers.length?(h.postMessage(n,r),s.promise):(f(e),(0,p.toCancelablePromise)(Promise.reject(e)))},t.keepAlive||null===(o=null===(n=s.promise)||void 0===n?void 0:n.finally)||void 0===o||o.call(n,(function(){setTimeout((function(){t.messagesQueue.size||(t.workers.forEach((function(e){return e.terminate()})),t.workers=[])}),t.terminationDelay)})),t.addMessageToQueue(c);var d={messageId:u,method:a,execution:{payload:i}};return h.postMessage(d),s.promise},this.override=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var o=r[0],i=r[1],a=r[2];return s(t,void 0,void 0,c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cancelAll(i,a);case 2:return e.abrupt("return",this.send.apply(this,[o]));case 3:case"end":return e.stop()}}),e,this)})))},this.overrideAfterCurrent=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var i=r[0],a=r[1],u=r[2];return s(t,void 0,void 0,c().mark((function e(){var r,t,n,s;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.messagesQueue.size){e.next=7;break}return r=o(this.messagesQueue,1),t=r[0],n=o(t,2),s=n[1],this.RemoveMessageFromQueue(s.messageId),e.next=6,this.cancelAll(a,u);case 6:this.addMessageToQueue(s);case 7:return e.abrupt("return",this.send.apply(this,[i]));case 8:case"end":return e.stop()}}),e,this)})))};var S=!g||1===g||O,C=S||null!=w&&w;this.workerOptions=null!=_?_:{},this.name=this.workerOptions.name||u||(0,f.generatedId)(),this.scripts=a,this.onWorkerError=d,this.workerUrl=null!=y?y:null,this.maxWorkers=g,this.keepAlive=C,this.terminationDelay=P,this.warmUpWorkers=S,this.primitiveParameters=null!=E?E:[],this.origin=W,this.computeWorkerBaseSource(),this.warmUp()}var t,n;return t=e,n=[{key:"worker",get:function(){return this.workers.length>1?null:this.workers[0]}},{key:"isExternalWorkerFile",get:function(){return"string"==typeof this.source}},{key:"RemoveMessageFromQueue",value:function(e){this.messagesQueue.delete(e)}},{key:"executeMessageCallback",value:function(e){var r,t,n=null!==(r=this.messagesQueue.get(e.data.messageId))&&void 0!==r?r:null;if(n){var o=e.data.progress;if(this.workers.length){var c=n.decoupledPromise;if(o){var u=o.percentage,s=o.payload;c.reportProgress(u,s)}else{this.RemoveMessageFromQueue(n.messageId);var l=e.data.worker_canceled;if(l){var f=l.reason;c.reject(f)}else{var p=e.data.rejected;if(p){var h=p.reason;c.reject(h)}else{var d=e.data.resolved.payload;c.resolve.apply(c,function(e){if(Array.isArray(e))return a(e)}(t=null!=d?d:[])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}}}}else this.RemoveMessageFromQueue(n.messageId)}}},{key:"getWorkerUrl",value:function(){var e;return this.isExternalWorkerFile?this.source:(0,r.createBlobWorker)(this.source,this.scripts,null!==(e=this.origin)&&void 0!==e?e:"",{primitiveParameters:this.primitiveParameters})}},{key:"cancelAll",value:function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).force,t=void 0!==r&&r,n=Array.from(this.messagesQueue.values()),o=100/n.length;if(t)return this.reboot(e);var i=n.map((function(r){var t=r.decoupledPromise.promise;return t.cancel(e).catch((function(e){return t.reportProgress(o,e),e}))}));return Promise.all(i)}},{key:"addMessageToQueue",value:function(e){this.messagesQueue.set(e.messageId,e)}},{key:"sendToMethod",value:function(e,r,t){return this.sendToWorker({method:e,payload:r},t)}},{key:"reboot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Worker was rebooted";if(!this.workerUrl)throw new Error("You can not reboot a worker that was created from a Worker Instance");this.workers.forEach((function(e){return e.terminate()})),this.workers=[];var r=this.cancelAll(e);return this.warmUp(),r}},{key:"dispose",value:function(){return s(this,void 0,void 0,c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cancelAll(null);case 2:this.workerUrl&&URL.revokeObjectURL(this.workerUrl),this.workers.forEach((function(e){return e.terminate()})),this.workers=[];case 5:case"end":return e.stop()}}),e,this)})))}}],n&&u(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();r.EasyWebWorker=h},726:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getWorkerTemplate=r.generatedId=void 0,r.generatedId=function(){return"".concat(Date.now()).concat(Math.random().toString(36).substring(2,9))},r.getWorkerTemplate=function(){return"self.cw$=a=>{const b=new Map(),c=new Map([['',()=>{throw\"you didn't defined a message-callback, please assign a callback by calling IEasyWorkerInstance.onMessage\"}]]),d=({messageId:e,payload:f,origin:g})=>{const h=new Set(),i=j=>{const{progress:k}=j;k||b.delete(e),self.postMessage({messageId:e,...j},g)},l=(...m)=>{i({resolved:{payload:m}})},n=o=>{i({rejected:{reason:o}})},p=q=>{[...h].forEach(r=>r(q)),i({worker_canceled:{reason:q}})},s=(t,u)=>{i({progress:{percentage:t,payload:u}})},v=w=>(h.add(w),()=>h.delete(w));return{payload:f,resolve:l,reject:n,cancel:p,onCancel:v,reportProgress:s}},x=(...y)=>{self.importScripts(...y)},z=(...A)=>{const[B,C]=A,D=typeof B==='string';if(D){const E=B,F=C;c.set(E,F);return;}const G=B;c.set('',G)},H=()=>{[...b.values()].forEach(I=>I.reject(new Error('worker closed')));self.close();};self.onmessage=J=>{const{data:K,origin:L}=J,{messageId:M,cancelation:N}=K;if(N){const{reason:O}=N,P=b.get(M);P.cancel(O);return;}const{method:Q,execution:R}=K,{payload:S}=R,T=d({messageId:M,payload:S,origin:a||L||undefined});b.set(M,T);const U=c.get(Q||'');U(T,J)};return{importScripts:x,onMessage:z,close:H}};"}},213:(e,r,t)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(void 0,i=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===n(i)?i:String(i)),o)}var i}function i(e,r,t){return r&&o(e.prototype,r),t&&o(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.defineProperty(r,"__esModule",{value:!0}),r.EasyWebWorkerMessage=void 0;var a=t(367),c=t(726),u=i((function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.messageId=(0,c.generatedId)(),this.decoupledPromise=(0,a.createDecoupledPromise)()}));r.EasyWebWorkerMessage=u},973:(e,r)=>{"use strict";function t(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(e){if("string"==typeof e)return n(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,r):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(r,"__esModule",{value:!0}),r.createStaticEasyWebWorker=r.StaticEasyWebWorker=void 0,r.StaticEasyWebWorker=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=new Map,o=new Map([["",function(){throw"you didn't defined a message-callback, please assign a callback by calling IEasyWorkerInstance.onMessage"}]]),i=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];var n=r[0],i=r[1];if("string"==typeof n){var a=n,c=i;o.set(a,c)}else{var u=n;o.set("",u)}};self.onmessage=function(e){var i=e.data,a=e.origin,c=i.messageId,u=i.cancelation;if(u){var s=u.reason;n.get(c).cancel(s)}else{var l=e.data,f=l.method,p=function(e){var r=e.messageId,o=e.payload,i=e.origin,a=new Set,c=function(e){e.progress||n.delete(r),self.postMessage(Object.assign({messageId:r},e),i)};return{payload:o,resolve:function(){var e=Array.from(arguments);c({resolved:{payload:e}})},reject:function(e){c({rejected:{reason:e}})},cancel:function(e){t(a).forEach((function(r){return r(e)})),c({canceled:{reason:e}})},onCancel:function(e){return a.add(e),function(){return a.delete(e)}},reportProgress:function(e,r){c({progress:{percentage:e,payload:r}})}}}({messageId:c,payload:l.execution.payload,origin:r||a||void 0});o.get(f||"")(p,e)}},e&&i(e),this.importScripts=function(){var e;(e=self).importScripts.apply(e,arguments)},this.close=function(){t(n.values()).forEach((function(e){return e.reject(new Error("worker closed"))})),self.close()},this.onMessage=i},r.createStaticEasyWebWorker=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new r.StaticEasyWebWorker(e,t)}},991:(e,r,t)=>{"use strict";var n=Object.create?function(e,r,t,n){void 0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){void 0===n&&(n=t),e[n]=r[t]},o=function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||n(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=t(30);Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i.EasyWebWorker}}),o(t(30),r),o(t(973),r),o(t(797),r)},367:function(e){var r;r=()=>(()=>{"use strict";var e={399:(e,r)=>{function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(){return o="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,r,t){var n=function(e,r){for(;!Object.prototype.hasOwnProperty.call(e,r)&&null!==(e=s(e)););return e}(e,r);if(n){var o=Object.getOwnPropertyDescriptor(n,r);return o.get?o.get.call(arguments.length<3?e:t):o.value}},o.apply(this,arguments)}function i(e){var r="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,n)}function n(){return a(e,arguments,s(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),u(n,e)},i(e)}function a(e,r,t){return a=c()?Reflect.construct.bind():function(e,r,t){var n=[null];n.push.apply(n,r);var o=new(Function.bind.apply(e,n));return t&&u(o,t.prototype),o},a.apply(null,arguments)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function u(e,r){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},u(e,r)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.CancelablePromise=void 0;var l=function(e){!function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),r&&u(e,r)}(f,e);var r,i,a,l=(i=f,a=c(),function(){var e,r=s(i);if(a){var o=s(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return function(e,r){if(r&&("object"===t(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return n(e)}(this,e)});function f(e){var r,t,i,a,c,u;return function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,f),(a=l.call(this,(function(e,r){c=e,u=r}))).status="pending",a.cancelCallbacks=[],a.ownCancelCallbacks=[],a.onProgressCallbacks=[],a.subscribeToOwnCancelEvent=function(e){a.ownCancelCallbacks.push(e)},a.cancel=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if("pending"===a.status)return a.status="canceled",a.ownCancelCallbacks.forEach((function(r){return r(e)})),a.cancelCallbacks.forEach((function(r){return r(e)})),a.reject(e),a.cancelCallbacks=[],a.ownCancelCallbacks=[],n(a)},a.onCancel=function(e){return a.cancelCallbacks.push(e),n(a)},a.onProgress=function(e){return a.onProgressCallbacks.push(e),n(a)},a.reportProgress=function(e,r){return a.onProgressCallbacks.forEach((function(t){return t(e,r)})),n(a)},a.createChildPromise=function(){var e,r,t=new f((function(t,n,o){e=t,r=n}));return t.onProgressCallbacks=a.onProgressCallbacks,t.onCancel((function(e){a.cancel(e)})),{promise:t,resolve:e,reject:r}},a.resolve=c,a.reject=u,e((function(e){a.status="resolved",a.resolve(e)}),(function(e){a.status="rejected",a.reject(e)}),{cancel:function(e){return a.cancel(e)},onCancel:function(e){return a.subscribeToOwnCancelEvent(e),n(a)},onProgress:function(e){return a.onProgress(e)},reportProgress:function(e,r){a.reportProgress(e,r)}}),a.then=function(e,t){var i=a.createChildPromise(),c=i.promise,u=i.resolve,l=i.reject;return o((r=n(a),s(f.prototype)),"then",r).call(r,e,t).then(u,l),c},a.catch=function(e){var r=a.createChildPromise(),i=r.promise,c=r.resolve,u=r.reject;return o((t=n(a),s(f.prototype)),"catch",t).call(t,e).then(c,u),i},a.finally=function(e){var r=a.createChildPromise(),t=r.promise,c=r.resolve,u=r.reject;return o((i=n(a),s(f.prototype)),"finally",i).call(i,e).then(c,u),t},a}return r=f,Object.defineProperty(r,"prototype",{writable:!1}),r}(i(Promise));r.CancelablePromise=l,l.prototype.constructor=Promise},716:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.toCancelablePromise=r.isPromise=r.groupAsCancelablePromise=r.createDecoupledPromise=r.allSettledCancelable=void 0;var o=t(335),i=t(399);function a(){a=function(){return e};var e={},r=Object.prototype,t=r.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{l({},"")}catch(e){l=function(e,r,t){return e[r]=t}}function f(e,r,t,n){var i=r&&r.prototype instanceof d?r:d,a=Object.create(i.prototype),c=new W(n||[]);return o(a,"_invoke",{value:j(e,t,c)}),a}function p(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var h={};function d(){}function v(){}function y(){}var m={};l(m,c,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(_([])));b&&b!==r&&t.call(b,c)&&(m=b);var w=y.prototype=d.prototype=Object.create(m);function k(e){["next","throw","return"].forEach((function(r){l(e,r,(function(e){return this._invoke(r,e)}))}))}function P(e,r){function i(o,a,c,u){var s=p(e[o],e,a);if("throw"!==s.type){var l=s.arg,f=l.value;return f&&"object"==n(f)&&t.call(f,"__await")?r.resolve(f.__await).then((function(e){i("next",e,c,u)}),(function(e){i("throw",e,c,u)})):r.resolve(f).then((function(e){l.value=e,c(l)}),(function(e){return i("throw",e,c,u)}))}u(s.arg)}var a;o(this,"_invoke",{value:function(e,t){function n(){return new r((function(r,n){i(e,t,r,n)}))}return a=a?a.then(n,n):n()}})}function j(e,r,t){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var c=O(a,t);if(c){if(c===h)continue;return c}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var u=p(e,r,t);if("normal"===u.type){if(n=t.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n="completed",t.method="throw",t.arg=u.arg)}}}function O(e,r){var t=r.method,n=e.iterator[t];if(void 0===n)return r.delegate=null,"throw"===t&&e.iterator.return&&(r.method="return",r.arg=void 0,O(e,r),"throw"===r.method)||"return"!==t&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+t+"' method")),h;var o=p(n,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,h;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,h):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,h)}function E(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function x(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function W(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function _(e){if(e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(t.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return v.prototype=y,o(w,"constructor",{value:y,configurable:!0}),o(y,"constructor",{value:v,configurable:!0}),v.displayName=l(y,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===v||"GeneratorFunction"===(r.displayName||r.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,l(e,s,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},k(P.prototype),l(P.prototype,u,(function(){return this})),e.AsyncIterator=P,e.async=function(r,t,n,o,i){void 0===i&&(i=Promise);var a=new P(f(r,t,n,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(w),l(w,s,"Generator"),l(w,c,(function(){return this})),l(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=_,W.prototype={constructor:W,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var r in this)"t"===r.charAt(0)&&t.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(t,n){return a.type="throw",a.arg=e,r.next=t,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=t.call(i,"catchLoc"),u=t.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,r){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),h},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),x(t),h}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;x(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,t){return this.delegate={iterator:_(e),resultName:r,nextLoc:t},"next"===this.method&&(this.arg=void 0),h}},e}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}r.createDecoupledPromise=function(){var e,r,t,n=new i.CancelablePromise((function(n,o,i){e=n,r=o,t=i}));return Object.assign(Object.assign({resolve:e,reject:r},t),{promise:n})};var u=function e(r){if(r instanceof i.CancelablePromise)return r;if("function"==typeof r)return e(r());if(!l(r))return new i.CancelablePromise((function(e){return e(r)}));var t,n,o=new i.CancelablePromise((function(e,o,i){t=e,n=o,r.then(t,n)}));return o.onCancel((function(e){n(e)})),o};r.toCancelablePromise=u;var s=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.length)return null;var t,n=r.maxConcurrent,o=void 0===n?8:n,a=r.executeInOrder,s=void 0!==a&&a,l=r.beforeEachCallback,f=void 0===l?null:l,p=r.afterEachCallback,h=void 0===p?null:p,d=r.onQueueEmptyCallback,v=void 0===d?null:d,y=function(e){if(Array.isArray(e))return c(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return c(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?c(e,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),m=[];return new i.CancelablePromise((function(e,r,t){return function e(){if(y.length){var r=y.splice(0,o).map((function(e){var r="function"==typeof e?e():e;null==f||f();var n=u(r);return t.onCancel((function(){n.cancel()})),n.then((function(e){m.push(e),null==h||h(e)})),s?n.then((function(e){return e})):n}));return Promise.all(r).then((function(){return e()}))}}().then((function(){null==v||v(m),e(m)}))}))};r.groupAsCancelablePromise=s;var l=function(e){return Promise.resolve(e)===e};r.isPromise=l,r.allSettledCancelable=function(e){var r=[],t=e.map((function(e){var t=u(e);return r.push(t),(0,o.tryCatchPromise)((function(){return t})).then((function(e){return{error:e.error,result:e.result,promise:t}}))})),n=s(r);return new i.CancelablePromise((function(e,r,o){return i=void 0,c=a().mark((function r(){var i;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o.onCancel(n.cancel),r.next=3,Promise.all(t);case 3:i=r.sent,e(i);case 5:case"end":return r.stop()}}),r)})),new(i||(i=Promise))((function(e,r){function t(e){try{o(c.next(e))}catch(e){r(e)}}function n(e){try{o(c.throw(e))}catch(e){r(e)}}function o(r){var o;r.done?e(r.value):(o=r.value,o instanceof i?o:new i((function(e){e(o)}))).then(t,n)}o((c=c.apply(void 0,[])).next())}));var i,c}))}},522:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(399);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}));var o=t(716);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))}))},991:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(522);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}));var o=t(335);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))}))},335:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(969);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}))},969:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(948);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}));var o=t(667);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))}))},948:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.tryCatchPromise=r.tryCatch=void 0;var n=t(522);r.tryCatch=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.defaultResult,n=void 0===t?null:t,o=r.exceptionHandlingType,i=void 0===o?"error":o;try{return{error:null,result:e()}}catch(e){return"ignore"!==i&&console[i](e),{error:e,result:n}}},r.tryCatchPromise=function(e,r){var t=r||{},o=t.defaultResult,i=void 0===o?null:o,a=t.exceptionHandlingType,c=void 0===a?"error":a,u=t.ignoreCancel,s=void 0===u||u,l=null,f=null,p=function(e){f=e,"ignore"!=c&&("canceled"===l.status&&s||console[c](f))};try{if(e instanceof n.CancelablePromise)return l=e,new Promise((function(e){l.then((function(e){return{error:null,result:e,promise:l}})).catch((function(e){return p(e),{error:e,result:i,promise:l}}))}));var h=e(),d=h instanceof n.CancelablePromise;return l=d?h:(0,n.toCancelablePromise)(h),new Promise((function(e){l.then((function(r){e({error:null,result:r,promise:l})})).catch((function(r){p(r),e({error:r,result:i,promise:l})}))}))}catch(e){return p(e),Promise.resolve({error:f,result:i,promise:l})}}},667:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})}},r={};return function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n](i,i.exports,t),i.exports}(991)})(),e.exports=r()}},r={},function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n].call(i.exports,i,i.exports,t),i.exports}(991);var e,r}));
2
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports["easy-web-worker"]=r():e["easy-web-worker"]=r()}(this,(()=>{return e={797:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.createEasyWebWorker=void 0;var n=t(30);r.createEasyWebWorker=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new n.EasyWebWorker(e,r)}},30:(e,r,t)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i,a,c=[],s=!0,l=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=i.call(t)).done)&&(c.push(n.value),c.length!==r);s=!0);}catch(e){l=!0,o=e}finally{try{if(!s&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,r)||i(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,r){if(e){if("string"==typeof e)return a(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,r):void 0}}function a(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function c(){c=function(){return e};var e={},r=Object.prototype,t=r.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{u({},"")}catch(e){u=function(e,r,t){return e[r]=t}}function f(e,r,t,n){var i=r&&r.prototype instanceof p?r:p,a=Object.create(i.prototype),c=new _(n||[]);return o(a,"_invoke",{value:j(e,t,c)}),a}function h(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var d={};function p(){}function v(){}function y(){}var m={};u(m,a,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(S([])));b&&b!==r&&t.call(b,a)&&(m=b);var w=y.prototype=p.prototype=Object.create(m);function k(e){["next","throw","return"].forEach((function(r){u(e,r,(function(e){return this._invoke(r,e)}))}))}function P(e,r){function i(o,a,c,s){var l=h(e[o],e,a);if("throw"!==l.type){var u=l.arg,f=u.value;return f&&"object"==n(f)&&t.call(f,"__await")?r.resolve(f.__await).then((function(e){i("next",e,c,s)}),(function(e){i("throw",e,c,s)})):r.resolve(f).then((function(e){u.value=e,c(u)}),(function(e){return i("throw",e,c,s)}))}s(l.arg)}var a;o(this,"_invoke",{value:function(e,t){function n(){return new r((function(r,n){i(e,t,r,n)}))}return a=a?a.then(n,n):n()}})}function j(e,r,t){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var c=O(a,t);if(c){if(c===d)continue;return c}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var s=h(e,r,t);if("normal"===s.type){if(n=t.done?"completed":"suspendedYield",s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(n="completed",t.method="throw",t.arg=s.arg)}}}function O(e,r){var t=r.method,n=e.iterator[t];if(void 0===n)return r.delegate=null,"throw"===t&&e.iterator.return&&(r.method="return",r.arg=void 0,O(e,r),"throw"===r.method)||"return"!==t&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+t+"' method")),d;var o=h(n,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,d;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,d):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,d)}function x(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function E(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function S(e){if(e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(t.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:W}}function W(){return{value:void 0,done:!0}}return v.prototype=y,o(w,"constructor",{value:y,configurable:!0}),o(y,"constructor",{value:v,configurable:!0}),v.displayName=u(y,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===v||"GeneratorFunction"===(r.displayName||r.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,u(e,l,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),e.AsyncIterator=P,e.async=function(r,t,n,o,i){void 0===i&&(i=Promise);var a=new P(f(r,t,n,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(w),u(w,l,"Generator"),u(w,a,(function(){return this})),u(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=S,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var r in this)"t"===r.charAt(0)&&t.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(t,n){return a.type="throw",a.arg=e,r.next=t,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,r){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),d},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),d}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;E(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,t){return this.delegate={iterator:S(e),resultName:r,nextLoc:t},"next"===this.method&&(this.arg=void 0),d}},e}function s(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(void 0,i=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===n(i)?i:String(i)),o)}var i}var l=function(e,r,t,n){return new(t||(t=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function c(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(a,c)}s((n=n.apply(e,r||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.EasyWebWorker=r.createBlobWorker=void 0;var u=t(213),f=t(726),h=t(367);r.createBlobWorker=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).primitiveParameters,o=void 0===n?[]:n,i=Array.isArray(e)?e:[e],a="".concat(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.length?'self.importScripts(["'.concat(e.join('","'),'"]);'):""}(r),"self.primitiveParameters=JSON.parse(`").concat(JSON.stringify(null!=o?o:[]),"`);let ew$=").concat((0,f.getWorkerTemplate)({origin:t}),";let cn$=self;").concat(i.map((function(e){return"\n(".concat(null==e?void 0:e.toString().trim(),")(ew$,cn$);")})).join(""));return(window.URL||window.webkitURL).createObjectURL(new Blob([a],{type:"application/javascript"}))};var d=function(){function e(r){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.source=r,this.workerUrl=null,this.config=null,this.maxWorkers=1,this.workers=[],this.keepAlive=!0,this.warmUpWorkers=!1,this.terminationDelay=1e3,this.origin="",this.primitiveParameters=[],this.messagesQueue=new Map,this.scripts=[],this.warmUp=function(){var e=t.config,r=e.warmUpWorkers,n=e.maxWorkers;r&&new Array(n).fill(null).forEach((function(){return t.getWorkerFromPool()}))},this.fillWorkerMethods=function(e){return e.onmessage=function(e){t.executeMessageCallback(e)},e.onerror=function(e){var r=t.config.onWorkerError;if(!r)throw e;r(e)},e},this.createNewWorker=function(){var e,r=t.workerUrl,n=t.config.workerOptions;n.name=0===(e=t.workers.length)?n.name:"".concat(n.name,"-").concat(e);var o=new Worker(r,n);return t.fillWorkerMethods(o)},this.getWorkerFromPool=function(){var e=t.config.maxWorkers,r=t.messagesQueue.size;if(!t.workers.length||t.workers.length<e&&r){var n=t.createNewWorker();return t.workers.push(n),n}var o=t.workers.shift();return t.workers.push(o),o},this.computeWorkerBaseSource=function(){var e=function(){var e,r;if(t.source instanceof Worker)return t.workers=[t.fillWorkerMethods(t.source)],{isArrayOfWebWorkers:!1,workerUrl:null};var n="string"==typeof t.source||t.source instanceof URL,o="function"==typeof t.source;if(n||o)return{isArrayOfWebWorkers:!1,workerUrl:null!==(e=t.workerUrl)&&void 0!==e?e:t.getWorkerUrl()};var i=Array.isArray(t.source);if(i&&"function"==typeof t.source[0])return{isArrayOfWebWorkers:!1,workerUrl:null!==(r=t.workerUrl)&&void 0!==r?r:t.getWorkerUrl()};var a=i&&t.source[0]instanceof Worker;return a?(t.workers=t.source.map(t.fillWorkerMethods),{isArrayOfWebWorkers:a,workerUrl:null}):{isArrayOfWebWorkers:!1,workerUrl:null}}(),r=e.workerUrl,n=e.isArrayOfWebWorkers;t.workerUrl=r,t.config.maxWorkers=n?t.workers.length:t.config.maxWorkers,t.config.keepAlive=!!n||t.config.keepAlive},this.send=function(e,r){return t.sendToWorker({payload:e},r)},this.sendToWorker=function(e,r){var n,o,i=e.payload,a=e.method,c=new u.EasyWebWorkerMessage,s=c.messageId,l=c.decoupledPromise,f=t.getWorkerFromPool();l.promise.cancel=function(e){l.promise.cancel=l._cancel;var n={messageId:s,method:a,cancelation:{reason:e}};return t.workers.length?(f.postMessage(n,r),l.promise):l.cancel(e)},t.config.keepAlive||null===(o=null===(n=l.promise)||void 0===n?void 0:n.finally)||void 0===o||o.call(n,(function(){setTimeout((function(){t.messagesQueue.size||(t.workers.forEach((function(e){return e.terminate()})),t.workers=[])}),t.config.terminationDelay)})),t.addMessageToQueue(c);var h={messageId:s,method:a,execution:{payload:i}};return f.postMessage(h),l.promise},this.override=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var o=r[0],i=r[1],a=r[2];return new h.CancelablePromise((function(e,r,n){var s=n.onCancel;return l(t,void 0,void 0,c().mark((function r(){var t,n;return c().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t=this.cancelAll(i,a),n=s((function(){t.cancel()})),r.next=4,t;case 4:n(),e(this.send.apply(this,[o]));case 6:case"end":return r.stop()}}),r,this)})))}))},this.overrideAfterCurrent=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var i=r[0],a=r[1],s=r[2];return new h.CancelablePromise((function(e,r,n){var u=n.onCancel,f=n.reportProgress;return l(t,void 0,void 0,c().mark((function r(){var t,n,l,h,d,p;return c().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!this.messagesQueue.size){r.next=10;break}return t=o(this.messagesQueue,1),n=t[0],l=o(n,2),h=l[1],this.RemoveMessageFromQueue(h.messageId),d=this.cancelAll(a,s).onProgress(f),p=u((function(){d.cancel()})),this.addMessageToQueue(h),r.next=9,d;case 9:p();case 10:e(this.send.apply(this,[i]));case 11:case"end":return r.stop()}}),r,this)})))}))},this.workerUrl="string"==typeof r||r instanceof URL?r:null;var i=null!=n?n:{},a=i.scripts,s=void 0===a?[]:a,d=i.name,p=i.onWorkerError,v=void 0===p?null:p,y=i.maxWorkers,m=void 0===y?1:y,g=i.keepAlive,b=void 0===g?null:g,w=i.terminationDelay,k=void 0===w?1e3:w,P=i.warmUpWorkers,j=void 0===P?null:P,O=i.primitiveParameters,x=i.origin,E=void 0===x?"":x,_=i.workerOptions,S=void 0===_?{}:_,W=!m||1===m||j,C=W||null!=b&&b;this.config={scripts:null!=s?s:[],name:d,maxWorkers:m,keepAlive:C,warmUpWorkers:W,workerOptions:Object.assign(Object.assign({},null!=S?S:{}),{name:S.name||(0,f.generatedId)()}),onWorkerError:v,terminationDelay:k,primitiveParameters:O,origin:null!=E?E:""},this.workerOptions=this.config.workerOptions,this.name=this.workerOptions.name,this.scripts=s,this.onWorkerError=v,this.maxWorkers=m,this.keepAlive=C,this.terminationDelay=k,this.warmUpWorkers=W,this.primitiveParameters=null!=O?O:[],this.origin=E,this.computeWorkerBaseSource(),this.warmUp()}var t,n;return t=e,n=[{key:"worker",get:function(){return this.workers.length>1?null:this.workers[0]}},{key:"isExternalWorkerFile",get:function(){return"string"==typeof this.source||this.source instanceof URL}},{key:"RemoveMessageFromQueue",value:function(e){this.messagesQueue.delete(e)}},{key:"executeMessageCallback",value:function(e){var r,t,n=null!==(r=this.messagesQueue.get(e.data.messageId))&&void 0!==r?r:null;if(n){var o=e.data.progress;if(this.workers.length){var c=n.decoupledPromise;if(o){var s=o.percentage,l=o.payload;c.reportProgress(s,l)}else{this.RemoveMessageFromQueue(n.messageId);var u=e.data.worker_cancelation;if(u){var f=u.reason;c.reject(f)}else{var h=e.data.rejected;if(h){var d=h.reason;c.reject(d)}else{var p=e.data.resolved.payload;c.resolve.apply(c,function(e){if(Array.isArray(e))return a(e)}(t=null!=p?p:[])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}}}}else this.RemoveMessageFromQueue(n.messageId)}}},{key:"getWorkerUrl",value:function(){if(this.isExternalWorkerFile)return this.source;var e=this.config,t=e.primitiveParameters,n=e.scripts,o=e.origin;return(0,r.createBlobWorker)(this.source,n,o,{primitiveParameters:t})}},{key:"cancelAll",value:function(e){var r=this,t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).force,n=void 0!==t&&t;return new h.CancelablePromise((function(t,o,i){var a=i.onCancel,s=i.reportProgress;return l(r,void 0,void 0,c().mark((function r(){var o,i,l,u,f,d;return c().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(l=Array.from(null!==(i=null===(o=this.messagesQueue)||void 0===o?void 0:o.values())&&void 0!==i?i:[]),u=l.length,f=100/u,!n){r.next=5;break}return r.abrupt("return",t(this.reboot(e)));case 5:d=(0,h.groupAsCancelablePromise)(l.map((function(r){return r.decoupledPromise.promise.cancel(e).catch((function(e){return s(f,e),e}))}))),a((function(){d.cancel()})),t(d);case 8:case"end":return r.stop()}}),r,this)})))}))}},{key:"addMessageToQueue",value:function(e){this.messagesQueue.set(e.messageId,e)}},{key:"sendToMethod",value:function(e,r,t){return this.sendToWorker({method:e,payload:r},t)}},{key:"reboot",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Worker was rebooted";if(!this.workerUrl)throw new Error("You can not reboot a worker that was created from a Worker Instance");this.workers.forEach((function(e){return e.terminate()})),this.workers=[];var r=this.cancelAll(e);return this.warmUp(),r}},{key:"dispose",value:function(){return l(this,void 0,void 0,c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cancelAll(null);case 2:this.workerUrl&&(window.URL||window.webkitURL).revokeObjectURL("string"==typeof this.workerUrl?this.workerUrl:this.workerUrl.href),this.workers.forEach((function(e){return e.terminate()})),this.workers=[];case 5:case"end":return e.stop()}}),e,this)})))}}],n&&s(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();r.EasyWebWorker=d},726:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getWorkerTemplate=r.generatedId=void 0,r.generatedId=function(){return"".concat(Date.now()).concat(Math.random().toString(36).substring(2,9))},r.getWorkerTemplate=function(e){var r=e.origin;return'(e=>{let t=new Map,a=new Map([["",()=>{throw"you didn\'t define a message-callback, please assign a callback by calling IEasyWorkerInstance.onMessage"},],]),o=({messageId:e,payload:a,method:o,origin:r})=>{let s=new Set,n="pending",l=(a,s)=>{let l=n,c=a.resolved?"resolved":a.rejected?"rejected":a.worker_cancelation?"canceled":n;if(!t.has(e)){let i="%c#"+e+" Message Not Found: %cThis means that the message was already resolved | rejected | canceled. To avoid this error, please make sure that you are not resolving | rejecting | canceling the same message twice. Also make sure that you are not reporting progress after the message was processed. Remember each message can handle his one cancelation by adding a handler with the %cmessage.onCancel%c method. To now more about this method, please check the documentation at: %chttps://www.npmjs.com/package/easy-web-worker#ieasywebworkermessageipayload--null-iresult--void %cTrying to process message:";console.error(i,"color: darkorange; font-size: 12px; font-weight: bold;","font-weight: normal;","font-weight: bold;","font-weight: normal;","color: lightblue; font-size: 10px; font-weight: bold;","font-weight: bold; color: darkorange;",{messageId:e,status:{current:l,target:c},method:o,action:a});return}let{progress:d}=a;d||t.delete(e),self.postMessage({messageId:e,...a},r,s),n=c},c=(e,t)=>{l({resolved:{payload:void 0===e?[]:[e]}},t)},i=e=>{l({rejected:{reason:e}},[])},d=e=>{let t=[...s];t.forEach(t=>t(e)),l({worker_cancelation:{reason:e}},[])},g=(e,t,a)=>{l({progress:{percentage:e,payload:t}},a)},h=e=>(s.add(e),()=>s.delete(e));return{messageId:e,getStatus:()=>n,isPending:()=>"pending"===n,method:o,payload:a,resolve:c,reject:i,cancel:d,onCancel:h,reportProgress:g}},r=(...e)=>{let[t,o]=e,r="string"==typeof t;if(r){let s=t,n=o;a.set(s,n);return}let l=t;a.set("",l)},s=()=>{let e=[...t.values()];e.forEach(e=>e.reject(Error("worker closed"))),self.close()};self.onmessage=r=>{let{data:s,origin:n}=r,{messageId:l,cancelation:c}=s;if(c){let i=t.get(l);i&&i.cancel(c.reason);return}let{method:d,execution:g}=s,{payload:h}=g,w=o({method:d,messageId:l,payload:h,origin:e||n||void 0});t.set(l,w);let m=a.get(d||"");m&&m(w,r)};let n=(...e)=>{self.importScripts(...e)};return{onMessage:r,close:s,importScripts:n}})(\''.concat(void 0===r?"":r,"')")}},213:(e,r,t)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(void 0,i=function(e,r){if("object"!==n(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===n(i)?i:String(i)),o)}var i}function i(e,r,t){return r&&o(e.prototype,r),t&&o(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.defineProperty(r,"__esModule",{value:!0}),r.EasyWebWorkerMessage=void 0;var a=t(367),c=t(726),s=i((function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),this.messageId=(0,c.generatedId)(),this.decoupledPromise=(0,a.createDecoupledPromise)(),this.decoupledPromise._cancel=this.decoupledPromise.promise.cancel}));r.EasyWebWorkerMessage=s},973:(e,r)=>{"use strict";function t(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(e){if("string"==typeof e)return n(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,r):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(r,"__esModule",{value:!0}),r.createStaticEasyWebWorker=r.StaticEasyWebWorker=void 0,r.StaticEasyWebWorker=function(e){var r,n,o,i=(r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=new Map,o=new Map([["",function(){throw"you didn't defined a message-callback, please assign a callback by calling IEasyWorkerInstance.onMessage"}]]),self.onmessage=function(e){var i=e.data,a=e.origin,c=i.messageId,s=i.cancelation;if(s){var l=s.reason;n.get(c).cancel(l)}else{var u=e.data,f=u.method,h=function(e){var r=e.messageId,o=e.payload,i=e.method,a=e.origin,c=new Set,s="pending",l=function(e,t){var o=s,c=e.resolved?"resolved":e.rejected?"rejected":e.worker_cancelation?"canceled":s;if(n.has(r))e.progress||n.delete(r),self.postMessage(Object.assign({messageId:r},e),a,t),s=c;else{var l="%c#"+r+" Message Not Found: %cThis means that the message was already resolved | rejected | canceled. To avoid this error, please make sure that you are not resolving | rejecting | canceling the same message twice. Also make sure that you are not reporting progress after the message was processed. Remember each message can handle his one cancelation by adding a handler with the %cmessage.onCancel%c method. To now more about this method, please check the documentation at: %chttps://www.npmjs.com/package/easy-web-worker#ieasywebworkermessageipayload--null-iresult--void %cTrying to process message:";console.error(l,"color: darkorange; font-size: 12px; font-weight: bold;","font-weight: normal;","font-weight: bold;","font-weight: normal;","color: lightblue; font-size: 10px; font-weight: bold;","font-weight: bold; color: darkorange;",{messageId:r,status:{current:o,target:c},method:i,action:e})}};return{messageId:r,getStatus:function(){return s},isPending:function(){return"pending"===s},method:i,payload:o,resolve:function(e,r){l({resolved:{payload:void 0===e?[]:[e]}},r)},reject:function(e){l({rejected:{reason:e}},[])},cancel:function(e){t(c).forEach((function(r){return r(e)})),l({worker_cancelation:{reason:e}},[])},onCancel:function(e){return c.add(e),function(){return c.delete(e)}},reportProgress:function(e,r,t){l({progress:{percentage:e,payload:r}},t)}}}({method:f,messageId:c,payload:u.execution.payload,origin:r||a||void 0});n.set(c,h),o.get(f||"")(h,e)}},{onMessage:function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];var n=r[0],i=r[1];if("string"==typeof n){var a=n,c=i;o.set(a,c)}else{var s=n;o.set("",s)}},close:function(){t(n.values()).forEach((function(e){return e.reject(new Error("worker closed"))})),self.close()},importScripts:function(){var e;(e=self).importScripts.apply(e,arguments)}}),a=i.close,c=i.onMessage,s=i.importScripts;this.close=a,this.onMessage=c,this.importScripts=s,e&&c(e)},r.createStaticEasyWebWorker=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new r.StaticEasyWebWorker(e,t)}},991:(e,r,t)=>{"use strict";var n=Object.create?function(e,r,t,n){void 0===n&&(n=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,o)}:function(e,r,t,n){void 0===n&&(n=t),e[n]=r[t]},o=function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||n(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=t(30);Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i.EasyWebWorker}}),o(t(30),r),o(t(973),r),o(t(797),r)},367:function(e){var r;r=()=>(()=>{"use strict";var e={399:(e,r)=>{function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(){return o="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,r,t){var n=function(e,r){for(;!Object.prototype.hasOwnProperty.call(e,r)&&null!==(e=l(e)););return e}(e,r);if(n){var o=Object.getOwnPropertyDescriptor(n,r);return o.get?o.get.call(arguments.length<3?e:t):o.value}},o.apply(this,arguments)}function i(e){var r="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,n)}function n(){return a(e,arguments,l(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),s(n,e)},i(e)}function a(e,r,t){return a=c()?Reflect.construct.bind():function(e,r,t){var n=[null];n.push.apply(n,r);var o=new(Function.bind.apply(e,n));return t&&s(o,t.prototype),o},a.apply(null,arguments)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function s(e,r){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},s(e,r)}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.CancelablePromise=void 0;var u=function(e){!function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),r&&s(e,r)}(f,e);var r,i,a,u=(i=f,a=c(),function(){var e,r=l(i);if(a){var o=l(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return function(e,r){if(r&&("object"===t(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return n(e)}(this,e)});function f(e){var r,t,i,a,c,s;return function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,f),(a=u.call(this,(function(e,r){c=e,s=r}))).status="pending",a.cancelCallbacks=new Set,a.ownCancelCallbacks=new Set,a.onProgressCallbacks=new Set,a.disposeCallbacks=function(){a.cancelCallbacks=new Set,a.ownCancelCallbacks=new Set,a.onProgressCallbacks=new Set},a.subscribeToOwnCancelEvent=function(e){return a.ownCancelCallbacks.add(e),function(){a.ownCancelCallbacks.delete(e)}},a.cancel=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if("pending"===a.status)return a.status="canceled",a.ownCancelCallbacks.forEach((function(r){return r(e)})),a.cancelCallbacks.forEach((function(r){return r(e)})),a._reject(e),a.disposeCallbacks(),n(a)},a.onCancel=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return a.cancelCallbacks.add(e),null==r||r.subscribe((function(){a.cancelCallbacks.delete(e)})),n(a)},a.onProgress=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return a.onProgressCallbacks.add(e),null==r||r.subscribe((function(){a.onProgressCallbacks.delete(e)})),n(a)},a.reportProgress=function(e,r){return a.onProgressCallbacks.forEach((function(t){return t(e,r)})),n(a)},a.createChildPromise=function(){var e,r,t=new f((function(t,n,o){e=t,r=n}));return t.onProgressCallbacks=a.onProgressCallbacks,t.onCancel((function(e){a.cancel(e)})),{promise:t,resolve:e,reject:r}},a._resolve=c,a._reject=s,e((function(e){a.status="resolved",a.disposeCallbacks(),a._resolve(e)}),(function(e){a.status="rejected",a.disposeCallbacks(),a._reject(e)}),{cancel:function(e){return a.cancel(e)},onCancel:function(e){return a.subscribeToOwnCancelEvent(e)},onProgress:function(e){return a.onProgress(e),function(){a.onProgressCallbacks.delete(e)}},reportProgress:function(e,r){a.reportProgress(e,r)}}),a.then=function(e,t){var i=a.createChildPromise(),c=i.promise,s=i.resolve,u=i.reject;return o((r=n(a),l(f.prototype)),"then",r).call(r,e,t).then(s,u),c},a.catch=function(e){var r=a.createChildPromise(),i=r.promise,c=r.resolve,s=r.reject;return o((t=n(a),l(f.prototype)),"catch",t).call(t,e).then(c,s),i},a.finally=function(e){var r=a.createChildPromise(),t=r.promise,c=r.resolve,s=r.reject;return o((i=n(a),l(f.prototype)),"finally",i).call(i,e).then(c,s),t},a}return r=f,Object.defineProperty(r,"prototype",{writable:!1}),r}(i(Promise));r.CancelablePromise=u,u.prototype.constructor=Promise},716:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.toCancelablePromise=r.isPromise=r.groupAsCancelablePromise=r.createDecoupledPromise=r.allSettledCancelable=void 0;var o=t(335),i=t(399);function a(){a=function(){return e};var e={},r=Object.prototype,t=r.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{u({},"")}catch(e){u=function(e,r,t){return e[r]=t}}function f(e,r,t,n){var i=r&&r.prototype instanceof p?r:p,a=Object.create(i.prototype),c=new _(n||[]);return o(a,"_invoke",{value:j(e,t,c)}),a}function h(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var d={};function p(){}function v(){}function y(){}var m={};u(m,c,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(S([])));b&&b!==r&&t.call(b,c)&&(m=b);var w=y.prototype=p.prototype=Object.create(m);function k(e){["next","throw","return"].forEach((function(r){u(e,r,(function(e){return this._invoke(r,e)}))}))}function P(e,r){function i(o,a,c,s){var l=h(e[o],e,a);if("throw"!==l.type){var u=l.arg,f=u.value;return f&&"object"==n(f)&&t.call(f,"__await")?r.resolve(f.__await).then((function(e){i("next",e,c,s)}),(function(e){i("throw",e,c,s)})):r.resolve(f).then((function(e){u.value=e,c(u)}),(function(e){return i("throw",e,c,s)}))}s(l.arg)}var a;o(this,"_invoke",{value:function(e,t){function n(){return new r((function(r,n){i(e,t,r,n)}))}return a=a?a.then(n,n):n()}})}function j(e,r,t){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var c=O(a,t);if(c){if(c===d)continue;return c}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var s=h(e,r,t);if("normal"===s.type){if(n=t.done?"completed":"suspendedYield",s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(n="completed",t.method="throw",t.arg=s.arg)}}}function O(e,r){var t=r.method,n=e.iterator[t];if(void 0===n)return r.delegate=null,"throw"===t&&e.iterator.return&&(r.method="return",r.arg=void 0,O(e,r),"throw"===r.method)||"return"!==t&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+t+"' method")),d;var o=h(n,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,d;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,d):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,d)}function x(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function E(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function S(e){if(e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(t.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:W}}function W(){return{value:void 0,done:!0}}return v.prototype=y,o(w,"constructor",{value:y,configurable:!0}),o(y,"constructor",{value:v,configurable:!0}),v.displayName=u(y,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===v||"GeneratorFunction"===(r.displayName||r.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,u(e,l,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},k(P.prototype),u(P.prototype,s,(function(){return this})),e.AsyncIterator=P,e.async=function(r,t,n,o,i){void 0===i&&(i=Promise);var a=new P(f(r,t,n,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},k(w),u(w,l,"Generator"),u(w,c,(function(){return this})),u(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=S,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var r in this)"t"===r.charAt(0)&&t.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(t,n){return a.type="throw",a.arg=e,r.next=t,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,r){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),d},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),d}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;E(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,t){return this.delegate={iterator:S(e),resultName:r,nextLoc:t},"next"===this.method&&(this.arg=void 0),d}},e}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}r.createDecoupledPromise=function(){var e,r,t,n=new i.CancelablePromise((function(n,o,i){e=n,r=o,t=i}));return Object.assign(Object.assign({resolve:e,reject:r},t),{promise:n})};var s=function e(r){if(r instanceof i.CancelablePromise)return r;if("function"==typeof r)return e(r());if(!u(r))return new i.CancelablePromise((function(e){return e(r)}));var t,n,o=new i.CancelablePromise((function(e,o,i){t=e,n=o,r.then(t,n)}));return o.onCancel((function(e){n(e)})),o};r.toCancelablePromise=s;var l=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.length)return null;var t,n=r.maxConcurrent,o=void 0===n?8:n,a=r.executeInOrder,l=void 0!==a&&a,u=r.beforeEachCallback,f=void 0===u?null:u,h=r.afterEachCallback,d=void 0===h?null:h,p=r.onQueueEmptyCallback,v=void 0===p?null:p,y=function(e){if(Array.isArray(e))return c(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return c(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?c(e,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),m=[];return new i.CancelablePromise((function(r,t,n){(function r(){if(y.length){var t=y.splice(0,o).map((function(r){var t="function"==typeof r?r():r;null==f||f();var o=s(t),i=n.onCancel((function(){o.cancel()}));return o.then((function(r){var t,o;i(),m.push(r),null==d||d(r),n.reportProgress((null!==(t=m.length)&&void 0!==t?t:1)/(null!==(o=e.length)&&void 0!==o?o:1)*100)})),l?o.then((function(e){return e})):o}));return Promise.all(t).then((function(){return r()}))}})().then((function(){null==v||v(m),r(m)}))}))};r.groupAsCancelablePromise=l;var u=function(e){return Promise.resolve(e)===e};r.isPromise=u,r.allSettledCancelable=function(e){var r=[],t=e.map((function(e){var t=s(e);return r.push(t),(0,o.tryCatchPromise)((function(){return t})).then((function(e){return{error:e.error,result:e.result,promise:t}}))})),n=l(r);return new i.CancelablePromise((function(e,r,o){return i=void 0,c=a().mark((function r(){var i,c;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return i=o.onCancel(n.cancel),r.next=3,Promise.all(t);case 3:c=r.sent,i(),e(c);case 6:case"end":return r.stop()}}),r)})),new(i||(i=Promise))((function(e,r){function t(e){try{o(c.next(e))}catch(e){r(e)}}function n(e){try{o(c.throw(e))}catch(e){r(e)}}function o(r){var o;r.done?e(r.value):(o=r.value,o instanceof i?o:new i((function(e){e(o)}))).then(t,n)}o((c=c.apply(void 0,[])).next())}));var i,c}))}},522:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(399);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}));var o=t(716);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))}))},991:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(522);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}));var o=t(335);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))}))},335:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(969);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}))},969:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0});var n=t(948);Object.keys(n).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===n[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}}))}));var o=t(667);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in r&&r[e]===o[e]||Object.defineProperty(r,e,{enumerable:!0,get:function(){return o[e]}}))}))},948:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.tryCatchPromise=r.tryCatch=void 0;var n=t(522);r.tryCatch=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.defaultResult,n=void 0===t?null:t,o=r.exceptionHandlingType,i=void 0===o?"error":o;try{return{error:null,result:e()}}catch(e){return"ignore"!==i&&console[i](e),{error:e,result:n}}},r.tryCatchPromise=function(e,r){var t=r||{},o=t.defaultResult,i=void 0===o?null:o,a=t.exceptionHandlingType,c=void 0===a?"error":a,s=t.ignoreCancel,l=void 0===s||s,u=null,f=null,h=function(e){f=e,"ignore"!=c&&("canceled"===(null==u?void 0:u.status)&&l||console[c](f))};try{if(e instanceof n.CancelablePromise)return(u=e).then((function(e){return{error:null,result:e,promise:u}})).catch((function(e){return h(e),{error:e,result:i,promise:u}}));var d=e();if(void 0===d)return Promise.reject(Error("tryCatchPromise: callback parameter must return a value () => promise"));var p=d instanceof n.CancelablePromise;return(u=p?d:(0,n.toCancelablePromise)(d)).then((function(e){return{error:null,result:e,promise:u}})).catch((function(e){return h(e),{error:e,result:i,promise:u}}))}catch(e){return h(e),Promise.resolve({error:f,result:i,promise:u})}}},667:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})}},r={};return function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n](i,i.exports,t),i.exports}(991)})(),e.exports=r()}},r={},function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n].call(i.exports,i,i.exports,t),i.exports}(991);var e,r}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-web-worker",
3
- "version": "4.0.8",
3
+ "version": "6.0.0",
4
4
  "description": "This is a library to easily handle and create web-workers, if you are a web developer and never tried this... do not wait any longer! Workers are an amazing option to improve user experience and make your webpages even greater",
5
5
  "main": "lib/bundle.js",
6
6
  "types": "lib/index.d.ts",
@@ -8,9 +8,11 @@
8
8
  "lib"
9
9
  ],
10
10
  "scripts": {
11
- "test:debug": "node --inspect-brk node_modules/.bin/jest --watch --runInBand",
11
+ "test": "npm run build && jest --maxWorkers=4 -c --no-watchman -u",
12
+ "test:debug": "npm run build && node --inspect-brk node_modules/.bin/jest --watch --runInBand",
13
+ "test:debug:quick": "node --inspect-brk node_modules/.bin/jest --watch --runInBand",
12
14
  "test:quick": "jest --maxWorkers=4 -c --no-watchman -u",
13
- "test:coverage": "jest --maxWorkers=4 -c --colors --no-watchman --verbose --coverage",
15
+ "test:coverage": "npm run build && jest --maxWorkers=4 -c --colors --no-watchman --verbose --coverage",
14
16
  "build": "webpack --config webpack.config.js",
15
17
  "prepare": "npm run build",
16
18
  "version": "npm run format && git add -A src",
@@ -43,8 +45,9 @@
43
45
  "@babel/preset-env": "^7.20.2",
44
46
  "@babel/preset-typescript": "^7.21.0",
45
47
  "@types/jest": "^29.2.4",
48
+ "@types/node": "^20.11.0",
46
49
  "babel-loader": "^9.1.2",
47
- "cancelable-promise-jq": "^1.1.3",
50
+ "cancelable-promise-jq": "^2.0.2",
48
51
  "jest": "^29.3.1",
49
52
  "jsdom": "^16.4.0",
50
53
  "ts-jest": "^29.1.1",
@@ -55,7 +58,7 @@
55
58
  "webpack-cli": "^5.0.1"
56
59
  },
57
60
  "peerDependencies": {
58
- "cancelable-promise-jq": "^1.1.3"
61
+ "cancelable-promise-jq": "^2.0.2"
59
62
  },
60
63
  "peerDependenciesMeta": {
61
64
  "cancelable-promise-jq": {
@@ -1,137 +0,0 @@
1
- import { EasyWebWorkerMessage } from './EasyWebWorkerMessage';
2
- import { CancelablePromise } from 'cancelable-promise-jq';
3
- import { EasyWebWorkerBody, IWorkerConfig, TOverrideConfig } from './EasyWebWorker';
4
- export type IWorkerConfigParallel = IWorkerConfig & {
5
- /**
6
- * Maximum quantity of workers that will be created, default is 4
7
- */
8
- maxWorkers?: number;
9
- /**
10
- * Indicates if the worker should be kept alive after the message is completed
11
- * otherwise, the workers will be terminated after a configured delay has passed and there is no messages in the queue
12
- */
13
- keepAlive?: boolean;
14
- /**
15
- * Quantity of milliseconds to wait before terminating the worker if there is no messages in the queue
16
- */
17
- terminationDelay?: number;
18
- /**
19
- * Indicates whenever the maximum quantity of workers should be created at the initialization of the easy web worker,
20
- * If warmUp is true keepAlive will be set to true,
21
- * When maxWorkers is null or 1 we'll always create a worker
22
- */
23
- warmUp?: boolean;
24
- };
25
- /**
26
- * This is a class to create a new instance of the easy concurrent web worker
27
- * @template TPayload - Indicates if your WORKERS messages requires a parameter to be provided, NULL indicates they doesn't
28
- * @template TResult - Indicates if your WORKERS messages has a result... NULL indicates all you messages are Promise<void>
29
- * @param {EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[]} workerBody -
30
- * this parameter should be a function or set of functions that will become the body of your Web-Worker
31
- * IMPORTANT!! all WORKERS content is gonna be transpiled on run time, so you can not use any variable, method of resource that weren't included into the WORKER.
32
- * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
33
- * you could easily identify what is on the context of your Worker.
34
- * @param {Partial<IWorkerConfig>} WorkerConfig - You could add extra configuration to your worker,
35
- * consult IWorkerConfig description to have more information
36
- * */
37
- export declare class EasyWebWorkerParallel<TPayload = null, TResult = void> {
38
- /**
39
- * this parameter should be a function or set of functions that will become the body of your Web-Worker
40
- * IMPORTANT!! all WORKERS content is gonna be transpiled on run time, so you can not use any variable, method of resource that weren't included into the WORKER.
41
- * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
42
- * you could easily identify what is on the context of your Worker.
43
- */
44
- protected source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[] | string | Worker[];
45
- name: string;
46
- /**
47
- * This is the URL of the worker file
48
- */
49
- workerUrl: string;
50
- /**
51
- * This is the list of scripts that will be imported into the worker
52
- */
53
- scripts: string[];
54
- maxWorkers: number;
55
- /**
56
- * This is the callback that will be executed when the worker throws an error
57
- */
58
- onWorkerError: (error: ErrorEvent) => void;
59
- private workers;
60
- keepAlive: boolean;
61
- terminationDelay: number;
62
- /**
63
- * These where send to the worker but not yet resolved
64
- */
65
- private messagesQueue;
66
- protected get isExternalWorkerFile(): boolean;
67
- constructor(
68
- /**
69
- * this parameter should be a function or set of functions that will become the body of your Web-Worker
70
- * IMPORTANT!! all WORKERS content is gonna be transpiled on run time, so you can not use any variable, method of resource that weren't included into the WORKER.
71
- * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
72
- * you could easily identify what is on the context of your Worker.
73
- */
74
- source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[] | string | Worker[],
75
- /**
76
- * You could import scripts into your worker, this is useful if you want to use external libraries
77
- */
78
- { scripts, name, onWorkerError, url, maxWorkers, keepAlive, terminationDelay, warmUpWorkers: warmUp, }?: Partial<IWorkerConfigParallel>);
79
- private warmUp;
80
- private RemoveMessageFromQueue;
81
- /**
82
- * Categorizes the worker response and executes the corresponding callback
83
- */
84
- private executeMessageCallback;
85
- protected getWorkerUrl(): string;
86
- protected initializeWorkerBaseSource(): {
87
- workerUrl: string;
88
- isArrayOfWebWorkers: boolean;
89
- isArraySource?: boolean;
90
- };
91
- /**
92
- * Execute the cancel callback of each message in the queue if provided
93
- * @param {unknown} reason - reason messages where canceled
94
- * @param {boolean} force - if true, the messages will be cancelled immediately without waiting for the worker to respond
95
- * This action will reboot the worker
96
- */
97
- cancelAll(reason?: unknown, { force }?: {
98
- force?: boolean;
99
- }): void;
100
- protected addMessageToQueue(message: EasyWebWorkerMessage<unknown, unknown>): void;
101
- /**
102
- * Send a message to the worker queue to an specific method
103
- * @template TResult_ - result type of the message (if any)
104
- * @template TPayload_ - payload type of the message (if any)
105
- * @param {string} method - method name
106
- * @param {TPayload} payload - whatever json data you want to send to the worker
107
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
108
- */
109
- sendToMethod<TResult_ = void, TPayload_ = null>(method: string, payload?: TPayload_): CancelablePromise<TResult_>;
110
- /**
111
- * Send a message to the worker queue
112
- * @param {TPayload} payload - whatever json data you want to send to the worker
113
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
114
- */
115
- send: TPayload extends null ? () => CancelablePromise<TResult> : (payload: TPayload) => CancelablePromise<TResult>;
116
- private createNewWorkerInstance;
117
- private getWorkerFromPool;
118
- private sendToWorker;
119
- /**
120
- * This method terminate all current messages and send a new one to the worker queue
121
- * @param {TPayload} payload - whatever json data you want to send to the worker, should be serializable
122
- * @param {unknown} reason - reason why the worker was terminated
123
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
124
- */
125
- override: TPayload extends null ? (reason?: unknown, config?: TOverrideConfig) => CancelablePromise<TResult> : (payload: TPayload, reason?: unknown, config?: TOverrideConfig) => CancelablePromise<TResult>;
126
- /**
127
- * This method will alow the current message to be completed and send a new one to the worker queue after it, all the messages after the current one will be canceled
128
- * @param {TPayload} payload - whatever json data you want to send to the worker should be serializable
129
- * @param {unknown} reason - reason why the worker was terminated
130
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
131
- */
132
- overrideAfterCurrent: TPayload extends null ? (reason?: unknown, TOverrideConfig?: any) => CancelablePromise<TResult> : (payload: TPayload, reason?: unknown, config?: TOverrideConfig) => CancelablePromise<TResult>;
133
- /**
134
- * This method will remove the WebWorker and the BlobUrl
135
- */
136
- dispose(): Promise<void>;
137
- }