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.
- package/EasyWebWorker.d.ts +158 -0
- package/EasyWebWorker.js +1 -0
- package/{lib/EasyWebWorkerMessage.d.ts → EasyWebWorkerMessage.d.ts} +1 -1
- package/EasyWebWorkerMessage.js +1 -0
- package/README.md +5 -0
- package/{lib/StaticEasyWebWorker.d.ts → StaticEasyWebWorker.d.ts} +1 -5
- package/StaticEasyWebWorker.js +1 -0
- package/bundle.js +1 -0
- package/createBlobWorker.d.ts +4 -0
- package/createBlobWorker.js +1 -0
- package/{lib/EasyWebWorker.functions.d.ts → createEasyWebWorker.d.ts} +2 -1
- package/createEasyWebWorker.js +1 -0
- package/createStaticEasyWebWorker.d.ts +5 -0
- package/createStaticEasyWebWorker.js +1 -0
- package/{lib/EasyWebWorkerFixtures.d.ts → getWorkerTemplate.d.ts} +1 -3
- package/getWorkerTemplate.js +1 -0
- package/index.d.ts +5 -0
- package/package.json +62 -7
- package/{lib/EasyWebWorker.d.ts → types.d.ts} +2 -160
- package/types.js +1 -0
- package/uniqueId.d.ts +1 -0
- package/uniqueId.js +1 -0
- package/webpack.config.js +77 -0
- package/lib/bundle.js +0 -2
- package/lib/bundle.js.LICENSE.txt +0 -1
- package/lib/index.d.ts +0 -4
|
@@ -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.
|
|
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": "
|
|
6
|
-
"types": "
|
|
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
|
-
"
|
|
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.
|
|
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
|
-
|
|
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
|
+
};
|