tweb/public/sw.js

3 lines
5.9 KiB
JavaScript
Raw Normal View History

var serviceWorkerOption = {"assets":[]};
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(1),o=n(2),i=n(3),s=n(4),l=o.logger("SW",o.LogLevels.error),a=self,u={};a.addEventListener("message",e=>{const t=e.data,n=u[t.id];t.payload?n.resolve(t.payload):n.reject(),delete u[t.id]});let c=0;const d=e=>{try{const[,n,o,a]=/http[:s]+\/\/.*?(\/(.*?)(?:$|\/(.*)$))/.exec(e.request.url)||[];switch(l.debug("[fetch]:",e),o){case"stream":{const o=function(e){if(!e)return[0,0];const[,t]=e.split("="),n=t.split(", "),[r,o]=n[0].split("-");return[+r,+o||0]}(e.request.headers.get("Range"));let[d,f]=o;const p=JSON.parse(decodeURIComponent(a)),y=g;l.debug("[stream]",n,d,f),e.respondWith(Promise.race([(t=45e3,new Promise(e=>{setTimeout(()=>{e(new Response("",{status:408,statusText:"Request timed out."}))},t)})),new Promise((e,t)=>{const n=function(e,t,n){if(0===e[0]&&1===e[1])return new Response(new Uint8Array(2).buffer,{status:206,statusText:"Partial Content",headers:{"Accept-Ranges":"bytes","Content-Range":"bytes 0-1/"+(n||"*"),"Content-Length":"2","Content-Type":t||"video/mp4"}});return null}(o,p.mimeType,p.size);if(n)return e(n);const a=f&&f<y?function(e){return 2**Math.ceil(Math.log(e)/Math.log(2))}(f-d+1):y,g=function(e,t=2048){return e-e%t}(d,a);l.debug("[stream] requestFilePart:",g,a);const b={type:"requestFilePart",id:c++,payload:[p.dcID,p.location,g,a]};(u[b.id]=s.deferredPromise()).then(t=>{let n=t.bytes;l.debug("[stream] requestFilePart result:",t);const o={"Accept-Ranges":"bytes","Content-Range":`bytes ${g}-${g+n.byteLength-1}/${p.size||"*"}`,"Content-Length":""+n.byteLength};p.mimeType&&(o["Content-Type"]=p.mimeType),r.isSafari&&(n=n.slice(d-g,f-g+1),o["Content-Range"]=`bytes ${d}-${d+n.byteLength-1}/${p.size||"*"}`,o["Content-Length"]=""+n.byteLength),e(new Response(n,{status:206,statusText:"Partial Content",headers:o}))}).catch(e=>{}),i.notifySomeone(b)})]));break}}}catch(t){e.respondWith(new Response("",{status:500,statusText:"Internal Server Error"}))}var t},f=()=>{a.onfetch=d};a.addEventListener("install",e=>{l("installing"),e.waitUntil(a.skipWaiting())}),a.addEventListener("activate",e=>{l("activating",a),e.waitUntil(a.clients.claim())}),a.onerror=e=>{l.error("error:",e)},a.onunhandledrejection=e=>{l.error("onunhandledrejection:",e)},a.onoffline=a.ononline=f,f();const g=524288},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSafari=t.isAppleMobile=t.isAndroid=t.isApple=t.userAgent=void 0,t.userAgent=navigator?navigator.userAgent:null,t.isApple=-1!=navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i),t.isAndroid=-1!=navigator.userAgent.toLowerCase().indexOf("android");const r="undefined"!=typeof window?window:self;t.isAppleMobile=(/iPad|iPhone|iPod/.test(navigator.platform)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)&&!r.MSStream,t.isSafari=!!("safari"in r)||!(!t.userAgent||!(/\b(iPad|iPhone|iPod)\b/.test(t.userAgent)||t.userAgent.match("Safari")&&!t.userAgent.match("Chrome")))},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.logger=t.LogLevels=void 0,function(e){e[e.log=1]="log",e[e.warn=2]="warn",e[e.error=4]="error",e[e.debug=8]="debu