1var e=6e5,t=`menu-cache-v2:`,n=new Map;function r(e,t){return t?`${e}:${t}`:e}var i={get(i,a){let o=r(i,a),s=n.get(o);if(s&&Date.now()-s.ts<e)return s.data;try{let r=sessionStorage.getItem(`${t}${o}`);if(r){let i=JSON.parse(r);if(i.ts&&Date.now()-i.ts<e)return n.set(o,{data:i.data,ts:i.ts}),i.data;sessionStorage.removeItem(`${t}${o}`)}}catch{}return null},set(e,a,o){let s=r(e,o),c=Date.now();n.set(s,{data:a,ts:c});try{sessionStorage.setItem(`${t}${s}`,JSON.stringify({data:a,ts:c}))}catch{try{i.pruneStorage(),sessionStorage.setItem(`${t}${s}`,JSON.stringify({data:a,ts:c}))}catch{}}},invalidate(e,i){let a=r(e,i);n.delete(a);try{sessionStorage.removeItem(`${t}${a}`)}catch{}},pruneStorage(){try{let n=[];for(let r=0;r<sessionStorage.length;r++){let i=sessionStorage.key(r);if(i!=null&&i.startsWith(t))try{let t=sessionStorage.getItem(i);if(t){let r=JSON.parse(t);(!r.ts||Date.now()-r.ts>e)&&n.push(i)}}catch{n.push(i)}}n.forEach(e=>sessionStorage.removeItem(e))}catch{}}};async function a(e,t,n){let r=i.get(e,t);if(r&&o(r))return n().then(n=>{i.set(e,n,t)}).catch(()=>{}),{data:r,fromCache:!0};let a=await n();return i.set(e,a,t),{data:a,fromCache:!1}}function o(e){return e?e.products===void 0||!(!Array.isArray(e.products)||e.products.length===0):!1}export{a as n,i as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.