easy-web-worker 7.0.1 → 7.0.2

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.
@@ -0,0 +1 @@
1
+ !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,(()=>(()=>{var e={382:(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){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(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 i(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=[],l=!0,s=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=i.call(t)).done)&&(c.push(n.value),c.length!==r);l=!0);}catch(e){s=!0,o=e}finally{try{if(!l&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,r)||a(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 a(e,r){if(e){if("string"==typeof e)return c(e,r);var t={}.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}}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function l(){l=function(){return r};var e,r={},t=Object.prototype,o=t.hasOwnProperty,i=Object.defineProperty||function(e,r,t){e[r]=t.value},a="function"==typeof Symbol?Symbol:{},c=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function f(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{f({},"")}catch(e){f=function(e,r,t){return e[r]=t}}function p(e,r,t,n){var o=r&&r.prototype instanceof g?r:g,a=Object.create(o.prototype),c=new M(n||[]);return i(a,"_invoke",{value:E(e,t,c)}),a}function d(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}r.wrap=p;var v="suspendedStart",h="suspendedYield",y="executing",b="completed",m={};function g(){}function w(){}function k(){}var P={};f(P,c,(function(){return this}));var C=Object.getPrototypeOf,j=C&&C(C(R([])));j&&j!==t&&o.call(j,c)&&(P=j);var _=k.prototype=g.prototype=Object.create(P);function O(e){["next","throw","return"].forEach((function(r){f(e,r,(function(e){return this._invoke(r,e)}))}))}function S(e,r){function t(i,a,c,l){var s=d(e[i],e,a);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==n(f)&&o.call(f,"__await")?r.resolve(f.__await).then((function(e){t("next",e,c,l)}),(function(e){t("throw",e,c,l)})):r.resolve(f).then((function(e){u.value=e,c(u)}),(function(e){return t("throw",e,c,l)}))}l(s.arg)}var a;i(this,"_invoke",{value:function(e,n){function o(){return new r((function(r,o){t(e,n,r,o)}))}return a=a?a.then(o,o):o()}})}function E(r,t,n){var o=v;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===b){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var l=x(c,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===v)throw o=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=d(r,t,n);if("normal"===s.type){if(o=n.done?b:h,s.arg===m)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=b,n.method="throw",n.arg=s.arg)}}}function x(r,t){var n=t.method,o=r.iterator[n];if(o===e)return t.delegate=null,"throw"===n&&r.iterator.return&&(t.method="return",t.arg=e,x(r,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=d(o,r.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,m;var a=i.arg;return a?a.done?(t[r.resultName]=a.value,t.next=r.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,m):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function W(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 A(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function M(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function R(r){if(r||""===r){var t=r[c];if(t)return t.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var i=-1,a=function t(){for(;++i<r.length;)if(o.call(r,i))return t.value=r[i],t.done=!1,t;return t.value=e,t.done=!0,t};return a.next=a}}throw new TypeError(n(r)+" is not iterable")}return w.prototype=k,i(_,"constructor",{value:k,configurable:!0}),i(k,"constructor",{value:w,configurable:!0}),w.displayName=f(k,u,"GeneratorFunction"),r.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===w||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,k):(e.__proto__=k,f(e,u,"GeneratorFunction")),e.prototype=Object.create(_),e},r.awrap=function(e){return{__await:e}},O(S.prototype),f(S.prototype,s,(function(){return this})),r.AsyncIterator=S,r.async=function(e,t,n,o,i){void 0===i&&(i=Promise);var a=new S(p(e,t,n,o),i);return r.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},O(_),f(_,u,"Generator"),f(_,c,(function(){return this})),f(_,"toString",(function(){return"[object Generator]"})),r.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}},r.values=R,M.prototype={constructor:M,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(A),!r)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var t=this;function n(n,o){return c.type="throw",c.arg=r,t.next=n,o&&(t.method="next",t.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var l=o.call(a,"catchLoc"),s=o.call(a,"finallyLoc");if(l&&s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,r){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;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,m):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),m},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),A(t),m}},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;A(t)}return o}}throw Error("illegal catch attempt")},delegateYield:function(r,t,n){return this.delegate={iterator:R(r),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=e),m}},r}function s(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,u(n.key),n)}}function u(e){var r=function(e,r){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,r||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==n(r)?r:r+""}var f=function(e,r,t,n){return new(t||(t=Promise))((function(o,i){function a(e){try{l(n.next(e))}catch(e){i(e)}}function c(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var r;e.done?o(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(a,c)}l((n=n.apply(e,r||[])).next())}))};Object.defineProperty(r,"__esModule",{value:!0}),r.EasyWebWorker=void 0;var p=t(911),d=t(180),v=t(655),h=t(416),y=t(111),b=function(){return e=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.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,r=e.maxWorkers,n=e.warmUpWorkers,o=t.messagesQueue.size;if(!t.workers.length||t.workers.length<r&&(o||n)){var i=t.createNewWorker();return t.workers.push(i),i}var a=t.workers.shift();return t.workers.push(a),a},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;return t.workerUrl=r,t.config.maxWorkers=n?t.workers.length:t.config.maxWorkers,{isArrayOfWebWorkers:n}},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 v.EasyWebWorkerMessage,l=c.messageId,s=c.decoupledPromise,u=t.getWorkerFromPool();s.promise.cancel=function(e){s.promise.cancel=s._cancel;var n={messageId:l,__is_easy_web_worker_message__:!0,method:a,cancelation:{reason:e}};return t.workers.length?(u.postMessage(n,r),s.promise):s.cancel(e)},t.config.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.config.terminationDelay)})),t.addMessageToQueue(c);var f={messageId:l,__is_easy_web_worker_message__:!0,method:a,execution:{payload:i}};return u.postMessage(f,r),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 new p.CancelablePromise((function(e,r,n){return f(t,[e,r,n],void 0,(function(e,r,t){var n=this,c=t.onCancel;return l().mark((function r(){var t,s;return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t=n.cancelAll(i,a),s=c((function(){t.cancel()})),r.next=4,t;case 4:s(),e(n.send.apply(n,[o]));case 6:case"end":return r.stop()}}),r)}))()}))}))},this.overrideAfterCurrent=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var o=r[0],a=r[1],c=r[2];return new p.CancelablePromise((function(e,r,n){return f(t,[e,r,n],void 0,(function(e,r,t){var n=this,s=t.onCancel,u=t.reportProgress;return l().mark((function r(){var t,f,p,d,v,h;return l().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(!n.messagesQueue.size){r.next=10;break}return t=i(n.messagesQueue,1),f=t[0],p=i(f,2),d=p[1],n.RemoveMessageFromQueue(d.messageId),v=n.cancelAll(a,c).onProgress(u),h=s((function(){v.cancel()})),n.addMessageToQueue(d),r.next=9,v;case 9:h();case 10:e(n.send.apply(n,[o]));case 11:case"end":return r.stop()}}),r)}))()}))}))},this.workerUrl="string"==typeof r||r instanceof URL?r:null;var o=null!=n?n:{},a=o.scripts,c=void 0===a?[]:a,s=o.name,u=o.onWorkerError,d=void 0===u?null:u,y=o.maxWorkers,b=void 0===y?1:y,m=o.terminationDelay,g=void 0===m?1e3:m,w=o.primitiveParameters,k=o.workerOptions,P=void 0===k?{}:k,C="boolean"==typeof(null==n?void 0:n.warmUpWorkers)?n.warmUpWorkers:!(1!==b),j="boolean"==typeof(null==n?void 0:n.keepAlive)?n.keepAlive:C;this.config={scripts:null!=c?c:[],name:s,maxWorkers:b,keepAlive:j,warmUpWorkers:C,workerOptions:Object.assign(Object.assign({},null!=P?P:{}),{name:P.name||(0,h.uniqueId)("wk:")}),onWorkerError:d,terminationDelay:g,primitiveParameters:w},this.workerOptions=this.config.workerOptions,this.name=this.workerOptions.name,this.scripts=c,this.onWorkerError=d,this.maxWorkers=b,this.terminationDelay=g,this.warmUpWorkers=C,this.primitiveParameters=null!=w?w:[],j=!!this.computeWorkerBaseSource().isArrayOfWebWorkers||j,this.keepAlive=j,this.config.keepAlive=j,this.warmUp()},r=[{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=null!==(r=this.messagesQueue.get(e.data.messageId))&&void 0!==r?r:null;if(t){var n=e.data.progress;if(this.workers.length){var i=t.decoupledPromise;if(n){var a=n.percentage,c=n.payload;i.reportProgress(a,c)}else{this.RemoveMessageFromQueue(t.messageId);var l=e.data.worker_cancelation;if(l){var s=l.reason;i._cancel(s)}else{var u=e.data.rejected;if(u){var f=u.reason;i.reject(f)}else{var p=e.data.resolved.payload;i.resolve.apply(i,o(null!=p?p:[]))}}}}else this.RemoveMessageFromQueue(t.messageId)}}},{key:"getWorkerUrl",value:function(){if(this.isExternalWorkerFile)return this.source;var e=this.config,r=e.primitiveParameters,t=e.scripts;return(0,y.createBlobWorker)(this.source,t,{primitiveParameters:r})}},{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 p.CancelablePromise((function(t,o,i){return f(r,[t,o,i],void 0,(function(r,t,o){var i=this,a=o.onCancel,c=o.reportProgress;return l().mark((function t(){var o,s,u,f,p,v;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=Array.from(null!==(s=null===(o=i.messagesQueue)||void 0===o?void 0:o.values())&&void 0!==s?s:[]),f=u.length,p=100/f,!n){t.next=5;break}return t.abrupt("return",r(i.reboot(e)));case 5:v=(0,d.groupAsCancelablePromise)(u.map((function(r){return r.decoupledPromise.promise.cancel(e).catch((function(e){return c(p,e),e}))}))),a((function(){v.cancel()})),r(v);case 8:case"end":return t.stop()}}),t)}))()}))}))}},{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 f(this,void 0,void 0,l().mark((function e(){return l().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)})))}}],r&&s(e.prototype,r),t&&s(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,t}();r.EasyWebWorker=b},655:(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 n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,a(n.key),n)}}function i(e,r,t){return r&&o(e.prototype,r),t&&o(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e){var r=function(e,r){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,r||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==n(r)?r:r+""}Object.defineProperty(r,"__esModule",{value:!0}),r.EasyWebWorkerMessage=void 0;var c=t(816),l=t(416),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,l.uniqueId)("ms:"),this.decoupledPromise=(0,c.createDecoupledPromise)(),this.decoupledPromise._cancel=this.decoupledPromise.promise.cancel}));r.EasyWebWorkerMessage=s},111:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.createBlobWorker=void 0;var n=t(216);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]:{}).primitiveParameters,o=void 0===t?[]:t,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,n.getWorkerTemplate)(),";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"}))}},216:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getWorkerTemplate=void 0;r.getWorkerTemplate=function(){return'(()=>{let e=new Map,o=new Map([["",()=>{throw"you didn\'t defined a message-callback, please assign a callback by calling easyWorker.onMessage"},],]),t=({messageId:o,payload:t,method:a})=>{let s="pending",n=new Map,r=(t,r,l=[])=>{var i;let c=s,d="progress"===t?"pending":t;if(!e.has(o)){let g="%c#"+o+" 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(g,"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:o,status:{current:c,target:d},method:a,action:r});return}let h={resolved:"onResolve",rejected:"onReject",canceled:"onCancel",worker_cancelation:"onCancel",pending:"onProgress"}[d],w=n.get(h),m=!r.progress;try{null==w||w.forEach(e=>e(r,l)),m&&(null===(i=n.get("onFinalize"))||void 0===i||i.forEach(e=>e(r,l)))}catch(u){throw e.delete(o),{message:"Error while processing message id: "+o,error:u,messageData:r,messageType:t,when:h}}finally{m&&e.delete(o)}self.postMessage(Object.assign({messageId:o},r),l),s=d},l=(e,o=[])=>r("resolved",{resolved:{payload:void 0===e?[]:[e]}},o),i=(e,o=[])=>{r("rejected",{rejected:{reason:e}},o)},c=(e,o=[])=>r("worker_cancelation",{worker_cancelation:{reason:e}},o),d=(e,o,t=[])=>{r("progress",{progress:{percentage:e,payload:o}},t)},g=e=>o=>{n.has(e)||n.set(e,new Set);let t=n.get(e);return t.add(o),()=>t.delete(o)};return{messageId:o,method:a,payload:t,getStatus:()=>s,isPending:()=>"pending"===s,resolve:l,reject:i,cancel:c,reportProgress:d,onResolve:g("onResolve"),onReject:g("onReject"),onCancel:g("onCancel"),onProgress:g("onProgress"),onFinalize:g("onFinalize")}},a=(...e)=>{let[t,a]=e,s="string"==typeof t;if(s){let n=t,r=a;o.set(n,r);return}let l=t;o.set("",l)},s=()=>{let o=[...e.values()];o.forEach(e=>e.reject(Error("worker closed"))),self.close()};self.onmessage=a=>{var s,n,r,l;let i=null===(s=null==a?void 0:a.data)||void 0===s?void 0:s.messageId,c=null!==(r=null===(n=null==a?void 0:a.data)||void 0===n?void 0:n.__is_easy_web_worker_message__)&&void 0!==r&&r,d=i&&c;if(d)try{let{data:g}=a,{cancelation:h}=g;if(h){let{reason:w}=h,m=e.get(i);m.cancel(w);return}let{method:u,execution:p}=a.data,{payload:v}=p,f=t({method:u,messageId:i,payload:v});e.set(i,f);let y=o.get(u||"");y(f,a)}catch(k){throw e.delete(null===(l=a.data)||void 0===l?void 0:l.messageId),{message:"Error while processing message id: "+i,event:a}}};let n=(...e)=>{self.importScripts(...e)};return{onMessage:a,close:s,importScripts:n}})();'}},416:(e,r)=>{"use strict";var t;Object.defineProperty(r,"__esModule",{value:!0}),r.uniqueId=void 0,r.uniqueId=(t=0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t===Number.MAX_SAFE_INTEGER&&(t=0),e+Date.now().toString(36)+(t++).toString(36)})},911:function(e){var r;r=()=>(()=>{"use strict";var e={836:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isCancelableAbortSignal=void 0,r.isCancelableAbortSignal=function(e){return Boolean(null==e?void 0:e.__is_cancelable_abort_signal)}},216:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.promise_identifier=r.isCancelablePromise=void 0;var t=Symbol("promise_identifier");r.promise_identifier=t,r.isCancelablePromise=function(e){return!!(null==e?void 0:e[t])}},790:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isPromise=void 0,r.isPromise=function(e){return Promise.resolve(e)===e}}},r={};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}var n={};return(()=>{var e=n;function r(e){return r="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},r(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.toCancelablePromise=e.CancelablePromise=void 0;var o,i=t(836),a=t(216),c=t(790);function l(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(i=function(e){if("object"!==r(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!==r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===r(i)?i:String(i)),o)}var i}function s(e){var t=v();return function(){var n,o=y(e);if(t){var i=y(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return u(e)}(this,n)}}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(){return f="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=y(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}},f.apply(this,arguments)}function p(e){var r="function"==typeof Map?new Map:void 0;return p=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 d(e,arguments,y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),h(n,e)},p(e)}function d(e,r,t){return d=v()?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&&h(o,t.prototype),o},d.apply(null,arguments)}function v(){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 h(e,r){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},h(e,r)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}var b=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&&h(e,r)}(a,e);var r,t,n=s(a);function a(e){var r,t,c,l,s,p;return function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,a),(l=n.call(this,(function(e,r){s=e,p=r})))[o]=!0,l.status="pending",l.cancelCallbacks=new Set,l.ownCancelCallbacks=new Set,l.onProgressCallbacks=new Set,l.disposeCallbacks=function(){l.cancelCallbacks=new Set,l.ownCancelCallbacks=new Set,l.onProgressCallbacks=new Set},l.subscribeToOwnCancelEvent=function(e){return l.ownCancelCallbacks.add(e),function(){l.ownCancelCallbacks.delete(e)}},l.cancel=function(e){if("pending"!==l.status)return u(l);l.status="canceled";var r=void 0===e?new Error("Promise canceled"):e;return l.ownCancelCallbacks.forEach((function(e){return e(r)})),l.cancelCallbacks.forEach((function(e){return e(r)})),l._reject(r),l.disposeCallbacks(),u(l)},l.onCancel=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return l.cancelCallbacks.add(e),(0,i.isCancelableAbortSignal)(r)?r.subscribe((function(){l.cancelCallbacks.delete(e)})):null==r||r.addEventListener("abort",(function(){l.cancelCallbacks.delete(e)})),u(l)},l.onProgress=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return l.onProgressCallbacks.add(e),(0,i.isCancelableAbortSignal)(r)?r.subscribe((function(){l.onProgressCallbacks.delete(e)})):null==r||r.addEventListener("abort",(function(){l.onProgressCallbacks.delete(e)})),u(l)},l.reportProgress=function(e,r){return l.onProgressCallbacks.forEach((function(t){return t(e,r)})),u(l)},l.createChildPromise=function(){var e,r,t=new a((function(t,n,o){e=t,r=n}));return t.onProgressCallbacks=l.onProgressCallbacks,t.onCancel((function(e){l.cancel(e)})),{promise:t,resolve:e,reject:r}},l._resolve=s,l._reject=p,e((function(e){l.status="resolved",l.disposeCallbacks(),l._resolve(e)}),(function(e){l.status="rejected",l.disposeCallbacks(),l._reject(e)}),{cancel:function(e){return l.cancel(e)},onCancel:function(e){return l.subscribeToOwnCancelEvent(e)},onProgress:function(e){return l.onProgress(e),function(){l.onProgressCallbacks.delete(e)}},reportProgress:function(e,r){l.reportProgress(e,r)}}),l.then=function(e,t){var n=l.createChildPromise(),o=n.promise,i=n.resolve,c=n.reject;return f((r=u(l),y(a.prototype)),"then",r).call(r,e,t).then(i,c),o},l.catch=function(e){var r=l.createChildPromise(),n=r.promise,o=r.resolve,i=r.reject;return f((t=u(l),y(a.prototype)),"catch",t).call(t,e).then(o,i),n},l.finally=function(e){var r=l.createChildPromise(),t=r.promise,n=r.resolve,o=r.reject;return f((c=u(l),y(a.prototype)),"finally",c).call(c,e).then(n,o),t},l}return r=a,t=[{key:"resolve",value:function(e){return new a((function(r){return r(e)}))}}],t&&l(r,t),Object.defineProperty(r,"prototype",{writable:!1}),a}(p(Promise));e.CancelablePromise=b,o=a.promise_identifier,b.reject=function(e){return new b((function(r,t){return t(e)}))},b.canceled=function(e){return new b((function(r,t,n){return(0,n.cancel)(e)}))},b.race=function(e){return new b((function(r,t,n){var o=n.onCancel,i=n.cancel;e.forEach((function(e){var n=m(e);o((function(e){n.cancel(e)})),n.then(r,(function(e){"canceled"!==n.status?t(e):i(e)}))}))}))},b.all=function(e){return new b((function(r,t,n){var o=n.onCancel,i=n.cancel,a=new Map,c=e.length,l=0;e.forEach((function(e){var n=m(e);a.set(n,null),o((function(e){n.cancel(e)})),n.then((function(e){l++,a.set(n,e),l===c&&r(Array.from(a.values()))}),(function(e){"canceled"!==n.status?t(e):i(e)}))}))}))},b.allSettled=function(e){return new b((function(r,t,n){var o=n.onCancel,i=new Map,a=e.length,c=0;e.forEach((function(e){var t=m(e);i.set(t,null),o((function(e){t.cancel(e)})),t.then((function(e){i.set(t,{status:"fulfilled",value:e})}),(function(e){i.set(t,{status:"canceled"===t.status?"canceled":"rejected",reason:e})})).finally((function(){++c===a&&r(Array.from(i.values()))}))}))}))},b.prototype.constructor=Promise;var m=function e(r){if((0,a.isCancelablePromise)(r))return r;if("function"==typeof r)return e(r());if(!(0,c.isPromise)(r))return new b((function(e){return e(r)}));var t,n,o=new b((function(e,o,i){t=e,n=o,r.then(t,n)}));return o.onCancel((function(e){n(e)})),o};e.toCancelablePromise=m})(),n})(),e.exports=r()},816:function(e){var r;r=()=>(()=>{"use strict";var e={0:(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.CancelablePromise=void 0;var o,i=t(836),a=t(216),c=t(790);function l(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,(i=function(e){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!==n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===n(i)?i:String(i)),o)}var i}function s(e){var r=v();return function(){var t,o=y(e);if(r){var i=y(this).constructor;t=Reflect.construct(o,arguments,i)}else t=o.apply(this,arguments);return function(e,r){if(r&&("object"===n(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return u(e)}(this,t)}}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(){return f="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=y(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}},f.apply(this,arguments)}function p(e){var r="function"==typeof Map?new Map:void 0;return p=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 d(e,arguments,y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),h(n,e)},p(e)}function d(e,r,t){return d=v()?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&&h(o,t.prototype),o},d.apply(null,arguments)}function v(){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 h(e,r){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},h(e,r)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}var b=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&&h(e,r)}(a,e);var r,t,n=s(a);function a(e){var r,t,c,l,s,p;return function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,a),(l=n.call(this,(function(e,r){s=e,p=r})))[o]=!0,l.status="pending",l.cancelCallbacks=new Set,l.ownCancelCallbacks=new Set,l.onProgressCallbacks=new Set,l.disposeCallbacks=function(){l.cancelCallbacks=new Set,l.ownCancelCallbacks=new Set,l.onProgressCallbacks=new Set},l.subscribeToOwnCancelEvent=function(e){return l.ownCancelCallbacks.add(e),function(){l.ownCancelCallbacks.delete(e)}},l.cancel=function(e){if("pending"!==l.status)return u(l);l.status="canceled";var r=void 0===e?new Error("Promise canceled"):e;return l.ownCancelCallbacks.forEach((function(e){return e(r)})),l.cancelCallbacks.forEach((function(e){return e(r)})),l._reject(r),l.disposeCallbacks(),u(l)},l.onCancel=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return l.cancelCallbacks.add(e),(0,i.isCancelableAbortSignal)(r)?r.subscribe((function(){l.cancelCallbacks.delete(e)})):null==r||r.addEventListener("abort",(function(){l.cancelCallbacks.delete(e)})),u(l)},l.onProgress=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return l.onProgressCallbacks.add(e),(0,i.isCancelableAbortSignal)(r)?r.subscribe((function(){l.onProgressCallbacks.delete(e)})):null==r||r.addEventListener("abort",(function(){l.onProgressCallbacks.delete(e)})),u(l)},l.reportProgress=function(e,r){return l.onProgressCallbacks.forEach((function(t){return t(e,r)})),u(l)},l.createChildPromise=function(){var e,r,t=new a((function(t,n,o){e=t,r=n}));return t.onProgressCallbacks=l.onProgressCallbacks,t.onCancel((function(e){l.cancel(e)})),{promise:t,resolve:e,reject:r}},l._resolve=s,l._reject=p,e((function(e){l.status="resolved",l.disposeCallbacks(),l._resolve(e)}),(function(e){l.status="rejected",l.disposeCallbacks(),l._reject(e)}),{cancel:function(e){return l.cancel(e)},onCancel:function(e){return l.subscribeToOwnCancelEvent(e)},onProgress:function(e){return l.onProgress(e),function(){l.onProgressCallbacks.delete(e)}},reportProgress:function(e,r){l.reportProgress(e,r)}}),l.then=function(e,t){var n=l.createChildPromise(),o=n.promise,i=n.resolve,c=n.reject;return f((r=u(l),y(a.prototype)),"then",r).call(r,e,t).then(i,c),o},l.catch=function(e){var r=l.createChildPromise(),n=r.promise,o=r.resolve,i=r.reject;return f((t=u(l),y(a.prototype)),"catch",t).call(t,e).then(o,i),n},l.finally=function(e){var r=l.createChildPromise(),t=r.promise,n=r.resolve,o=r.reject;return f((c=u(l),y(a.prototype)),"finally",c).call(c,e).then(n,o),t},l}return r=a,t=[{key:"resolve",value:function(e){return new a((function(r){return r(e)}))}}],t&&l(r,t),Object.defineProperty(r,"prototype",{writable:!1}),a}(p(Promise));r.CancelablePromise=b,o=a.promise_identifier,b.reject=function(e){return new b((function(r,t){return t(e)}))},b.canceled=function(e){return new b((function(r,t,n){return(0,n.cancel)(e)}))},b.race=function(e){return new b((function(r,t,n){var o=n.onCancel,i=n.cancel;e.forEach((function(e){var n=m(e);o((function(e){n.cancel(e)})),n.then(r,(function(e){"canceled"!==n.status?t(e):i(e)}))}))}))},b.all=function(e){return new b((function(r,t,n){var o=n.onCancel,i=n.cancel,a=new Map,c=e.length,l=0;e.forEach((function(e){var n=m(e);a.set(n,null),o((function(e){n.cancel(e)})),n.then((function(e){l++,a.set(n,e),l===c&&r(Array.from(a.values()))}),(function(e){"canceled"!==n.status?t(e):i(e)}))}))}))},b.allSettled=function(e){return new b((function(r,t,n){var o=n.onCancel,i=new Map,a=e.length,c=0;e.forEach((function(e){var t=m(e);i.set(t,null),o((function(e){t.cancel(e)})),t.then((function(e){i.set(t,{status:"fulfilled",value:e})}),(function(e){i.set(t,{status:"canceled"===t.status?"canceled":"rejected",reason:e})})).finally((function(){++c===a&&r(Array.from(i.values()))}))}))}))},b.prototype.constructor=Promise;var m=function e(r){if((0,a.isCancelablePromise)(r))return r;if("function"==typeof r)return e(r());if(!(0,c.isPromise)(r))return new b((function(e){return e(r)}));var t,n,o=new b((function(e,o,i){t=e,n=o,r.then(t,n)}));return o.onCancel((function(e){n(e)})),o};r.toCancelablePromise=m},836:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isCancelableAbortSignal=void 0,r.isCancelableAbortSignal=function(e){return Boolean(null==e?void 0:e.__is_cancelable_abort_signal)}},216:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.promise_identifier=r.isCancelablePromise=void 0;var t=Symbol("promise_identifier");r.promise_identifier=t,r.isCancelablePromise=function(e){return!!(null==e?void 0:e[t])}},790:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isPromise=void 0,r.isPromise=function(e){return Promise.resolve(e)===e}}},r={};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}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.createDecoupledPromise=void 0;var r=t(0);e.createDecoupledPromise=function(){var e,t,n,o=new r.CancelablePromise((function(r,o,i){e=r,t=o,n=i}));return Object.assign(Object.assign({resolve:e,reject:t},n),{promise:o})}})(),n})(),e.exports=r()},180:function(e){var r;r=()=>(()=>{"use strict";var e={0:(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.CancelablePromise=void 0;var o,i=t(836),a=t(216),c=t(790);function l(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,(i=function(e){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!==n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===n(i)?i:String(i)),o)}var i}function s(e){var r=v();return function(){var t,o=y(e);if(r){var i=y(this).constructor;t=Reflect.construct(o,arguments,i)}else t=o.apply(this,arguments);return function(e,r){if(r&&("object"===n(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return u(e)}(this,t)}}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(){return f="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=y(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}},f.apply(this,arguments)}function p(e){var r="function"==typeof Map?new Map:void 0;return p=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 d(e,arguments,y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),h(n,e)},p(e)}function d(e,r,t){return d=v()?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&&h(o,t.prototype),o},d.apply(null,arguments)}function v(){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 h(e,r){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},h(e,r)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}var b=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&&h(e,r)}(a,e);var r,t,n=s(a);function a(e){var r,t,c,l,s,p;return function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,a),(l=n.call(this,(function(e,r){s=e,p=r})))[o]=!0,l.status="pending",l.cancelCallbacks=new Set,l.ownCancelCallbacks=new Set,l.onProgressCallbacks=new Set,l.disposeCallbacks=function(){l.cancelCallbacks=new Set,l.ownCancelCallbacks=new Set,l.onProgressCallbacks=new Set},l.subscribeToOwnCancelEvent=function(e){return l.ownCancelCallbacks.add(e),function(){l.ownCancelCallbacks.delete(e)}},l.cancel=function(e){if("pending"!==l.status)return u(l);l.status="canceled";var r=void 0===e?new Error("Promise canceled"):e;return l.ownCancelCallbacks.forEach((function(e){return e(r)})),l.cancelCallbacks.forEach((function(e){return e(r)})),l._reject(r),l.disposeCallbacks(),u(l)},l.onCancel=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return l.cancelCallbacks.add(e),(0,i.isCancelableAbortSignal)(r)?r.subscribe((function(){l.cancelCallbacks.delete(e)})):null==r||r.addEventListener("abort",(function(){l.cancelCallbacks.delete(e)})),u(l)},l.onProgress=function(e){var r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).signal;return l.onProgressCallbacks.add(e),(0,i.isCancelableAbortSignal)(r)?r.subscribe((function(){l.onProgressCallbacks.delete(e)})):null==r||r.addEventListener("abort",(function(){l.onProgressCallbacks.delete(e)})),u(l)},l.reportProgress=function(e,r){return l.onProgressCallbacks.forEach((function(t){return t(e,r)})),u(l)},l.createChildPromise=function(){var e,r,t=new a((function(t,n,o){e=t,r=n}));return t.onProgressCallbacks=l.onProgressCallbacks,t.onCancel((function(e){l.cancel(e)})),{promise:t,resolve:e,reject:r}},l._resolve=s,l._reject=p,e((function(e){l.status="resolved",l.disposeCallbacks(),l._resolve(e)}),(function(e){l.status="rejected",l.disposeCallbacks(),l._reject(e)}),{cancel:function(e){return l.cancel(e)},onCancel:function(e){return l.subscribeToOwnCancelEvent(e)},onProgress:function(e){return l.onProgress(e),function(){l.onProgressCallbacks.delete(e)}},reportProgress:function(e,r){l.reportProgress(e,r)}}),l.then=function(e,t){var n=l.createChildPromise(),o=n.promise,i=n.resolve,c=n.reject;return f((r=u(l),y(a.prototype)),"then",r).call(r,e,t).then(i,c),o},l.catch=function(e){var r=l.createChildPromise(),n=r.promise,o=r.resolve,i=r.reject;return f((t=u(l),y(a.prototype)),"catch",t).call(t,e).then(o,i),n},l.finally=function(e){var r=l.createChildPromise(),t=r.promise,n=r.resolve,o=r.reject;return f((c=u(l),y(a.prototype)),"finally",c).call(c,e).then(n,o),t},l}return r=a,t=[{key:"resolve",value:function(e){return new a((function(r){return r(e)}))}}],t&&l(r,t),Object.defineProperty(r,"prototype",{writable:!1}),a}(p(Promise));r.CancelablePromise=b,o=a.promise_identifier,b.reject=function(e){return new b((function(r,t){return t(e)}))},b.canceled=function(e){return new b((function(r,t,n){return(0,n.cancel)(e)}))},b.race=function(e){return new b((function(r,t,n){var o=n.onCancel,i=n.cancel;e.forEach((function(e){var n=m(e);o((function(e){n.cancel(e)})),n.then(r,(function(e){"canceled"!==n.status?t(e):i(e)}))}))}))},b.all=function(e){return new b((function(r,t,n){var o=n.onCancel,i=n.cancel,a=new Map,c=e.length,l=0;e.forEach((function(e){var n=m(e);a.set(n,null),o((function(e){n.cancel(e)})),n.then((function(e){l++,a.set(n,e),l===c&&r(Array.from(a.values()))}),(function(e){"canceled"!==n.status?t(e):i(e)}))}))}))},b.allSettled=function(e){return new b((function(r,t,n){var o=n.onCancel,i=new Map,a=e.length,c=0;e.forEach((function(e){var t=m(e);i.set(t,null),o((function(e){t.cancel(e)})),t.then((function(e){i.set(t,{status:"fulfilled",value:e})}),(function(e){i.set(t,{status:"canceled"===t.status?"canceled":"rejected",reason:e})})).finally((function(){++c===a&&r(Array.from(i.values()))}))}))}))},b.prototype.constructor=Promise;var m=function e(r){if((0,a.isCancelablePromise)(r))return r;if("function"==typeof r)return e(r());if(!(0,c.isPromise)(r))return new b((function(e){return e(r)}));var t,n,o=new b((function(e,o,i){t=e,n=o,r.then(t,n)}));return o.onCancel((function(e){n(e)})),o};r.toCancelablePromise=m},836:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isCancelableAbortSignal=void 0,r.isCancelableAbortSignal=function(e){return Boolean(null==e?void 0:e.__is_cancelable_abort_signal)}},216:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.promise_identifier=r.isCancelablePromise=void 0;var t=Symbol("promise_identifier");r.promise_identifier=t,r.isCancelablePromise=function(e){return!!(null==e?void 0:e[t])}},790:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isPromise=void 0,r.isPromise=function(e){return Promise.resolve(e)===e}},710:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"toCancelablePromise",{enumerable:!0,get:function(){return n.toCancelablePromise}});var n=t(0)}},r={};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}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.groupAsCancelablePromise=void 0;var r=t(710),o=t(0);function i(e){return function(e){if(Array.isArray(e))return a(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 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}}(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 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}e.groupAsCancelablePromise=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.length)return null;var n=t.maxConcurrent,a=void 0===n?8:n,c=t.executeInOrder,l=void 0!==c&&c,s=t.beforeEachCallback,u=void 0===s?null:s,f=t.afterEachCallback,p=void 0===f?null:f,d=t.onQueueEmptyCallback,v=void 0===d?null:d,h=i(e),y=[];return new o.CancelablePromise((function(t,n,o){(function t(){if(h.length){var n=h.splice(0,a).map((function(t){var n="function"==typeof t?t():t;null==u||u();var i=(0,r.toCancelablePromise)(n),a=o.onCancel((function(e){i.cancel(e)}));return i.then((function(r){var t,n;a(),y.push(r),null==p||p(r),o.reportProgress((null!==(t=y.length)&&void 0!==t?t:1)/(null!==(n=e.length)&&void 0!==n?n:1)*100)})),l?i.then((function(e){return e})):i}));return Promise.all(n).then((function(){return t()}))}})().then((function(){null==v||v(y),t(y)}))}))}})(),n})(),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}var n={};return(()=>{"use strict";var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.createEasyWebWorker=void 0;var r=t(382);e.createEasyWebWorker=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new r.EasyWebWorker(e,t)}})(),n})()));
@@ -0,0 +1,5 @@
1
+ import { IEasyWebWorkerMessage, IMessageData } from './types';
2
+ /**
3
+ * This method is used to create a new instance of the easy static web worker
4
+ */
5
+ export declare const createStaticEasyWebWorker: <TPayload = null, TResult = void>(onMessageCallback?: (message: IEasyWebWorkerMessage<TPayload, TResult>, event: MessageEvent<IMessageData<TPayload>>) => void) => import("./types").IEasyWorkerInstance<TPayload, TResult>;
@@ -0,0 +1 @@
1
+ !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,(()=>(()=>{"use strict";var e={600:(e,r)=>{function o(e){return function(e){if(Array.isArray(e))return t(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 t(e,r);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?t(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 t(e,r){(null==r||r>e.length)&&(r=e.length);for(var o=0,t=Array(r);o<r;o++)t[o]=e[o];return t}Object.defineProperty(r,"__esModule",{value:!0}),r.StaticEasyWebWorker=void 0,r.StaticEasyWebWorker=function(e){var r=function(){var e=new Map,r=new Map([["",function(){throw"you didn't defined a message-callback, please assign a callback by calling easyWorker.onMessage"}]]);self.onmessage=function(o){var t,n,a,s,i=null===(t=null==o?void 0:o.data)||void 0===t?void 0:t.messageId,c=null!==(a=null===(n=null==o?void 0:o.data)||void 0===n?void 0:n.__is_easy_web_worker_message__)&&void 0!==a&&a;if(i&&c)try{var l=o.data.cancelation;if(l){var d=l.reason;return void e.get(i).cancel(d)}var u=o.data,g=u.method,f=function(r){var o=r.messageId,t=r.payload,n=r.method,a="pending",s=new Map,i=function(r,t){var i,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],l=a,d="progress"===r?"pending":r;if(e.has(o)){var u={resolved:"onResolve",rejected:"onReject",canceled:"onCancel",worker_cancelation:"onCancel",pending:"onProgress"}[d],g=s.get(u),f=!t.progress;try{null==g||g.forEach((function(e){return e(t,c)})),f&&(null===(i=s.get("onFinalize"))||void 0===i||i.forEach((function(e){return e(t,c)})))}catch(n){throw e.delete(o),{message:"Error while processing message id: "+o,error:n,messageData:t,messageType:r,when:u}}finally{f&&e.delete(o)}self.postMessage(Object.assign({messageId:o},t),c),a=d}else{var p="%c#"+o+" 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(p,"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:o,status:{current:l,target:d},method:n,action:t})}},c=function(e){return function(r){s.has(e)||s.set(e,new Set);var o=s.get(e);return o.add(r),function(){return o.delete(r)}}};return{messageId:o,method:n,payload:t,getStatus:function(){return a},isPending:function(){return"pending"===a},resolve:function(e){return i("resolved",{resolved:{payload:void 0===e?[]:[e]}},arguments.length>1&&void 0!==arguments[1]?arguments[1]:[])},reject:function(e){i("rejected",{rejected:{reason:e}},arguments.length>1&&void 0!==arguments[1]?arguments[1]:[])},cancel:function(e){return i("worker_cancelation",{worker_cancelation:{reason:e}},arguments.length>1&&void 0!==arguments[1]?arguments[1]:[])},reportProgress:function(e,r){i("progress",{progress:{percentage:e,payload:r}},arguments.length>2&&void 0!==arguments[2]?arguments[2]:[])},onResolve:c("onResolve"),onReject:c("onReject"),onCancel:c("onCancel"),onProgress:c("onProgress"),onFinalize:c("onFinalize")}}({method:g,messageId:i,payload:u.execution.payload});e.set(i,f),r.get(g||"")(f,o)}catch(r){throw e.delete(null===(s=o.data)||void 0===s?void 0:s.messageId),{message:"Error while processing message id: "+i,event:o}}};return{onMessage:function(){for(var e=arguments.length,o=new Array(e),t=0;t<e;t++)o[t]=arguments[t];var n=o[0],a=o[1];if("string"==typeof n){var s=n,i=a;r.set(s,i)}else{var c=n;r.set("",c)}},close:function(){o(e.values()).forEach((function(e){return e.reject(new Error("worker closed"))})),self.close()},importScripts:function(){var e;(e=self).importScripts.apply(e,arguments)}}}(),t=r.close,n=r.onMessage,a=r.importScripts;this.close=t,this.onMessage=n,this.importScripts=a,e&&n(e)}}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var a=r[t]={exports:{}};return e[t](a,a.exports,o),a.exports}var t={};return(()=>{var e=t;Object.defineProperty(e,"__esModule",{value:!0}),e.createStaticEasyWebWorker=void 0;var r=o(600);e.createStaticEasyWebWorker=function(e){return new r.StaticEasyWebWorker(e)}})(),t})()));
@@ -1,12 +1,10 @@
1
- export declare const generatedId: () => string;
2
1
  /**
3
2
  * This function contains an obfuscated version of the StaticEasyWebWorker internal auto invocable function, without comments or types
4
3
  * this template is used to create dynamic workers from strings templates
5
4
  * PLEASE KEEP THIS FUNCTION UPDATED WITH THE LATEST VERSION OF THE StaticEasyWebWorker CLASS
6
5
  * [IMPORTANT] Avoid ";" at the end of the template
7
6
  * for minifying the template, please use the following options:
8
- * - remove comments
9
- * - remove types
7
+ * - remove comments and remove types with transpile: https://johnny-quesada-developer.github.io/easy-web-workers-example/#typescript
10
8
  * - compress using: https://www.toptal.com/developers/javascript-minifier
11
9
  */
12
10
  export declare const getWorkerTemplate: () => string;
@@ -0,0 +1 @@
1
+ !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports["easy-web-worker"]=o():e["easy-web-worker"]=o()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var o=e;Object.defineProperty(o,"__esModule",{value:!0}),o.getWorkerTemplate=void 0;o.getWorkerTemplate=function(){return'(()=>{let e=new Map,o=new Map([["",()=>{throw"you didn\'t defined a message-callback, please assign a callback by calling easyWorker.onMessage"},],]),t=({messageId:o,payload:t,method:a})=>{let s="pending",n=new Map,r=(t,r,l=[])=>{var i;let c=s,d="progress"===t?"pending":t;if(!e.has(o)){let g="%c#"+o+" 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(g,"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:o,status:{current:c,target:d},method:a,action:r});return}let h={resolved:"onResolve",rejected:"onReject",canceled:"onCancel",worker_cancelation:"onCancel",pending:"onProgress"}[d],w=n.get(h),m=!r.progress;try{null==w||w.forEach(e=>e(r,l)),m&&(null===(i=n.get("onFinalize"))||void 0===i||i.forEach(e=>e(r,l)))}catch(u){throw e.delete(o),{message:"Error while processing message id: "+o,error:u,messageData:r,messageType:t,when:h}}finally{m&&e.delete(o)}self.postMessage(Object.assign({messageId:o},r),l),s=d},l=(e,o=[])=>r("resolved",{resolved:{payload:void 0===e?[]:[e]}},o),i=(e,o=[])=>{r("rejected",{rejected:{reason:e}},o)},c=(e,o=[])=>r("worker_cancelation",{worker_cancelation:{reason:e}},o),d=(e,o,t=[])=>{r("progress",{progress:{percentage:e,payload:o}},t)},g=e=>o=>{n.has(e)||n.set(e,new Set);let t=n.get(e);return t.add(o),()=>t.delete(o)};return{messageId:o,method:a,payload:t,getStatus:()=>s,isPending:()=>"pending"===s,resolve:l,reject:i,cancel:c,reportProgress:d,onResolve:g("onResolve"),onReject:g("onReject"),onCancel:g("onCancel"),onProgress:g("onProgress"),onFinalize:g("onFinalize")}},a=(...e)=>{let[t,a]=e,s="string"==typeof t;if(s){let n=t,r=a;o.set(n,r);return}let l=t;o.set("",l)},s=()=>{let o=[...e.values()];o.forEach(e=>e.reject(Error("worker closed"))),self.close()};self.onmessage=a=>{var s,n,r,l;let i=null===(s=null==a?void 0:a.data)||void 0===s?void 0:s.messageId,c=null!==(r=null===(n=null==a?void 0:a.data)||void 0===n?void 0:n.__is_easy_web_worker_message__)&&void 0!==r&&r,d=i&&c;if(d)try{let{data:g}=a,{cancelation:h}=g;if(h){let{reason:w}=h,m=e.get(i);m.cancel(w);return}let{method:u,execution:p}=a.data,{payload:v}=p,f=t({method:u,messageId:i,payload:v});e.set(i,f);let y=o.get(u||"");y(f,a)}catch(k){throw e.delete(null===(l=a.data)||void 0===l?void 0:l.messageId),{message:"Error while processing message id: "+i,event:a}}};let n=(...e)=>{self.importScripts(...e)};return{onMessage:a,close:s,importScripts:n}})();'}})(),e})()));
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export { EasyWebWorker as default } from './EasyWebWorker';
2
+ export { EasyWebWorker } from './EasyWebWorker';
3
+ export { StaticEasyWebWorker } from './StaticEasyWebWorker';
4
+ export { createEasyWebWorker } from './createEasyWebWorker';
5
+ export { createStaticEasyWebWorker } from './createStaticEasyWebWorker';
package/package.json CHANGED
@@ -1,11 +1,65 @@
1
1
  {
2
2
  "name": "easy-web-worker",
3
- "version": "7.0.1",
3
+ "version": "7.0.2",
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
- "main": "lib/bundle.js",
6
- "types": "lib/index.d.ts",
5
+ "main": "./bundle.js",
6
+ "types": "./index.d.ts",
7
+ "sideEffects": false,
8
+ "exports": {
9
+ ".": {
10
+ "import": "./bundle.js",
11
+ "require": "./bundle.js",
12
+ "types": "./index.d.ts"
13
+ },
14
+ "./createBlobWorker": {
15
+ "import": "./createBlobWorker.js",
16
+ "require": "./createBlobWorker.js",
17
+ "types": "./createBlobWorker.d.ts"
18
+ },
19
+ "./createEasyWebWorker": {
20
+ "import": "./createEasyWebWorker.js",
21
+ "require": "./createEasyWebWorker.js",
22
+ "types": "./createEasyWebWorker.d.ts"
23
+ },
24
+ "./createStaticEasyWebWorker": {
25
+ "import": "./createStaticEasyWebWorker.js",
26
+ "require": "./createStaticEasyWebWorker.js",
27
+ "types": "./createStaticEasyWebWorker.d.ts"
28
+ },
29
+ "./EasyWebWorker": {
30
+ "import": "./EasyWebWorker.js",
31
+ "require": "./EasyWebWorker.js",
32
+ "types": "./EasyWebWorker.d.ts"
33
+ },
34
+ "./EasyWebWorkerMessage": {
35
+ "import": "./EasyWebWorkerMessage.js",
36
+ "require": "./EasyWebWorkerMessage.js",
37
+ "types": "./EasyWebWorkerMessage.d.ts"
38
+ },
39
+ "./getWorkerTemplate": {
40
+ "import": "./getWorkerTemplate.js",
41
+ "require": "./getWorkerTemplate.js",
42
+ "types": "./getWorkerTemplate.d.ts"
43
+ },
44
+ "./StaticEasyWebWorker": {
45
+ "import": "./StaticEasyWebWorker.js",
46
+ "require": "./StaticEasyWebWorker.js",
47
+ "types": "./StaticEasyWebWorker.d.ts"
48
+ },
49
+ "./types": {
50
+ "import": "./types.js",
51
+ "require": "./types.js",
52
+ "types": "./types.d.ts"
53
+ },
54
+ "./uniqueId": {
55
+ "import": "./uniqueId.js",
56
+ "require": "./uniqueId.js",
57
+ "types": "./uniqueId.d.ts"
58
+ }
59
+ },
7
60
  "files": [
8
- "lib"
61
+ "*.js",
62
+ "*.d.ts"
9
63
  ],
10
64
  "scripts": {
11
65
  "test": "npm run build && jest --maxWorkers=4 -c --no-watchman -u",
@@ -18,7 +72,8 @@
18
72
  "version": "npm run format && git add -A src",
19
73
  "postversion": "git push && git push --tags",
20
74
  "lint": "eslint src --ext .js,.jsx,.ts,.tsx --max-warnings=0",
21
- "lint:fix": "eslint --fix src --ext .js,.jsx,.ts,.tsx --max-warnings=0"
75
+ "lint:fix": "eslint --fix src --ext .js,.jsx,.ts,.tsx --max-warnings=0",
76
+ "clean": "find . -maxdepth 1 -type f \\( -name '*.js' -o -name '*.d.ts' \\) ! -name 'webpack.config.js' -exec rm {} +"
22
77
  },
23
78
  "repository": {
24
79
  "type": "git",
@@ -42,14 +97,14 @@
42
97
  "devDependencies": {
43
98
  "@babel/core": "^7.21.3",
44
99
  "@babel/plugin-proposal-class-properties": "^7.18.6",
45
- "@babel/plugin-transform-modules-commonjs": "^7.21.2",
46
100
  "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
101
+ "@babel/plugin-transform-modules-commonjs": "^7.21.2",
47
102
  "@babel/preset-env": "^7.20.2",
48
103
  "@babel/preset-typescript": "^7.21.0",
49
104
  "@types/jest": "^29.2.4",
50
105
  "@types/node": "^20.11.0",
51
106
  "babel-loader": "^9.1.2",
52
- "easy-cancelable-promise": "^1.0.1",
107
+ "easy-cancelable-promise": "^1.0.2",
53
108
  "jest": "^29.3.1",
54
109
  "jsdom": "^16.4.0",
55
110
  "ts-jest": "^29.1.1",
@@ -1,5 +1,4 @@
1
- import { EasyWebWorkerMessage } from './EasyWebWorkerMessage';
2
- import { CancelablePromise, Subscription } from 'easy-cancelable-promise';
1
+ export type Subscription = () => void;
3
2
  /**
4
3
  * EasyWorker Config
5
4
  * */
@@ -50,6 +49,7 @@ export interface IWorkerData<IPayload> {
50
49
  * This is the message id
51
50
  * */
52
51
  readonly messageId: string;
52
+ readonly __is_easy_web_worker_message__: boolean;
53
53
  readonly method?: string;
54
54
  readonly execution?: {
55
55
  payload?: IPayload;
@@ -227,161 +227,3 @@ export interface IEasyWebWorkerMessage<TPayload = null, TResult = void> {
227
227
  */
228
228
  readonly onFinalize: (callback: TMessageCallback) => Subscription;
229
229
  }
230
- export declare const createBlobWorker: <IPayload = null, IResult = void, TPrimitiveParameters extends any[] = unknown[]>(source: EasyWebWorkerBody<IPayload, IResult> | EasyWebWorkerBody<IPayload, IResult>[], imports?: string[], { primitiveParameters, }?: {
231
- primitiveParameters?: TPrimitiveParameters;
232
- }) => string;
233
- /**
234
- * This is a class to create an EasyWebWorker
235
- * @template TPayload - Indicates if your WORKERS messages requires a parameter to be provided, NULL indicates they doesn't
236
- * @template TResult - Indicates if your WORKERS messages has a result... NULL indicates all you messages are Promise<void>
237
- * @param {EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[]} workerBody -
238
- * this parameter should be a function or set of functions that will become the body of your Web-Worker
239
- * 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.
240
- * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
241
- * you could easily identify what is on the context of your Worker.
242
- * @param {Partial<IWorkerConfig>} WorkerConfig - You could add extra configuration to your worker,
243
- * consult IWorkerConfig description to have more information
244
- * */
245
- export declare class EasyWebWorker<TPayload = null, TResult = void, TPrimitiveParameters extends any[] = unknown[]> {
246
- /**
247
- * this parameter should be a function or set of functions that will become the body of your Web-Worker
248
- * 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.
249
- * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
250
- * you could easily identify what is on the context of your Worker.
251
- */
252
- protected source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[] | string | URL | Worker | Worker[];
253
- /**
254
- * This is the URL of the worker file
255
- */
256
- workerUrl?: string | URL | null;
257
- /**
258
- * @deprecated this will be removed in the next major version and keep it just inside the config object
259
- */
260
- name: string;
261
- /**
262
- * Worker configuration
263
- */
264
- config: Partial<IWorkerConfig<TPrimitiveParameters>>;
265
- /**
266
- * @deprecated Directly modifying the worker may lead to unexpected behavior. Use it only if you know what you are doing.
267
- * this property will be removed in the next major version
268
- */
269
- get worker(): Worker;
270
- /**
271
- * @deprecated this will be removed in the next major version and keep it just inside the config object
272
- */
273
- maxWorkers: number;
274
- /**
275
- * @deprecated avoid direct access to the workers unless you know what you are doing
276
- */
277
- workers: Worker[];
278
- /**
279
- * @deprecated this will be removed in the next major version and keep it just inside the config object
280
- */
281
- keepAlive: boolean;
282
- /**
283
- * @deprecated this will be removed in the next major version and keep it just inside the config object
284
- */
285
- warmUpWorkers: boolean;
286
- /**
287
- * @deprecated this will be removed in the next major version and keep it just inside the config object
288
- */
289
- terminationDelay: number;
290
- /**
291
- * @deprecated this will be removed in the next major version and keep it just inside the config object
292
- */
293
- primitiveParameters: TPrimitiveParameters;
294
- /**
295
- * @deprecated this will be removed in the next major version and keep it just inside the config object
296
- */
297
- workerOptions?: WorkerOptions;
298
- /**
299
- * These where send to the worker but not yet resolved
300
- */
301
- private messagesQueue;
302
- /**
303
- * @deprecated this will be removed in the next major version to be grouped as a worker option object
304
- * This is the list of scripts that will be imported into the worker
305
- */
306
- scripts: string[];
307
- /**
308
- * @deprecated this will be removed in the next major version to be grouped as a worker option object
309
- * This is the callback that will be executed when the worker throws an error
310
- */
311
- onWorkerError: (error: ErrorEvent) => void;
312
- protected get isExternalWorkerFile(): boolean;
313
- constructor(
314
- /**
315
- * this parameter should be a function or set of functions that will become the body of your Web-Worker
316
- * 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.
317
- * the above the reason of why we are injecting all worker context into the MessageBody Callbacks, so,
318
- * you could easily identify what is on the context of your Worker.
319
- */
320
- source: EasyWebWorkerBody<TPayload, TResult> | EasyWebWorkerBody<TPayload, TResult>[] | string | URL | Worker | Worker[],
321
- /**
322
- * You could import scripts into your worker, this is useful if you want to use external libraries
323
- */
324
- config?: Partial<IWorkerConfig<TPrimitiveParameters>>);
325
- private warmUp;
326
- private fillWorkerMethods;
327
- private createNewWorker;
328
- private getWorkerFromPool;
329
- protected computeWorkerBaseSource: () => {
330
- isArrayOfWebWorkers: boolean;
331
- };
332
- private RemoveMessageFromQueue;
333
- /**
334
- * Categorizes the worker response and executes the corresponding callback
335
- */
336
- private executeMessageCallback;
337
- protected getWorkerUrl(): string;
338
- /**
339
- * Execute the cancel callback of each message in the queue if provided
340
- * @param {unknown} reason - reason messages where canceled
341
- * @param {boolean} force - if true, the messages will be cancelled immediately without waiting for the worker to respond
342
- * This action will reboot the worker
343
- */
344
- cancelAll(reason?: unknown, { force }?: {
345
- force?: boolean;
346
- }): CancelablePromise<unknown[]>;
347
- protected addMessageToQueue(message: EasyWebWorkerMessage<unknown, unknown>): void;
348
- /**
349
- * Send a message to the worker queue to an specific method
350
- * @template TResult_ - result type of the message (if any)
351
- * @template TPayload_ - payload type of the message (if any)
352
- * @param {string} method - method name
353
- * @param {TPayload} payload - whatever json data you want to send to the worker
354
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
355
- */
356
- sendToMethod<TResult_ = void, TPayload_ = null>(method: string, payload?: TPayload_, transfer?: Transferable[]): CancelablePromise<TResult_>;
357
- /**
358
- * Send a message to the worker queue
359
- * @param {TPayload} payload - whatever json data you want to send to the worker
360
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
361
- */
362
- send: [TPayload] extends [null] ? () => CancelablePromise<TResult> : (payload: TPayload, transfer?: Transferable[]) => CancelablePromise<TResult>;
363
- private sendToWorker;
364
- /**
365
- * This method terminate all current messages and send a new one to the worker queue
366
- * @param {TPayload} payload - whatever json data you want to send to the worker, should be serializable
367
- * @param {unknown} reason - reason why the worker was terminated
368
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
369
- */
370
- override: [TPayload] extends [null] ? (reason?: unknown, config?: TOverrideConfig) => CancelablePromise<TResult> : (payload: TPayload, reason?: unknown, config?: TOverrideConfig) => CancelablePromise<TResult>;
371
- /**
372
- * 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
373
- * @param {TPayload} payload - whatever json data you want to send to the worker should be serializable
374
- * @param {unknown} reason - reason why the worker was terminated
375
- * @returns {IMessagePromise<TResult>} generated defer that will be resolved when the message completed
376
- */
377
- overrideAfterCurrent: [TPayload] extends [null] ? (reason?: unknown, TOverrideConfig?: any) => CancelablePromise<TResult> : (payload: TPayload, reason?: unknown, config?: TOverrideConfig) => CancelablePromise<TResult>;
378
- /**
379
- * This method will reboot the worker and cancel all the messages in the queue
380
- * @param {unknown} reason - reason why the worker will be restarted
381
- */
382
- reboot(reason?: unknown): CancelablePromise<unknown[]>;
383
- /**
384
- * This method will remove the WebWorker and the BlobUrl
385
- */
386
- dispose(): Promise<void>;
387
- }
package/types.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports["easy-web-worker"]=o():e["easy-web-worker"]=o()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var o=e;Object.defineProperty(o,"__esModule",{value:!0})})(),e})()));
package/uniqueId.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const uniqueId: (prefix?: string) => string;
package/uniqueId.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["easy-web-worker"]=t():e["easy-web-worker"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t,o=e;Object.defineProperty(o,"__esModule",{value:!0}),o.uniqueId=void 0,o.uniqueId=(t=0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t===Number.MAX_SAFE_INTEGER&&(t=0),e+Date.now().toString(36)+(t++).toString(36)})})(),e})()));
@@ -0,0 +1,77 @@
1
+ const path = require('path');
2
+ const TerserPlugin = require('terser-webpack-plugin');
3
+
4
+ module.exports = {
5
+ mode: 'production',
6
+ entry: {
7
+ bundle: './src/index.ts',
8
+ createBlobWorker: './src/createBlobWorker.ts',
9
+ createEasyWebWorker: './src/createEasyWebWorker.ts',
10
+ createStaticEasyWebWorker: './src/createStaticEasyWebWorker.ts',
11
+ EasyWebWorker: './src/EasyWebWorker.ts',
12
+ EasyWebWorkerMessage: './src/EasyWebWorkerMessage.ts',
13
+ getWorkerTemplate: './src/getWorkerTemplate.ts',
14
+ StaticEasyWebWorker: './src/StaticEasyWebWorker.ts',
15
+ types: './src/types.ts',
16
+ uniqueId: './src/uniqueId.ts',
17
+ },
18
+ output: {
19
+ path: path.resolve(__dirname),
20
+ filename: ({ chunk: { name } }) => {
21
+ if (name.includes('worker')) {
22
+ return `${name}.worker.js`;
23
+ }
24
+
25
+ return `${name}.js`;
26
+ },
27
+ libraryTarget: 'umd',
28
+ library: 'easy-web-worker',
29
+ globalObject: 'this',
30
+ },
31
+ resolve: {
32
+ extensions: ['.ts', '.js'],
33
+ alias: {
34
+ 'easy-web-worker': path.resolve(
35
+ __dirname,
36
+ 'node_modules/easy-web-worker/package.json'
37
+ ),
38
+ },
39
+ },
40
+ module: {
41
+ rules: [
42
+ {
43
+ test: /\.ts$/,
44
+ use: [
45
+ {
46
+ loader: 'babel-loader',
47
+ options: {
48
+ presets: ['@babel/preset-env', '@babel/preset-typescript'],
49
+ plugins: [
50
+ '@babel/plugin-transform-modules-commonjs',
51
+ '@babel/plugin-proposal-class-properties',
52
+ '@babel/plugin-proposal-export-namespace-from',
53
+ ],
54
+ },
55
+ },
56
+ {
57
+ loader: 'ts-loader',
58
+ },
59
+ ],
60
+ exclude: /node_modules/,
61
+ },
62
+ ],
63
+ },
64
+ optimization: {
65
+ minimize: true,
66
+ minimizer: [
67
+ new TerserPlugin({
68
+ extractComments: false,
69
+ terserOptions: {
70
+ format: {
71
+ comments: false,
72
+ },
73
+ },
74
+ }),
75
+ ],
76
+ },
77
+ };