tweb/public/sw.js

3 lines
5.9 KiB
JavaScript

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]="debug"}(r=t.LogLevels||(t.LogLevels={}));var o=Date.now();function i(){return"["+((Date.now()-o)/1e3).toFixed(3)+"]"}t.logger=function(e,t=r.log|r.warn|r.error){function n(...n){return t&r.log&&console.log(i(),"["+e+"]:",...n)}return t=r.error,n.warn=function(...n){return t&r.warn&&console.warn(i(),"["+e+"]:",...n)},n.info=function(...n){return t&r.log&&console.info(i(),"["+e+"]:",...n)},n.error=function(...n){return t&r.error&&console.error(i(),"["+e+"]:",...n)},n.trace=function(...n){return t&r.log&&console.trace(i(),"["+e+"]:",...n)},n.debug=function(...n){return t&r.debug&&console.debug(i(),"["+e+"]:",...n)},n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.notifyAll=t.notifySomeone=t.isWorker=t.isServiceWorker=t.isWebWorker=void 0,t.isWebWorker="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,t.isServiceWorker="undefined"!=typeof ServiceWorkerGlobalScope&&self instanceof ServiceWorkerGlobalScope,t.isWorker=t.isWebWorker||t.isServiceWorker;const r=(e,...t)=>{self.clients.matchAll({includeUncontrolled:!1,type:"window"}).then(n=>{n.length&&n.slice(e?0:-1).forEach(e=>{e.postMessage(...t)})})},o=(...e)=>{self.postMessage(...e)},i=()=>{};t.notifySomeone=t.isServiceWorker?r.bind(null,!1):t.isWebWorker?o:i,t.notifyAll=t.isServiceWorker?r.bind(null,!0):t.isWebWorker?o:i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deferredPromise=void 0,t.deferredPromise=function(){let e={isFulfilled:!1,isRejected:!1,notify:()=>{},notifyAll:(...t)=>{e.lastNotify=t,e.listeners.forEach(e=>e(...t))},lastNotify:void 0,listeners:[],addNotifyListener:t=>{e.lastNotify&&t(...e.lastNotify),e.listeners.push(t)}},t=new Promise((n,r)=>{e.resolve=e=>{t.isFulfilled||(t.isFulfilled=!0,n(e))},e.reject=(...e)=>{t.isRejected||(t.isRejected=!0,r(...e))}});return t.finally(()=>{t.notify=null,t.listeners.length=0,t.lastNotify=null}),Object.assign(t,e),t}}]);