const SW_VERISIGN="1.0.3",SW_CACHE_KEY="docs-sw-cache-1.0.3",MAX_ITEMS=200,CDN_EXPIRED_TIME=12096e5,CDN_TYPE=["script","stylesheet"],interceptedUrlList=["/docs_v2/directory","/bff_api_v2/app/home/tcc?key=operation_positions"];function isMatchedInterceptedUrl(e){return interceptedUrlList.find((t=>e.includes(t)))}function cacheUpdateWithLru(){caches.open(SW_CACHE_KEY).then((e=>{e.keys().then((t=>{const n=t.filter((e=>"document"===e.destination));n.length>MAX_ITEMS&&Promise.all(n.map((t=>e.match(t)))).then((t=>{const s=t.reduce(((e,t)=>new Date(e.headers.get("date"))e.url===s.url));e.delete(n[c])}))}))}))}function getResponseFromCache(e,t,n,s,c=0){const i=s.request.clone(),r=fetch(i,{mode:"cors"}).then((function(n){return 200===n.status&&(e.put(t,n.clone()),cacheUpdateWithLru()),n}));let a=!1;if(n){const e=new Date(n.headers.get("date"));if(a=Date.now()-e.getTime()>c,a)return r}return n||r}self.addEventListener("message",(function(e){const t=e.data;Array.isArray(t)&&t.length>0&&t.forEach((e=>{if("interceptedRequest"===e.type){const t=e.url;interceptedUrlList.includes(t)||interceptedUrlList.push(t)}}))})),self.addEventListener("install",(function(e){e.waitUntil(self.skipWaiting())})),self.addEventListener("activate",(function(e){e.waitUntil(caches.keys().then((function(e){return Promise.all(e.map((async function(e){if(e.indexOf("docs-sw-cache-")>-1&&e!==SW_CACHE_KEY)return caches.delete(e);if(e===SW_CACHE_KEY){const e=await caches.open(SW_CACHE_KEY),t=(await e.keys()).filter((e=>e.url.includes(".js")||e.url.includes(".css")));(await Promise.all(t.map((t=>e.match(t))))).forEach(((n,s)=>{const c=new Date(n.headers.get("date"));Date.now()-c.getTime()>12096e5&&e.delete(t[s])}))}})))})).then((function(){return self.clients.claim()})))})),self.addEventListener("fetch",(function(e){const t=e.request.url;if(isMatchedInterceptedUrl(t)||/\/docs\/resource\/(?!(zh-CN\/codelabs)).+/.test(t)&&"document"===e.request.destination){const t=e.request;e.respondWith(caches.open(SW_CACHE_KEY).then((n=>n.match(t).then((function(s){return getResponseFromCache(n,t,s,e,2592e5)})))))}if(CDN_TYPE.includes(e.request.destination)&&e.request.url.includes("open/platform/docs")){const t=e.request.url;e.respondWith(caches.open(SW_CACHE_KEY).then((n=>n.match(t).then((function(s){return getResponseFromCache(n,t,s,e,12096e5)})))))}}));