const e=require("../../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/defineProperty.js");function t(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var n=class n{constructor(){e.default(this,`cache`,void 0),e.default(this,`keys`,void 0),e.default(this,`cacheCallTimes`,void 0),this.cache=new Map,this.keys=[],this.cacheCallTimes=0}size(){return this.keys.length}internalGet(e,t=!1){let n={map:this.cache};return e.forEach(e=>{n=n?n?.map?.get(e):void 0}),n?.value&&t&&(n.value[1]=this.cacheCallTimes++),n?.value}get(e){return this.internalGet(e,!0)?.[0]}has(e){return!!this.internalGet(e)}set(e,t){if(!this.has(e)){if(this.size()+1>n.MAX_CACHE_SIZE+n.MAX_CACHE_OFFSET){let[e]=this.keys.reduce((e,t)=>{let[,n]=e;return this.internalGet(t)[1]<n?[t,this.internalGet(t)[1]]:e},[this.keys[0],this.cacheCallTimes]);this.delete(e)}this.keys.push(e)}let r=this.cache;e.forEach((n,i)=>{if(i===e.length-1)r.set(n,{value:[t,this.cacheCallTimes++]});else{let e=r.get(n);e?e.map||(e.map=new Map):r.set(n,{map:new Map}),r=r.get(n).map}})}deleteByPath(e,t){let n=e.get(t[0]);if(t.length===1)return n.map?e.set(t[0],{map:n.map}):e.delete(t[0]),n.value?.[0];let r=this.deleteByPath(n.map,t.slice(1));return(!n.map||n.map.size===0)&&!n.value&&e.delete(t[0]),r}delete(e){if(this.has(e))return this.keys=this.keys.filter(n=>!t(n,e)),this.deleteByPath(this.cache,e)}};e.default(n,`MAX_CACHE_SIZE`,20),e.default(n,`MAX_CACHE_OFFSET`,5),exports.default=n,exports.sameDerivativeOption=t;