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.
- package/lib/msb-file.cjs.js +1 -1
- package/lib/msb-file.d.ts +1 -1
- package/lib/msb-file.es.js +31 -31
- package/package.json +1 -1
package/lib/msb-file.cjs.js
CHANGED
|
@@ -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
package/lib/msb-file.es.js
CHANGED
|
@@ -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
|
|
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(
|
|
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
|
-
})(
|
|
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(
|
|
109
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
},
|
|
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
|
|
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
|
-
|
|
555
|
-
var P = r.indexOf(
|
|
554
|
+
d = l(t.currentChunk++).finally(function() {
|
|
555
|
+
var P = r.indexOf(d);
|
|
556
556
|
P > -1 && r.splice(P, 1);
|
|
557
|
-
}), r.push(
|
|
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 =
|
|
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 =
|
|
625
|
-
var t = this, u, r, l, o, h, v, s, D,
|
|
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 (
|
|
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__ */
|
|
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 =
|
|
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
|
}
|