msb-file 0.0.4 → 0.0.5

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.
@@ -1 +1 @@
1
- "use strict";var Q=Object.create;var K=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var ee=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Z(e))!x.call(r,t)&&t!==n&&K(r,t,{get:()=>e[t],enumerable:!(i=X(e,t))||i.enumerable});return r};var L=(r,e,n)=>(n=r!=null?Q(_(r)):{},ee(e||!r||!r.__esModule?K(n,"default",{value:r,enumerable:!0}):n,r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("localforage"),re=require("js-md5");function U(r,e,n,i,t,u,a){try{var l=r[u](a),o=l.value}catch(h){return void n(h)}l.done?e(o):Promise.resolve(o).then(i,t)}function p(r){return function(){var e=this,n=arguments;return new Promise(function(i,t){var u=r.apply(e,n);function a(o){U(u,i,t,a,l,"next",o)}function l(o){U(u,i,t,a,l,"throw",o)}a(void 0)})}}function te(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function W(r,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,q(i.key),i)}}function ne(r,e,n){return e&&W(r.prototype,e),n&&W(r,n),Object.defineProperty(r,"prototype",{writable:!1}),r}function g(r,e,n){return(e=q(e))in r?Object.defineProperty(r,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[e]=n,r}function c(){var r,e,n=typeof Symbol=="function"?Symbol:{},i=n.iterator||"@@iterator",t=n.toStringTag||"@@toStringTag";function u(m,y,P,j){var f=y&&y.prototype instanceof l?y:l,G=Object.create(f.prototype);return C(G,"_invoke",(function(F,Y,J){var E,d,w,B=0,T=J||[],z=!1,R={p:0,n:0,v:r,a:A,f:A.bind(r,4),d:function(S,k){return E=S,d=0,w=r,R.n=k,a}};function A(S,k){for(d=S,w=k,e=0;!z&&B&&!N&&e<T.length;e++){var N,b=T[e],M=R.p,I=b[2];S>3?(N=I===k)&&(w=b[(d=b[4])?5:(d=3,3)],b[4]=b[5]=r):b[0]<=M&&((N=S<2&&M<b[1])?(d=0,R.v=k,R.n=b[1]):M<I&&(N=S<3||b[0]>k||k>I)&&(b[4]=S,b[5]=k,R.n=I,d=0))}if(N||S>1)return a;throw z=!0,k}return function(S,k,N){if(B>1)throw TypeError("Generator is already running");for(z&&k===1&&A(k,N),d=k,w=N;(e=d<2?r:w)||!z;){E||(d?d<3?(d>1&&(R.n=-1),A(d,w)):R.n=w:R.v=w);try{if(B=2,E){if(d||(S="next"),e=E[S]){if(!(e=e.call(E,w)))throw TypeError("iterator result is not an object");if(!e.done)return e;w=e.value,d<2&&(d=0)}else d===1&&(e=E.return)&&e.call(E),d<2&&(w=TypeError("The iterator does not provide a '"+S+"' method"),d=1);E=r}else if((e=(z=R.n<0)?w:F.call(Y,R))!==a)break}catch(b){E=r,d=1,w=b}finally{B=1}}return{value:e,done:z}}})(m,P,j),!0),G}var a={};function l(){}function o(){}function h(){}e=Object.getPrototypeOf;var v=[][i]?e(e([][i]())):(C(e={},i,function(){return this}),e),s=h.prototype=l.prototype=Object.create(v);function D(m){return Object.setPrototypeOf?Object.setPrototypeOf(m,h):(m.__proto__=h,C(m,t,"GeneratorFunction")),m.prototype=Object.create(s),m}return o.prototype=h,C(s,"constructor",h),C(h,"constructor",o),o.displayName="GeneratorFunction",C(h,t,"GeneratorFunction"),C(s),C(s,t,"Generator"),C(s,i,function(){return this}),C(s,"toString",function(){return"[object Generator]"}),(c=function(){return{w:u,m:D}})()}function C(r,e,n,i){var t=Object.defineProperty;try{t({},"",{})}catch{t=0}C=function(u,a,l,o){function h(v,s){C(u,v,function(D){return this._invoke(v,s,D)})}a?t?t(u,a,{value:l,enumerable:!o,configurable:!o,writable:!o}):u[a]=l:(h("next",0),h("throw",1),h("return",2))},C(r,e,n,i)}function ae(r){if(r!=null){var e=r[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],n=0;if(e)return e.call(r);if(typeof r.next=="function")return r;if(!isNaN(r.length))return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}}}throw new TypeError(typeof r+" is not iterable")}function ie(r,e){if(typeof r!="object"||!r)return r;var n=r[Symbol.toPrimitive];if(n!==void 0){var i=n.call(r,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function q(r){var e=ie(r,"string");return typeof e=="symbol"?e:e+""}var H=(function(r){return r.PENDING="pending",r.PAUSE="pause",r.DOWNLOADING="downloading",r.FINISHED="finished",r.ERROR="error",r})(H||{}),V=(function(r){return r.READY="ready",r.STATUS_UPDATE="status_update",r.PROGRESS_UPDATE="progress_update",r})(V||{}),$=(function(){function r(e){var n=this,i=e.url,t=e.fileName,u=e.chunkSize,a=u===void 0?10*1024*1024:u,l=e.mitmPath,o=e.onReady,h=e.onProgress,v=e.onStatusChange;te(this,r),g(this,"url",void 0),g(this,"fileName",void 0),g(this,"isReady",!1),g(this,"mitmPath",void 0),g(this,"abortController",void 0),g(this,"currentChunk",0),g(this,"chunkSize",void 0),g(this,"totalChunk",0),g(this,"totalSize",0),g(this,"status","pending"),g(this,"onReady",void 0),g(this,"onStatusChange",void 0),g(this,"onProgress",void 0),g(this,"getURLMd5",(function(){var s;return function(){return s||(s=re.md5(n.url))}})()),this.url=i,this.fileName=t,this.chunkSize=a,this.mitmPath=l,this.abortController=new AbortController,this.onReady=o,this.onProgress=h,this.onStatusChange=v,this.openDB()}return ne(r,[{key:"changeStatus",value:function(n){var i,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.status=n,(i=this.onStatusChange)===null||i===void 0||i.call(this,n,t)}},{key:"openDB",value:(function(){var e=p(c().m(function i(){var t,u;return c().w(function(a){for(;;)switch(a.p=a.n){case 0:return a.p=0,this.changeStatus("pending"),a.n=1,O.ready();case 1:return a.n=2,this.init();case 2:(t=this.onReady)===null||t===void 0||t.call(this),this.isReady=!0,a.n=4;break;case 3:a.p=3,u=a.v,this.changeStatus("error",u);case 4:return a.a(2)}},i,this,[[0,3]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"getChunkKeys",value:(function(){var e=p(c().m(function i(){var t,u;return c().w(function(a){for(;;)switch(a.n){case 0:return t=this.getURLMd5(),a.n=1,O.keys();case 1:return u=a.v,a.a(2,u.filter(function(l){return l.startsWith("".concat(t,"_"))}))}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"getCompletedCount",value:(function(){var e=p(c().m(function i(){var t;return c().w(function(u){for(;;)switch(u.n){case 0:return u.n=1,this.getChunkKeys();case 1:return t=u.v,u.a(2,t.length)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"getResumePosition",value:(function(){var e=p(c().m(function i(){var t,u,a,l;return c().w(function(o){for(;;)switch(o.n){case 0:return o.n=1,this.getChunkKeys();case 1:for(t=o.v,u=t.map(function(h){return parseInt(h.split("_")[1],10)}).filter(function(h){return!isNaN(h)}),a=0,l=new Set(u);l.has(a);)a++;return o.a(2,a)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"init",value:(function(){var e=p(c().m(function i(){var t;return c().w(function(u){for(;;)switch(u.n){case 0:return u.n=1,this.getFileSize();case 1:return t=u.v,this.totalSize=t,this.totalChunk=Math.ceil(this.totalSize/this.chunkSize),u.n=2,this.getResumePosition();case 2:this.currentChunk=u.v,this.updateProgress();case 3:return u.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"getFileSize",value:(function(){var e=p(c().m(function i(){var t,u,a,l,o,h,v;return c().w(function(s){for(;;)switch(s.p=s.n){case 0:return s.p=0,s.n=1,fetch(this.url,{method:"HEAD"});case 1:if(t=s.v,u=t.headers,a=u.get("content-length"),!a){s.n=2;break}return s.a(2,Number(a));case 2:s.n=4;break;case 3:s.p=3,s.v;case 4:return s.n=5,fetch(this.url,{method:"GET",headers:{Range:"bytes=0-0"}});case 5:if(l=s.v,o=l.headers,h=o.get("content-range"),!h){s.n=6;break}if(v=h.match(/\/(\d+)$/),!v){s.n=6;break}return s.a(2,Number(v[1]));case 6:throw new Error("无法获取文件大小");case 7:return s.a(2)}},i,this,[[0,3]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"getCurrentChunkName",value:function(n){var i=this.getURLMd5();return"".concat(i,"_").concat(n)}},{key:"getChunkData",value:(function(){var e=p(c().m(function i(t,u){var a,l;return c().w(function(o){for(;;)switch(o.n){case 0:return o.n=1,fetch(this.url,{headers:{Range:"bytes=".concat(t,"-").concat(u)},signal:(a=this.abortController)===null||a===void 0?void 0:a.signal});case 1:return l=o.v,o.a(2,l.arrayBuffer())}},i,this)}));function n(i,t){return e.apply(this,arguments)}return n})()},{key:"abort",value:function(){var n;(n=this.abortController)===null||n===void 0||n.abort(),this.abortController=new AbortController}},{key:"updateProgress",value:(function(){var e=p(c().m(function i(){var t,u,a;return c().w(function(l){for(;;)switch(l.n){case 0:return l.n=1,this.getCompletedCount();case 1:u=l.v,a=(u/this.totalChunk*100).toFixed(2),(t=this.onProgress)===null||t===void 0||t.call(this,a);case 2:return l.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"resetState",value:function(){this.currentChunk=0,this.updateProgress(),this.changeStatus("pending")}},{key:"start",value:function(){this.isReady&&(this.changeStatus("downloading"),this.download())}},{key:"pause",value:function(){this.changeStatus("pause"),this.abort()}},{key:"resume",value:(function(){var e=p(c().m(function i(){return c().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,this.getResumePosition();case 1:this.currentChunk=t.v,this.changeStatus("downloading"),this.download();case 2:return t.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"cancel",value:(function(){var e=p(c().m(function i(){return c().w(function(t){for(;;)switch(t.n){case 0:return this.abort(),t.n=1,this.remove();case 1:this.resetState();case 2:return t.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"uploadSingeChunk",value:(function(){var e=p(c().m(function i(t){var u,a,l,o;return c().w(function(h){for(;;)switch(h.n){case 0:return u=this.getCurrentChunkName(t),h.n=1,O.getItem(u);case 1:if(!h.v){h.n=2;break}return this.updateProgress(),h.a(2);case 2:return a=t*this.chunkSize,l=Math.min(a+this.chunkSize-1,this.totalSize-1),h.n=3,this.getChunkData(a,l);case 3:return o=h.v,h.n=4,O.setItem(u,new Blob([o]));case 4:this.updateProgress();case 5:return h.a(2)}},i,this)}));function n(i){return e.apply(this,arguments)}return n})()},{key:"download",value:(function(){var e=p(c().m(function i(){var t=this,u,a,l,o,h,v;return c().w(function(s){for(;;)switch(s.p=s.n){case 0:s.p=0,u=4,a=[],l=(function(){var D=p(c().m(function m(y){return c().w(function(P){for(;;)switch(P.n){case 0:return P.n=1,t.uploadSingeChunk(y);case 1:return P.a(2)}},m)}));return function(y){return D.apply(this,arguments)}})(),o=c().m(function D(){var m;return c().w(function(y){for(;;)switch(y.n){case 0:if(!(a.length>=u)){y.n=1;break}return y.n=1,Promise.race(a);case 1:m=l(t.currentChunk++).finally(function(){var P=a.indexOf(m);P>-1&&a.splice(P,1)}),a.push(m);case 2:return y.a(2)}},D)});case 1:if(!(this.currentChunk<this.totalChunk)){s.n=3;break}return s.d(ae(o()),2);case 2:s.n=1;break;case 3:return s.n=4,Promise.all(a);case 4:this.changeStatus("finished"),this.mergeAndDownload(),s.n=7;break;case 5:if(s.p=5,v=s.v,h=v,!(h&&h.name==="AbortError")){s.n=6;break}return s.a(2);case 6:this.changeStatus("error",v);case 7:return s.a(2)}},i,this,[[0,5]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"remove",value:(function(){var e=p(c().m(function i(){var t;return c().w(function(u){for(;;)switch(u.n){case 0:return u.n=1,this.getChunkKeys();case 1:return t=u.v,u.n=2,Promise.all(t.map(function(a){return O.removeItem(a)}));case 2:return u.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"mergeAndDownload",value:(function(){var e=p(c().m(function i(){var t=this,u,a,l,o,h,v,s,D,m,y,P,j;return c().w(function(f){for(;;)switch(f.p=f.n){case 0:return f.n=1,this.getCompletedCount();case 1:if(u=f.v,!(u<this.totalChunk)){f.n=2;break}return this.changeStatus("error",new Error("下载不完整,请取消再重新下载")),f.a(2);case 2:return f.n=3,import("streamsaver");case 3:a=f.v,this.mitmPath&&(a.mitm=this.mitmPath),l=a.createWriteStream(this.fileName,{size:this.totalSize}),o=l.getWriter(),h=this.getURLMd5(),f.p=4,v=0;case 5:if(!(v<this.totalChunk)){f.n=13;break}return f.n=6,O.getItem("".concat(h,"_").concat(v));case 6:if(s=f.v,s){f.n=7;break}throw new Error("Chunk ".concat(v," missed!"));case 7:D=s.stream().getReader();case 8:return f.n=9,D.read();case 9:if(m=f.v,y=m.done,P=m.value,!y){f.n=10;break}return f.a(3,12);case 10:return f.n=11,o.write(P);case 11:f.n=8;break;case 12:v++,f.n=5;break;case 13:return f.n=14,o.close();case 14:setTimeout(p(c().m(function G(){return c().w(function(F){for(;;)switch(F.n){case 0:return F.n=1,t.remove();case 1:t.resetState();case 2:return F.a(2)}},G)})),2e3),f.n=16;break;case 15:f.p=15,j=f.v,this.changeStatus("error",j),o.abort&&o.abort(j);case 16:return f.a(2)}},i,this,[[4,15]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"destroy",value:function(){this.abort()}}],[{key:"setMitmPath",value:(function(){var e=p(c().m(function i(t){var u;return c().w(function(a){for(;;)switch(a.n){case 0:return a.n=1,import("streamsaver");case 1:u=a.v,u.mitm=t;case 2:return a.a(2)}},i)}));function n(i){return e.apply(this,arguments)}return n})()}])})();g($,"EVENTS",V);g($,"STATUS",H);exports.Download=$;
1
+ "use strict";var Q=Object.create;var K=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var ee=(r,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Z(e))!x.call(r,t)&&t!==n&&K(r,t,{get:()=>e[t],enumerable:!(i=X(e,t))||i.enumerable});return r};var L=(r,e,n)=>(n=r!=null?Q(_(r)):{},ee(e||!r||!r.__esModule?K(n,"default",{value:r,enumerable:!0}):n,r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("localforage"),re=require("js-md5");function U(r,e,n,i,t,u,a){try{var l=r[u](a),o=l.value}catch(h){return void n(h)}l.done?e(o):Promise.resolve(o).then(i,t)}function p(r){return function(){var e=this,n=arguments;return new Promise(function(i,t){var u=r.apply(e,n);function a(o){U(u,i,t,a,l,"next",o)}function l(o){U(u,i,t,a,l,"throw",o)}a(void 0)})}}function te(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function W(r,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,q(i.key),i)}}function ne(r,e,n){return e&&W(r.prototype,e),n&&W(r,n),Object.defineProperty(r,"prototype",{writable:!1}),r}function g(r,e,n){return(e=q(e))in r?Object.defineProperty(r,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[e]=n,r}function c(){var r,e,n=typeof Symbol=="function"?Symbol:{},i=n.iterator||"@@iterator",t=n.toStringTag||"@@toStringTag";function u(m,y,P,j){var f=y&&y.prototype instanceof l?y:l,G=Object.create(f.prototype);return C(G,"_invoke",(function(F,Y,J){var E,d,w,B=0,T=J||[],z=!1,R={p:0,n:0,v:r,a:A,f:A.bind(r,4),d:function(S,k){return E=S,d=0,w=r,R.n=k,a}};function A(S,k){for(d=S,w=k,e=0;!z&&B&&!N&&e<T.length;e++){var N,b=T[e],M=R.p,I=b[2];S>3?(N=I===k)&&(w=b[(d=b[4])?5:(d=3,3)],b[4]=b[5]=r):b[0]<=M&&((N=S<2&&M<b[1])?(d=0,R.v=k,R.n=b[1]):M<I&&(N=S<3||b[0]>k||k>I)&&(b[4]=S,b[5]=k,R.n=I,d=0))}if(N||S>1)return a;throw z=!0,k}return function(S,k,N){if(B>1)throw TypeError("Generator is already running");for(z&&k===1&&A(k,N),d=k,w=N;(e=d<2?r:w)||!z;){E||(d?d<3?(d>1&&(R.n=-1),A(d,w)):R.n=w:R.v=w);try{if(B=2,E){if(d||(S="next"),e=E[S]){if(!(e=e.call(E,w)))throw TypeError("iterator result is not an object");if(!e.done)return e;w=e.value,d<2&&(d=0)}else d===1&&(e=E.return)&&e.call(E),d<2&&(w=TypeError("The iterator does not provide a '"+S+"' method"),d=1);E=r}else if((e=(z=R.n<0)?w:F.call(Y,R))!==a)break}catch(b){E=r,d=1,w=b}finally{B=1}}return{value:e,done:z}}})(m,P,j),!0),G}var a={};function l(){}function o(){}function h(){}e=Object.getPrototypeOf;var v=[][i]?e(e([][i]())):(C(e={},i,function(){return this}),e),s=h.prototype=l.prototype=Object.create(v);function D(m){return Object.setPrototypeOf?Object.setPrototypeOf(m,h):(m.__proto__=h,C(m,t,"GeneratorFunction")),m.prototype=Object.create(s),m}return o.prototype=h,C(s,"constructor",h),C(h,"constructor",o),o.displayName="GeneratorFunction",C(h,t,"GeneratorFunction"),C(s),C(s,t,"Generator"),C(s,i,function(){return this}),C(s,"toString",function(){return"[object Generator]"}),(c=function(){return{w:u,m:D}})()}function C(r,e,n,i){var t=Object.defineProperty;try{t({},"",{})}catch{t=0}C=function(u,a,l,o){function h(v,s){C(u,v,function(D){return this._invoke(v,s,D)})}a?t?t(u,a,{value:l,enumerable:!o,configurable:!o,writable:!o}):u[a]=l:(h("next",0),h("throw",1),h("return",2))},C(r,e,n,i)}function ae(r){if(r!=null){var e=r[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],n=0;if(e)return e.call(r);if(typeof r.next=="function")return r;if(!isNaN(r.length))return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}}}throw new TypeError(typeof r+" is not iterable")}function ie(r,e){if(typeof r!="object"||!r)return r;var n=r[Symbol.toPrimitive];if(n!==void 0){var i=n.call(r,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function q(r){var e=ie(r,"string");return typeof e=="symbol"?e:e+""}var H=(function(r){return r.PENDING="pending",r.PAUSE="pause",r.DOWNLOADING="downloading",r.FINISHED="finished",r.ERROR="error",r})(H||{}),V=(function(r){return r.READY="ready",r.STATUS_UPDATE="status_update",r.PROGRESS_UPDATE="progress_update",r})(V||{}),$=(function(){function r(e){var n=this,i=e.url,t=e.fileName,u=e.chunkSize,a=u===void 0?10*1024*1024:u,l=e.mitmPath,o=e.onReady,h=e.onProgress,v=e.onStatusChange;te(this,r),g(this,"url",void 0),g(this,"fileName",void 0),g(this,"isReady",!1),g(this,"mitmPath",void 0),g(this,"abortController",void 0),g(this,"currentChunk",0),g(this,"chunkSize",void 0),g(this,"totalChunk",0),g(this,"totalSize",0),g(this,"status","pending"),g(this,"onReady",void 0),g(this,"onStatusChange",void 0),g(this,"onProgress",void 0),g(this,"getURLMd5",(function(){var s;return function(){return s||(s=re.md5(n.url))}})()),this.url=i,this.fileName=t,this.chunkSize=a,this.mitmPath=l,this.abortController=new AbortController,this.onReady=o,this.onProgress=h,this.onStatusChange=v,this.openDB()}return ne(r,[{key:"changeStatus",value:function(n){var i,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.status=n,(i=this.onStatusChange)===null||i===void 0||i.call(this,n,t)}},{key:"openDB",value:(function(){var e=p(c().m(function i(){var t,u;return c().w(function(a){for(;;)switch(a.p=a.n){case 0:return a.p=0,this.changeStatus("pending"),a.n=1,O.ready();case 1:return a.n=2,this.init();case 2:(t=this.onReady)===null||t===void 0||t.call(this),this.isReady=!0,a.n=4;break;case 3:a.p=3,u=a.v,this.changeStatus("error",u);case 4:return a.a(2)}},i,this,[[0,3]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"getChunkKeys",value:(function(){var e=p(c().m(function i(){var t,u;return c().w(function(a){for(;;)switch(a.n){case 0:return t=this.getURLMd5(),a.n=1,O.keys();case 1:return u=a.v,a.a(2,u.filter(function(l){return l.startsWith("".concat(t,"_"))}))}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"getCompletedCount",value:(function(){var e=p(c().m(function i(){var t;return c().w(function(u){for(;;)switch(u.n){case 0:return u.n=1,this.getChunkKeys();case 1:return t=u.v,u.a(2,t.length)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"getResumePosition",value:(function(){var e=p(c().m(function i(){var t,u,a,l;return c().w(function(o){for(;;)switch(o.n){case 0:return o.n=1,this.getChunkKeys();case 1:for(t=o.v,u=t.map(function(h){return parseInt(h.split("_")[1],10)}).filter(function(h){return!isNaN(h)}),a=0,l=new Set(u);l.has(a);)a++;return o.a(2,a)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"init",value:(function(){var e=p(c().m(function i(){var t;return c().w(function(u){for(;;)switch(u.n){case 0:return u.n=1,this.getFileSize();case 1:return t=u.v,this.totalSize=t,this.totalChunk=Math.ceil(this.totalSize/this.chunkSize),u.n=2,this.getResumePosition();case 2:this.currentChunk=u.v,this.updateProgress();case 3:return u.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"getFileSize",value:(function(){var e=p(c().m(function i(){var t,u,a,l,o,h,v;return c().w(function(s){for(;;)switch(s.p=s.n){case 0:return s.p=0,s.n=1,fetch(this.url,{method:"HEAD"});case 1:if(t=s.v,u=t.headers,a=u.get("content-length"),!a){s.n=2;break}return s.a(2,Number(a));case 2:s.n=4;break;case 3:s.p=3,s.v;case 4:return s.n=5,fetch(this.url,{method:"GET",headers:{Range:"bytes=0-0"}});case 5:if(l=s.v,o=l.headers,h=o.get("content-range"),!h){s.n=6;break}if(v=h.match(/\/(\d+)$/),!v){s.n=6;break}return s.a(2,Number(v[1]));case 6:throw new Error("无法获取文件大小");case 7:return s.a(2)}},i,this,[[0,3]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"getCurrentChunkName",value:function(n){var i=this.getURLMd5();return"".concat(i,"_").concat(n)}},{key:"getChunkData",value:(function(){var e=p(c().m(function i(t,u){var a,l;return c().w(function(o){for(;;)switch(o.n){case 0:return o.n=1,fetch(this.url,{headers:{Range:"bytes=".concat(t,"-").concat(u)},signal:(a=this.abortController)===null||a===void 0?void 0:a.signal});case 1:return l=o.v,o.a(2,l.arrayBuffer())}},i,this)}));function n(i,t){return e.apply(this,arguments)}return n})()},{key:"abort",value:function(){var n;(n=this.abortController)===null||n===void 0||n.abort(),this.abortController=new AbortController}},{key:"updateProgress",value:(function(){var e=p(c().m(function i(){var t,u,a;return c().w(function(l){for(;;)switch(l.n){case 0:return l.n=1,this.getCompletedCount();case 1:u=l.v,a=(u/this.totalChunk*100).toFixed(2),(t=this.onProgress)===null||t===void 0||t.call(this,a);case 2:return l.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"resetState",value:function(){this.currentChunk=0,this.updateProgress(),this.changeStatus("pending")}},{key:"start",value:function(){this.isReady&&(this.changeStatus("downloading"),this.download())}},{key:"pause",value:function(){this.changeStatus("pause"),this.abort()}},{key:"resume",value:(function(){var e=p(c().m(function i(){return c().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,this.getResumePosition();case 1:this.currentChunk=t.v,this.changeStatus("downloading"),this.download();case 2:return t.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"cancel",value:(function(){var e=p(c().m(function i(){return c().w(function(t){for(;;)switch(t.n){case 0:return this.abort(),t.n=1,this.remove();case 1:this.resetState();case 2:return t.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"uploadSingeChunk",value:(function(){var e=p(c().m(function i(t){var u,a,l,o;return c().w(function(h){for(;;)switch(h.n){case 0:return u=this.getCurrentChunkName(t),h.n=1,O.getItem(u);case 1:if(!h.v){h.n=2;break}return this.updateProgress(),h.a(2);case 2:return a=t*this.chunkSize,l=Math.min(a+this.chunkSize-1,this.totalSize-1),h.n=3,this.getChunkData(a,l);case 3:return o=h.v,h.n=4,O.setItem(u,new Blob([o]));case 4:this.updateProgress();case 5:return h.a(2)}},i,this)}));function n(i){return e.apply(this,arguments)}return n})()},{key:"download",value:(function(){var e=p(c().m(function i(){var t=this,u,a,l,o,h,v;return c().w(function(s){for(;;)switch(s.p=s.n){case 0:s.p=0,u=4,a=[],l=(function(){var D=p(c().m(function m(y){return c().w(function(P){for(;;)switch(P.n){case 0:return P.n=1,t.uploadSingeChunk(y);case 1:return P.a(2)}},m)}));return function(y){return D.apply(this,arguments)}})(),o=c().m(function D(){var m;return c().w(function(y){for(;;)switch(y.n){case 0:if(!(a.length>=u)){y.n=1;break}return y.n=1,Promise.race(a);case 1:m=l(t.currentChunk++).finally(function(){var P=a.indexOf(m);P>-1&&a.splice(P,1)}),a.push(m);case 2:return y.a(2)}},D)});case 1:if(!(this.currentChunk<this.totalChunk)){s.n=3;break}return s.d(ae(o()),2);case 2:s.n=1;break;case 3:return s.n=4,Promise.all(a);case 4:this.changeStatus("finished"),this.mergeAndDownload(),s.n=7;break;case 5:if(s.p=5,v=s.v,h=v,!(h&&h.name==="AbortError")){s.n=6;break}return s.a(2);case 6:this.changeStatus("error",v);case 7:return s.a(2)}},i,this,[[0,5]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"remove",value:(function(){var e=p(c().m(function i(){var t;return c().w(function(u){for(;;)switch(u.n){case 0:return u.n=1,this.getChunkKeys();case 1:return t=u.v,u.n=2,Promise.all(t.map(function(a){return O.removeItem(a)}));case 2:return u.a(2)}},i,this)}));function n(){return e.apply(this,arguments)}return n})()},{key:"mergeAndDownload",value:(function(){var e=p(c().m(function i(){var t=this,u,a,l,o,h,v,s,D,m,y,P,j;return c().w(function(f){for(;;)switch(f.p=f.n){case 0:return f.n=1,this.getCompletedCount();case 1:if(u=f.v,!(u<this.totalChunk)){f.n=2;break}return this.changeStatus("error",new Error("下载不完整,请取消再重新下载")),f.a(2);case 2:return f.n=3,import("streamsaver");case 3:a=f.v,this.mitmPath&&(a.default.mitm=this.mitmPath),l=a.default.createWriteStream(this.fileName,{size:this.totalSize}),o=l.getWriter(),h=this.getURLMd5(),f.p=4,v=0;case 5:if(!(v<this.totalChunk)){f.n=13;break}return f.n=6,O.getItem("".concat(h,"_").concat(v));case 6:if(s=f.v,s){f.n=7;break}throw new Error("Chunk ".concat(v," missed!"));case 7:D=s.stream().getReader();case 8:return f.n=9,D.read();case 9:if(m=f.v,y=m.done,P=m.value,!y){f.n=10;break}return f.a(3,12);case 10:return f.n=11,o.write(P);case 11:f.n=8;break;case 12:v++,f.n=5;break;case 13:return f.n=14,o.close();case 14:setTimeout(p(c().m(function G(){return c().w(function(F){for(;;)switch(F.n){case 0:return F.n=1,t.remove();case 1:t.resetState();case 2:return F.a(2)}},G)})),2e3),f.n=16;break;case 15:f.p=15,j=f.v,this.changeStatus("error",j),o.abort&&o.abort(j);case 16:return f.a(2)}},i,this,[[4,15]])}));function n(){return e.apply(this,arguments)}return n})()},{key:"destroy",value:function(){this.abort()}}],[{key:"setMitmPath",value:(function(){var e=p(c().m(function i(t){var u;return c().w(function(a){for(;;)switch(a.n){case 0:return a.n=1,import("streamsaver");case 1:u=a.v,u.default.mitm=t;case 2:return a.a(2)}},i)}));function n(i){return e.apply(this,arguments)}return n})()}])})();g($,"EVENTS",V);g($,"STATUS",H);exports.Download=$;
package/lib/msb-file.d.ts CHANGED
@@ -40,7 +40,7 @@ export declare class Download {
40
40
  destroy(): void;
41
41
  }
42
42
 
43
- declare type DownloadOptions = {
43
+ export declare type DownloadOptions = {
44
44
  url: string;
45
45
  fileName: string;
46
46
  mitmPath?: string;
@@ -8,7 +8,7 @@ function T(n, e, a, i, t, u, r) {
8
8
  }
9
9
  l.done ? e(o) : Promise.resolve(o).then(i, t);
10
10
  }
11
- function d(n) {
11
+ function p(n) {
12
12
  return function() {
13
13
  var e = this, a = arguments;
14
14
  return new Promise(function(i, t) {
@@ -47,7 +47,7 @@ function g(n, e, a) {
47
47
  }
48
48
  function c() {
49
49
  var n, e, a = typeof Symbol == "function" ? Symbol : {}, i = a.iterator || "@@iterator", t = a.toStringTag || "@@toStringTag";
50
- function u(p, y, P, F) {
50
+ function u(d, y, P, F) {
51
51
  var f = y && y.prototype instanceof l ? y : l, j = Object.create(f.prototype);
52
52
  return C(j, "_invoke", (function(G, V, Y) {
53
53
  var E, m, w, B = 0, M = Y || [], z = !1, R = {
@@ -92,7 +92,7 @@ function c() {
92
92
  done: z
93
93
  };
94
94
  };
95
- })(p, P, F), !0), j;
95
+ })(d, P, F), !0), j;
96
96
  }
97
97
  var r = {};
98
98
  function l() {
@@ -105,8 +105,8 @@ function c() {
105
105
  var v = [][i] ? e(e([][i]())) : (C(e = {}, i, function() {
106
106
  return this;
107
107
  }), e), s = h.prototype = l.prototype = Object.create(v);
108
- function D(p) {
109
- return Object.setPrototypeOf ? Object.setPrototypeOf(p, h) : (p.__proto__ = h, C(p, t, "GeneratorFunction")), p.prototype = Object.create(s), p;
108
+ function D(d) {
109
+ return Object.setPrototypeOf ? Object.setPrototypeOf(d, h) : (d.__proto__ = h, C(d, t, "GeneratorFunction")), d.prototype = Object.create(s), d;
110
110
  }
111
111
  return o.prototype = h, C(s, "constructor", h), C(h, "constructor", o), o.displayName = "GeneratorFunction", C(h, t, "GeneratorFunction"), C(s), C(s, t, "Generator"), C(s, i, function() {
112
112
  return this;
@@ -198,7 +198,7 @@ var U = /* @__PURE__ */ (function(n) {
198
198
  }, {
199
199
  key: "openDB",
200
200
  value: (function() {
201
- var e = d(/* @__PURE__ */ c().m(function i() {
201
+ var e = p(/* @__PURE__ */ c().m(function i() {
202
202
  var t, u;
203
203
  return c().w(function(r) {
204
204
  for (; ; ) switch (r.p = r.n) {
@@ -227,7 +227,7 @@ var U = /* @__PURE__ */ (function(n) {
227
227
  }, {
228
228
  key: "getChunkKeys",
229
229
  value: (function() {
230
- var e = d(/* @__PURE__ */ c().m(function i() {
230
+ var e = p(/* @__PURE__ */ c().m(function i() {
231
231
  var t, u;
232
232
  return c().w(function(r) {
233
233
  for (; ; ) switch (r.n) {
@@ -248,7 +248,7 @@ var U = /* @__PURE__ */ (function(n) {
248
248
  }, {
249
249
  key: "getCompletedCount",
250
250
  value: (function() {
251
- var e = d(/* @__PURE__ */ c().m(function i() {
251
+ var e = p(/* @__PURE__ */ c().m(function i() {
252
252
  var t;
253
253
  return c().w(function(u) {
254
254
  for (; ; ) switch (u.n) {
@@ -267,7 +267,7 @@ var U = /* @__PURE__ */ (function(n) {
267
267
  }, {
268
268
  key: "getResumePosition",
269
269
  value: (function() {
270
- var e = d(/* @__PURE__ */ c().m(function i() {
270
+ var e = p(/* @__PURE__ */ c().m(function i() {
271
271
  var t, u, r, l;
272
272
  return c().w(function(o) {
273
273
  for (; ; ) switch (o.n) {
@@ -292,7 +292,7 @@ var U = /* @__PURE__ */ (function(n) {
292
292
  }, {
293
293
  key: "init",
294
294
  value: (function() {
295
- var e = d(/* @__PURE__ */ c().m(function i() {
295
+ var e = p(/* @__PURE__ */ c().m(function i() {
296
296
  var t;
297
297
  return c().w(function(u) {
298
298
  for (; ; ) switch (u.n) {
@@ -315,7 +315,7 @@ var U = /* @__PURE__ */ (function(n) {
315
315
  }, {
316
316
  key: "getFileSize",
317
317
  value: (function() {
318
- var e = d(/* @__PURE__ */ c().m(function i() {
318
+ var e = p(/* @__PURE__ */ c().m(function i() {
319
319
  var t, u, r, l, o, h, v;
320
320
  return c().w(function(s) {
321
321
  for (; ; ) switch (s.p = s.n) {
@@ -372,7 +372,7 @@ var U = /* @__PURE__ */ (function(n) {
372
372
  }, {
373
373
  key: "getChunkData",
374
374
  value: (function() {
375
- var e = d(/* @__PURE__ */ c().m(function i(t, u) {
375
+ var e = p(/* @__PURE__ */ c().m(function i(t, u) {
376
376
  var r, l;
377
377
  return c().w(function(o) {
378
378
  for (; ; ) switch (o.n) {
@@ -402,7 +402,7 @@ var U = /* @__PURE__ */ (function(n) {
402
402
  }, {
403
403
  key: "updateProgress",
404
404
  value: (function() {
405
- var e = d(/* @__PURE__ */ c().m(function i() {
405
+ var e = p(/* @__PURE__ */ c().m(function i() {
406
406
  var t, u, r;
407
407
  return c().w(function(l) {
408
408
  for (; ; ) switch (l.n) {
@@ -447,7 +447,7 @@ var U = /* @__PURE__ */ (function(n) {
447
447
  }, {
448
448
  key: "resume",
449
449
  value: (function() {
450
- var e = d(/* @__PURE__ */ c().m(function i() {
450
+ var e = p(/* @__PURE__ */ c().m(function i() {
451
451
  return c().w(function(t) {
452
452
  for (; ; ) switch (t.n) {
453
453
  case 0:
@@ -470,7 +470,7 @@ var U = /* @__PURE__ */ (function(n) {
470
470
  }, {
471
471
  key: "cancel",
472
472
  value: (function() {
473
- var e = d(/* @__PURE__ */ c().m(function i() {
473
+ var e = p(/* @__PURE__ */ c().m(function i() {
474
474
  return c().w(function(t) {
475
475
  for (; ; ) switch (t.n) {
476
476
  case 0:
@@ -490,7 +490,7 @@ var U = /* @__PURE__ */ (function(n) {
490
490
  }, {
491
491
  key: "uploadSingeChunk",
492
492
  value: (function() {
493
- var e = d(/* @__PURE__ */ c().m(function i(t) {
493
+ var e = p(/* @__PURE__ */ c().m(function i(t) {
494
494
  var u, r, l, o;
495
495
  return c().w(function(h) {
496
496
  for (; ; ) switch (h.n) {
@@ -521,13 +521,13 @@ var U = /* @__PURE__ */ (function(n) {
521
521
  }, {
522
522
  key: "download",
523
523
  value: (function() {
524
- var e = d(/* @__PURE__ */ c().m(function i() {
524
+ var e = p(/* @__PURE__ */ c().m(function i() {
525
525
  var t = this, u, r, l, o, h, v;
526
526
  return c().w(function(s) {
527
527
  for (; ; ) switch (s.p = s.n) {
528
528
  case 0:
529
529
  s.p = 0, u = 4, r = [], l = /* @__PURE__ */ (function() {
530
- var D = d(/* @__PURE__ */ c().m(function p(y) {
530
+ var D = p(/* @__PURE__ */ c().m(function d(y) {
531
531
  return c().w(function(P) {
532
532
  for (; ; ) switch (P.n) {
533
533
  case 0:
@@ -535,13 +535,13 @@ var U = /* @__PURE__ */ (function(n) {
535
535
  case 1:
536
536
  return P.a(2);
537
537
  }
538
- }, p);
538
+ }, d);
539
539
  }));
540
540
  return function(y) {
541
541
  return D.apply(this, arguments);
542
542
  };
543
543
  })(), o = /* @__PURE__ */ c().m(function D() {
544
- var p;
544
+ var d;
545
545
  return c().w(function(y) {
546
546
  for (; ; ) switch (y.n) {
547
547
  case 0:
@@ -551,10 +551,10 @@ var U = /* @__PURE__ */ (function(n) {
551
551
  }
552
552
  return y.n = 1, Promise.race(r);
553
553
  case 1:
554
- p = l(t.currentChunk++).finally(function() {
555
- var P = r.indexOf(p);
554
+ d = l(t.currentChunk++).finally(function() {
555
+ var P = r.indexOf(d);
556
556
  P > -1 && r.splice(P, 1);
557
- }), r.push(p);
557
+ }), r.push(d);
558
558
  case 2:
559
559
  return y.a(2);
560
560
  }
@@ -598,7 +598,7 @@ var U = /* @__PURE__ */ (function(n) {
598
598
  }, {
599
599
  key: "remove",
600
600
  value: (function() {
601
- var e = d(/* @__PURE__ */ c().m(function i() {
601
+ var e = p(/* @__PURE__ */ c().m(function i() {
602
602
  var t;
603
603
  return c().w(function(u) {
604
604
  for (; ; ) switch (u.n) {
@@ -621,8 +621,8 @@ var U = /* @__PURE__ */ (function(n) {
621
621
  }, {
622
622
  key: "mergeAndDownload",
623
623
  value: (function() {
624
- var e = d(/* @__PURE__ */ c().m(function i() {
625
- var t = this, u, r, l, o, h, v, s, D, p, y, P, F;
624
+ var e = p(/* @__PURE__ */ c().m(function i() {
625
+ var t = this, u, r, l, o, h, v, s, D, d, y, P, F;
626
626
  return c().w(function(f) {
627
627
  for (; ; ) switch (f.p = f.n) {
628
628
  case 0:
@@ -636,7 +636,7 @@ var U = /* @__PURE__ */ (function(n) {
636
636
  case 2:
637
637
  return f.n = 3, import("streamsaver");
638
638
  case 3:
639
- r = f.v, this.mitmPath && (r.mitm = this.mitmPath), l = r.createWriteStream(this.fileName, {
639
+ r = f.v, this.mitmPath && (r.default.mitm = this.mitmPath), l = r.default.createWriteStream(this.fileName, {
640
640
  size: this.totalSize
641
641
  }), o = l.getWriter(), h = this.getURLMd5(), f.p = 4, v = 0;
642
642
  case 5:
@@ -656,7 +656,7 @@ var U = /* @__PURE__ */ (function(n) {
656
656
  case 8:
657
657
  return f.n = 9, D.read();
658
658
  case 9:
659
- if (p = f.v, y = p.done, P = p.value, !y) {
659
+ if (d = f.v, y = d.done, P = d.value, !y) {
660
660
  f.n = 10;
661
661
  break;
662
662
  }
@@ -672,7 +672,7 @@ var U = /* @__PURE__ */ (function(n) {
672
672
  case 13:
673
673
  return f.n = 14, o.close();
674
674
  case 14:
675
- setTimeout(/* @__PURE__ */ d(/* @__PURE__ */ c().m(function j() {
675
+ setTimeout(/* @__PURE__ */ p(/* @__PURE__ */ c().m(function j() {
676
676
  return c().w(function(G) {
677
677
  for (; ; ) switch (G.n) {
678
678
  case 0:
@@ -705,14 +705,14 @@ var U = /* @__PURE__ */ (function(n) {
705
705
  }], [{
706
706
  key: "setMitmPath",
707
707
  value: (function() {
708
- var e = d(/* @__PURE__ */ c().m(function i(t) {
708
+ var e = p(/* @__PURE__ */ c().m(function i(t) {
709
709
  var u;
710
710
  return c().w(function(r) {
711
711
  for (; ; ) switch (r.n) {
712
712
  case 0:
713
713
  return r.n = 1, import("streamsaver");
714
714
  case 1:
715
- u = r.v, u.mitm = t;
715
+ u = r.v, u.default.mitm = t;
716
716
  case 2:
717
717
  return r.a(2);
718
718
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "msb-file",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "main": "lib/msb-file.cjs.js",
5
5
  "module": "lib/msb-file.es.js",
6
6
  "types": "lib/msb-file.d.ts",