@ngcompass/cache 0.1.2-beta → 0.1.4-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var mt=require('crypto'),ht=require('xxhash-wasm'),module$1=require('module'),common=require('@ngcompass/common'),y=require('path'),lruCache=require('lru-cache'),S=require('cacache'),q=require('v8'),x=require('fs/promises'),St=require('write-file-atomic');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var mt__default=/*#__PURE__*/_interopDefault(mt);var ht__default=/*#__PURE__*/_interopDefault(ht);var y__default=/*#__PURE__*/_interopDefault(y);var S__default=/*#__PURE__*/_interopDefault(S);var q__default=/*#__PURE__*/_interopDefault(q);var x__default=/*#__PURE__*/_interopDefault(x);var St__default=/*#__PURE__*/_interopDefault(St);var W="1.0.0",jt=1,B="v1.0.0-s1";var M,ft=async()=>{if(M)return;let{h64:t}=await ht__default.default();M=a=>t(a).toString(16).padStart(16,"0");},J=t=>{if(M)return M(t);let a=mt__default.default.createHash("sha256");return a.update(t),a.digest("hex")};var g=class extends Error{path;constructor(a,e){super(a),this.path=e,this.name="SerializationError";}};function k(t,a=[],e=new WeakSet){if(t===null)return "null";if(t===void 0)throw new g("undefined is not a valid hash input",a);switch(typeof t){case "boolean":return t?"true":"false";case "number":if(!Number.isFinite(t))throw new g(`Non-finite number (${String(t)}) is not a valid hash input`,a);return String(t);case "string":return JSON.stringify(t);case "function":throw new g("Functions are not valid hash inputs",a)}if(t instanceof Date)return JSON.stringify(t.toISOString());if(t instanceof RegExp)return JSON.stringify(t.toString());if(typeof t=="object"){let
|
|
2
|
-
`),i}catch(o){if((typeof o=="object"&&o!==null&&"code"in o?o.code:void 0)==="ENOENT")return;try{await S__default.default.rm.entry(a,e);}catch{}return}},set:async(e,o)=>{let n=q__default.default.serialize(o);await S__default.default.put(a,e,n);},has:async e=>{try{return !!await S__default.default.get.info(a,e)}catch{return false}},delete:async e=>{await S__default.default.rm.entry(a,e);},clear:async()=>{await S__default.default.rm.all(a);},prune:async()=>{await S__default.default.verify(a);},getStats:async()=>F(a)}};var U=t=>{let a=t.path+".pack",e=new Map,o=false,n=async()=>{if(!o){o=true;try{let s=await x__default.default.readFile(a);for(let[i,l]of q__default.default.deserialize(s))e.set(i,l);}catch{}}},r=async()=>{let s=y__default.default.dirname(a);await x__default.default.mkdir(s,{recursive:true});let i=q__default.default.serialize(e),l=a+".tmp";await x__default.default.writeFile(l,i),await x__default.default.rename(l,a);};return {get:async s=>(await n(),e.get(s)),set:async(s,i)=>{await n(),e.set(s,i),await r();},has:async s=>(await n(),e.has(s)),delete:async s=>{await n(),e.delete(s),await r();},clear:async()=>{e.clear(),o=true;try{await x__default.default.unlink(a);}catch{}try{await x__default.default.unlink(a+".tmp");}catch{}},getStats:async()=>{await n();let s=0;try{s=(await x__default.default.stat(a)).size;}catch{}return {entries:e.size,size:s}},bulkSet:async s=>{for(let[i,l]of(await n(),s))e.set(i,l);await r();}}};var X=t=>{let a=t.path,e=null,o=null,n=0,r=m=>y__default.default.join(a,`${m}.json`),s=async()=>{try{await x__default.default.mkdir(a,{recursive:!0});}catch{}},i=m=>m.endsWith(".json"),l=m=>m.slice(0,-5),c=async m=>{try{return await x__default.default.readdir(m)}catch{return []}},h=async m=>{try{return await x__default.default.readFile(m,"utf-8")}catch{return}},f=async m=>{try{await x__default.default.unlink(m);}catch{}},u=async m=>{try{await x__default.default.rm(m,{recursive:!0,force:!0});}catch{}},w=m=>{e&&e.delete(m);},j=async()=>{o&&await o;},D=async()=>{if(!e){if(!o){let m=n;o=(async()=>{try{await s();let d=(await c(a)).filter(i).map(l);n===m&&(e=new Set(d));}finally{o=null,e||(e=new Set);}})();}await o;}},$=async m=>{await j(),e&&e.add(m);},I=async m=>{await j(),e&&e.delete(m);};return {get:async m=>{if(e&&!e.has(m))return;let d=r(m),p=await h(d);if(p===void 0)return void w(m);try{return JSON.parse(p)}catch{w(m);return}},set:async(m,d)=>{await s();let p=r(m);await St__default.default(p,JSON.stringify(d),{encoding:"utf-8"}),(e||o)&&await $(m);},has:async m=>(await D(),e.has(m)),delete:async m=>{await f(r(m)),(e||o)&&await I(m);},clear:async()=>{await u(a),await s(),n+=1,e=new Set;},getStats:async()=>F(a)}};var Y=t=>{let a=y__default.default.join(t.path,"meta.json"),e=null,o=null,n=null,r=null,s=async()=>{if(!e)return o||(o=(async()=>{try{await x__default.default.mkdir(t.path,{recursive:!0});let c=await x__default.default.readFile(a,"utf-8"),h=JSON.parse(c);e=h&&typeof h=="object"?new Map(Object.entries(h)):new Map;}catch{e=new Map;}finally{o=null;}})())},i=async()=>{n&&(clearTimeout(n),n=null),e&&(r&&await r,r=(async()=>{try{await x__default.default.mkdir(t.path,{recursive:!0});let c=Object.fromEntries(e);await St__default.default(a,JSON.stringify(c));}catch(c){let h=c instanceof Error?c.message:String(c);common.debug("cache",`Failed to flush metadata cache to ${a}: ${h}`);}finally{r=null;}})(),await r);},l=()=>{n||(n=setTimeout(()=>{n=null,i();},2e3)).unref();};return {get:async c=>(await s(),e.get(c)),set:async(c,h)=>{await s(),e.set(c,h),l();},has:async c=>(await s(),e.has(c)),delete:async c=>{await s(),e.delete(c)&&l();},clear:async()=>{n&&(clearTimeout(n),n=null),e=new Map;try{await x__default.default.unlink(a);}catch{}},getStats:async()=>(await s(),{entries:e.size,size:0}),flush:i}};var Q=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),has:a=>t.has(a)});var Z=(t,a)=>({get:async e=>{let o=t.get(e);if(o)return o;try{let n=await a.get(e);if(n)return t.set(e,n),n}catch(n){common.debug("cache",`Failed to read AST from L2 for ${e}: ${n instanceof Error?n.message:String(n)}`);}},set:async(e,o)=>{t.set(e,o),await a.set(e,o);},invalidate:async e=>{t.delete(e),await a.delete(e);}});var V=t=>{let a=r=>`${r}.meta`,e=async r=>{let s=a(r),i=await t.get(s);if(i)return i;let l={taskId:r,timestamp:Date.now(),hits:0,lastAccess:Date.now()};return await t.set(s,l),l},o=async r=>{let s=await e(r),i={...s,hits:s.hits+1,lastAccess:Date.now()};await t.set(a(r),i);},n=new Map;return {get:async r=>{if(n.has(r))return n.get(r);let s=await t.get(r);return s!==void 0&&o(r).catch(i=>{common.debug("cache",`incrementHits failed for ${r}: ${i instanceof Error?i.message:String(i)}`);}),s},set:async(r,s)=>{await t.set(r,s),await e(r);},has:async r=>!!n.has(r)||t.has(r),delete:async r=>{n.delete(r),await t.delete(r);try{await t.delete(a(r));}catch(s){common.debug("cache",`Failed to delete metadata for ${r}: ${s instanceof Error?s.message:String(s)}`);}},getMany:async r=>{if(r.length===0)return new Map;let s=new Map;for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(async c=>{if(n.has(c))return void s.set(c,n.get(c));let h=await t.get(c);h!==void 0&&(s.set(c,h),o(c).catch(f=>{common.debug("cache",`incrementHits failed for ${c}: ${f instanceof Error?f.message:String(f)}`);}));}));}return s},setMany:async r=>{if(r.length!==0){for(let[s,i]of r)n.set(s,i);common.debug("cache",`Buffered ${r.length} results (total pending: ${n.size})`);}},hasMany:async r=>{if(r.length===0)return new Set;if(!r.some(i=>n.has(i)))try{if((await t.getStats()).entries===0)return new Set}catch{return new Set}let s=new Set;for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(async c=>{(n.has(c)||await t.has(c))&&s.add(c);}));}return s},getWithMetadata:async r=>{let s=n.has(r)?n.get(r):await t.get(r);if(s===void 0)return;let i=await e(r);return await o(r),{result:s,metadata:i}},getManyWithMetadata:async r=>{if(r.length===0)return new Map;let s=new Map,i=[];for(let l=0;l<r.length;l+=200){let c=r.slice(l,l+200);await Promise.all(c.map(async h=>{let f=n.has(h)?n.get(h):await t.get(h);if(f!==void 0){let u=await e(h),w={...u,hits:u.hits+1,lastAccess:Date.now()};s.set(h,{result:f,metadata:w}),i.push([h,w]);}}));}if(i.length>0)for(let l=0;l<i.length;l+=200){let c=i.slice(l,l+200);await Promise.all(c.map(async([h,f])=>{await t.set(a(h),f);}));}return s},updateMetadata:async(r,s)=>{let i={...await t.get(a(r))??await e(r),...s};await t.set(a(r),i);},flush:async()=>{if(n.size===0)return;let r=[...n.entries()];n.clear();let s=Date.now();if(t.bulkSet){let i=[];for(let[l,c]of r)i.push([l,c]),i.push([a(l),{taskId:l,timestamp:s,hits:0,lastAccess:s}]);await t.bulkSet(i);}else for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(([c,h])=>t.set(c,h))),await Promise.all(l.map(([c])=>t.set(a(c),{taskId:c,timestamp:s,hits:0,lastAccess:s})));}common.debug("cache",`Flushed ${r.length} buffered results to disk`);}}};var tt=t=>({get:async a=>t.get(a),set:async(a,e)=>{await t.set(a,e);}});var et=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),delete:a=>t.delete(a),flush:async()=>{typeof t.flush=="function"&&await t.flush();}});var at=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),delete:a=>t.delete(a)});var rt=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,{files:e,timestamp:Date.now()})});var st=(t,a=B)=>{let e=mt__default.default.createHash("sha256");return e.update(t),a&&e.update(a),e.digest("hex")};var C=(t,a)=>{let e=A({maxItems:t,ttl:a});return {get:async o=>e.get(o),set:async(o,n)=>{e.set(o,n);},has:async o=>e.has(o),delete:async o=>{e.delete(o);},clear:async()=>{e.clear();},getStats:async()=>e.getStats()}},T=(t={})=>{let a=process.cwd(),e=y__default.default.resolve(a,"node_modules",".cache","ngcompass"),o=!t.disk?.path,n=t.disk?.path??"[memory]",r=A({maxItems:t.memory?.maxItems}),s=A({maxItems:200}),i=o?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"ast"),ttl:t.disk?.ttl}),l=o?C(t.memory?.maxItems,t.memory?.ttl):U({path:y__default.default.join(t.disk?.path??e,"results")}),c=o?C(t.memory?.maxItems,t.memory?.ttl):X({path:y__default.default.join(t.disk?.path??e,"config")}),h=o?C(t.memory?.maxItems,t.memory?.ttl):Y({path:y__default.default.join(t.disk?.path??e,"meta")}),f=o?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"plans"),ttl:t.disk?.ttl}),u=o?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"files"),ttl:t.disk?.ttl}),w=Q(r),j=Z(s,i),D=V(l),$=tt(c),I=et(h),m=at(f),d=rt(u),p=o?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"analysis"),ttl:t.disk?.ttl}),K=V(p),G=async()=>{r.clear(),s.clear(),await i.clear(),await l.clear(),await c.clear(),await h.clear(),await f.clear(),await u.clear(),await p.clear();};return {sources:w,asts:j,results:D,configs:$,metas:I,plans:m,files:d,analysis:K,computeHash:st,prune:async()=>{"prune"in i&&typeof i.prune=="function"&&await i.prune();},clear:G,clearType:async z=>{switch(z){case "ast":s.clear(),await i.clear();break;case "config":await c.clear();break;case "results":await l.clear(),await p.clear();break;case "all":await G();}},flush:async()=>{await Promise.all([D.flush(),K.flush(),I.flush()]);},getCachePath:()=>n,getInfo:async()=>{let z=s.getStats(),[N,P,R,it,nt,ot,ct]=await Promise.all([i.getStats(),c.getStats(),l.getStats(),h.getStats(),f.getStats(),u.getStats(),p.getStats()]),lt=z.size+N.size+P.size+R.size+it.size+nt.size+ot.size+ct.size;return {ast:{l1:{entries:z.entries,maxEntries:200,size:z.size},l2:{entries:N.entries,size:N.size}},config:{entries:P.entries,size:P.size},results:{entries:R.entries,size:R.size},totalSize:lt,location:n,version:W}}}},O=null,Ne=t=>(O||(O=T(t)),O),Pe=()=>{O=null;};function Ve(t,a,e={}){if(!t.cache.enabled&&!e.allowDisabled)return;let o=y__default.default.resolve(a,t.cache.location);return T({memory:t.cache.strategy==="memory"?{ttl:t.cache.ttl}:void 0,disk:t.cache.strategy==="memory"?void 0:{path:o,ttl:t.cache.ttl}})}exports.CACHE_KEY_PREFIX=B;exports.CACHE_VERSION=W;exports.SCHEMA_VERSION=jt;exports.SerializationError=g;exports.buildCacheKeyContext=Pt;exports.computeHash=J;exports.createCacheContext=T;exports.createRuntimeCache=Ve;exports.getCacheContext=Ne;exports.initHasher=ft;exports.resetGlobalCache=Pe;exports.serializeCacheKeyContext=Rt;exports.stableSerialize=k;//# sourceMappingURL=index.cjs.map
|
|
1
|
+
'use strict';var mt=require('crypto'),ht=require('xxhash-wasm'),module$1=require('module'),common=require('@ngcompass/common'),y=require('path'),lruCache=require('lru-cache'),S=require('cacache'),q=require('v8'),x=require('fs/promises'),St=require('write-file-atomic');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var mt__default=/*#__PURE__*/_interopDefault(mt);var ht__default=/*#__PURE__*/_interopDefault(ht);var y__default=/*#__PURE__*/_interopDefault(y);var S__default=/*#__PURE__*/_interopDefault(S);var q__default=/*#__PURE__*/_interopDefault(q);var x__default=/*#__PURE__*/_interopDefault(x);var St__default=/*#__PURE__*/_interopDefault(St);var W="1.0.0",jt=1,B="v1.0.0-s1";var M,ft=async()=>{if(M)return;let{h64:t}=await ht__default.default();M=a=>t(a).toString(16).padStart(16,"0");},J=t=>{if(M)return M(t);let a=mt__default.default.createHash("sha256");return a.update(t),a.digest("hex")};var g=class extends Error{path;constructor(a,e){super(a),this.path=e,this.name="SerializationError";}};function k(t,a=[],e=new WeakSet){if(t===null)return "null";if(t===void 0)throw new g("undefined is not a valid hash input",a);switch(typeof t){case "boolean":return t?"true":"false";case "number":if(!Number.isFinite(t))throw new g(`Non-finite number (${String(t)}) is not a valid hash input`,a);return String(t);case "string":return JSON.stringify(t);case "function":throw new g("Functions are not valid hash inputs",a)}if(t instanceof Date)return JSON.stringify(t.toISOString());if(t instanceof RegExp)return JSON.stringify(t.toString());if(typeof t=="object"){let n;if(e.has(t))throw new g(`Circular reference detected at path: ${a.join(".")||"(root)"}`,a);if(e.add(t),Array.isArray(t))n="["+t.map((o,r)=>k(o,[...a,String(r)],e)).join(",")+"]";else {let o=Object.keys(t).sort(),r=[];for(let s of o){let i=t[s];i!==void 0&&r.push(JSON.stringify(s)+":"+k(i,[...a,s],e));}n="{"+r.join(",")+"}";}return e.delete(t),n}return JSON.stringify(t)}function Pt(t){return Object.freeze({toolVersion:common.PACKAGE_VERSION,schemaVersion:common.CACHE_VERSION,ruleRegistryHash:J(k([...t].sort())),parserVersion:(function(){try{let a=module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))("oxc-parser/package.json");return String(a.version??"unknown")}catch{return "unknown"}})(),platform:process.platform})}function Rt(t){return [t.toolVersion,t.schemaVersion,t.parserVersion,t.ruleRegistryHash,t.platform].join("::")}var A=(t={})=>{let a=new lruCache.LRUCache({max:t.maxItems??500,maxSize:t.maxSize??52428800,sizeCalculation:e=>{try{return JSON.stringify(e).length}catch{return 1e3}},ttl:t.ttl});return {get:e=>a.get(e),set:(e,n)=>{a.set(e,n);},has:e=>a.has(e),delete:e=>{a.delete(e);},clear:()=>a.clear(),getStats:()=>({entries:a.size,size:a.calculatedSize})}};async function F(t){let a=0,e=0;try{await x__default.default.access(t);}catch{return {entries:0,size:0}}async function n(o){for(let r of await x__default.default.readdir(o,{withFileTypes:true})){let s=y__default.default.join(o,r.name);if(r.isDirectory())await n(s);else {a++;let i=await x__default.default.stat(s);e+=i.size;}}}try{await n(t);}catch{}return {entries:a,size:e}}var v=t=>{let a=t.path;return {get:async e=>{try{let n=performance.now(),o=await S__default.default.get(a,e),r=performance.now(),s=performance.now(),i=q__default.default.deserialize(o.data),l=performance.now();return process.env.DEBUG_CACHE&&process.stdout.write(`[disk-driver] read: ${(r-n).toFixed(2)}ms, deser: ${(l-s).toFixed(2)}ms, size: ${(o.data.length/1024).toFixed(1)}KB
|
|
2
|
+
`),i}catch(n){if((typeof n=="object"&&n!==null&&"code"in n?n.code:void 0)==="ENOENT")return;try{await S__default.default.rm.entry(a,e);}catch{}return}},set:async(e,n)=>{let o=q__default.default.serialize(n);await S__default.default.put(a,e,o);},has:async e=>{try{return !!await S__default.default.get.info(a,e)}catch{return false}},delete:async e=>{await S__default.default.rm.entry(a,e);},clear:async()=>{await S__default.default.rm.all(a);},prune:async()=>{await S__default.default.verify(a);},getStats:async()=>F(a)}};var U=t=>{let a=t.path+".pack",e=new Map,n=false,o=async()=>{if(!n){n=true;try{let s=await x__default.default.readFile(a);for(let[i,l]of q__default.default.deserialize(s))e.set(i,l);}catch{}}},r=async()=>{let s=y__default.default.dirname(a);await x__default.default.mkdir(s,{recursive:true});let i=q__default.default.serialize(e),l=a+".tmp";await x__default.default.writeFile(l,i),await x__default.default.rename(l,a);};return {get:async s=>(await o(),e.get(s)),set:async(s,i)=>{await o(),e.set(s,i),await r();},has:async s=>(await o(),e.has(s)),delete:async s=>{await o(),e.delete(s),await r();},clear:async()=>{e.clear(),n=true;try{await x__default.default.unlink(a);}catch{}try{await x__default.default.unlink(a+".tmp");}catch{}},getStats:async()=>{await o();let s=0;try{s=(await x__default.default.stat(a)).size;}catch{}return {entries:e.size,size:s}},bulkSet:async s=>{for(let[i,l]of(await o(),s))e.set(i,l);await r();}}};var X=t=>{let a=t.path,e=null,n=null,o=0,r=m=>y__default.default.join(a,`${m}.json`),s=async()=>{try{await x__default.default.mkdir(a,{recursive:!0});}catch{}},i=m=>m.endsWith(".json"),l=m=>m.slice(0,-5),c=async m=>{try{return await x__default.default.readdir(m)}catch{return []}},h=async m=>{try{return await x__default.default.readFile(m,"utf-8")}catch{return}},f=async m=>{try{await x__default.default.unlink(m);}catch{}},u=async m=>{try{await x__default.default.rm(m,{recursive:!0,force:!0});}catch{}},w=m=>{e&&e.delete(m);},j=async()=>{n&&await n;},D=async()=>{if(!e){if(!n){let m=o;n=(async()=>{try{await s();let d=(await c(a)).filter(i).map(l);o===m&&(e=new Set(d));}finally{n=null,e||(e=new Set);}})();}await n;}},$=async m=>{await j(),e&&e.add(m);},I=async m=>{await j(),e&&e.delete(m);};return {get:async m=>{if(e&&!e.has(m))return;let d=r(m),p=await h(d);if(p===void 0)return void w(m);try{return JSON.parse(p)}catch{w(m);return}},set:async(m,d)=>{await s();let p=r(m);await St__default.default(p,JSON.stringify(d),{encoding:"utf-8"}),(e||n)&&await $(m);},has:async m=>(await D(),e.has(m)),delete:async m=>{await f(r(m)),(e||n)&&await I(m);},clear:async()=>{await u(a),await s(),o+=1,e=new Set;},getStats:async()=>F(a)}};var Y=t=>{let a=y__default.default.join(t.path,"meta.json"),e=null,n=null,o=null,r=null,s=async()=>{if(!e)return n||(n=(async()=>{try{await x__default.default.mkdir(t.path,{recursive:!0});let c=await x__default.default.readFile(a,"utf-8"),h=JSON.parse(c);e=h&&typeof h=="object"?new Map(Object.entries(h)):new Map;}catch{e=new Map;}finally{n=null;}})())},i=async()=>{o&&(clearTimeout(o),o=null),e&&(r&&await r,r=(async()=>{try{await x__default.default.mkdir(t.path,{recursive:!0});let c=Object.fromEntries(e);await St__default.default(a,JSON.stringify(c));}catch(c){let h=c instanceof Error?c.message:String(c);common.debug("cache",`Failed to flush metadata cache to ${a}: ${h}`);}finally{r=null;}})(),await r);},l=()=>{o||(o=setTimeout(()=>{o=null,i();},2e3)).unref();};return {get:async c=>(await s(),e.get(c)),set:async(c,h)=>{await s(),e.set(c,h),l();},has:async c=>(await s(),e.has(c)),delete:async c=>{await s(),e.delete(c)&&l();},clear:async()=>{o&&(clearTimeout(o),o=null),e=new Map;try{await x__default.default.unlink(a);}catch{}},getStats:async()=>(await s(),{entries:e.size,size:0}),flush:i}};var Q=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),has:a=>t.has(a)});var Z=(t,a)=>({get:async e=>{let n=t.get(e);if(n)return n;try{let o=await a.get(e);if(o)return t.set(e,o),o}catch(o){common.debug("cache",`Failed to read AST from L2 for ${e}: ${o instanceof Error?o.message:String(o)}`);}},set:async(e,n)=>{t.set(e,n),await a.set(e,n);},invalidate:async e=>{t.delete(e),await a.delete(e);}});var V=t=>{let a=r=>`${r}.meta`,e=async r=>{let s=a(r),i=await t.get(s);if(i)return i;let l={taskId:r,timestamp:Date.now(),hits:0,lastAccess:Date.now()};return await t.set(s,l),l},n=async r=>{let s=await e(r),i={...s,hits:s.hits+1,lastAccess:Date.now()};await t.set(a(r),i);},o=new Map;return {get:async r=>{if(o.has(r))return o.get(r);let s=await t.get(r);return s!==void 0&&n(r).catch(i=>{common.debug("cache",`incrementHits failed for ${r}: ${i instanceof Error?i.message:String(i)}`);}),s},set:async(r,s)=>{await t.set(r,s),await e(r);},has:async r=>!!o.has(r)||t.has(r),delete:async r=>{o.delete(r),await t.delete(r);try{await t.delete(a(r));}catch(s){common.debug("cache",`Failed to delete metadata for ${r}: ${s instanceof Error?s.message:String(s)}`);}},getMany:async r=>{if(r.length===0)return new Map;let s=new Map;for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(async c=>{if(o.has(c))return void s.set(c,o.get(c));let h=await t.get(c);h!==void 0&&(s.set(c,h),n(c).catch(f=>{common.debug("cache",`incrementHits failed for ${c}: ${f instanceof Error?f.message:String(f)}`);}));}));}return s},setMany:async r=>{if(r.length!==0){for(let[s,i]of r)o.set(s,i);common.debug("cache",`Buffered ${r.length} results (total pending: ${o.size})`);}},hasMany:async r=>{if(r.length===0)return new Set;if(!r.some(i=>o.has(i)))try{if((await t.getStats()).entries===0)return new Set}catch{return new Set}let s=new Set;for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(async c=>{(o.has(c)||await t.has(c))&&s.add(c);}));}return s},getWithMetadata:async r=>{let s=o.has(r)?o.get(r):await t.get(r);if(s===void 0)return;let i=await e(r);return await n(r),{result:s,metadata:i}},getManyWithMetadata:async r=>{if(r.length===0)return new Map;let s=new Map,i=[];for(let l=0;l<r.length;l+=200){let c=r.slice(l,l+200);await Promise.all(c.map(async h=>{let f=o.has(h)?o.get(h):await t.get(h);if(f!==void 0){let u=await e(h),w={...u,hits:u.hits+1,lastAccess:Date.now()};s.set(h,{result:f,metadata:w}),i.push([h,w]);}}));}if(i.length>0)for(let l=0;l<i.length;l+=200){let c=i.slice(l,l+200);await Promise.all(c.map(async([h,f])=>{await t.set(a(h),f);}));}return s},updateMetadata:async(r,s)=>{let i={...await t.get(a(r))??await e(r),...s};await t.set(a(r),i);},flush:async()=>{if(o.size===0)return;let r=[...o.entries()];o.clear();let s=Date.now();if(t.bulkSet){let i=[];for(let[l,c]of r)i.push([l,c]),i.push([a(l),{taskId:l,timestamp:s,hits:0,lastAccess:s}]);await t.bulkSet(i);}else for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(([c,h])=>t.set(c,h))),await Promise.all(l.map(([c])=>t.set(a(c),{taskId:c,timestamp:s,hits:0,lastAccess:s})));}common.debug("cache",`Flushed ${r.length} buffered results to disk`);}}};var tt=t=>({get:async a=>t.get(a),set:async(a,e)=>{await t.set(a,e);}});var et=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),delete:a=>t.delete(a),flush:async()=>{typeof t.flush=="function"&&await t.flush();}});var at=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),delete:a=>t.delete(a)});var rt=t=>({get:a=>t.get(a),set:(a,e,n)=>t.set(a,{files:e,stats:n,timestamp:Date.now()})});var st=(t,a=B)=>{let e=mt__default.default.createHash("sha256");return e.update(t),a&&e.update(a),e.digest("hex")};var C=(t,a)=>{let e=A({maxItems:t,ttl:a});return {get:async n=>e.get(n),set:async(n,o)=>{e.set(n,o);},has:async n=>e.has(n),delete:async n=>{e.delete(n);},clear:async()=>{e.clear();},getStats:async()=>e.getStats()}},T=(t={})=>{let a=process.cwd(),e=y__default.default.resolve(a,"node_modules",".cache","ngcompass"),n=!t.disk?.path,o=t.disk?.path??"[memory]",r=A({maxItems:t.memory?.maxItems}),s=A({maxItems:200}),i=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"ast"),ttl:t.disk?.ttl}),l=n?C(t.memory?.maxItems,t.memory?.ttl):U({path:y__default.default.join(t.disk?.path??e,"results")}),c=n?C(t.memory?.maxItems,t.memory?.ttl):X({path:y__default.default.join(t.disk?.path??e,"config")}),h=n?C(t.memory?.maxItems,t.memory?.ttl):Y({path:y__default.default.join(t.disk?.path??e,"meta")}),f=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"plans"),ttl:t.disk?.ttl}),u=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"files"),ttl:t.disk?.ttl}),w=Q(r),j=Z(s,i),D=V(l),$=tt(c),I=et(h),m=at(f),d=rt(u),p=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y__default.default.join(t.disk?.path??e,"analysis"),ttl:t.disk?.ttl}),K=V(p),G=async()=>{r.clear(),s.clear(),await i.clear(),await l.clear(),await c.clear(),await h.clear(),await f.clear(),await u.clear(),await p.clear();};return {sources:w,asts:j,results:D,configs:$,metas:I,plans:m,files:d,analysis:K,computeHash:st,prune:async()=>{"prune"in i&&typeof i.prune=="function"&&await i.prune();},clear:G,clearType:async z=>{switch(z){case "ast":s.clear(),await i.clear();break;case "config":await c.clear();break;case "results":await l.clear(),await p.clear();break;case "all":await G();}},flush:async()=>{await Promise.all([D.flush(),K.flush(),I.flush()]);},getCachePath:()=>o,getInfo:async()=>{let z=s.getStats(),[N,P,R,it,nt,ot,ct]=await Promise.all([i.getStats(),c.getStats(),l.getStats(),h.getStats(),f.getStats(),u.getStats(),p.getStats()]),lt=z.size+N.size+P.size+R.size+it.size+nt.size+ot.size+ct.size;return {ast:{l1:{entries:z.entries,maxEntries:200,size:z.size},l2:{entries:N.entries,size:N.size}},config:{entries:P.entries,size:P.size},results:{entries:R.entries,size:R.size},totalSize:lt,location:o,version:W}}}},O=null,Ne=t=>(O||(O=T(t)),O),Pe=()=>{O=null;};function Ve(t,a,e={}){if(!t.cache.enabled&&!e.allowDisabled)return;let n=y__default.default.resolve(a,t.cache.location);return T({memory:t.cache.strategy==="memory"?{ttl:t.cache.ttl}:void 0,disk:t.cache.strategy==="memory"?void 0:{path:n,ttl:t.cache.ttl}})}exports.CACHE_KEY_PREFIX=B;exports.CACHE_VERSION=W;exports.SCHEMA_VERSION=jt;exports.SerializationError=g;exports.buildCacheKeyContext=Pt;exports.computeHash=J;exports.createCacheContext=T;exports.createRuntimeCache=Ve;exports.getCacheContext=Ne;exports.initHasher=ft;exports.resetGlobalCache=Pe;exports.serializeCacheKeyContext=Rt;exports.stableSerialize=k;//# sourceMappingURL=index.cjs.map
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts","../src/hashing.ts","../src/utils/stable-serialize.ts","../src/key-context.ts","../src/drivers/memory.ts","../src/utils/fs.ts","../src/drivers/disk.ts","../src/drivers/packed.ts","../src/drivers/atomic.ts","../src/drivers/json-file.ts","../src/services/source-cache.ts","../src/services/ast-cache.ts","../src/services/result-cache.ts","../src/services/config-cache.ts","../src/services/meta-cache.ts","../src/services/plan-cache.ts","../src/services/file-cache.ts","../src/services/hashing.ts","../src/context.ts","../src/runtime-cache.ts"],"names":["CACHE_VERSION","SCHEMA_VERSION","CACHE_KEY_PREFIX","h64","initHasher","hasher","xxhash","input","toString","padStart","computeHash","content","crypto","createHash","update","digest","SerializationError","Error","message","path","name","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","String","JSON","stringify","Date","toISOString","RegExp","result","has","join","add","Array","isArray","map","v","i","sortedKeys","Object","keys","sort","pairs","k","push","delete","buildCacheKeyContext","ruleNames","freeze","toolVersion","PACKAGE_VERSION","schemaVersion","ruleRegistryHash","parserVersion","pkg","createRequire","version","platform","process","serializeCacheKeyContext","ctx","createMemoryDriver","config","cache","LRUCache","max","maxItems","maxSize","sizeCalculation","length","ttl","get","key","set","clear","getStats","entries","size","calculatedSize","getDirectoryStats","dirPath","fs","access","traverse","currentPath","file","readdir","withFileTypes","fullPath","isDirectory","stats","stat","createDiskDriver","cachePath","tReadStart","performance","now","cacache","tReadEnd","tDeserStart","deserialized","v8","deserialize","data","tDeserEnd","env","DEBUG_CACHE","stdout","write","toFixed","err","code","rm","entry","buffer","serialize","put","info","all","prune","verify","createPackedFileDriver","filePath","Map","loaded","ensureLoaded","buf","readFile","save","dir","dirname","mkdir","recursive","tmp","writeFile","rename","unlink","bulkSet","createAtomicDriver","cacheDir","catalog","catalogPromise","catalogGeneration","getFilePath","ensureDir","isJsonFile","fileName","endsWith","stripJsonExtension","slice","safeReadDir","tryReadJsonFile","tryUnlink","tryRemoveDir","force","markMissingInCatalog","awaitCatalogInitIfInFlight","ensureCatalog","localGeneration","filter","Set","syncCatalogAfterSet","syncCatalogAfterDelete","parse","writeFileAtomic","encoding","createJsonFileDriver","loadPromise","saveTimeout","savePromise","load","flush","clearTimeout","fromEntries","msg","debug","scheduleSave","setTimeout","unref","createSourceCache","driver","hash","createAstCache","l1","l2","hot","cold","error","invalidate","createResultCache","getMetadataKey","getOrCreateMetadata","metaKey","existing","newMeta","taskId","timestamp","hits","lastAccess","incrementHits","meta","updated","pendingWrites","catch","getMany","hashes","results","batch","Promise","setMany","hasMany","some","h","getWithMetadata","metadata","getManyWithMetadata","metadataUpdates","updateMetadata","updates","createConfigCache","report","createMetaCache","createPlanCache","plan","createFileCache","files","computeCompositeHash","salt","createAsyncMemoryDriver","createCacheContext","cwd","defaultBaseDir","resolve","useMemoryOnly","disk","cacheLocation","sourceDriver","memory","astL1","astL2","resultDriver","configDriver","metaDriver","planDriver","fileDriver","sources","asts","configs","metas","plans","analysisDriver","analysis","clearAllDrivers","clearType","type","getCachePath","getInfo","astL1Stats","astL2Stats","configStats","resultStats","metaStats","planStats","fileStats","analysisStats","totalSize","ast","maxEntries","location","globalCache","getCacheContext","resetGlobalCache","createRuntimeCache","options","enabled","allowDisabled","strategy"],"mappings":"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","file":"index.cjs","sourcesContent":["export const CACHE_VERSION = '1.0.0';\nexport const SCHEMA_VERSION = 1;\nexport const CACHE_KEY_PREFIX = \"v1.0.0-s1\";\n","let h64;\nimport t from 'node:crypto';\nimport r from 'xxhash-wasm';\nexport const initHasher = async ()=>{\n if (h64) return;\n let { h64: t } = await r();\n h64 = (r)=>t(r).toString(16).padStart(16, '0');\n};\nexport const computeHash = (r)=>{\n if (h64) return h64(r);\n let e = t.createHash('sha256');\n return e.update(r), e.digest('hex');\n};\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","import { createRequire as r } from 'node:module';\nimport { PACKAGE_VERSION as e, CACHE_VERSION as o } from '@ngcompass/common';\nimport { computeHash as t } from './hashing.js';\nimport { stableSerialize as n } from './utils/stable-serialize.js';\nexport function buildCacheKeyContext(s) {\n return Object.freeze({\n toolVersion: e,\n schemaVersion: o,\n ruleRegistryHash: t(n([\n ...s\n ].sort())),\n parserVersion: function() {\n try {\n let e = r(import.meta.url)('oxc-parser/package.json');\n return String(e.version ?? 'unknown');\n } catch {\n return 'unknown';\n }\n }(),\n platform: process.platform\n });\n}\nexport function serializeCacheKeyContext(r) {\n return [\n r.toolVersion,\n r.schemaVersion,\n r.parserVersion,\n r.ruleRegistryHash,\n r.platform\n ].join('::');\n}\n","import { LRUCache as e } from 'lru-cache';\nexport const createMemoryDriver = (t = {})=>{\n let r = new e({\n max: t.maxItems ?? 500,\n maxSize: t.maxSize ?? 52428800,\n sizeCalculation: (e)=>{\n try {\n return JSON.stringify(e).length;\n } catch {\n return 1000;\n }\n },\n ttl: t.ttl\n });\n return {\n get: (e)=>r.get(e),\n set: (e, t)=>{\n r.set(e, t);\n },\n has: (e)=>r.has(e),\n delete: (e)=>{\n r.delete(e);\n },\n clear: ()=>r.clear(),\n getStats: ()=>({\n entries: r.size,\n size: r.calculatedSize\n })\n };\n};\n","import t from 'node:fs/promises';\nimport e from 'node:path';\nexport async function getDirectoryStats(i) {\n let a = 0, r = 0;\n try {\n await t.access(i);\n } catch {\n return {\n entries: 0,\n size: 0\n };\n }\n async function o(i) {\n for (let s of (await t.readdir(i, {\n withFileTypes: !0\n }))){\n let n = e.join(i, s.name);\n if (s.isDirectory()) await o(n);\n else {\n a++;\n let e = await t.stat(n);\n r += e.size;\n }\n }\n }\n try {\n await o(i);\n } catch {}\n return {\n entries: a,\n size: r\n };\n}\n","import e from 'cacache';\nimport r from 'node:v8';\nimport { getDirectoryStats as t } from '../utils/fs.js';\nexport const createDiskDriver = (a)=>{\n let n = a.path;\n return {\n get: async (t)=>{\n try {\n let a = performance.now(), i = await e.get(n, t), o = performance.now(), c = performance.now(), s = r.deserialize(i.data), d = performance.now();\n return process.env.DEBUG_CACHE && process.stdout.write(`[disk-driver] read: ${(o - a).toFixed(2)}ms, deser: ${(d - c).toFixed(2)}ms, size: ${(i.data.length / 1024).toFixed(1)}KB\\n`), s;\n } catch (r) {\n if ('ENOENT' === ('object' == typeof r && null !== r && 'code' in r ? r.code : void 0)) return;\n try {\n await e.rm.entry(n, t);\n } catch {}\n return;\n }\n },\n set: async (t, a)=>{\n let i = r.serialize(a);\n await e.put(n, t, i);\n },\n has: async (r)=>{\n try {\n return !!await e.get.info(n, r);\n } catch {\n return !1;\n }\n },\n delete: async (r)=>{\n await e.rm.entry(n, r);\n },\n clear: async ()=>{\n await e.rm.all(n);\n },\n prune: async ()=>{\n await e.verify(n);\n },\n getStats: async ()=>t(n)\n };\n};\n","import a from 'node:fs/promises';\nimport t from 'node:v8';\nimport e from 'node:path';\nexport const createPackedFileDriver = (i)=>{\n let r = i.path + '.pack', s = new Map(), c = !1, n = async ()=>{\n if (!c) {\n c = !0;\n try {\n let e = await a.readFile(r);\n for (let [a, i] of t.deserialize(e))s.set(a, i);\n } catch {}\n }\n }, l = async ()=>{\n let i = e.dirname(r);\n await a.mkdir(i, {\n recursive: !0\n });\n let c = t.serialize(s), n = r + '.tmp';\n await a.writeFile(n, c), await a.rename(n, r);\n };\n return {\n get: async (a)=>(await n(), s.get(a)),\n set: async (a, t)=>{\n await n(), s.set(a, t), await l();\n },\n has: async (a)=>(await n(), s.has(a)),\n delete: async (a)=>{\n await n(), s.delete(a), await l();\n },\n clear: async ()=>{\n s.clear(), c = !0;\n try {\n await a.unlink(r);\n } catch {}\n try {\n await a.unlink(r + '.tmp');\n } catch {}\n },\n getStats: async ()=>{\n await n();\n let t = 0;\n try {\n t = (await a.stat(r)).size;\n } catch {}\n return {\n entries: s.size,\n size: t\n };\n },\n bulkSet: async (a)=>{\n for (let [t, e] of (await n(), a))s.set(t, e);\n await l();\n }\n };\n};\n","import a from 'write-file-atomic';\nimport t from 'node:fs/promises';\nimport e from 'node:path';\nimport { getDirectoryStats as r } from '../utils/fs.js';\nexport const createAtomicDriver = (i)=>{\n let n = i.path, c = null, s = null, y = 0, w = (a)=>e.join(n, `${a}.json`), l = async ()=>{\n try {\n await t.mkdir(n, {\n recursive: !0\n });\n } catch {}\n }, o = (a)=>a.endsWith('.json'), u = (a)=>a.slice(0, -5), f = async (a)=>{\n try {\n return await t.readdir(a);\n } catch {\n return [];\n }\n }, d = async (a)=>{\n try {\n return await t.readFile(a, 'utf-8');\n } catch {\n return;\n }\n }, m = async (a)=>{\n try {\n await t.unlink(a);\n } catch {}\n }, h = async (a)=>{\n try {\n await t.rm(a, {\n recursive: !0,\n force: !0\n });\n } catch {}\n }, p = (a)=>{\n c && c.delete(a);\n }, S = async ()=>{\n s && await s;\n }, v = async ()=>{\n if (!c) {\n if (!s) {\n let a = y;\n s = (async ()=>{\n try {\n await l();\n let t = (await f(n)).filter(o).map(u);\n y === a && (c = new Set(t));\n } finally{\n s = null, c || (c = new Set());\n }\n })();\n }\n await s;\n }\n }, g = async (a)=>{\n await S(), c && c.add(a);\n }, j = async (a)=>{\n await S(), c && c.delete(a);\n };\n return {\n get: async (a)=>{\n if (c && !c.has(a)) return;\n let t = w(a), e = await d(t);\n if (void 0 === e) return void p(a);\n try {\n return JSON.parse(e);\n } catch {\n p(a);\n return;\n }\n },\n set: async (t, e)=>{\n await l();\n let r = w(t);\n await a(r, JSON.stringify(e), {\n encoding: 'utf-8'\n }), (c || s) && await g(t);\n },\n has: async (a)=>(await v(), c.has(a)),\n delete: async (a)=>{\n await m(w(a)), (c || s) && await j(a);\n },\n clear: async ()=>{\n await h(n), await l(), y += 1, c = new Set();\n },\n getStats: async ()=>r(n)\n };\n};\n","import a from 'node:fs/promises';\nimport e from 'node:path';\nimport t from 'write-file-atomic';\nimport { debug as i } from '@ngcompass/common';\nexport const createJsonFileDriver = (n)=>{\n let r = e.join(n.path, 'meta.json'), l = null, s = null, c = null, o = null, m = async ()=>{\n if (!l) return s || (s = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = await a.readFile(r, 'utf-8'), t = JSON.parse(e);\n l = t && 'object' == typeof t ? new Map(Object.entries(t)) : new Map();\n } catch {\n l = new Map();\n } finally{\n s = null;\n }\n })());\n }, u = async ()=>{\n c && (clearTimeout(c), c = null), l && (o && await o, o = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = Object.fromEntries(l);\n await t(r, JSON.stringify(e));\n } catch (e) {\n let a = e instanceof Error ? e.message : String(e);\n i('cache', `Failed to flush metadata cache to ${r}: ${a}`);\n } finally{\n o = null;\n }\n })(), await o);\n }, p = ()=>{\n c || (c = setTimeout(()=>{\n c = null, u();\n }, 2000)).unref();\n };\n return {\n get: async (a)=>(await m(), l.get(a)),\n set: async (a, e)=>{\n await m(), l.set(a, e), p();\n },\n has: async (a)=>(await m(), l.has(a)),\n delete: async (a)=>{\n await m(), l.delete(a) && p();\n },\n clear: async ()=>{\n c && (clearTimeout(c), c = null), l = new Map();\n try {\n await a.unlink(r);\n } catch {}\n },\n getStats: async ()=>(await m(), {\n entries: l.size,\n size: 0\n }),\n flush: u\n };\n};\n","export const createSourceCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n has: (t)=>e.has(t)\n });\n","import { debug as e } from '@ngcompass/common';\nexport const createAstCache = (t, a)=>({\n get: async (r)=>{\n let s = t.get(r);\n if (s) return s;\n try {\n let e = await a.get(r);\n if (e) return t.set(r, e), e;\n } catch (t) {\n e('cache', `Failed to read AST from L2 for ${r}: ${t instanceof Error ? t.message : String(t)}`);\n }\n },\n set: async (e, r)=>{\n t.set(e, r), await a.set(e, r);\n },\n invalidate: async (e)=>{\n t.delete(e), await a.delete(e);\n }\n });\n","import { debug as t } from '@ngcompass/common';\nexport const createResultCache = (e)=>{\n let a = (t)=>`${t}.meta`, s = async (t)=>{\n let s = a(t), i = await e.get(s);\n if (i) return i;\n let n = {\n taskId: t,\n timestamp: Date.now(),\n hits: 0,\n lastAccess: Date.now()\n };\n return await e.set(s, n), n;\n }, i = async (t)=>{\n let i = await s(t), n = {\n ...i,\n hits: i.hits + 1,\n lastAccess: Date.now()\n };\n await e.set(a(t), n);\n }, n = new Map();\n return {\n get: async (a)=>{\n if (n.has(a)) return n.get(a);\n let s = await e.get(a);\n return void 0 !== s && i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }), s;\n },\n set: async (t, a)=>{\n await e.set(t, a), await s(t);\n },\n has: async (t)=>!!n.has(t) || e.has(t),\n delete: async (s)=>{\n n.delete(s), await e.delete(s);\n try {\n await e.delete(a(s));\n } catch (e) {\n t('cache', `Failed to delete metadata for ${s}: ${e instanceof Error ? e.message : String(e)}`);\n }\n },\n getMany: async (a)=>{\n if (0 === a.length) return new Map();\n let s = new Map();\n for(let l = 0; l < a.length; l += 200){\n let r = a.slice(l, l + 200);\n await Promise.all(r.map(async (a)=>{\n if (n.has(a)) return void s.set(a, n.get(a));\n let l = await e.get(a);\n void 0 !== l && (s.set(a, l), i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }));\n }));\n }\n return s;\n },\n setMany: async (e)=>{\n if (0 !== e.length) {\n for (let [t, a] of e)n.set(t, a);\n t('cache', `Buffered ${e.length} results (total pending: ${n.size})`);\n }\n },\n hasMany: async (t)=>{\n if (0 === t.length) return new Set();\n if (!t.some((t)=>n.has(t))) try {\n let t = await e.getStats();\n if (0 === t.entries) return new Set();\n } catch {\n return new Set();\n }\n let a = new Set();\n for(let s = 0; s < t.length; s += 200){\n let i = t.slice(s, s + 200);\n await Promise.all(i.map(async (t)=>{\n n.has(t) ? a.add(t) : await e.has(t) && a.add(t);\n }));\n }\n return a;\n },\n getWithMetadata: async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 === a) return;\n let l = await s(t);\n return await i(t), {\n result: a,\n metadata: l\n };\n },\n getManyWithMetadata: async (t)=>{\n if (0 === t.length) return new Map();\n let i = new Map(), l = [];\n for(let a = 0; a < t.length; a += 200){\n let r = t.slice(a, a + 200);\n await Promise.all(r.map(async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 !== a) {\n let e = await s(t), n = {\n ...e,\n hits: e.hits + 1,\n lastAccess: Date.now()\n };\n i.set(t, {\n result: a,\n metadata: n\n }), l.push([\n t,\n n\n ]);\n }\n }));\n }\n if (l.length > 0) for(let t = 0; t < l.length; t += 200){\n let s = l.slice(t, t + 200);\n await Promise.all(s.map(async ([t, s])=>{\n await e.set(a(t), s);\n }));\n }\n return i;\n },\n updateMetadata: async (t, i)=>{\n let n = {\n ...await e.get(a(t)) ?? await s(t),\n ...i\n };\n await e.set(a(t), n);\n },\n flush: async ()=>{\n if (0 === n.size) return;\n let s = [\n ...n.entries()\n ];\n n.clear();\n let i = Date.now();\n if (e.bulkSet) {\n let t = [];\n for (let [e, n] of s)t.push([\n e,\n n\n ]), t.push([\n a(e),\n {\n taskId: e,\n timestamp: i,\n hits: 0,\n lastAccess: i\n }\n ]);\n await e.bulkSet(t);\n } else for(let t = 0; t < s.length; t += 200){\n let n = s.slice(t, t + 200);\n await Promise.all(n.map(([t, a])=>e.set(t, a))), await Promise.all(n.map(([t])=>e.set(a(t), {\n taskId: t,\n timestamp: i,\n hits: 0,\n lastAccess: i\n })));\n }\n t('cache', `Flushed ${s.length} buffered results to disk`);\n }\n };\n};\n","export const createConfigCache = (e)=>({\n get: async (t)=>e.get(t),\n set: async (t, a)=>{\n await e.set(t, a);\n }\n });\n","export const createMetaCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n delete: (t)=>e.delete(t),\n flush: async ()=>{\n 'function' == typeof e.flush && await e.flush();\n }\n });\n","export const createPlanCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a)=>e.set(t, a),\n delete: (t)=>e.delete(t)\n });\n","export const createFileCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a)=>e.set(t, {\n files: a,\n timestamp: Date.now()\n })\n });\n","import t from 'node:crypto';\nimport { CACHE_KEY_PREFIX as e } from '../constants.js';\nexport const computeCompositeHash = (o, r = e)=>{\n let s = t.createHash('sha256');\n return s.update(o), r && s.update(r), s.digest('hex');\n};\n","import e from 'path';\nimport { createMemoryDriver as t } from './drivers/memory.js';\nimport { createDiskDriver as a } from './drivers/disk.js';\nimport { createPackedFileDriver as s } from './drivers/packed.js';\nimport { createAtomicDriver as r } from './drivers/atomic.js';\nimport { createJsonFileDriver as i } from './drivers/json-file.js';\nimport { createSourceCache as c } from './services/source-cache.js';\nimport { createAstCache as m } from './services/ast-cache.js';\nimport { createResultCache as o } from './services/result-cache.js';\nimport { createConfigCache as l } from './services/config-cache.js';\nimport { createMetaCache as n } from './services/meta-cache.js';\nimport { createPlanCache as p } from './services/plan-cache.js';\nimport { createFileCache as y } from './services/file-cache.js';\nimport { computeCompositeHash as h } from './services/hashing.js';\nimport { CACHE_VERSION as f } from './constants.js';\nlet createAsyncMemoryDriver = (e, a)=>{\n let s = t({\n maxItems: e,\n ttl: a\n });\n return {\n get: async (e)=>s.get(e),\n set: async (e, t)=>{\n s.set(e, t);\n },\n has: async (e)=>s.has(e),\n delete: async (e)=>{\n s.delete(e);\n },\n clear: async ()=>{\n s.clear();\n },\n getStats: async ()=>s.getStats()\n };\n};\nexport const createCacheContext = (g = {})=>{\n let d = process.cwd(), v = e.resolve(d, 'node_modules', '.cache', 'ngcompass'), j = !g.disk?.path, u = g.disk?.path ?? '[memory]', k = t({\n maxItems: g.memory?.maxItems\n }), w = t({\n maxItems: 200\n }), x = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'ast'),\n ttl: g.disk?.ttl\n }), z = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : s({\n path: e.join(g.disk?.path ?? v, 'results')\n }), C = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : r({\n path: e.join(g.disk?.path ?? v, 'config')\n }), I = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : i({\n path: e.join(g.disk?.path ?? v, 'meta')\n }), S = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'plans'),\n ttl: g.disk?.ttl\n }), b = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'files'),\n ttl: g.disk?.ttl\n }), A = c(k), D = m(w, x), M = o(z), P = l(C), E = n(I), G = p(S), H = y(b), T = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'analysis'),\n ttl: g.disk?.ttl\n }), _ = o(T), q = async ()=>{\n k.clear(), w.clear(), await x.clear(), await z.clear(), await C.clear(), await I.clear(), await S.clear(), await b.clear(), await T.clear();\n };\n return {\n sources: A,\n asts: D,\n results: M,\n configs: P,\n metas: E,\n plans: G,\n files: H,\n analysis: _,\n computeHash: h,\n prune: async ()=>{\n 'prune' in x && 'function' == typeof x.prune && await x.prune();\n },\n clear: q,\n clearType: async (e)=>{\n switch(e){\n case 'ast':\n w.clear(), await x.clear();\n break;\n case 'config':\n await C.clear();\n break;\n case 'results':\n await z.clear(), await T.clear();\n break;\n case 'all':\n await q();\n }\n },\n flush: async ()=>{\n await Promise.all([\n M.flush(),\n _.flush(),\n E.flush()\n ]);\n },\n getCachePath: ()=>u,\n getInfo: async ()=>{\n let e = w.getStats(), [t, a, s, r, i, c, m] = await Promise.all([\n x.getStats(),\n C.getStats(),\n z.getStats(),\n I.getStats(),\n S.getStats(),\n b.getStats(),\n T.getStats()\n ]), o = e.size + t.size + a.size + s.size + r.size + i.size + c.size + m.size;\n return {\n ast: {\n l1: {\n entries: e.entries,\n maxEntries: 200,\n size: e.size\n },\n l2: {\n entries: t.entries,\n size: t.size\n }\n },\n config: {\n entries: a.entries,\n size: a.size\n },\n results: {\n entries: s.entries,\n size: s.size\n },\n totalSize: o,\n location: u,\n version: f\n };\n }\n };\n};\nlet globalCache = null;\nexport const getCacheContext = (e)=>(globalCache || (globalCache = createCacheContext(e)), globalCache);\nexport const resetGlobalCache = ()=>{\n globalCache = null;\n};\n","import e from 'node:path';\nimport { createCacheContext as t } from './context.js';\nexport function createRuntimeCache(c, o, a = {}) {\n if (!c.cache.enabled && !a.allowDisabled) return;\n let r = e.resolve(o, c.cache.location);\n return t({\n memory: 'memory' === c.cache.strategy ? {\n ttl: c.cache.ttl\n } : void 0,\n disk: 'memory' === c.cache.strategy ? void 0 : {\n path: r,\n ttl: c.cache.ttl\n }\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts","../src/hashing.ts","../src/utils/stable-serialize.ts","../src/key-context.ts","../src/drivers/memory.ts","../src/utils/fs.ts","../src/drivers/disk.ts","../src/drivers/packed.ts","../src/drivers/atomic.ts","../src/drivers/json-file.ts","../src/services/source-cache.ts","../src/services/ast-cache.ts","../src/services/result-cache.ts","../src/services/config-cache.ts","../src/services/meta-cache.ts","../src/services/plan-cache.ts","../src/services/file-cache.ts","../src/services/hashing.ts","../src/context.ts","../src/runtime-cache.ts"],"names":["CACHE_VERSION","SCHEMA_VERSION","CACHE_KEY_PREFIX","h64","initHasher","hasher","xxhash","input","toString","padStart","computeHash","content","crypto","createHash","update","digest","SerializationError","Error","message","path","name","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","String","JSON","stringify","Date","toISOString","RegExp","result","has","join","add","Array","isArray","map","v","i","sortedKeys","Object","keys","sort","pairs","k","push","delete","buildCacheKeyContext","ruleNames","freeze","toolVersion","PACKAGE_VERSION","schemaVersion","ruleRegistryHash","parserVersion","pkg","createRequire","version","platform","process","serializeCacheKeyContext","ctx","createMemoryDriver","config","cache","LRUCache","max","maxItems","maxSize","sizeCalculation","length","ttl","get","key","set","clear","getStats","entries","size","calculatedSize","getDirectoryStats","dirPath","fs","access","traverse","currentPath","file","readdir","withFileTypes","fullPath","isDirectory","stats","stat","createDiskDriver","cachePath","tReadStart","performance","now","cacache","tReadEnd","tDeserStart","deserialized","v8","deserialize","data","tDeserEnd","env","DEBUG_CACHE","stdout","write","toFixed","err","code","rm","entry","buffer","serialize","put","info","all","prune","verify","createPackedFileDriver","filePath","Map","loaded","ensureLoaded","buf","readFile","save","dir","dirname","mkdir","recursive","tmp","writeFile","rename","unlink","bulkSet","createAtomicDriver","cacheDir","catalog","catalogPromise","catalogGeneration","getFilePath","ensureDir","isJsonFile","fileName","endsWith","stripJsonExtension","slice","safeReadDir","tryReadJsonFile","tryUnlink","tryRemoveDir","force","markMissingInCatalog","awaitCatalogInitIfInFlight","ensureCatalog","localGeneration","filter","Set","syncCatalogAfterSet","syncCatalogAfterDelete","parse","writeFileAtomic","encoding","createJsonFileDriver","loadPromise","saveTimeout","savePromise","load","flush","clearTimeout","fromEntries","msg","debug","scheduleSave","setTimeout","unref","createSourceCache","driver","hash","createAstCache","l1","l2","hot","cold","error","invalidate","createResultCache","getMetadataKey","getOrCreateMetadata","metaKey","existing","newMeta","taskId","timestamp","hits","lastAccess","incrementHits","meta","updated","pendingWrites","catch","getMany","hashes","results","batch","Promise","setMany","hasMany","some","h","getWithMetadata","metadata","getManyWithMetadata","metadataUpdates","updateMetadata","updates","createConfigCache","report","createMetaCache","createPlanCache","plan","createFileCache","files","computeCompositeHash","salt","createAsyncMemoryDriver","createCacheContext","cwd","defaultBaseDir","resolve","useMemoryOnly","disk","cacheLocation","sourceDriver","memory","astL1","astL2","resultDriver","configDriver","metaDriver","planDriver","fileDriver","sources","asts","configs","metas","plans","analysisDriver","analysis","clearAllDrivers","clearType","type","getCachePath","getInfo","astL1Stats","astL2Stats","configStats","resultStats","metaStats","planStats","fileStats","analysisStats","totalSize","ast","maxEntries","location","globalCache","getCacheContext","resetGlobalCache","createRuntimeCache","options","enabled","allowDisabled","strategy"],"mappings":"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","file":"index.cjs","sourcesContent":["export const CACHE_VERSION = '1.0.0';\nexport const SCHEMA_VERSION = 1;\nexport const CACHE_KEY_PREFIX = \"v1.0.0-s1\";\n","let h64;\nimport t from 'node:crypto';\nimport r from 'xxhash-wasm';\nexport const initHasher = async ()=>{\n if (h64) return;\n let { h64: t } = await r();\n h64 = (r)=>t(r).toString(16).padStart(16, '0');\n};\nexport const computeHash = (r)=>{\n if (h64) return h64(r);\n let e = t.createHash('sha256');\n return e.update(r), e.digest('hex');\n};\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","import { createRequire as r } from 'node:module';\nimport { PACKAGE_VERSION as e, CACHE_VERSION as o } from '@ngcompass/common';\nimport { computeHash as t } from './hashing.js';\nimport { stableSerialize as n } from './utils/stable-serialize.js';\nexport function buildCacheKeyContext(s) {\n return Object.freeze({\n toolVersion: e,\n schemaVersion: o,\n ruleRegistryHash: t(n([\n ...s\n ].sort())),\n parserVersion: function() {\n try {\n let e = r(import.meta.url)('oxc-parser/package.json');\n return String(e.version ?? 'unknown');\n } catch {\n return 'unknown';\n }\n }(),\n platform: process.platform\n });\n}\nexport function serializeCacheKeyContext(r) {\n return [\n r.toolVersion,\n r.schemaVersion,\n r.parserVersion,\n r.ruleRegistryHash,\n r.platform\n ].join('::');\n}\n","import { LRUCache as e } from 'lru-cache';\nexport const createMemoryDriver = (t = {})=>{\n let r = new e({\n max: t.maxItems ?? 500,\n maxSize: t.maxSize ?? 52428800,\n sizeCalculation: (e)=>{\n try {\n return JSON.stringify(e).length;\n } catch {\n return 1000;\n }\n },\n ttl: t.ttl\n });\n return {\n get: (e)=>r.get(e),\n set: (e, t)=>{\n r.set(e, t);\n },\n has: (e)=>r.has(e),\n delete: (e)=>{\n r.delete(e);\n },\n clear: ()=>r.clear(),\n getStats: ()=>({\n entries: r.size,\n size: r.calculatedSize\n })\n };\n};\n","import t from 'node:fs/promises';\nimport e from 'node:path';\nexport async function getDirectoryStats(i) {\n let a = 0, r = 0;\n try {\n await t.access(i);\n } catch {\n return {\n entries: 0,\n size: 0\n };\n }\n async function o(i) {\n for (let s of (await t.readdir(i, {\n withFileTypes: !0\n }))){\n let n = e.join(i, s.name);\n if (s.isDirectory()) await o(n);\n else {\n a++;\n let e = await t.stat(n);\n r += e.size;\n }\n }\n }\n try {\n await o(i);\n } catch {}\n return {\n entries: a,\n size: r\n };\n}\n","import e from 'cacache';\nimport r from 'node:v8';\nimport { getDirectoryStats as t } from '../utils/fs.js';\nexport const createDiskDriver = (a)=>{\n let n = a.path;\n return {\n get: async (t)=>{\n try {\n let a = performance.now(), i = await e.get(n, t), o = performance.now(), c = performance.now(), s = r.deserialize(i.data), d = performance.now();\n return process.env.DEBUG_CACHE && process.stdout.write(`[disk-driver] read: ${(o - a).toFixed(2)}ms, deser: ${(d - c).toFixed(2)}ms, size: ${(i.data.length / 1024).toFixed(1)}KB\\n`), s;\n } catch (r) {\n if ('ENOENT' === ('object' == typeof r && null !== r && 'code' in r ? r.code : void 0)) return;\n try {\n await e.rm.entry(n, t);\n } catch {}\n return;\n }\n },\n set: async (t, a)=>{\n let i = r.serialize(a);\n await e.put(n, t, i);\n },\n has: async (r)=>{\n try {\n return !!await e.get.info(n, r);\n } catch {\n return !1;\n }\n },\n delete: async (r)=>{\n await e.rm.entry(n, r);\n },\n clear: async ()=>{\n await e.rm.all(n);\n },\n prune: async ()=>{\n await e.verify(n);\n },\n getStats: async ()=>t(n)\n };\n};\n","import a from 'node:fs/promises';\nimport t from 'node:v8';\nimport e from 'node:path';\nexport const createPackedFileDriver = (i)=>{\n let r = i.path + '.pack', s = new Map(), c = !1, n = async ()=>{\n if (!c) {\n c = !0;\n try {\n let e = await a.readFile(r);\n for (let [a, i] of t.deserialize(e))s.set(a, i);\n } catch {}\n }\n }, l = async ()=>{\n let i = e.dirname(r);\n await a.mkdir(i, {\n recursive: !0\n });\n let c = t.serialize(s), n = r + '.tmp';\n await a.writeFile(n, c), await a.rename(n, r);\n };\n return {\n get: async (a)=>(await n(), s.get(a)),\n set: async (a, t)=>{\n await n(), s.set(a, t), await l();\n },\n has: async (a)=>(await n(), s.has(a)),\n delete: async (a)=>{\n await n(), s.delete(a), await l();\n },\n clear: async ()=>{\n s.clear(), c = !0;\n try {\n await a.unlink(r);\n } catch {}\n try {\n await a.unlink(r + '.tmp');\n } catch {}\n },\n getStats: async ()=>{\n await n();\n let t = 0;\n try {\n t = (await a.stat(r)).size;\n } catch {}\n return {\n entries: s.size,\n size: t\n };\n },\n bulkSet: async (a)=>{\n for (let [t, e] of (await n(), a))s.set(t, e);\n await l();\n }\n };\n};\n","import a from 'write-file-atomic';\nimport t from 'node:fs/promises';\nimport e from 'node:path';\nimport { getDirectoryStats as r } from '../utils/fs.js';\nexport const createAtomicDriver = (i)=>{\n let n = i.path, c = null, s = null, y = 0, w = (a)=>e.join(n, `${a}.json`), l = async ()=>{\n try {\n await t.mkdir(n, {\n recursive: !0\n });\n } catch {}\n }, o = (a)=>a.endsWith('.json'), u = (a)=>a.slice(0, -5), f = async (a)=>{\n try {\n return await t.readdir(a);\n } catch {\n return [];\n }\n }, d = async (a)=>{\n try {\n return await t.readFile(a, 'utf-8');\n } catch {\n return;\n }\n }, m = async (a)=>{\n try {\n await t.unlink(a);\n } catch {}\n }, h = async (a)=>{\n try {\n await t.rm(a, {\n recursive: !0,\n force: !0\n });\n } catch {}\n }, p = (a)=>{\n c && c.delete(a);\n }, S = async ()=>{\n s && await s;\n }, v = async ()=>{\n if (!c) {\n if (!s) {\n let a = y;\n s = (async ()=>{\n try {\n await l();\n let t = (await f(n)).filter(o).map(u);\n y === a && (c = new Set(t));\n } finally{\n s = null, c || (c = new Set());\n }\n })();\n }\n await s;\n }\n }, g = async (a)=>{\n await S(), c && c.add(a);\n }, j = async (a)=>{\n await S(), c && c.delete(a);\n };\n return {\n get: async (a)=>{\n if (c && !c.has(a)) return;\n let t = w(a), e = await d(t);\n if (void 0 === e) return void p(a);\n try {\n return JSON.parse(e);\n } catch {\n p(a);\n return;\n }\n },\n set: async (t, e)=>{\n await l();\n let r = w(t);\n await a(r, JSON.stringify(e), {\n encoding: 'utf-8'\n }), (c || s) && await g(t);\n },\n has: async (a)=>(await v(), c.has(a)),\n delete: async (a)=>{\n await m(w(a)), (c || s) && await j(a);\n },\n clear: async ()=>{\n await h(n), await l(), y += 1, c = new Set();\n },\n getStats: async ()=>r(n)\n };\n};\n","import a from 'node:fs/promises';\nimport e from 'node:path';\nimport t from 'write-file-atomic';\nimport { debug as i } from '@ngcompass/common';\nexport const createJsonFileDriver = (n)=>{\n let r = e.join(n.path, 'meta.json'), l = null, s = null, c = null, o = null, m = async ()=>{\n if (!l) return s || (s = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = await a.readFile(r, 'utf-8'), t = JSON.parse(e);\n l = t && 'object' == typeof t ? new Map(Object.entries(t)) : new Map();\n } catch {\n l = new Map();\n } finally{\n s = null;\n }\n })());\n }, u = async ()=>{\n c && (clearTimeout(c), c = null), l && (o && await o, o = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = Object.fromEntries(l);\n await t(r, JSON.stringify(e));\n } catch (e) {\n let a = e instanceof Error ? e.message : String(e);\n i('cache', `Failed to flush metadata cache to ${r}: ${a}`);\n } finally{\n o = null;\n }\n })(), await o);\n }, p = ()=>{\n c || (c = setTimeout(()=>{\n c = null, u();\n }, 2000)).unref();\n };\n return {\n get: async (a)=>(await m(), l.get(a)),\n set: async (a, e)=>{\n await m(), l.set(a, e), p();\n },\n has: async (a)=>(await m(), l.has(a)),\n delete: async (a)=>{\n await m(), l.delete(a) && p();\n },\n clear: async ()=>{\n c && (clearTimeout(c), c = null), l = new Map();\n try {\n await a.unlink(r);\n } catch {}\n },\n getStats: async ()=>(await m(), {\n entries: l.size,\n size: 0\n }),\n flush: u\n };\n};\n","export const createSourceCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n has: (t)=>e.has(t)\n });\n","import { debug as e } from '@ngcompass/common';\nexport const createAstCache = (t, a)=>({\n get: async (r)=>{\n let s = t.get(r);\n if (s) return s;\n try {\n let e = await a.get(r);\n if (e) return t.set(r, e), e;\n } catch (t) {\n e('cache', `Failed to read AST from L2 for ${r}: ${t instanceof Error ? t.message : String(t)}`);\n }\n },\n set: async (e, r)=>{\n t.set(e, r), await a.set(e, r);\n },\n invalidate: async (e)=>{\n t.delete(e), await a.delete(e);\n }\n });\n","import { debug as t } from '@ngcompass/common';\nexport const createResultCache = (e)=>{\n let a = (t)=>`${t}.meta`, s = async (t)=>{\n let s = a(t), i = await e.get(s);\n if (i) return i;\n let n = {\n taskId: t,\n timestamp: Date.now(),\n hits: 0,\n lastAccess: Date.now()\n };\n return await e.set(s, n), n;\n }, i = async (t)=>{\n let i = await s(t), n = {\n ...i,\n hits: i.hits + 1,\n lastAccess: Date.now()\n };\n await e.set(a(t), n);\n }, n = new Map();\n return {\n get: async (a)=>{\n if (n.has(a)) return n.get(a);\n let s = await e.get(a);\n return void 0 !== s && i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }), s;\n },\n set: async (t, a)=>{\n await e.set(t, a), await s(t);\n },\n has: async (t)=>!!n.has(t) || e.has(t),\n delete: async (s)=>{\n n.delete(s), await e.delete(s);\n try {\n await e.delete(a(s));\n } catch (e) {\n t('cache', `Failed to delete metadata for ${s}: ${e instanceof Error ? e.message : String(e)}`);\n }\n },\n getMany: async (a)=>{\n if (0 === a.length) return new Map();\n let s = new Map();\n for(let l = 0; l < a.length; l += 200){\n let r = a.slice(l, l + 200);\n await Promise.all(r.map(async (a)=>{\n if (n.has(a)) return void s.set(a, n.get(a));\n let l = await e.get(a);\n void 0 !== l && (s.set(a, l), i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }));\n }));\n }\n return s;\n },\n setMany: async (e)=>{\n if (0 !== e.length) {\n for (let [t, a] of e)n.set(t, a);\n t('cache', `Buffered ${e.length} results (total pending: ${n.size})`);\n }\n },\n hasMany: async (t)=>{\n if (0 === t.length) return new Set();\n if (!t.some((t)=>n.has(t))) try {\n let t = await e.getStats();\n if (0 === t.entries) return new Set();\n } catch {\n return new Set();\n }\n let a = new Set();\n for(let s = 0; s < t.length; s += 200){\n let i = t.slice(s, s + 200);\n await Promise.all(i.map(async (t)=>{\n n.has(t) ? a.add(t) : await e.has(t) && a.add(t);\n }));\n }\n return a;\n },\n getWithMetadata: async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 === a) return;\n let l = await s(t);\n return await i(t), {\n result: a,\n metadata: l\n };\n },\n getManyWithMetadata: async (t)=>{\n if (0 === t.length) return new Map();\n let i = new Map(), l = [];\n for(let a = 0; a < t.length; a += 200){\n let r = t.slice(a, a + 200);\n await Promise.all(r.map(async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 !== a) {\n let e = await s(t), n = {\n ...e,\n hits: e.hits + 1,\n lastAccess: Date.now()\n };\n i.set(t, {\n result: a,\n metadata: n\n }), l.push([\n t,\n n\n ]);\n }\n }));\n }\n if (l.length > 0) for(let t = 0; t < l.length; t += 200){\n let s = l.slice(t, t + 200);\n await Promise.all(s.map(async ([t, s])=>{\n await e.set(a(t), s);\n }));\n }\n return i;\n },\n updateMetadata: async (t, i)=>{\n let n = {\n ...await e.get(a(t)) ?? await s(t),\n ...i\n };\n await e.set(a(t), n);\n },\n flush: async ()=>{\n if (0 === n.size) return;\n let s = [\n ...n.entries()\n ];\n n.clear();\n let i = Date.now();\n if (e.bulkSet) {\n let t = [];\n for (let [e, n] of s)t.push([\n e,\n n\n ]), t.push([\n a(e),\n {\n taskId: e,\n timestamp: i,\n hits: 0,\n lastAccess: i\n }\n ]);\n await e.bulkSet(t);\n } else for(let t = 0; t < s.length; t += 200){\n let n = s.slice(t, t + 200);\n await Promise.all(n.map(([t, a])=>e.set(t, a))), await Promise.all(n.map(([t])=>e.set(a(t), {\n taskId: t,\n timestamp: i,\n hits: 0,\n lastAccess: i\n })));\n }\n t('cache', `Flushed ${s.length} buffered results to disk`);\n }\n };\n};\n","export const createConfigCache = (e)=>({\n get: async (t)=>e.get(t),\n set: async (t, a)=>{\n await e.set(t, a);\n }\n });\n","export const createMetaCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n delete: (t)=>e.delete(t),\n flush: async ()=>{\n 'function' == typeof e.flush && await e.flush();\n }\n });\n","export const createPlanCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a)=>e.set(t, a),\n delete: (t)=>e.delete(t)\n });\n","export const createFileCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a, s)=>e.set(t, {\n files: a,\n stats: s,\n timestamp: Date.now()\n })\n });\n","import t from 'node:crypto';\nimport { CACHE_KEY_PREFIX as e } from '../constants.js';\nexport const computeCompositeHash = (o, r = e)=>{\n let s = t.createHash('sha256');\n return s.update(o), r && s.update(r), s.digest('hex');\n};\n","import e from 'path';\nimport { createMemoryDriver as t } from './drivers/memory.js';\nimport { createDiskDriver as a } from './drivers/disk.js';\nimport { createPackedFileDriver as s } from './drivers/packed.js';\nimport { createAtomicDriver as r } from './drivers/atomic.js';\nimport { createJsonFileDriver as i } from './drivers/json-file.js';\nimport { createSourceCache as c } from './services/source-cache.js';\nimport { createAstCache as m } from './services/ast-cache.js';\nimport { createResultCache as o } from './services/result-cache.js';\nimport { createConfigCache as l } from './services/config-cache.js';\nimport { createMetaCache as n } from './services/meta-cache.js';\nimport { createPlanCache as p } from './services/plan-cache.js';\nimport { createFileCache as y } from './services/file-cache.js';\nimport { computeCompositeHash as h } from './services/hashing.js';\nimport { CACHE_VERSION as f } from './constants.js';\nlet createAsyncMemoryDriver = (e, a)=>{\n let s = t({\n maxItems: e,\n ttl: a\n });\n return {\n get: async (e)=>s.get(e),\n set: async (e, t)=>{\n s.set(e, t);\n },\n has: async (e)=>s.has(e),\n delete: async (e)=>{\n s.delete(e);\n },\n clear: async ()=>{\n s.clear();\n },\n getStats: async ()=>s.getStats()\n };\n};\nexport const createCacheContext = (g = {})=>{\n let d = process.cwd(), v = e.resolve(d, 'node_modules', '.cache', 'ngcompass'), j = !g.disk?.path, u = g.disk?.path ?? '[memory]', k = t({\n maxItems: g.memory?.maxItems\n }), w = t({\n maxItems: 200\n }), x = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'ast'),\n ttl: g.disk?.ttl\n }), z = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : s({\n path: e.join(g.disk?.path ?? v, 'results')\n }), C = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : r({\n path: e.join(g.disk?.path ?? v, 'config')\n }), I = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : i({\n path: e.join(g.disk?.path ?? v, 'meta')\n }), S = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'plans'),\n ttl: g.disk?.ttl\n }), b = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'files'),\n ttl: g.disk?.ttl\n }), A = c(k), D = m(w, x), M = o(z), P = l(C), E = n(I), G = p(S), H = y(b), T = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'analysis'),\n ttl: g.disk?.ttl\n }), _ = o(T), q = async ()=>{\n k.clear(), w.clear(), await x.clear(), await z.clear(), await C.clear(), await I.clear(), await S.clear(), await b.clear(), await T.clear();\n };\n return {\n sources: A,\n asts: D,\n results: M,\n configs: P,\n metas: E,\n plans: G,\n files: H,\n analysis: _,\n computeHash: h,\n prune: async ()=>{\n 'prune' in x && 'function' == typeof x.prune && await x.prune();\n },\n clear: q,\n clearType: async (e)=>{\n switch(e){\n case 'ast':\n w.clear(), await x.clear();\n break;\n case 'config':\n await C.clear();\n break;\n case 'results':\n await z.clear(), await T.clear();\n break;\n case 'all':\n await q();\n }\n },\n flush: async ()=>{\n await Promise.all([\n M.flush(),\n _.flush(),\n E.flush()\n ]);\n },\n getCachePath: ()=>u,\n getInfo: async ()=>{\n let e = w.getStats(), [t, a, s, r, i, c, m] = await Promise.all([\n x.getStats(),\n C.getStats(),\n z.getStats(),\n I.getStats(),\n S.getStats(),\n b.getStats(),\n T.getStats()\n ]), o = e.size + t.size + a.size + s.size + r.size + i.size + c.size + m.size;\n return {\n ast: {\n l1: {\n entries: e.entries,\n maxEntries: 200,\n size: e.size\n },\n l2: {\n entries: t.entries,\n size: t.size\n }\n },\n config: {\n entries: a.entries,\n size: a.size\n },\n results: {\n entries: s.entries,\n size: s.size\n },\n totalSize: o,\n location: u,\n version: f\n };\n }\n };\n};\nlet globalCache = null;\nexport const getCacheContext = (e)=>(globalCache || (globalCache = createCacheContext(e)), globalCache);\nexport const resetGlobalCache = ()=>{\n globalCache = null;\n};\n","import e from 'node:path';\nimport { createCacheContext as t } from './context.js';\nexport function createRuntimeCache(c, o, a = {}) {\n if (!c.cache.enabled && !a.allowDisabled) return;\n let r = e.resolve(o, c.cache.location);\n return t({\n memory: 'memory' === c.cache.strategy ? {\n ttl: c.cache.ttl\n } : void 0,\n disk: 'memory' === c.cache.strategy ? void 0 : {\n path: r,\n ttl: c.cache.ttl\n }\n });\n}\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -108,10 +108,11 @@ interface PlanCache {
|
|
|
108
108
|
interface FileCacheEntry {
|
|
109
109
|
files: string[];
|
|
110
110
|
timestamp: number;
|
|
111
|
+
stats?: unknown;
|
|
111
112
|
}
|
|
112
113
|
interface FileCache {
|
|
113
114
|
get: (key: string) => Promise<FileCacheEntry | undefined>;
|
|
114
|
-
set: (key: string, files: string[]) => Promise<void>;
|
|
115
|
+
set: (key: string, files: string[], stats?: unknown) => Promise<void>;
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
interface CacheInfo {
|
|
@@ -333,4 +334,4 @@ declare function createRuntimeCache(config: NormalizedAnalyzerConfig, cwd: strin
|
|
|
333
334
|
allowDisabled?: boolean;
|
|
334
335
|
}): CacheContext | undefined;
|
|
335
336
|
|
|
336
|
-
export { type AstCache, CACHE_KEY_PREFIX, CACHE_VERSION, type CacheConfig, type CacheContext, type CacheInfo, type CacheKeyContext, type ConfigCache, type FileCache, type FileMeta, type MetaCache, type PlanCache, type ResultCache, SCHEMA_VERSION, SerializationError, type SourceCache, buildCacheKeyContext, computeHash, createCacheContext, createRuntimeCache, getCacheContext, initHasher, resetGlobalCache, serializeCacheKeyContext, stableSerialize };
|
|
337
|
+
export { type AstCache, CACHE_KEY_PREFIX, CACHE_VERSION, type CacheConfig, type CacheContext, type CacheInfo, type CacheKeyContext, type ConfigCache, type FileCache, type FileCacheEntry, type FileMeta, type MetaCache, type PlanCache, type ResultCache, SCHEMA_VERSION, SerializationError, type SourceCache, buildCacheKeyContext, computeHash, createCacheContext, createRuntimeCache, getCacheContext, initHasher, resetGlobalCache, serializeCacheKeyContext, stableSerialize };
|
package/dist/index.d.ts
CHANGED
|
@@ -108,10 +108,11 @@ interface PlanCache {
|
|
|
108
108
|
interface FileCacheEntry {
|
|
109
109
|
files: string[];
|
|
110
110
|
timestamp: number;
|
|
111
|
+
stats?: unknown;
|
|
111
112
|
}
|
|
112
113
|
interface FileCache {
|
|
113
114
|
get: (key: string) => Promise<FileCacheEntry | undefined>;
|
|
114
|
-
set: (key: string, files: string[]) => Promise<void>;
|
|
115
|
+
set: (key: string, files: string[], stats?: unknown) => Promise<void>;
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
interface CacheInfo {
|
|
@@ -333,4 +334,4 @@ declare function createRuntimeCache(config: NormalizedAnalyzerConfig, cwd: strin
|
|
|
333
334
|
allowDisabled?: boolean;
|
|
334
335
|
}): CacheContext | undefined;
|
|
335
336
|
|
|
336
|
-
export { type AstCache, CACHE_KEY_PREFIX, CACHE_VERSION, type CacheConfig, type CacheContext, type CacheInfo, type CacheKeyContext, type ConfigCache, type FileCache, type FileMeta, type MetaCache, type PlanCache, type ResultCache, SCHEMA_VERSION, SerializationError, type SourceCache, buildCacheKeyContext, computeHash, createCacheContext, createRuntimeCache, getCacheContext, initHasher, resetGlobalCache, serializeCacheKeyContext, stableSerialize };
|
|
337
|
+
export { type AstCache, CACHE_KEY_PREFIX, CACHE_VERSION, type CacheConfig, type CacheContext, type CacheInfo, type CacheKeyContext, type ConfigCache, type FileCache, type FileCacheEntry, type FileMeta, type MetaCache, type PlanCache, type ResultCache, SCHEMA_VERSION, SerializationError, type SourceCache, buildCacheKeyContext, computeHash, createCacheContext, createRuntimeCache, getCacheContext, initHasher, resetGlobalCache, serializeCacheKeyContext, stableSerialize };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import mt from'crypto';import ht from'xxhash-wasm';import {createRequire}from'module';import {CACHE_VERSION,PACKAGE_VERSION,debug}from'@ngcompass/common';import y from'path';import {LRUCache}from'lru-cache';import S from'cacache';import q from'v8';import x from'fs/promises';import St from'write-file-atomic';var W="1.0.0",jt=1,B="v1.0.0-s1";var M,ft=async()=>{if(M)return;let{h64:t}=await ht();M=a=>t(a).toString(16).padStart(16,"0");},J=t=>{if(M)return M(t);let a=mt.createHash("sha256");return a.update(t),a.digest("hex")};var g=class extends Error{path;constructor(a,e){super(a),this.path=e,this.name="SerializationError";}};function k(t,a=[],e=new WeakSet){if(t===null)return "null";if(t===void 0)throw new g("undefined is not a valid hash input",a);switch(typeof t){case "boolean":return t?"true":"false";case "number":if(!Number.isFinite(t))throw new g(`Non-finite number (${String(t)}) is not a valid hash input`,a);return String(t);case "string":return JSON.stringify(t);case "function":throw new g("Functions are not valid hash inputs",a)}if(t instanceof Date)return JSON.stringify(t.toISOString());if(t instanceof RegExp)return JSON.stringify(t.toString());if(typeof t=="object"){let
|
|
2
|
-
`),i}catch(
|
|
1
|
+
import mt from'crypto';import ht from'xxhash-wasm';import {createRequire}from'module';import {CACHE_VERSION,PACKAGE_VERSION,debug}from'@ngcompass/common';import y from'path';import {LRUCache}from'lru-cache';import S from'cacache';import q from'v8';import x from'fs/promises';import St from'write-file-atomic';var W="1.0.0",jt=1,B="v1.0.0-s1";var M,ft=async()=>{if(M)return;let{h64:t}=await ht();M=a=>t(a).toString(16).padStart(16,"0");},J=t=>{if(M)return M(t);let a=mt.createHash("sha256");return a.update(t),a.digest("hex")};var g=class extends Error{path;constructor(a,e){super(a),this.path=e,this.name="SerializationError";}};function k(t,a=[],e=new WeakSet){if(t===null)return "null";if(t===void 0)throw new g("undefined is not a valid hash input",a);switch(typeof t){case "boolean":return t?"true":"false";case "number":if(!Number.isFinite(t))throw new g(`Non-finite number (${String(t)}) is not a valid hash input`,a);return String(t);case "string":return JSON.stringify(t);case "function":throw new g("Functions are not valid hash inputs",a)}if(t instanceof Date)return JSON.stringify(t.toISOString());if(t instanceof RegExp)return JSON.stringify(t.toString());if(typeof t=="object"){let n;if(e.has(t))throw new g(`Circular reference detected at path: ${a.join(".")||"(root)"}`,a);if(e.add(t),Array.isArray(t))n="["+t.map((o,r)=>k(o,[...a,String(r)],e)).join(",")+"]";else {let o=Object.keys(t).sort(),r=[];for(let s of o){let i=t[s];i!==void 0&&r.push(JSON.stringify(s)+":"+k(i,[...a,s],e));}n="{"+r.join(",")+"}";}return e.delete(t),n}return JSON.stringify(t)}function Pt(t){return Object.freeze({toolVersion:PACKAGE_VERSION,schemaVersion:CACHE_VERSION,ruleRegistryHash:J(k([...t].sort())),parserVersion:(function(){try{let a=createRequire(import.meta.url)("oxc-parser/package.json");return String(a.version??"unknown")}catch{return "unknown"}})(),platform:process.platform})}function Rt(t){return [t.toolVersion,t.schemaVersion,t.parserVersion,t.ruleRegistryHash,t.platform].join("::")}var A=(t={})=>{let a=new LRUCache({max:t.maxItems??500,maxSize:t.maxSize??52428800,sizeCalculation:e=>{try{return JSON.stringify(e).length}catch{return 1e3}},ttl:t.ttl});return {get:e=>a.get(e),set:(e,n)=>{a.set(e,n);},has:e=>a.has(e),delete:e=>{a.delete(e);},clear:()=>a.clear(),getStats:()=>({entries:a.size,size:a.calculatedSize})}};async function F(t){let a=0,e=0;try{await x.access(t);}catch{return {entries:0,size:0}}async function n(o){for(let r of await x.readdir(o,{withFileTypes:true})){let s=y.join(o,r.name);if(r.isDirectory())await n(s);else {a++;let i=await x.stat(s);e+=i.size;}}}try{await n(t);}catch{}return {entries:a,size:e}}var v=t=>{let a=t.path;return {get:async e=>{try{let n=performance.now(),o=await S.get(a,e),r=performance.now(),s=performance.now(),i=q.deserialize(o.data),l=performance.now();return process.env.DEBUG_CACHE&&process.stdout.write(`[disk-driver] read: ${(r-n).toFixed(2)}ms, deser: ${(l-s).toFixed(2)}ms, size: ${(o.data.length/1024).toFixed(1)}KB
|
|
2
|
+
`),i}catch(n){if((typeof n=="object"&&n!==null&&"code"in n?n.code:void 0)==="ENOENT")return;try{await S.rm.entry(a,e);}catch{}return}},set:async(e,n)=>{let o=q.serialize(n);await S.put(a,e,o);},has:async e=>{try{return !!await S.get.info(a,e)}catch{return false}},delete:async e=>{await S.rm.entry(a,e);},clear:async()=>{await S.rm.all(a);},prune:async()=>{await S.verify(a);},getStats:async()=>F(a)}};var U=t=>{let a=t.path+".pack",e=new Map,n=false,o=async()=>{if(!n){n=true;try{let s=await x.readFile(a);for(let[i,l]of q.deserialize(s))e.set(i,l);}catch{}}},r=async()=>{let s=y.dirname(a);await x.mkdir(s,{recursive:true});let i=q.serialize(e),l=a+".tmp";await x.writeFile(l,i),await x.rename(l,a);};return {get:async s=>(await o(),e.get(s)),set:async(s,i)=>{await o(),e.set(s,i),await r();},has:async s=>(await o(),e.has(s)),delete:async s=>{await o(),e.delete(s),await r();},clear:async()=>{e.clear(),n=true;try{await x.unlink(a);}catch{}try{await x.unlink(a+".tmp");}catch{}},getStats:async()=>{await o();let s=0;try{s=(await x.stat(a)).size;}catch{}return {entries:e.size,size:s}},bulkSet:async s=>{for(let[i,l]of(await o(),s))e.set(i,l);await r();}}};var X=t=>{let a=t.path,e=null,n=null,o=0,r=m=>y.join(a,`${m}.json`),s=async()=>{try{await x.mkdir(a,{recursive:!0});}catch{}},i=m=>m.endsWith(".json"),l=m=>m.slice(0,-5),c=async m=>{try{return await x.readdir(m)}catch{return []}},h=async m=>{try{return await x.readFile(m,"utf-8")}catch{return}},f=async m=>{try{await x.unlink(m);}catch{}},u=async m=>{try{await x.rm(m,{recursive:!0,force:!0});}catch{}},w=m=>{e&&e.delete(m);},j=async()=>{n&&await n;},D=async()=>{if(!e){if(!n){let m=o;n=(async()=>{try{await s();let d=(await c(a)).filter(i).map(l);o===m&&(e=new Set(d));}finally{n=null,e||(e=new Set);}})();}await n;}},$=async m=>{await j(),e&&e.add(m);},I=async m=>{await j(),e&&e.delete(m);};return {get:async m=>{if(e&&!e.has(m))return;let d=r(m),p=await h(d);if(p===void 0)return void w(m);try{return JSON.parse(p)}catch{w(m);return}},set:async(m,d)=>{await s();let p=r(m);await St(p,JSON.stringify(d),{encoding:"utf-8"}),(e||n)&&await $(m);},has:async m=>(await D(),e.has(m)),delete:async m=>{await f(r(m)),(e||n)&&await I(m);},clear:async()=>{await u(a),await s(),o+=1,e=new Set;},getStats:async()=>F(a)}};var Y=t=>{let a=y.join(t.path,"meta.json"),e=null,n=null,o=null,r=null,s=async()=>{if(!e)return n||(n=(async()=>{try{await x.mkdir(t.path,{recursive:!0});let c=await x.readFile(a,"utf-8"),h=JSON.parse(c);e=h&&typeof h=="object"?new Map(Object.entries(h)):new Map;}catch{e=new Map;}finally{n=null;}})())},i=async()=>{o&&(clearTimeout(o),o=null),e&&(r&&await r,r=(async()=>{try{await x.mkdir(t.path,{recursive:!0});let c=Object.fromEntries(e);await St(a,JSON.stringify(c));}catch(c){let h=c instanceof Error?c.message:String(c);debug("cache",`Failed to flush metadata cache to ${a}: ${h}`);}finally{r=null;}})(),await r);},l=()=>{o||(o=setTimeout(()=>{o=null,i();},2e3)).unref();};return {get:async c=>(await s(),e.get(c)),set:async(c,h)=>{await s(),e.set(c,h),l();},has:async c=>(await s(),e.has(c)),delete:async c=>{await s(),e.delete(c)&&l();},clear:async()=>{o&&(clearTimeout(o),o=null),e=new Map;try{await x.unlink(a);}catch{}},getStats:async()=>(await s(),{entries:e.size,size:0}),flush:i}};var Q=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),has:a=>t.has(a)});var Z=(t,a)=>({get:async e=>{let n=t.get(e);if(n)return n;try{let o=await a.get(e);if(o)return t.set(e,o),o}catch(o){debug("cache",`Failed to read AST from L2 for ${e}: ${o instanceof Error?o.message:String(o)}`);}},set:async(e,n)=>{t.set(e,n),await a.set(e,n);},invalidate:async e=>{t.delete(e),await a.delete(e);}});var V=t=>{let a=r=>`${r}.meta`,e=async r=>{let s=a(r),i=await t.get(s);if(i)return i;let l={taskId:r,timestamp:Date.now(),hits:0,lastAccess:Date.now()};return await t.set(s,l),l},n=async r=>{let s=await e(r),i={...s,hits:s.hits+1,lastAccess:Date.now()};await t.set(a(r),i);},o=new Map;return {get:async r=>{if(o.has(r))return o.get(r);let s=await t.get(r);return s!==void 0&&n(r).catch(i=>{debug("cache",`incrementHits failed for ${r}: ${i instanceof Error?i.message:String(i)}`);}),s},set:async(r,s)=>{await t.set(r,s),await e(r);},has:async r=>!!o.has(r)||t.has(r),delete:async r=>{o.delete(r),await t.delete(r);try{await t.delete(a(r));}catch(s){debug("cache",`Failed to delete metadata for ${r}: ${s instanceof Error?s.message:String(s)}`);}},getMany:async r=>{if(r.length===0)return new Map;let s=new Map;for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(async c=>{if(o.has(c))return void s.set(c,o.get(c));let h=await t.get(c);h!==void 0&&(s.set(c,h),n(c).catch(f=>{debug("cache",`incrementHits failed for ${c}: ${f instanceof Error?f.message:String(f)}`);}));}));}return s},setMany:async r=>{if(r.length!==0){for(let[s,i]of r)o.set(s,i);debug("cache",`Buffered ${r.length} results (total pending: ${o.size})`);}},hasMany:async r=>{if(r.length===0)return new Set;if(!r.some(i=>o.has(i)))try{if((await t.getStats()).entries===0)return new Set}catch{return new Set}let s=new Set;for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(async c=>{(o.has(c)||await t.has(c))&&s.add(c);}));}return s},getWithMetadata:async r=>{let s=o.has(r)?o.get(r):await t.get(r);if(s===void 0)return;let i=await e(r);return await n(r),{result:s,metadata:i}},getManyWithMetadata:async r=>{if(r.length===0)return new Map;let s=new Map,i=[];for(let l=0;l<r.length;l+=200){let c=r.slice(l,l+200);await Promise.all(c.map(async h=>{let f=o.has(h)?o.get(h):await t.get(h);if(f!==void 0){let u=await e(h),w={...u,hits:u.hits+1,lastAccess:Date.now()};s.set(h,{result:f,metadata:w}),i.push([h,w]);}}));}if(i.length>0)for(let l=0;l<i.length;l+=200){let c=i.slice(l,l+200);await Promise.all(c.map(async([h,f])=>{await t.set(a(h),f);}));}return s},updateMetadata:async(r,s)=>{let i={...await t.get(a(r))??await e(r),...s};await t.set(a(r),i);},flush:async()=>{if(o.size===0)return;let r=[...o.entries()];o.clear();let s=Date.now();if(t.bulkSet){let i=[];for(let[l,c]of r)i.push([l,c]),i.push([a(l),{taskId:l,timestamp:s,hits:0,lastAccess:s}]);await t.bulkSet(i);}else for(let i=0;i<r.length;i+=200){let l=r.slice(i,i+200);await Promise.all(l.map(([c,h])=>t.set(c,h))),await Promise.all(l.map(([c])=>t.set(a(c),{taskId:c,timestamp:s,hits:0,lastAccess:s})));}debug("cache",`Flushed ${r.length} buffered results to disk`);}}};var tt=t=>({get:async a=>t.get(a),set:async(a,e)=>{await t.set(a,e);}});var et=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),delete:a=>t.delete(a),flush:async()=>{typeof t.flush=="function"&&await t.flush();}});var at=t=>({get:a=>t.get(a),set:(a,e)=>t.set(a,e),delete:a=>t.delete(a)});var rt=t=>({get:a=>t.get(a),set:(a,e,n)=>t.set(a,{files:e,stats:n,timestamp:Date.now()})});var st=(t,a=B)=>{let e=mt.createHash("sha256");return e.update(t),a&&e.update(a),e.digest("hex")};var C=(t,a)=>{let e=A({maxItems:t,ttl:a});return {get:async n=>e.get(n),set:async(n,o)=>{e.set(n,o);},has:async n=>e.has(n),delete:async n=>{e.delete(n);},clear:async()=>{e.clear();},getStats:async()=>e.getStats()}},T=(t={})=>{let a=process.cwd(),e=y.resolve(a,"node_modules",".cache","ngcompass"),n=!t.disk?.path,o=t.disk?.path??"[memory]",r=A({maxItems:t.memory?.maxItems}),s=A({maxItems:200}),i=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y.join(t.disk?.path??e,"ast"),ttl:t.disk?.ttl}),l=n?C(t.memory?.maxItems,t.memory?.ttl):U({path:y.join(t.disk?.path??e,"results")}),c=n?C(t.memory?.maxItems,t.memory?.ttl):X({path:y.join(t.disk?.path??e,"config")}),h=n?C(t.memory?.maxItems,t.memory?.ttl):Y({path:y.join(t.disk?.path??e,"meta")}),f=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y.join(t.disk?.path??e,"plans"),ttl:t.disk?.ttl}),u=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y.join(t.disk?.path??e,"files"),ttl:t.disk?.ttl}),w=Q(r),j=Z(s,i),D=V(l),$=tt(c),I=et(h),m=at(f),d=rt(u),p=n?C(t.memory?.maxItems,t.memory?.ttl):v({path:y.join(t.disk?.path??e,"analysis"),ttl:t.disk?.ttl}),K=V(p),G=async()=>{r.clear(),s.clear(),await i.clear(),await l.clear(),await c.clear(),await h.clear(),await f.clear(),await u.clear(),await p.clear();};return {sources:w,asts:j,results:D,configs:$,metas:I,plans:m,files:d,analysis:K,computeHash:st,prune:async()=>{"prune"in i&&typeof i.prune=="function"&&await i.prune();},clear:G,clearType:async z=>{switch(z){case "ast":s.clear(),await i.clear();break;case "config":await c.clear();break;case "results":await l.clear(),await p.clear();break;case "all":await G();}},flush:async()=>{await Promise.all([D.flush(),K.flush(),I.flush()]);},getCachePath:()=>o,getInfo:async()=>{let z=s.getStats(),[N,P,R,it,nt,ot,ct]=await Promise.all([i.getStats(),c.getStats(),l.getStats(),h.getStats(),f.getStats(),u.getStats(),p.getStats()]),lt=z.size+N.size+P.size+R.size+it.size+nt.size+ot.size+ct.size;return {ast:{l1:{entries:z.entries,maxEntries:200,size:z.size},l2:{entries:N.entries,size:N.size}},config:{entries:P.entries,size:P.size},results:{entries:R.entries,size:R.size},totalSize:lt,location:o,version:W}}}},O=null,Ne=t=>(O||(O=T(t)),O),Pe=()=>{O=null;};function Ve(t,a,e={}){if(!t.cache.enabled&&!e.allowDisabled)return;let n=y.resolve(a,t.cache.location);return T({memory:t.cache.strategy==="memory"?{ttl:t.cache.ttl}:void 0,disk:t.cache.strategy==="memory"?void 0:{path:n,ttl:t.cache.ttl}})}export{B as CACHE_KEY_PREFIX,W as CACHE_VERSION,jt as SCHEMA_VERSION,g as SerializationError,Pt as buildCacheKeyContext,J as computeHash,T as createCacheContext,Ve as createRuntimeCache,Ne as getCacheContext,ft as initHasher,Pe as resetGlobalCache,Rt as serializeCacheKeyContext,k as stableSerialize};//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts","../src/hashing.ts","../src/utils/stable-serialize.ts","../src/key-context.ts","../src/drivers/memory.ts","../src/utils/fs.ts","../src/drivers/disk.ts","../src/drivers/packed.ts","../src/drivers/atomic.ts","../src/drivers/json-file.ts","../src/services/source-cache.ts","../src/services/ast-cache.ts","../src/services/result-cache.ts","../src/services/config-cache.ts","../src/services/meta-cache.ts","../src/services/plan-cache.ts","../src/services/file-cache.ts","../src/services/hashing.ts","../src/context.ts","../src/runtime-cache.ts"],"names":["CACHE_VERSION","SCHEMA_VERSION","CACHE_KEY_PREFIX","h64","initHasher","hasher","xxhash","input","toString","padStart","computeHash","content","crypto","createHash","update","digest","SerializationError","Error","message","path","name","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","String","JSON","stringify","Date","toISOString","RegExp","result","has","join","add","Array","isArray","map","v","i","sortedKeys","Object","keys","sort","pairs","k","push","delete","buildCacheKeyContext","ruleNames","freeze","toolVersion","PACKAGE_VERSION","schemaVersion","ruleRegistryHash","parserVersion","pkg","createRequire","url","version","platform","process","serializeCacheKeyContext","ctx","createMemoryDriver","config","cache","LRUCache","max","maxItems","maxSize","sizeCalculation","length","ttl","get","key","set","clear","getStats","entries","size","calculatedSize","getDirectoryStats","dirPath","fs","access","traverse","currentPath","file","readdir","withFileTypes","fullPath","isDirectory","stats","stat","createDiskDriver","cachePath","tReadStart","performance","now","cacache","tReadEnd","tDeserStart","deserialized","v8","deserialize","data","tDeserEnd","env","DEBUG_CACHE","stdout","write","toFixed","err","code","rm","entry","buffer","serialize","put","info","all","prune","verify","createPackedFileDriver","filePath","Map","loaded","ensureLoaded","buf","readFile","save","dir","dirname","mkdir","recursive","tmp","writeFile","rename","unlink","bulkSet","createAtomicDriver","cacheDir","catalog","catalogPromise","catalogGeneration","getFilePath","ensureDir","isJsonFile","fileName","endsWith","stripJsonExtension","slice","safeReadDir","tryReadJsonFile","tryUnlink","tryRemoveDir","force","markMissingInCatalog","awaitCatalogInitIfInFlight","ensureCatalog","localGeneration","filter","Set","syncCatalogAfterSet","syncCatalogAfterDelete","parse","writeFileAtomic","encoding","createJsonFileDriver","loadPromise","saveTimeout","savePromise","load","flush","clearTimeout","fromEntries","msg","debug","scheduleSave","setTimeout","unref","createSourceCache","driver","hash","createAstCache","l1","l2","hot","cold","error","invalidate","createResultCache","getMetadataKey","getOrCreateMetadata","metaKey","existing","newMeta","taskId","timestamp","hits","lastAccess","incrementHits","meta","updated","pendingWrites","catch","getMany","hashes","results","batch","Promise","setMany","hasMany","some","h","getWithMetadata","metadata","getManyWithMetadata","metadataUpdates","updateMetadata","updates","createConfigCache","report","createMetaCache","createPlanCache","plan","createFileCache","files","computeCompositeHash","salt","createAsyncMemoryDriver","createCacheContext","cwd","defaultBaseDir","resolve","useMemoryOnly","disk","cacheLocation","sourceDriver","memory","astL1","astL2","resultDriver","configDriver","metaDriver","planDriver","fileDriver","sources","asts","configs","metas","plans","analysisDriver","analysis","clearAllDrivers","clearType","type","getCachePath","getInfo","astL1Stats","astL2Stats","configStats","resultStats","metaStats","planStats","fileStats","analysisStats","totalSize","ast","maxEntries","location","globalCache","getCacheContext","resetGlobalCache","createRuntimeCache","options","enabled","allowDisabled","strategy"],"mappings":"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","file":"index.js","sourcesContent":["export const CACHE_VERSION = '1.0.0';\nexport const SCHEMA_VERSION = 1;\nexport const CACHE_KEY_PREFIX = \"v1.0.0-s1\";\n","let h64;\nimport t from 'node:crypto';\nimport r from 'xxhash-wasm';\nexport const initHasher = async ()=>{\n if (h64) return;\n let { h64: t } = await r();\n h64 = (r)=>t(r).toString(16).padStart(16, '0');\n};\nexport const computeHash = (r)=>{\n if (h64) return h64(r);\n let e = t.createHash('sha256');\n return e.update(r), e.digest('hex');\n};\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","import { createRequire as r } from 'node:module';\nimport { PACKAGE_VERSION as e, CACHE_VERSION as o } from '@ngcompass/common';\nimport { computeHash as t } from './hashing.js';\nimport { stableSerialize as n } from './utils/stable-serialize.js';\nexport function buildCacheKeyContext(s) {\n return Object.freeze({\n toolVersion: e,\n schemaVersion: o,\n ruleRegistryHash: t(n([\n ...s\n ].sort())),\n parserVersion: function() {\n try {\n let e = r(import.meta.url)('oxc-parser/package.json');\n return String(e.version ?? 'unknown');\n } catch {\n return 'unknown';\n }\n }(),\n platform: process.platform\n });\n}\nexport function serializeCacheKeyContext(r) {\n return [\n r.toolVersion,\n r.schemaVersion,\n r.parserVersion,\n r.ruleRegistryHash,\n r.platform\n ].join('::');\n}\n","import { LRUCache as e } from 'lru-cache';\nexport const createMemoryDriver = (t = {})=>{\n let r = new e({\n max: t.maxItems ?? 500,\n maxSize: t.maxSize ?? 52428800,\n sizeCalculation: (e)=>{\n try {\n return JSON.stringify(e).length;\n } catch {\n return 1000;\n }\n },\n ttl: t.ttl\n });\n return {\n get: (e)=>r.get(e),\n set: (e, t)=>{\n r.set(e, t);\n },\n has: (e)=>r.has(e),\n delete: (e)=>{\n r.delete(e);\n },\n clear: ()=>r.clear(),\n getStats: ()=>({\n entries: r.size,\n size: r.calculatedSize\n })\n };\n};\n","import t from 'node:fs/promises';\nimport e from 'node:path';\nexport async function getDirectoryStats(i) {\n let a = 0, r = 0;\n try {\n await t.access(i);\n } catch {\n return {\n entries: 0,\n size: 0\n };\n }\n async function o(i) {\n for (let s of (await t.readdir(i, {\n withFileTypes: !0\n }))){\n let n = e.join(i, s.name);\n if (s.isDirectory()) await o(n);\n else {\n a++;\n let e = await t.stat(n);\n r += e.size;\n }\n }\n }\n try {\n await o(i);\n } catch {}\n return {\n entries: a,\n size: r\n };\n}\n","import e from 'cacache';\nimport r from 'node:v8';\nimport { getDirectoryStats as t } from '../utils/fs.js';\nexport const createDiskDriver = (a)=>{\n let n = a.path;\n return {\n get: async (t)=>{\n try {\n let a = performance.now(), i = await e.get(n, t), o = performance.now(), c = performance.now(), s = r.deserialize(i.data), d = performance.now();\n return process.env.DEBUG_CACHE && process.stdout.write(`[disk-driver] read: ${(o - a).toFixed(2)}ms, deser: ${(d - c).toFixed(2)}ms, size: ${(i.data.length / 1024).toFixed(1)}KB\\n`), s;\n } catch (r) {\n if ('ENOENT' === ('object' == typeof r && null !== r && 'code' in r ? r.code : void 0)) return;\n try {\n await e.rm.entry(n, t);\n } catch {}\n return;\n }\n },\n set: async (t, a)=>{\n let i = r.serialize(a);\n await e.put(n, t, i);\n },\n has: async (r)=>{\n try {\n return !!await e.get.info(n, r);\n } catch {\n return !1;\n }\n },\n delete: async (r)=>{\n await e.rm.entry(n, r);\n },\n clear: async ()=>{\n await e.rm.all(n);\n },\n prune: async ()=>{\n await e.verify(n);\n },\n getStats: async ()=>t(n)\n };\n};\n","import a from 'node:fs/promises';\nimport t from 'node:v8';\nimport e from 'node:path';\nexport const createPackedFileDriver = (i)=>{\n let r = i.path + '.pack', s = new Map(), c = !1, n = async ()=>{\n if (!c) {\n c = !0;\n try {\n let e = await a.readFile(r);\n for (let [a, i] of t.deserialize(e))s.set(a, i);\n } catch {}\n }\n }, l = async ()=>{\n let i = e.dirname(r);\n await a.mkdir(i, {\n recursive: !0\n });\n let c = t.serialize(s), n = r + '.tmp';\n await a.writeFile(n, c), await a.rename(n, r);\n };\n return {\n get: async (a)=>(await n(), s.get(a)),\n set: async (a, t)=>{\n await n(), s.set(a, t), await l();\n },\n has: async (a)=>(await n(), s.has(a)),\n delete: async (a)=>{\n await n(), s.delete(a), await l();\n },\n clear: async ()=>{\n s.clear(), c = !0;\n try {\n await a.unlink(r);\n } catch {}\n try {\n await a.unlink(r + '.tmp');\n } catch {}\n },\n getStats: async ()=>{\n await n();\n let t = 0;\n try {\n t = (await a.stat(r)).size;\n } catch {}\n return {\n entries: s.size,\n size: t\n };\n },\n bulkSet: async (a)=>{\n for (let [t, e] of (await n(), a))s.set(t, e);\n await l();\n }\n };\n};\n","import a from 'write-file-atomic';\nimport t from 'node:fs/promises';\nimport e from 'node:path';\nimport { getDirectoryStats as r } from '../utils/fs.js';\nexport const createAtomicDriver = (i)=>{\n let n = i.path, c = null, s = null, y = 0, w = (a)=>e.join(n, `${a}.json`), l = async ()=>{\n try {\n await t.mkdir(n, {\n recursive: !0\n });\n } catch {}\n }, o = (a)=>a.endsWith('.json'), u = (a)=>a.slice(0, -5), f = async (a)=>{\n try {\n return await t.readdir(a);\n } catch {\n return [];\n }\n }, d = async (a)=>{\n try {\n return await t.readFile(a, 'utf-8');\n } catch {\n return;\n }\n }, m = async (a)=>{\n try {\n await t.unlink(a);\n } catch {}\n }, h = async (a)=>{\n try {\n await t.rm(a, {\n recursive: !0,\n force: !0\n });\n } catch {}\n }, p = (a)=>{\n c && c.delete(a);\n }, S = async ()=>{\n s && await s;\n }, v = async ()=>{\n if (!c) {\n if (!s) {\n let a = y;\n s = (async ()=>{\n try {\n await l();\n let t = (await f(n)).filter(o).map(u);\n y === a && (c = new Set(t));\n } finally{\n s = null, c || (c = new Set());\n }\n })();\n }\n await s;\n }\n }, g = async (a)=>{\n await S(), c && c.add(a);\n }, j = async (a)=>{\n await S(), c && c.delete(a);\n };\n return {\n get: async (a)=>{\n if (c && !c.has(a)) return;\n let t = w(a), e = await d(t);\n if (void 0 === e) return void p(a);\n try {\n return JSON.parse(e);\n } catch {\n p(a);\n return;\n }\n },\n set: async (t, e)=>{\n await l();\n let r = w(t);\n await a(r, JSON.stringify(e), {\n encoding: 'utf-8'\n }), (c || s) && await g(t);\n },\n has: async (a)=>(await v(), c.has(a)),\n delete: async (a)=>{\n await m(w(a)), (c || s) && await j(a);\n },\n clear: async ()=>{\n await h(n), await l(), y += 1, c = new Set();\n },\n getStats: async ()=>r(n)\n };\n};\n","import a from 'node:fs/promises';\nimport e from 'node:path';\nimport t from 'write-file-atomic';\nimport { debug as i } from '@ngcompass/common';\nexport const createJsonFileDriver = (n)=>{\n let r = e.join(n.path, 'meta.json'), l = null, s = null, c = null, o = null, m = async ()=>{\n if (!l) return s || (s = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = await a.readFile(r, 'utf-8'), t = JSON.parse(e);\n l = t && 'object' == typeof t ? new Map(Object.entries(t)) : new Map();\n } catch {\n l = new Map();\n } finally{\n s = null;\n }\n })());\n }, u = async ()=>{\n c && (clearTimeout(c), c = null), l && (o && await o, o = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = Object.fromEntries(l);\n await t(r, JSON.stringify(e));\n } catch (e) {\n let a = e instanceof Error ? e.message : String(e);\n i('cache', `Failed to flush metadata cache to ${r}: ${a}`);\n } finally{\n o = null;\n }\n })(), await o);\n }, p = ()=>{\n c || (c = setTimeout(()=>{\n c = null, u();\n }, 2000)).unref();\n };\n return {\n get: async (a)=>(await m(), l.get(a)),\n set: async (a, e)=>{\n await m(), l.set(a, e), p();\n },\n has: async (a)=>(await m(), l.has(a)),\n delete: async (a)=>{\n await m(), l.delete(a) && p();\n },\n clear: async ()=>{\n c && (clearTimeout(c), c = null), l = new Map();\n try {\n await a.unlink(r);\n } catch {}\n },\n getStats: async ()=>(await m(), {\n entries: l.size,\n size: 0\n }),\n flush: u\n };\n};\n","export const createSourceCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n has: (t)=>e.has(t)\n });\n","import { debug as e } from '@ngcompass/common';\nexport const createAstCache = (t, a)=>({\n get: async (r)=>{\n let s = t.get(r);\n if (s) return s;\n try {\n let e = await a.get(r);\n if (e) return t.set(r, e), e;\n } catch (t) {\n e('cache', `Failed to read AST from L2 for ${r}: ${t instanceof Error ? t.message : String(t)}`);\n }\n },\n set: async (e, r)=>{\n t.set(e, r), await a.set(e, r);\n },\n invalidate: async (e)=>{\n t.delete(e), await a.delete(e);\n }\n });\n","import { debug as t } from '@ngcompass/common';\nexport const createResultCache = (e)=>{\n let a = (t)=>`${t}.meta`, s = async (t)=>{\n let s = a(t), i = await e.get(s);\n if (i) return i;\n let n = {\n taskId: t,\n timestamp: Date.now(),\n hits: 0,\n lastAccess: Date.now()\n };\n return await e.set(s, n), n;\n }, i = async (t)=>{\n let i = await s(t), n = {\n ...i,\n hits: i.hits + 1,\n lastAccess: Date.now()\n };\n await e.set(a(t), n);\n }, n = new Map();\n return {\n get: async (a)=>{\n if (n.has(a)) return n.get(a);\n let s = await e.get(a);\n return void 0 !== s && i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }), s;\n },\n set: async (t, a)=>{\n await e.set(t, a), await s(t);\n },\n has: async (t)=>!!n.has(t) || e.has(t),\n delete: async (s)=>{\n n.delete(s), await e.delete(s);\n try {\n await e.delete(a(s));\n } catch (e) {\n t('cache', `Failed to delete metadata for ${s}: ${e instanceof Error ? e.message : String(e)}`);\n }\n },\n getMany: async (a)=>{\n if (0 === a.length) return new Map();\n let s = new Map();\n for(let l = 0; l < a.length; l += 200){\n let r = a.slice(l, l + 200);\n await Promise.all(r.map(async (a)=>{\n if (n.has(a)) return void s.set(a, n.get(a));\n let l = await e.get(a);\n void 0 !== l && (s.set(a, l), i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }));\n }));\n }\n return s;\n },\n setMany: async (e)=>{\n if (0 !== e.length) {\n for (let [t, a] of e)n.set(t, a);\n t('cache', `Buffered ${e.length} results (total pending: ${n.size})`);\n }\n },\n hasMany: async (t)=>{\n if (0 === t.length) return new Set();\n if (!t.some((t)=>n.has(t))) try {\n let t = await e.getStats();\n if (0 === t.entries) return new Set();\n } catch {\n return new Set();\n }\n let a = new Set();\n for(let s = 0; s < t.length; s += 200){\n let i = t.slice(s, s + 200);\n await Promise.all(i.map(async (t)=>{\n n.has(t) ? a.add(t) : await e.has(t) && a.add(t);\n }));\n }\n return a;\n },\n getWithMetadata: async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 === a) return;\n let l = await s(t);\n return await i(t), {\n result: a,\n metadata: l\n };\n },\n getManyWithMetadata: async (t)=>{\n if (0 === t.length) return new Map();\n let i = new Map(), l = [];\n for(let a = 0; a < t.length; a += 200){\n let r = t.slice(a, a + 200);\n await Promise.all(r.map(async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 !== a) {\n let e = await s(t), n = {\n ...e,\n hits: e.hits + 1,\n lastAccess: Date.now()\n };\n i.set(t, {\n result: a,\n metadata: n\n }), l.push([\n t,\n n\n ]);\n }\n }));\n }\n if (l.length > 0) for(let t = 0; t < l.length; t += 200){\n let s = l.slice(t, t + 200);\n await Promise.all(s.map(async ([t, s])=>{\n await e.set(a(t), s);\n }));\n }\n return i;\n },\n updateMetadata: async (t, i)=>{\n let n = {\n ...await e.get(a(t)) ?? await s(t),\n ...i\n };\n await e.set(a(t), n);\n },\n flush: async ()=>{\n if (0 === n.size) return;\n let s = [\n ...n.entries()\n ];\n n.clear();\n let i = Date.now();\n if (e.bulkSet) {\n let t = [];\n for (let [e, n] of s)t.push([\n e,\n n\n ]), t.push([\n a(e),\n {\n taskId: e,\n timestamp: i,\n hits: 0,\n lastAccess: i\n }\n ]);\n await e.bulkSet(t);\n } else for(let t = 0; t < s.length; t += 200){\n let n = s.slice(t, t + 200);\n await Promise.all(n.map(([t, a])=>e.set(t, a))), await Promise.all(n.map(([t])=>e.set(a(t), {\n taskId: t,\n timestamp: i,\n hits: 0,\n lastAccess: i\n })));\n }\n t('cache', `Flushed ${s.length} buffered results to disk`);\n }\n };\n};\n","export const createConfigCache = (e)=>({\n get: async (t)=>e.get(t),\n set: async (t, a)=>{\n await e.set(t, a);\n }\n });\n","export const createMetaCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n delete: (t)=>e.delete(t),\n flush: async ()=>{\n 'function' == typeof e.flush && await e.flush();\n }\n });\n","export const createPlanCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a)=>e.set(t, a),\n delete: (t)=>e.delete(t)\n });\n","export const createFileCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a)=>e.set(t, {\n files: a,\n timestamp: Date.now()\n })\n });\n","import t from 'node:crypto';\nimport { CACHE_KEY_PREFIX as e } from '../constants.js';\nexport const computeCompositeHash = (o, r = e)=>{\n let s = t.createHash('sha256');\n return s.update(o), r && s.update(r), s.digest('hex');\n};\n","import e from 'path';\nimport { createMemoryDriver as t } from './drivers/memory.js';\nimport { createDiskDriver as a } from './drivers/disk.js';\nimport { createPackedFileDriver as s } from './drivers/packed.js';\nimport { createAtomicDriver as r } from './drivers/atomic.js';\nimport { createJsonFileDriver as i } from './drivers/json-file.js';\nimport { createSourceCache as c } from './services/source-cache.js';\nimport { createAstCache as m } from './services/ast-cache.js';\nimport { createResultCache as o } from './services/result-cache.js';\nimport { createConfigCache as l } from './services/config-cache.js';\nimport { createMetaCache as n } from './services/meta-cache.js';\nimport { createPlanCache as p } from './services/plan-cache.js';\nimport { createFileCache as y } from './services/file-cache.js';\nimport { computeCompositeHash as h } from './services/hashing.js';\nimport { CACHE_VERSION as f } from './constants.js';\nlet createAsyncMemoryDriver = (e, a)=>{\n let s = t({\n maxItems: e,\n ttl: a\n });\n return {\n get: async (e)=>s.get(e),\n set: async (e, t)=>{\n s.set(e, t);\n },\n has: async (e)=>s.has(e),\n delete: async (e)=>{\n s.delete(e);\n },\n clear: async ()=>{\n s.clear();\n },\n getStats: async ()=>s.getStats()\n };\n};\nexport const createCacheContext = (g = {})=>{\n let d = process.cwd(), v = e.resolve(d, 'node_modules', '.cache', 'ngcompass'), j = !g.disk?.path, u = g.disk?.path ?? '[memory]', k = t({\n maxItems: g.memory?.maxItems\n }), w = t({\n maxItems: 200\n }), x = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'ast'),\n ttl: g.disk?.ttl\n }), z = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : s({\n path: e.join(g.disk?.path ?? v, 'results')\n }), C = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : r({\n path: e.join(g.disk?.path ?? v, 'config')\n }), I = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : i({\n path: e.join(g.disk?.path ?? v, 'meta')\n }), S = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'plans'),\n ttl: g.disk?.ttl\n }), b = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'files'),\n ttl: g.disk?.ttl\n }), A = c(k), D = m(w, x), M = o(z), P = l(C), E = n(I), G = p(S), H = y(b), T = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'analysis'),\n ttl: g.disk?.ttl\n }), _ = o(T), q = async ()=>{\n k.clear(), w.clear(), await x.clear(), await z.clear(), await C.clear(), await I.clear(), await S.clear(), await b.clear(), await T.clear();\n };\n return {\n sources: A,\n asts: D,\n results: M,\n configs: P,\n metas: E,\n plans: G,\n files: H,\n analysis: _,\n computeHash: h,\n prune: async ()=>{\n 'prune' in x && 'function' == typeof x.prune && await x.prune();\n },\n clear: q,\n clearType: async (e)=>{\n switch(e){\n case 'ast':\n w.clear(), await x.clear();\n break;\n case 'config':\n await C.clear();\n break;\n case 'results':\n await z.clear(), await T.clear();\n break;\n case 'all':\n await q();\n }\n },\n flush: async ()=>{\n await Promise.all([\n M.flush(),\n _.flush(),\n E.flush()\n ]);\n },\n getCachePath: ()=>u,\n getInfo: async ()=>{\n let e = w.getStats(), [t, a, s, r, i, c, m] = await Promise.all([\n x.getStats(),\n C.getStats(),\n z.getStats(),\n I.getStats(),\n S.getStats(),\n b.getStats(),\n T.getStats()\n ]), o = e.size + t.size + a.size + s.size + r.size + i.size + c.size + m.size;\n return {\n ast: {\n l1: {\n entries: e.entries,\n maxEntries: 200,\n size: e.size\n },\n l2: {\n entries: t.entries,\n size: t.size\n }\n },\n config: {\n entries: a.entries,\n size: a.size\n },\n results: {\n entries: s.entries,\n size: s.size\n },\n totalSize: o,\n location: u,\n version: f\n };\n }\n };\n};\nlet globalCache = null;\nexport const getCacheContext = (e)=>(globalCache || (globalCache = createCacheContext(e)), globalCache);\nexport const resetGlobalCache = ()=>{\n globalCache = null;\n};\n","import e from 'node:path';\nimport { createCacheContext as t } from './context.js';\nexport function createRuntimeCache(c, o, a = {}) {\n if (!c.cache.enabled && !a.allowDisabled) return;\n let r = e.resolve(o, c.cache.location);\n return t({\n memory: 'memory' === c.cache.strategy ? {\n ttl: c.cache.ttl\n } : void 0,\n disk: 'memory' === c.cache.strategy ? void 0 : {\n path: r,\n ttl: c.cache.ttl\n }\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts","../src/hashing.ts","../src/utils/stable-serialize.ts","../src/key-context.ts","../src/drivers/memory.ts","../src/utils/fs.ts","../src/drivers/disk.ts","../src/drivers/packed.ts","../src/drivers/atomic.ts","../src/drivers/json-file.ts","../src/services/source-cache.ts","../src/services/ast-cache.ts","../src/services/result-cache.ts","../src/services/config-cache.ts","../src/services/meta-cache.ts","../src/services/plan-cache.ts","../src/services/file-cache.ts","../src/services/hashing.ts","../src/context.ts","../src/runtime-cache.ts"],"names":["CACHE_VERSION","SCHEMA_VERSION","CACHE_KEY_PREFIX","h64","initHasher","hasher","xxhash","input","toString","padStart","computeHash","content","crypto","createHash","update","digest","SerializationError","Error","message","path","name","stableSerialize","value","_path","_seen","WeakSet","undefined","Number","isFinite","String","JSON","stringify","Date","toISOString","RegExp","result","has","join","add","Array","isArray","map","v","i","sortedKeys","Object","keys","sort","pairs","k","push","delete","buildCacheKeyContext","ruleNames","freeze","toolVersion","PACKAGE_VERSION","schemaVersion","ruleRegistryHash","parserVersion","pkg","createRequire","url","version","platform","process","serializeCacheKeyContext","ctx","createMemoryDriver","config","cache","LRUCache","max","maxItems","maxSize","sizeCalculation","length","ttl","get","key","set","clear","getStats","entries","size","calculatedSize","getDirectoryStats","dirPath","fs","access","traverse","currentPath","file","readdir","withFileTypes","fullPath","isDirectory","stats","stat","createDiskDriver","cachePath","tReadStart","performance","now","cacache","tReadEnd","tDeserStart","deserialized","v8","deserialize","data","tDeserEnd","env","DEBUG_CACHE","stdout","write","toFixed","err","code","rm","entry","buffer","serialize","put","info","all","prune","verify","createPackedFileDriver","filePath","Map","loaded","ensureLoaded","buf","readFile","save","dir","dirname","mkdir","recursive","tmp","writeFile","rename","unlink","bulkSet","createAtomicDriver","cacheDir","catalog","catalogPromise","catalogGeneration","getFilePath","ensureDir","isJsonFile","fileName","endsWith","stripJsonExtension","slice","safeReadDir","tryReadJsonFile","tryUnlink","tryRemoveDir","force","markMissingInCatalog","awaitCatalogInitIfInFlight","ensureCatalog","localGeneration","filter","Set","syncCatalogAfterSet","syncCatalogAfterDelete","parse","writeFileAtomic","encoding","createJsonFileDriver","loadPromise","saveTimeout","savePromise","load","flush","clearTimeout","fromEntries","msg","debug","scheduleSave","setTimeout","unref","createSourceCache","driver","hash","createAstCache","l1","l2","hot","cold","error","invalidate","createResultCache","getMetadataKey","getOrCreateMetadata","metaKey","existing","newMeta","taskId","timestamp","hits","lastAccess","incrementHits","meta","updated","pendingWrites","catch","getMany","hashes","results","batch","Promise","setMany","hasMany","some","h","getWithMetadata","metadata","getManyWithMetadata","metadataUpdates","updateMetadata","updates","createConfigCache","report","createMetaCache","createPlanCache","plan","createFileCache","files","computeCompositeHash","salt","createAsyncMemoryDriver","createCacheContext","cwd","defaultBaseDir","resolve","useMemoryOnly","disk","cacheLocation","sourceDriver","memory","astL1","astL2","resultDriver","configDriver","metaDriver","planDriver","fileDriver","sources","asts","configs","metas","plans","analysisDriver","analysis","clearAllDrivers","clearType","type","getCachePath","getInfo","astL1Stats","astL2Stats","configStats","resultStats","metaStats","planStats","fileStats","analysisStats","totalSize","ast","maxEntries","location","globalCache","getCacheContext","resetGlobalCache","createRuntimeCache","options","enabled","allowDisabled","strategy"],"mappings":"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","file":"index.js","sourcesContent":["export const CACHE_VERSION = '1.0.0';\nexport const SCHEMA_VERSION = 1;\nexport const CACHE_KEY_PREFIX = \"v1.0.0-s1\";\n","let h64;\nimport t from 'node:crypto';\nimport r from 'xxhash-wasm';\nexport const initHasher = async ()=>{\n if (h64) return;\n let { h64: t } = await r();\n h64 = (r)=>t(r).toString(16).padStart(16, '0');\n};\nexport const computeHash = (r)=>{\n if (h64) return h64(r);\n let e = t.createHash('sha256');\n return e.update(r), e.digest('hex');\n};\n","export class SerializationError extends Error {\n path;\n constructor(r, i){\n super(r), this.path = i, this.name = 'SerializationError';\n }\n}\nexport function stableSerialize(r, i = [], e = new WeakSet()) {\n if (null === r) return 'null';\n if (void 0 === r) throw new SerializationError('undefined is not a valid hash input', i);\n switch(typeof r){\n case 'boolean':\n return r ? 'true' : 'false';\n case 'number':\n if (!Number.isFinite(r)) throw new SerializationError(`Non-finite number (${String(r)}) is not a valid hash input`, i);\n return String(r);\n case 'string':\n return JSON.stringify(r);\n case 'function':\n throw new SerializationError('Functions are not valid hash inputs', i);\n }\n if (r instanceof Date) return JSON.stringify(r.toISOString());\n if (r instanceof RegExp) return JSON.stringify(r.toString());\n if ('object' == typeof r) {\n let t;\n if (e.has(r)) throw new SerializationError(`Circular reference detected at path: ${i.join('.') || '(root)'}`, i);\n if (e.add(r), Array.isArray(r)) t = '[' + r.map((r, t)=>stableSerialize(r, [\n ...i,\n String(t)\n ], e)).join(',') + ']';\n else {\n let n = Object.keys(r).sort(), a = [];\n for (let t of n){\n let n = r[t];\n void 0 !== n && a.push(JSON.stringify(t) + ':' + stableSerialize(n, [\n ...i,\n t\n ], e));\n }\n t = '{' + a.join(',') + '}';\n }\n return e.delete(r), t;\n }\n return JSON.stringify(r);\n}\n","import { createRequire as r } from 'node:module';\nimport { PACKAGE_VERSION as e, CACHE_VERSION as o } from '@ngcompass/common';\nimport { computeHash as t } from './hashing.js';\nimport { stableSerialize as n } from './utils/stable-serialize.js';\nexport function buildCacheKeyContext(s) {\n return Object.freeze({\n toolVersion: e,\n schemaVersion: o,\n ruleRegistryHash: t(n([\n ...s\n ].sort())),\n parserVersion: function() {\n try {\n let e = r(import.meta.url)('oxc-parser/package.json');\n return String(e.version ?? 'unknown');\n } catch {\n return 'unknown';\n }\n }(),\n platform: process.platform\n });\n}\nexport function serializeCacheKeyContext(r) {\n return [\n r.toolVersion,\n r.schemaVersion,\n r.parserVersion,\n r.ruleRegistryHash,\n r.platform\n ].join('::');\n}\n","import { LRUCache as e } from 'lru-cache';\nexport const createMemoryDriver = (t = {})=>{\n let r = new e({\n max: t.maxItems ?? 500,\n maxSize: t.maxSize ?? 52428800,\n sizeCalculation: (e)=>{\n try {\n return JSON.stringify(e).length;\n } catch {\n return 1000;\n }\n },\n ttl: t.ttl\n });\n return {\n get: (e)=>r.get(e),\n set: (e, t)=>{\n r.set(e, t);\n },\n has: (e)=>r.has(e),\n delete: (e)=>{\n r.delete(e);\n },\n clear: ()=>r.clear(),\n getStats: ()=>({\n entries: r.size,\n size: r.calculatedSize\n })\n };\n};\n","import t from 'node:fs/promises';\nimport e from 'node:path';\nexport async function getDirectoryStats(i) {\n let a = 0, r = 0;\n try {\n await t.access(i);\n } catch {\n return {\n entries: 0,\n size: 0\n };\n }\n async function o(i) {\n for (let s of (await t.readdir(i, {\n withFileTypes: !0\n }))){\n let n = e.join(i, s.name);\n if (s.isDirectory()) await o(n);\n else {\n a++;\n let e = await t.stat(n);\n r += e.size;\n }\n }\n }\n try {\n await o(i);\n } catch {}\n return {\n entries: a,\n size: r\n };\n}\n","import e from 'cacache';\nimport r from 'node:v8';\nimport { getDirectoryStats as t } from '../utils/fs.js';\nexport const createDiskDriver = (a)=>{\n let n = a.path;\n return {\n get: async (t)=>{\n try {\n let a = performance.now(), i = await e.get(n, t), o = performance.now(), c = performance.now(), s = r.deserialize(i.data), d = performance.now();\n return process.env.DEBUG_CACHE && process.stdout.write(`[disk-driver] read: ${(o - a).toFixed(2)}ms, deser: ${(d - c).toFixed(2)}ms, size: ${(i.data.length / 1024).toFixed(1)}KB\\n`), s;\n } catch (r) {\n if ('ENOENT' === ('object' == typeof r && null !== r && 'code' in r ? r.code : void 0)) return;\n try {\n await e.rm.entry(n, t);\n } catch {}\n return;\n }\n },\n set: async (t, a)=>{\n let i = r.serialize(a);\n await e.put(n, t, i);\n },\n has: async (r)=>{\n try {\n return !!await e.get.info(n, r);\n } catch {\n return !1;\n }\n },\n delete: async (r)=>{\n await e.rm.entry(n, r);\n },\n clear: async ()=>{\n await e.rm.all(n);\n },\n prune: async ()=>{\n await e.verify(n);\n },\n getStats: async ()=>t(n)\n };\n};\n","import a from 'node:fs/promises';\nimport t from 'node:v8';\nimport e from 'node:path';\nexport const createPackedFileDriver = (i)=>{\n let r = i.path + '.pack', s = new Map(), c = !1, n = async ()=>{\n if (!c) {\n c = !0;\n try {\n let e = await a.readFile(r);\n for (let [a, i] of t.deserialize(e))s.set(a, i);\n } catch {}\n }\n }, l = async ()=>{\n let i = e.dirname(r);\n await a.mkdir(i, {\n recursive: !0\n });\n let c = t.serialize(s), n = r + '.tmp';\n await a.writeFile(n, c), await a.rename(n, r);\n };\n return {\n get: async (a)=>(await n(), s.get(a)),\n set: async (a, t)=>{\n await n(), s.set(a, t), await l();\n },\n has: async (a)=>(await n(), s.has(a)),\n delete: async (a)=>{\n await n(), s.delete(a), await l();\n },\n clear: async ()=>{\n s.clear(), c = !0;\n try {\n await a.unlink(r);\n } catch {}\n try {\n await a.unlink(r + '.tmp');\n } catch {}\n },\n getStats: async ()=>{\n await n();\n let t = 0;\n try {\n t = (await a.stat(r)).size;\n } catch {}\n return {\n entries: s.size,\n size: t\n };\n },\n bulkSet: async (a)=>{\n for (let [t, e] of (await n(), a))s.set(t, e);\n await l();\n }\n };\n};\n","import a from 'write-file-atomic';\nimport t from 'node:fs/promises';\nimport e from 'node:path';\nimport { getDirectoryStats as r } from '../utils/fs.js';\nexport const createAtomicDriver = (i)=>{\n let n = i.path, c = null, s = null, y = 0, w = (a)=>e.join(n, `${a}.json`), l = async ()=>{\n try {\n await t.mkdir(n, {\n recursive: !0\n });\n } catch {}\n }, o = (a)=>a.endsWith('.json'), u = (a)=>a.slice(0, -5), f = async (a)=>{\n try {\n return await t.readdir(a);\n } catch {\n return [];\n }\n }, d = async (a)=>{\n try {\n return await t.readFile(a, 'utf-8');\n } catch {\n return;\n }\n }, m = async (a)=>{\n try {\n await t.unlink(a);\n } catch {}\n }, h = async (a)=>{\n try {\n await t.rm(a, {\n recursive: !0,\n force: !0\n });\n } catch {}\n }, p = (a)=>{\n c && c.delete(a);\n }, S = async ()=>{\n s && await s;\n }, v = async ()=>{\n if (!c) {\n if (!s) {\n let a = y;\n s = (async ()=>{\n try {\n await l();\n let t = (await f(n)).filter(o).map(u);\n y === a && (c = new Set(t));\n } finally{\n s = null, c || (c = new Set());\n }\n })();\n }\n await s;\n }\n }, g = async (a)=>{\n await S(), c && c.add(a);\n }, j = async (a)=>{\n await S(), c && c.delete(a);\n };\n return {\n get: async (a)=>{\n if (c && !c.has(a)) return;\n let t = w(a), e = await d(t);\n if (void 0 === e) return void p(a);\n try {\n return JSON.parse(e);\n } catch {\n p(a);\n return;\n }\n },\n set: async (t, e)=>{\n await l();\n let r = w(t);\n await a(r, JSON.stringify(e), {\n encoding: 'utf-8'\n }), (c || s) && await g(t);\n },\n has: async (a)=>(await v(), c.has(a)),\n delete: async (a)=>{\n await m(w(a)), (c || s) && await j(a);\n },\n clear: async ()=>{\n await h(n), await l(), y += 1, c = new Set();\n },\n getStats: async ()=>r(n)\n };\n};\n","import a from 'node:fs/promises';\nimport e from 'node:path';\nimport t from 'write-file-atomic';\nimport { debug as i } from '@ngcompass/common';\nexport const createJsonFileDriver = (n)=>{\n let r = e.join(n.path, 'meta.json'), l = null, s = null, c = null, o = null, m = async ()=>{\n if (!l) return s || (s = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = await a.readFile(r, 'utf-8'), t = JSON.parse(e);\n l = t && 'object' == typeof t ? new Map(Object.entries(t)) : new Map();\n } catch {\n l = new Map();\n } finally{\n s = null;\n }\n })());\n }, u = async ()=>{\n c && (clearTimeout(c), c = null), l && (o && await o, o = (async ()=>{\n try {\n await a.mkdir(n.path, {\n recursive: !0\n });\n let e = Object.fromEntries(l);\n await t(r, JSON.stringify(e));\n } catch (e) {\n let a = e instanceof Error ? e.message : String(e);\n i('cache', `Failed to flush metadata cache to ${r}: ${a}`);\n } finally{\n o = null;\n }\n })(), await o);\n }, p = ()=>{\n c || (c = setTimeout(()=>{\n c = null, u();\n }, 2000)).unref();\n };\n return {\n get: async (a)=>(await m(), l.get(a)),\n set: async (a, e)=>{\n await m(), l.set(a, e), p();\n },\n has: async (a)=>(await m(), l.has(a)),\n delete: async (a)=>{\n await m(), l.delete(a) && p();\n },\n clear: async ()=>{\n c && (clearTimeout(c), c = null), l = new Map();\n try {\n await a.unlink(r);\n } catch {}\n },\n getStats: async ()=>(await m(), {\n entries: l.size,\n size: 0\n }),\n flush: u\n };\n};\n","export const createSourceCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n has: (t)=>e.has(t)\n });\n","import { debug as e } from '@ngcompass/common';\nexport const createAstCache = (t, a)=>({\n get: async (r)=>{\n let s = t.get(r);\n if (s) return s;\n try {\n let e = await a.get(r);\n if (e) return t.set(r, e), e;\n } catch (t) {\n e('cache', `Failed to read AST from L2 for ${r}: ${t instanceof Error ? t.message : String(t)}`);\n }\n },\n set: async (e, r)=>{\n t.set(e, r), await a.set(e, r);\n },\n invalidate: async (e)=>{\n t.delete(e), await a.delete(e);\n }\n });\n","import { debug as t } from '@ngcompass/common';\nexport const createResultCache = (e)=>{\n let a = (t)=>`${t}.meta`, s = async (t)=>{\n let s = a(t), i = await e.get(s);\n if (i) return i;\n let n = {\n taskId: t,\n timestamp: Date.now(),\n hits: 0,\n lastAccess: Date.now()\n };\n return await e.set(s, n), n;\n }, i = async (t)=>{\n let i = await s(t), n = {\n ...i,\n hits: i.hits + 1,\n lastAccess: Date.now()\n };\n await e.set(a(t), n);\n }, n = new Map();\n return {\n get: async (a)=>{\n if (n.has(a)) return n.get(a);\n let s = await e.get(a);\n return void 0 !== s && i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }), s;\n },\n set: async (t, a)=>{\n await e.set(t, a), await s(t);\n },\n has: async (t)=>!!n.has(t) || e.has(t),\n delete: async (s)=>{\n n.delete(s), await e.delete(s);\n try {\n await e.delete(a(s));\n } catch (e) {\n t('cache', `Failed to delete metadata for ${s}: ${e instanceof Error ? e.message : String(e)}`);\n }\n },\n getMany: async (a)=>{\n if (0 === a.length) return new Map();\n let s = new Map();\n for(let l = 0; l < a.length; l += 200){\n let r = a.slice(l, l + 200);\n await Promise.all(r.map(async (a)=>{\n if (n.has(a)) return void s.set(a, n.get(a));\n let l = await e.get(a);\n void 0 !== l && (s.set(a, l), i(a).catch((e)=>{\n t('cache', `incrementHits failed for ${a}: ${e instanceof Error ? e.message : String(e)}`);\n }));\n }));\n }\n return s;\n },\n setMany: async (e)=>{\n if (0 !== e.length) {\n for (let [t, a] of e)n.set(t, a);\n t('cache', `Buffered ${e.length} results (total pending: ${n.size})`);\n }\n },\n hasMany: async (t)=>{\n if (0 === t.length) return new Set();\n if (!t.some((t)=>n.has(t))) try {\n let t = await e.getStats();\n if (0 === t.entries) return new Set();\n } catch {\n return new Set();\n }\n let a = new Set();\n for(let s = 0; s < t.length; s += 200){\n let i = t.slice(s, s + 200);\n await Promise.all(i.map(async (t)=>{\n n.has(t) ? a.add(t) : await e.has(t) && a.add(t);\n }));\n }\n return a;\n },\n getWithMetadata: async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 === a) return;\n let l = await s(t);\n return await i(t), {\n result: a,\n metadata: l\n };\n },\n getManyWithMetadata: async (t)=>{\n if (0 === t.length) return new Map();\n let i = new Map(), l = [];\n for(let a = 0; a < t.length; a += 200){\n let r = t.slice(a, a + 200);\n await Promise.all(r.map(async (t)=>{\n let a = n.has(t) ? n.get(t) : await e.get(t);\n if (void 0 !== a) {\n let e = await s(t), n = {\n ...e,\n hits: e.hits + 1,\n lastAccess: Date.now()\n };\n i.set(t, {\n result: a,\n metadata: n\n }), l.push([\n t,\n n\n ]);\n }\n }));\n }\n if (l.length > 0) for(let t = 0; t < l.length; t += 200){\n let s = l.slice(t, t + 200);\n await Promise.all(s.map(async ([t, s])=>{\n await e.set(a(t), s);\n }));\n }\n return i;\n },\n updateMetadata: async (t, i)=>{\n let n = {\n ...await e.get(a(t)) ?? await s(t),\n ...i\n };\n await e.set(a(t), n);\n },\n flush: async ()=>{\n if (0 === n.size) return;\n let s = [\n ...n.entries()\n ];\n n.clear();\n let i = Date.now();\n if (e.bulkSet) {\n let t = [];\n for (let [e, n] of s)t.push([\n e,\n n\n ]), t.push([\n a(e),\n {\n taskId: e,\n timestamp: i,\n hits: 0,\n lastAccess: i\n }\n ]);\n await e.bulkSet(t);\n } else for(let t = 0; t < s.length; t += 200){\n let n = s.slice(t, t + 200);\n await Promise.all(n.map(([t, a])=>e.set(t, a))), await Promise.all(n.map(([t])=>e.set(a(t), {\n taskId: t,\n timestamp: i,\n hits: 0,\n lastAccess: i\n })));\n }\n t('cache', `Flushed ${s.length} buffered results to disk`);\n }\n };\n};\n","export const createConfigCache = (e)=>({\n get: async (t)=>e.get(t),\n set: async (t, a)=>{\n await e.set(t, a);\n }\n });\n","export const createMetaCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, s)=>e.set(t, s),\n delete: (t)=>e.delete(t),\n flush: async ()=>{\n 'function' == typeof e.flush && await e.flush();\n }\n });\n","export const createPlanCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a)=>e.set(t, a),\n delete: (t)=>e.delete(t)\n });\n","export const createFileCache = (e)=>({\n get: (t)=>e.get(t),\n set: (t, a, s)=>e.set(t, {\n files: a,\n stats: s,\n timestamp: Date.now()\n })\n });\n","import t from 'node:crypto';\nimport { CACHE_KEY_PREFIX as e } from '../constants.js';\nexport const computeCompositeHash = (o, r = e)=>{\n let s = t.createHash('sha256');\n return s.update(o), r && s.update(r), s.digest('hex');\n};\n","import e from 'path';\nimport { createMemoryDriver as t } from './drivers/memory.js';\nimport { createDiskDriver as a } from './drivers/disk.js';\nimport { createPackedFileDriver as s } from './drivers/packed.js';\nimport { createAtomicDriver as r } from './drivers/atomic.js';\nimport { createJsonFileDriver as i } from './drivers/json-file.js';\nimport { createSourceCache as c } from './services/source-cache.js';\nimport { createAstCache as m } from './services/ast-cache.js';\nimport { createResultCache as o } from './services/result-cache.js';\nimport { createConfigCache as l } from './services/config-cache.js';\nimport { createMetaCache as n } from './services/meta-cache.js';\nimport { createPlanCache as p } from './services/plan-cache.js';\nimport { createFileCache as y } from './services/file-cache.js';\nimport { computeCompositeHash as h } from './services/hashing.js';\nimport { CACHE_VERSION as f } from './constants.js';\nlet createAsyncMemoryDriver = (e, a)=>{\n let s = t({\n maxItems: e,\n ttl: a\n });\n return {\n get: async (e)=>s.get(e),\n set: async (e, t)=>{\n s.set(e, t);\n },\n has: async (e)=>s.has(e),\n delete: async (e)=>{\n s.delete(e);\n },\n clear: async ()=>{\n s.clear();\n },\n getStats: async ()=>s.getStats()\n };\n};\nexport const createCacheContext = (g = {})=>{\n let d = process.cwd(), v = e.resolve(d, 'node_modules', '.cache', 'ngcompass'), j = !g.disk?.path, u = g.disk?.path ?? '[memory]', k = t({\n maxItems: g.memory?.maxItems\n }), w = t({\n maxItems: 200\n }), x = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'ast'),\n ttl: g.disk?.ttl\n }), z = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : s({\n path: e.join(g.disk?.path ?? v, 'results')\n }), C = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : r({\n path: e.join(g.disk?.path ?? v, 'config')\n }), I = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : i({\n path: e.join(g.disk?.path ?? v, 'meta')\n }), S = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'plans'),\n ttl: g.disk?.ttl\n }), b = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'files'),\n ttl: g.disk?.ttl\n }), A = c(k), D = m(w, x), M = o(z), P = l(C), E = n(I), G = p(S), H = y(b), T = j ? createAsyncMemoryDriver(g.memory?.maxItems, g.memory?.ttl) : a({\n path: e.join(g.disk?.path ?? v, 'analysis'),\n ttl: g.disk?.ttl\n }), _ = o(T), q = async ()=>{\n k.clear(), w.clear(), await x.clear(), await z.clear(), await C.clear(), await I.clear(), await S.clear(), await b.clear(), await T.clear();\n };\n return {\n sources: A,\n asts: D,\n results: M,\n configs: P,\n metas: E,\n plans: G,\n files: H,\n analysis: _,\n computeHash: h,\n prune: async ()=>{\n 'prune' in x && 'function' == typeof x.prune && await x.prune();\n },\n clear: q,\n clearType: async (e)=>{\n switch(e){\n case 'ast':\n w.clear(), await x.clear();\n break;\n case 'config':\n await C.clear();\n break;\n case 'results':\n await z.clear(), await T.clear();\n break;\n case 'all':\n await q();\n }\n },\n flush: async ()=>{\n await Promise.all([\n M.flush(),\n _.flush(),\n E.flush()\n ]);\n },\n getCachePath: ()=>u,\n getInfo: async ()=>{\n let e = w.getStats(), [t, a, s, r, i, c, m] = await Promise.all([\n x.getStats(),\n C.getStats(),\n z.getStats(),\n I.getStats(),\n S.getStats(),\n b.getStats(),\n T.getStats()\n ]), o = e.size + t.size + a.size + s.size + r.size + i.size + c.size + m.size;\n return {\n ast: {\n l1: {\n entries: e.entries,\n maxEntries: 200,\n size: e.size\n },\n l2: {\n entries: t.entries,\n size: t.size\n }\n },\n config: {\n entries: a.entries,\n size: a.size\n },\n results: {\n entries: s.entries,\n size: s.size\n },\n totalSize: o,\n location: u,\n version: f\n };\n }\n };\n};\nlet globalCache = null;\nexport const getCacheContext = (e)=>(globalCache || (globalCache = createCacheContext(e)), globalCache);\nexport const resetGlobalCache = ()=>{\n globalCache = null;\n};\n","import e from 'node:path';\nimport { createCacheContext as t } from './context.js';\nexport function createRuntimeCache(c, o, a = {}) {\n if (!c.cache.enabled && !a.allowDisabled) return;\n let r = e.resolve(o, c.cache.location);\n return t({\n memory: 'memory' === c.cache.strategy ? {\n ttl: c.cache.ttl\n } : void 0,\n disk: 'memory' === c.cache.strategy ? void 0 : {\n path: r,\n ttl: c.cache.ttl\n }\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngcompass/cache",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4-beta",
|
|
4
4
|
"description": "Caching layer for ngcompass",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"lru-cache": "^11.2.5",
|
|
26
26
|
"write-file-atomic": "^7.0.0",
|
|
27
27
|
"xxhash-wasm": "^1.1.0",
|
|
28
|
-
"@ngcompass/common": "0.1.
|
|
28
|
+
"@ngcompass/common": "0.1.4-beta"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"typescript": "5.9.3"
|