1var e=`urls-ai-favorites-v1`,t=`urls-ai-recents-v1`,n=`urls-ai-bookmarks-v1`,r=`urls-ai:favorites-change`,i=`urls-ai:recents-change`,a=`urls-ai:bookmarks-change`;function o(e){if(typeof window>`u`)return[];try{let t=JSON.parse(localStorage.getItem(e)??`[]`);return Array.isArray(t)?t:[]}catch{return[]}}function s(e,t,n){localStorage.setItem(e,JSON.stringify(n)),window.dispatchEvent(new Event(t))}function c(){return o(e).filter(e=>typeof e.name==`string`&&typeof e.slug==`string`).map(e=>({name:e.name,slug:e.slug,url:typeof e.url==`string`?e.url:`/item/${e.slug}`,iconUrl:e.iconUrl}))}function l(t){let n=c(),i=n.some(e=>e.slug===t.slug);return s(e,r,i?n.filter(e=>e.slug!==t.slug):[t,...n]),!i}function u(t){s(e,r,c().filter(e=>e.slug!==t))}function d(){s(e,r,[])}function f(){return o(t)}function p(e){s(t,i,[{...e,visitedAt:Date.now()},...f().filter(t=>t.slug!==e.slug)].slice(0,30))}function m(){s(t,i,[])}function h(){return o(n)}export{d as a,c,u as d,l as f,i,f as l,n,m as o,r,h as s,a as t,p as u};
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.