@dynlabs/react-native-immutable-file-cache 1.0.0-alpha.1 → 1.0.0-alpha.3

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.
Files changed (74) hide show
  1. package/README.md +183 -261
  2. package/lib/commonjs/adapters/memoryAdapter.js +1 -0
  3. package/lib/commonjs/adapters/memoryAdapter.js.map +1 -1
  4. package/lib/commonjs/adapters/rnfsAdapter.js +9 -4
  5. package/lib/commonjs/adapters/rnfsAdapter.js.map +1 -1
  6. package/lib/commonjs/adapters/webAdapter.js +1 -0
  7. package/lib/commonjs/adapters/webAdapter.js.map +1 -1
  8. package/lib/commonjs/core/adapter.js +54 -0
  9. package/lib/commonjs/core/adapter.js.map +1 -1
  10. package/lib/commonjs/core/cacheEngine.js +452 -59
  11. package/lib/commonjs/core/cacheEngine.js.map +1 -1
  12. package/lib/commonjs/core/errors.js +9 -6
  13. package/lib/commonjs/core/errors.js.map +1 -1
  14. package/lib/commonjs/core/hash.js +3 -3
  15. package/lib/commonjs/core/hash.js.map +1 -1
  16. package/lib/commonjs/core/indexStore.js +85 -8
  17. package/lib/commonjs/core/indexStore.js.map +1 -1
  18. package/lib/commonjs/core/prune.js +42 -11
  19. package/lib/commonjs/core/prune.js.map +1 -1
  20. package/lib/commonjs/core/types.js +132 -0
  21. package/lib/commonjs/core/types.js.map +1 -1
  22. package/lib/commonjs/index.js +33 -0
  23. package/lib/commonjs/index.js.map +1 -1
  24. package/lib/module/adapters/memoryAdapter.js +1 -0
  25. package/lib/module/adapters/memoryAdapter.js.map +1 -1
  26. package/lib/module/adapters/rnfsAdapter.js +9 -4
  27. package/lib/module/adapters/rnfsAdapter.js.map +1 -1
  28. package/lib/module/adapters/webAdapter.js +1 -0
  29. package/lib/module/adapters/webAdapter.js.map +1 -1
  30. package/lib/module/core/adapter.js +48 -0
  31. package/lib/module/core/adapter.js.map +1 -1
  32. package/lib/module/core/cacheEngine.js +453 -60
  33. package/lib/module/core/cacheEngine.js.map +1 -1
  34. package/lib/module/core/errors.js +9 -6
  35. package/lib/module/core/errors.js.map +1 -1
  36. package/lib/module/core/hash.js +3 -3
  37. package/lib/module/core/hash.js.map +1 -1
  38. package/lib/module/core/indexStore.js +86 -8
  39. package/lib/module/core/indexStore.js.map +1 -1
  40. package/lib/module/core/prune.js +40 -11
  41. package/lib/module/core/prune.js.map +1 -1
  42. package/lib/module/core/types.js +130 -1
  43. package/lib/module/core/types.js.map +1 -1
  44. package/lib/module/index.js +4 -0
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/typescript/src/adapters/memoryAdapter.d.ts.map +1 -1
  47. package/lib/typescript/src/adapters/rnfsAdapter.d.ts.map +1 -1
  48. package/lib/typescript/src/adapters/webAdapter.d.ts.map +1 -1
  49. package/lib/typescript/src/core/adapter.d.ts +16 -0
  50. package/lib/typescript/src/core/adapter.d.ts.map +1 -1
  51. package/lib/typescript/src/core/cacheEngine.d.ts +120 -1
  52. package/lib/typescript/src/core/cacheEngine.d.ts.map +1 -1
  53. package/lib/typescript/src/core/errors.d.ts +6 -5
  54. package/lib/typescript/src/core/errors.d.ts.map +1 -1
  55. package/lib/typescript/src/core/indexStore.d.ts +7 -0
  56. package/lib/typescript/src/core/indexStore.d.ts.map +1 -1
  57. package/lib/typescript/src/core/prune.d.ts +22 -8
  58. package/lib/typescript/src/core/prune.d.ts.map +1 -1
  59. package/lib/typescript/src/core/types.d.ts +153 -0
  60. package/lib/typescript/src/core/types.d.ts.map +1 -1
  61. package/lib/typescript/src/index.d.ts +5 -2
  62. package/lib/typescript/src/index.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/src/adapters/memoryAdapter.ts +3 -0
  65. package/src/adapters/rnfsAdapter.ts +11 -4
  66. package/src/adapters/webAdapter.ts +1 -0
  67. package/src/core/adapter.ts +28 -0
  68. package/src/core/cacheEngine.ts +476 -62
  69. package/src/core/errors.ts +8 -6
  70. package/src/core/hash.ts +3 -3
  71. package/src/core/indexStore.ts +99 -11
  72. package/src/core/prune.ts +44 -14
  73. package/src/core/types.ts +194 -0
  74. package/src/index.ts +22 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_indexStore","require","_mutex","_hash","_prune","ENTRIES_DIR","INDEX_FILE","CacheEngine","_indexMutex","Mutex","_keyMutex","KeyedMutex","_index","createEmptyIndex","_initialized","constructor","config","adapter","_config","namespace","autoPruneExpired","_adapter","IndexStore","_hashFn","hashFn","defaultHash","init","runExclusive","ensureDir","load","rebuild","putFromUrl","key","url","options","source","type","headers","_put","putFromFile","filePath","putFromBlob","blob","putFromBytes","bytes","_ensureInitialized","existingEntry","entries","now","Date","expiresAt","undefined","entry","_entryWithPath","status","_removeEntry","hashValue","ext","_extractExtension","entryPath","writeResult","writeBinaryAtomic","onProgress","ttlMs","defaultTtlMs","entryMeta","hash","sizeBytes","contentType","createdAt","lastAccessedAt","metadata","addEntryToIndex","save","_autoPrune","catch","get","touchEntry","uri","getPublicUri","path","has","peek","list","Object","values","filter","e","sortBy","order","multiplier","sort","a","b","comparison","localeCompare","offset","slice","limit","map","stats","validEntries","length","entryCount","totalSizeBytes","oldest","newest","reduce","sum","oldestEntry","newestEntry","remove","removeEntriesFromIndex","removeExpired","expired","getExpiredEntries","removedCount","freedBytes","removedKeys","_removeEntries","pruneLru","maxSizeBytes","targets","getLruPruneTargets","push","clear","removeDir","validateAndRepair","issues","exists","files","listDir","indexedHashes","Set","file","repaired","Error","meta","URL","pathname","lastDot","lastIndexOf","substring","lastSlash","Math","max","mime","mimeToExt","exports"],"sourceRoot":"../../../src","sources":["core/cacheEngine.ts"],"mappings":";;;;;;AAeA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAlBA;;AA2BA,MAAMI,WAAW,GAAG,SAAS;AAC7B,MAAMC,UAAU,GAAG,YAAY;;AAE/B;AACA;AACA;AACA;AACO,MAAMC,WAAW,CAAC;EAKNC,WAAW,GAAG,IAAIC,YAAK,CAAC,CAAC;EACzBC,SAAS,GAAG,IAAIC,iBAAU,CAAC,CAAC;EAGrCC,MAAM,GAAgB,IAAAC,uBAAgB,EAAC,CAAC;EACxCC,YAAY,GAAG,KAAK;EAE5BC,WAAWA,CAACC,MAAoB,EAAEC,OAAwB,EAAE;IAC1D,IAAI,CAACC,OAAO,GAAG;MACbC,SAAS,EAAE,SAAS;MACpBC,gBAAgB,EAAE,IAAI;MACtB,GAAGJ;IACL,CAAC;IACD,IAAI,CAACK,QAAQ,GAAGJ,OAAO;IACvB,IAAI,CAACjB,WAAW,GAAG,IAAIsB,sBAAU,CAACL,OAAO,EAAEX,UAAU,CAAC;IACtD,IAAI,CAACiB,OAAO,GAAGP,MAAM,CAACQ,MAAM,IAAIC,UAAW;EAC7C;;EAEA;AACF;AACA;EACE,MAAMC,IAAIA,CAAA,EAAkB;IAC1B,IAAI,IAAI,CAACZ,YAAY,EAAE;MACrB;IACF;IAEA,MAAM,IAAI,CAACN,WAAW,CAACmB,YAAY,CAAC,YAAY;MAC9C;MACA,MAAM,IAAI,CAACN,QAAQ,CAACO,SAAS,CAACvB,WAAW,CAAC;;MAE1C;MACA,IAAI;QACF,IAAI,CAACO,MAAM,GAAG,MAAM,IAAI,CAACZ,WAAW,CAAC6B,IAAI,CAAC,CAAC;MAC7C,CAAC,CAAC,MAAM;QACN;QACA,IAAI,CAACjB,MAAM,GAAG,MAAM,IAAI,CAACZ,WAAW,CAAC8B,OAAO,CAACzB,WAAW,CAAC;MAC3D;MAEA,IAAI,CAACS,YAAY,GAAG,IAAI;IAC1B,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;EACE,MAAMiB,UAAUA,CAACC,GAAW,EAAEC,GAAW,EAAEC,OAAqB,EAAuB;IACrF,MAAMC,MAAqB,GAAG;MAC5BC,IAAI,EAAE,KAAK;MACXH,GAAG;MACHI,OAAO,EAAEH,OAAO,EAAEG;IACpB,CAAC;IACD,OAAO,IAAI,CAACC,IAAI,CAACN,GAAG,EAAEG,MAAM,EAAED,OAAO,CAAC;EACxC;;EAEA;AACF;AACA;EACE,MAAMK,WAAWA,CAACP,GAAW,EAAEQ,QAAgB,EAAEN,OAAqB,EAAuB;IAC3F,MAAMC,MAAqB,GAAG;MAC5BC,IAAI,EAAE,MAAM;MACZI;IACF,CAAC;IACD,OAAO,IAAI,CAACF,IAAI,CAACN,GAAG,EAAEG,MAAM,EAAED,OAAO,CAAC;EACxC;;EAEA;AACF;AACA;EACE,MAAMO,WAAWA,CAACT,GAAW,EAAEU,IAAU,EAAER,OAAqB,EAAuB;IACrF,MAAMC,MAAqB,GAAG;MAC5BC,IAAI,EAAE,MAAM;MACZM;IACF,CAAC;IACD,OAAO,IAAI,CAACJ,IAAI,CAACN,GAAG,EAAEG,MAAM,EAAED,OAAO,CAAC;EACxC;;EAEA;AACF;AACA;EACE,MAAMS,YAAYA,CAACX,GAAW,EAAEY,KAAiB,EAAEV,OAAqB,EAAuB;IAC7F,MAAMC,MAAqB,GAAG;MAC5BC,IAAI,EAAE,OAAO;MACbQ;IACF,CAAC;IACD,OAAO,IAAI,CAACN,IAAI,CAACN,GAAG,EAAEG,MAAM,EAAED,OAAO,CAAC;EACxC;;EAEA;AACF;AACA;EACE,MAAcI,IAAIA,CAChBN,GAAW,EACXG,MAAqB,EACrBD,OAAqB,EACA;IACrB,IAAI,CAACW,kBAAkB,CAAC,CAAC;;IAEzB;IACA,OAAO,IAAI,CAACnC,SAAS,CAACiB,YAAY,CAACK,GAAG,EAAE,YAAY;MAClD;MACA,MAAMc,aAAa,GAAG,IAAI,CAAClC,MAAM,CAACmC,OAAO,CAACf,GAAG,CAAC;MAC9C,IAAIc,aAAa,EAAE;QACjB;QACA,MAAME,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;QACtB,IAAIF,aAAa,CAACI,SAAS,KAAKC,SAAS,IAAIL,aAAa,CAACI,SAAS,IAAIF,GAAG,EAAE;UAC3E;UACA,MAAMI,KAAK,GAAG,IAAI,CAACC,cAAc,CAACP,aAAa,CAAC;UAChD,OAAO;YAAEQ,MAAM,EAAE,QAAiB;YAAEF;UAAM,CAAC;QAC7C;QACA;QACA,MAAM,IAAI,CAACG,YAAY,CAACvB,GAAG,CAAC;MAC9B;;MAEA;MACA,MAAMwB,SAAS,GAAG,MAAM,IAAI,CAACjC,OAAO,CAACS,GAAG,CAAC;;MAEzC;MACA,MAAMyB,GAAG,GAAGvB,OAAO,EAAEuB,GAAG,IAAI,IAAI,CAACC,iBAAiB,CAACvB,MAAM,CAAC;;MAE1D;MACA,MAAMwB,SAAS,GAAG,GAAGtD,WAAW,IAAImD,SAAS,GAAGC,GAAG,EAAE;;MAErD;MACA,MAAMG,WAAW,GAAG,MAAM,IAAI,CAACvC,QAAQ,CAACwC,iBAAiB,CAACF,SAAS,EAAExB,MAAM,EAAE;QAC3E2B,UAAU,EAAE5B,OAAO,EAAE4B,UAAU;QAC/BzB,OAAO,EAAEH,OAAO,EAAEG;MACpB,CAAC,CAAC;;MAEF;MACA,MAAMW,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;MACtB,MAAMe,KAAK,GAAG7B,OAAO,EAAE6B,KAAK,IAAI,IAAI,CAAC7C,OAAO,CAAC8C,YAAY;MACzD,MAAMd,SAAS,GAAGa,KAAK,KAAKZ,SAAS,GAAGH,GAAG,GAAGe,KAAK,GAAGZ,SAAS;;MAE/D;MACA,MAAMc,SAA0B,GAAG;QACjCjC,GAAG;QACHkC,IAAI,EAAEV,SAAS;QACfC,GAAG;QACHU,SAAS,EAAEP,WAAW,CAACO,SAAS;QAChCC,WAAW,EAAER,WAAW,CAACQ,WAAW;QACpCC,SAAS,EAAErB,GAAG;QACdsB,cAAc,EAAEtB,GAAG;QACnBE,SAAS;QACTqB,QAAQ,EAAErC,OAAO,EAAEqC;MACrB,CAAC;;MAED;MACA,MAAM,IAAI,CAAC/D,WAAW,CAACmB,YAAY,CAAC,YAAY;QAC9C,IAAI,CAACf,MAAM,GAAG,IAAA4D,sBAAe,EAAC,IAAI,CAAC5D,MAAM,EAAEqD,SAAS,CAAC;QACrD,MAAM,IAAI,CAACjE,WAAW,CAACyE,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC;MAC1C,CAAC,CAAC;;MAEF;MACA,IAAI,IAAI,CAACM,OAAO,CAACE,gBAAgB,EAAE;QACjC;QACA,IAAI,CAACsD,UAAU,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM;UAC5B;QAAA,CACD,CAAC;MACJ;MAEA,MAAMvB,KAAK,GAAG,IAAI,CAACC,cAAc,CAACY,SAAS,CAAC;MAC5C,OAAO;QAAEX,MAAM,EAAE,SAAkB;QAAEF;MAAM,CAAC;IAC9C,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;EACE,MAAMwB,GAAGA,CAAC5C,GAAW,EAA8B;IACjD,IAAI,CAACa,kBAAkB,CAAC,CAAC;IAEzB,MAAMoB,SAAS,GAAG,IAAI,CAACrD,MAAM,CAACmC,OAAO,CAACf,GAAG,CAAC;IAC1C,IAAI,CAACiC,SAAS,EAAE;MACd,OAAO,IAAI;IACb;;IAEA;IACA,MAAMjB,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAIiB,SAAS,CAACf,SAAS,KAAKC,SAAS,IAAIc,SAAS,CAACf,SAAS,GAAGF,GAAG,EAAE;MAClE;MACA,OAAO,IAAI;IACb;;IAEA;IACA,MAAM,IAAI,CAACxC,WAAW,CAACmB,YAAY,CAAC,YAAY;MAC9C,IAAI,CAACf,MAAM,GAAG,IAAAiE,iBAAU,EAAC,IAAI,CAACjE,MAAM,EAAEoB,GAAG,EAAEgB,GAAG,CAAC;MAC/C,MAAM,IAAI,CAAChD,WAAW,CAACyE,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAMwC,KAAK,GAAG,IAAI,CAACC,cAAc,CAACY,SAAS,CAAC;IAC5C,MAAMa,GAAG,GAAG,MAAM,IAAI,CAACzD,QAAQ,CAAC0D,YAAY,CAAC3B,KAAK,CAAC4B,IAAI,CAAC;IAExD,OAAO;MAAE5B,KAAK;MAAE0B;IAAI,CAAC;EACvB;;EAEA;AACF;AACA;EACE,MAAMG,GAAGA,CAACjD,GAAW,EAAoB;IACvC,IAAI,CAACa,kBAAkB,CAAC,CAAC;IAEzB,MAAMoB,SAAS,GAAG,IAAI,CAACrD,MAAM,CAACmC,OAAO,CAACf,GAAG,CAAC;IAC1C,IAAI,CAACiC,SAAS,EAAE;MACd,OAAO,KAAK;IACd;;IAEA;IACA,MAAMjB,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAIiB,SAAS,CAACf,SAAS,KAAKC,SAAS,IAAIc,SAAS,CAACf,SAAS,GAAGF,GAAG,EAAE;MAClE,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACE,MAAMkC,IAAIA,CAAClD,GAAW,EAA+B;IACnD,IAAI,CAACa,kBAAkB,CAAC,CAAC;IAEzB,MAAMoB,SAAS,GAAG,IAAI,CAACrD,MAAM,CAACmC,OAAO,CAACf,GAAG,CAAC;IAC1C,IAAI,CAACiC,SAAS,EAAE;MACd,OAAO,IAAI;IACb;;IAEA;IACA,MAAMjB,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAIiB,SAAS,CAACf,SAAS,KAAKC,SAAS,IAAIc,SAAS,CAACf,SAAS,GAAGF,GAAG,EAAE;MAClE,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACK,cAAc,CAACY,SAAS,CAAC;EACvC;;EAEA;EACA;EACA;;EAEA;AACF;AACA;EACE,MAAMkB,IAAIA,CAACjD,OAAsB,EAAuC;IACtE,IAAI,CAACW,kBAAkB,CAAC,CAAC;IAEzB,MAAMG,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAID,OAAO,GAAGqC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzE,MAAM,CAACmC,OAAO;IAC7C;IAAA,CACCuC,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACrC,SAAS,KAAKC,SAAS,IAAIoC,CAAC,CAACrC,SAAS,IAAIF,GAAG;IAC9D;IAAA,CACCsC,MAAM,CAAEC,CAAC,IAAMrD,OAAO,EAAEoD,MAAM,GAAGpD,OAAO,CAACoD,MAAM,CAACC,CAAC,CAAC,GAAG,IAAK,CAAC;;IAE9D;IACA,MAAMC,MAAM,GAAGtD,OAAO,EAAEsD,MAAM,IAAI,WAAW;IAC7C,MAAMC,KAAK,GAAGvD,OAAO,EAAEuD,KAAK,IAAI,MAAM;IACtC,MAAMC,UAAU,GAAGD,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;IAE5C1C,OAAO,CAAC4C,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACrB,IAAIC,UAAU,GAAG,CAAC;MAClB,QAAQN,MAAM;QACZ,KAAK,WAAW;UACdM,UAAU,GAAGF,CAAC,CAACvB,SAAS,GAAGwB,CAAC,CAACxB,SAAS;UACtC;QACF,KAAK,gBAAgB;UACnByB,UAAU,GAAGF,CAAC,CAACtB,cAAc,GAAGuB,CAAC,CAACvB,cAAc;UAChD;QACF,KAAK,WAAW;UACdwB,UAAU,GAAGF,CAAC,CAACzB,SAAS,GAAG0B,CAAC,CAAC1B,SAAS;UACtC;QACF,KAAK,KAAK;UACR2B,UAAU,GAAGF,CAAC,CAAC5D,GAAG,CAAC+D,aAAa,CAACF,CAAC,CAAC7D,GAAG,CAAC;UACvC;MACJ;MACA,OAAO8D,UAAU,GAAGJ,UAAU;IAChC,CAAC,CAAC;;IAEF;IACA,IAAIxD,OAAO,EAAE8D,MAAM,KAAK7C,SAAS,EAAE;MACjCJ,OAAO,GAAGA,OAAO,CAACkD,KAAK,CAAC/D,OAAO,CAAC8D,MAAM,CAAC;IACzC;IACA,IAAI9D,OAAO,EAAEgE,KAAK,KAAK/C,SAAS,EAAE;MAChCJ,OAAO,GAAGA,OAAO,CAACkD,KAAK,CAAC,CAAC,EAAE/D,OAAO,CAACgE,KAAK,CAAC;IAC3C;IAEA,OAAOnD,OAAO,CAACoD,GAAG,CAAEZ,CAAC,IAAK,IAAI,CAAClC,cAAc,CAACkC,CAAC,CAAC,CAAC;EACnD;;EAEA;AACF;AACA;EACE,MAAMa,KAAKA,CAAA,EAAyB;IAClC,IAAI,CAACvD,kBAAkB,CAAC,CAAC;IAEzB,MAAMG,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,MAAMqD,YAAY,GAAGjB,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzE,MAAM,CAACmC,OAAO,CAAC,CAACuC,MAAM,CAC3DC,CAAC,IAAKA,CAAC,CAACrC,SAAS,KAAKC,SAAS,IAAIoC,CAAC,CAACrC,SAAS,IAAIF,GACrD,CAAC;IAED,IAAIqD,YAAY,CAACC,MAAM,KAAK,CAAC,EAAE;MAC7B,OAAO;QACLC,UAAU,EAAE,CAAC;QACbC,cAAc,EAAE;MAClB,CAAC;IACH;;IAEA;IACA,IAAIC,MAAM,GAAGJ,YAAY,CAAC,CAAC,CAAC;IAC5B,IAAIK,MAAM,GAAGL,YAAY,CAAC,CAAC,CAAC;IAE5B,KAAK,MAAMjD,KAAK,IAAIiD,YAAY,EAAE;MAChC,IAAIjD,KAAK,CAACiB,SAAS,GAAGoC,MAAM,CAACpC,SAAS,EAAE;QACtCoC,MAAM,GAAGrD,KAAK;MAChB;MACA,IAAIA,KAAK,CAACiB,SAAS,GAAGqC,MAAM,CAACrC,SAAS,EAAE;QACtCqC,MAAM,GAAGtD,KAAK;MAChB;IACF;IAEA,MAAMoD,cAAc,GAAGH,YAAY,CAACM,MAAM,CAAC,CAACC,GAAG,EAAErB,CAAC,KAAKqB,GAAG,GAAGrB,CAAC,CAACpB,SAAS,EAAE,CAAC,CAAC;IAE5E,OAAO;MACLoC,UAAU,EAAEF,YAAY,CAACC,MAAM;MAC/BE,cAAc;MACdK,WAAW,EAAEJ,MAAM;MACnBK,WAAW,EAAEJ;IACf,CAAC;EACH;;EAEA;EACA;EACA;;EAEA;AACF;AACA;EACE,MAAMK,MAAMA,CAAC/E,GAAW,EAAoB;IAC1C,IAAI,CAACa,kBAAkB,CAAC,CAAC;IAEzB,OAAO,IAAI,CAACnC,SAAS,CAACiB,YAAY,CAACK,GAAG,EAAE,YAAY;MAClD,OAAO,IAAI,CAACuB,YAAY,CAACvB,GAAG,CAAC;IAC/B,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,MAAcuB,YAAYA,CAACvB,GAAW,EAAoB;IACxD,MAAMiC,SAAS,GAAG,IAAI,CAACrD,MAAM,CAACmC,OAAO,CAACf,GAAG,CAAC;IAC1C,IAAI,CAACiC,SAAS,EAAE;MACd,OAAO,KAAK;IACd;IAEA,MAAMN,SAAS,GAAG,GAAGtD,WAAW,IAAI4D,SAAS,CAACC,IAAI,GAAGD,SAAS,CAACR,GAAG,EAAE;;IAEpE;IACA,MAAM,IAAI,CAACpC,QAAQ,CAAC0F,MAAM,CAACpD,SAAS,CAAC;;IAErC;IACA,MAAM,IAAI,CAACnD,WAAW,CAACmB,YAAY,CAAC,YAAY;MAC9C,IAAI,CAACf,MAAM,GAAG,IAAAoG,6BAAsB,EAAC,IAAI,CAACpG,MAAM,EAAE,CAACoB,GAAG,CAAC,CAAC;MACxD,MAAM,IAAI,CAAChC,WAAW,CAACyE,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACE,MAAMqG,aAAaA,CAAA,EAA0B;IAC3C,IAAI,CAACpE,kBAAkB,CAAC,CAAC;IAEzB,MAAMG,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,MAAMkE,OAAO,GAAG,IAAAC,wBAAiB,EAAC,IAAI,CAACvG,MAAM,EAAEoC,GAAG,CAAC;IAEnD,IAAIkE,OAAO,CAACZ,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO;QACLc,YAAY,EAAE,CAAC;QACfC,UAAU,EAAE,CAAC;QACbC,WAAW,EAAE;MACf,CAAC;IACH;IAEA,OAAO,IAAI,CAACC,cAAc,CAACL,OAAO,CAAC;EACrC;;EAEA;AACF;AACA;EACE,MAAMM,QAAQA,CAACC,YAAoB,EAAyB;IAC1D,IAAI,CAAC5E,kBAAkB,CAAC,CAAC;IAEzB,MAAM6E,OAAO,GAAG,IAAAC,yBAAkB,EAAC,IAAI,CAAC/G,MAAM,EAAE6G,YAAY,CAAC;IAE7D,IAAIC,OAAO,CAACpB,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO;QACLc,YAAY,EAAE,CAAC;QACfC,UAAU,EAAE,CAAC;QACbC,WAAW,EAAE;MACf,CAAC;IACH;IAEA,OAAO,IAAI,CAACC,cAAc,CAACG,OAAO,CAAC;EACrC;;EAEA;AACF;AACA;EACE,MAAcH,cAAcA,CAACxE,OAAuC,EAAyB;IAC3F,MAAMuE,WAAqB,GAAG,EAAE;IAChC,IAAID,UAAU,GAAG,CAAC;IAElB,KAAK,MAAMjE,KAAK,IAAIL,OAAO,EAAE;MAC3B,MAAMY,SAAS,GAAG,GAAGtD,WAAW,IAAI+C,KAAK,CAACc,IAAI,GAAGd,KAAK,CAACK,GAAG,EAAE;MAC5D,IAAI;QACF,MAAM,IAAI,CAACpC,QAAQ,CAAC0F,MAAM,CAACpD,SAAS,CAAC;QACrC2D,WAAW,CAACM,IAAI,CAACxE,KAAK,CAACpB,GAAG,CAAC;QAC3BqF,UAAU,IAAIjE,KAAK,CAACe,SAAS;MAC/B,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;;IAEA;IACA,IAAImD,WAAW,CAAChB,MAAM,GAAG,CAAC,EAAE;MAC1B,MAAM,IAAI,CAAC9F,WAAW,CAACmB,YAAY,CAAC,YAAY;QAC9C,IAAI,CAACf,MAAM,GAAG,IAAAoG,6BAAsB,EAAC,IAAI,CAACpG,MAAM,EAAE0G,WAAW,CAAC;QAC9D,MAAM,IAAI,CAACtH,WAAW,CAACyE,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC;MAC1C,CAAC,CAAC;IACJ;IAEA,OAAO;MACLwG,YAAY,EAAEE,WAAW,CAAChB,MAAM;MAChCe,UAAU;MACVC;IACF,CAAC;EACH;;EAEA;AACF;AACA;EACE,MAAMO,KAAKA,CAAA,EAAkB;IAC3B,IAAI,CAAChF,kBAAkB,CAAC,CAAC;IAEzB,MAAM,IAAI,CAACrC,WAAW,CAACmB,YAAY,CAAC,YAAY;MAC9C;MACA,IAAI;QACF,MAAM,IAAI,CAACN,QAAQ,CAACyG,SAAS,CAACzH,WAAW,CAAC;MAC5C,CAAC,CAAC,MAAM;QACN;MAAA;;MAGF;MACA,MAAM,IAAI,CAACgB,QAAQ,CAACO,SAAS,CAACvB,WAAW,CAAC;;MAE1C;MACA,IAAI,CAACO,MAAM,GAAG,IAAAC,uBAAgB,EAAC,CAAC;MAChC,MAAM,IAAI,CAACb,WAAW,CAACyE,IAAI,CAAC,IAAI,CAAC7D,MAAM,CAAC;IAC1C,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;;EAEA;AACF;AACA;EACE,MAAMmH,iBAAiBA,CAAA,EAAqD;IAC1E,IAAI,CAAClF,kBAAkB,CAAC,CAAC;IAEzB,MAAMmF,MAAgB,GAAG,EAAE;IAE3B,MAAM,IAAI,CAACxH,WAAW,CAACmB,YAAY,CAAC,YAAY;MAC9C;MACA,KAAK,MAAMyB,KAAK,IAAIgC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzE,MAAM,CAACmC,OAAO,CAAC,EAAE;QACtD,MAAMY,SAAS,GAAG,GAAGtD,WAAW,IAAI+C,KAAK,CAACc,IAAI,GAAGd,KAAK,CAACK,GAAG,EAAE;QAC5D,MAAMwE,MAAM,GAAG,MAAM,IAAI,CAAC5G,QAAQ,CAAC4G,MAAM,CAACtE,SAAS,CAAC;QACpD,IAAI,CAACsE,MAAM,EAAE;UACXD,MAAM,CAACJ,IAAI,CAAC,2BAA2BxE,KAAK,CAACpB,GAAG,GAAG,CAAC;QACtD;MACF;;MAEA;MACA,IAAI;QACF,MAAMkG,KAAK,GAAG,MAAM,IAAI,CAAC7G,QAAQ,CAAC8G,OAAO,CAAC9H,WAAW,CAAC;QACtD,MAAM+H,aAAa,GAAG,IAAIC,GAAG,CAC3BjD,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzE,MAAM,CAACmC,OAAO,CAAC,CAACoD,GAAG,CAAEZ,CAAC,IAAK,GAAGA,CAAC,CAACrB,IAAI,GAAGqB,CAAC,CAAC9B,GAAG,EAAE,CACnE,CAAC;QAED,KAAK,MAAM6E,IAAI,IAAIJ,KAAK,EAAE;UACxB,IAAI,CAACE,aAAa,CAACnD,GAAG,CAACqD,IAAI,CAAC,EAAE;YAC5BN,MAAM,CAACJ,IAAI,CAAC,gBAAgBU,IAAI,gBAAgB,CAAC;UACnD;QACF;MACF,CAAC,CAAC,MAAM;QACNN,MAAM,CAACJ,IAAI,CAAC,kCAAkC,CAAC;MACjD;IACF,CAAC,CAAC;;IAEF;IACA,IAAII,MAAM,CAAC1B,MAAM,GAAG,CAAC,EAAE;MACrB,MAAM,IAAI,CAAC9F,WAAW,CAACmB,YAAY,CAAC,YAAY;QAC9C,IAAI,CAACf,MAAM,GAAG,MAAM,IAAI,CAACZ,WAAW,CAAC8B,OAAO,CAACzB,WAAW,CAAC;MAC3D,CAAC,CAAC;IACJ;IAEA,OAAO;MACLkI,QAAQ,EAAEP,MAAM,CAAC1B,MAAM,GAAG,CAAC;MAC3B0B;IACF,CAAC;EACH;;EAEA;EACA;EACA;;EAEQnF,kBAAkBA,CAAA,EAAS;IACjC,IAAI,CAAC,IAAI,CAAC/B,YAAY,EAAE;MACtB,MAAM,IAAI0H,KAAK,CAAC,iDAAiD,CAAC;IACpE;EACF;EAEQnF,cAAcA,CAACoF,IAAqB,EAAe;IACzD,OAAO;MACL,GAAGA,IAAI;MACPzD,IAAI,EAAE,GAAG3E,WAAW,IAAIoI,IAAI,CAACvE,IAAI,GAAGuE,IAAI,CAAChF,GAAG;IAC9C,CAAC;EACH;EAEQC,iBAAiBA,CAACvB,MAAqB,EAAU;IACvD,QAAQA,MAAM,CAACC,IAAI;MACjB,KAAK,KAAK;QAAE;UACV,MAAMH,GAAG,GAAG,IAAIyG,GAAG,CAACvG,MAAM,CAACF,GAAG,CAAC;UAC/B,MAAM0G,QAAQ,GAAG1G,GAAG,CAAC0G,QAAQ;UAC7B,MAAMC,OAAO,GAAGD,QAAQ,CAACE,WAAW,CAAC,GAAG,CAAC;UACzC,IAAID,OAAO,GAAG,CAAC,IAAIA,OAAO,GAAGD,QAAQ,CAACE,WAAW,CAAC,GAAG,CAAC,EAAE;YACtD,OAAOF,QAAQ,CAACG,SAAS,CAACF,OAAO,CAAC;UACpC;UACA,OAAO,EAAE;QACX;MACA,KAAK,MAAM;QAAE;UACX,MAAMA,OAAO,GAAGzG,MAAM,CAACK,QAAQ,CAACqG,WAAW,CAAC,GAAG,CAAC;UAChD,MAAME,SAAS,GAAGC,IAAI,CAACC,GAAG,CACxB9G,MAAM,CAACK,QAAQ,CAACqG,WAAW,CAAC,GAAG,CAAC,EAChC1G,MAAM,CAACK,QAAQ,CAACqG,WAAW,CAAC,IAAI,CAClC,CAAC;UACD,IAAID,OAAO,GAAG,CAAC,IAAIA,OAAO,GAAGG,SAAS,EAAE;YACtC,OAAO5G,MAAM,CAACK,QAAQ,CAACsG,SAAS,CAACF,OAAO,CAAC;UAC3C;UACA,OAAO,EAAE;QACX;MACA,KAAK,MAAM;QAAE;UACX;UACA,MAAMM,IAAI,GAAG/G,MAAM,CAACO,IAAI,CAACN,IAAI;UAC7B,IAAI8G,IAAI,EAAE;YACR,MAAMC,SAAiC,GAAG;cACxC,YAAY,EAAE,MAAM;cACpB,WAAW,EAAE,MAAM;cACnB,WAAW,EAAE,MAAM;cACnB,YAAY,EAAE,OAAO;cACrB,kBAAkB,EAAE,OAAO;cAC3B,YAAY,EAAE,MAAM;cACpB,WAAW,EAAE,OAAO;cACpB,iBAAiB,EAAE;YACrB,CAAC;YACD,OAAOA,SAAS,CAACD,IAAI,CAAC,IAAI,EAAE;UAC9B;UACA,OAAO,EAAE;QACX;MACA,KAAK,OAAO;QACV,OAAO,EAAE;IACb;EACF;EAEA,MAAcxE,UAAUA,CAAA,EAAkB;IACxC;IACA,MAAM,IAAI,CAACuC,aAAa,CAAC,CAAC;;IAE1B;IACA,IAAI,IAAI,CAAC/F,OAAO,CAACuG,YAAY,KAAKtE,SAAS,EAAE;MAC3C,MAAM,IAAI,CAACqE,QAAQ,CAAC,IAAI,CAACtG,OAAO,CAACuG,YAAY,CAAC;IAChD;EACF;AACF;AAAC2B,OAAA,CAAA7I,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_indexStore","require","_mutex","_hash","_prune","ENTRIES_DIR","INDEX_FILE","MIME_TO_EXT","EMPTY_PRUNE_RESULT","Object","freeze","removedCount","freedBytes","removedKeys","buildEntryPath","hash","ext","CacheEngine","_indexMutex","Mutex","_keyMutex","KeyedMutex","_index","createEmptyIndex","_initialized","_indexDirty","_debounceTimer","constructor","config","adapter","_config","namespace","autoPruneExpired","_adapter","IndexStore","_hashFn","hashFn","defaultHash","_now","now","Date","_debounceMs","indexWriteDebounceMs","isInitialized","hasPendingWrites","_scheduleIndexSave","save","clearTimeout","setTimeout","_flushIndex","flush","runExclusive","destroy","_emit","event","onEvent","init","ensureDir","load","rebuild","putFromUrl","key","url","options","source","type","headers","_put","putFromFile","filePath","putFromBlob","blob","putFromBytes","bytes","_ensureInitialized","existingEntry","entries","startTime","isEntryValid","entry","_entryWithPath","status","_removeEntry","hashValue","_extractExtension","entryPath","writeResult","writeBinaryAtomic","onProgress","ttlMs","defaultTtlMs","expiresAt","undefined","entryMeta","sizeBytes","contentType","createdAt","lastAccessedAt","metadata","durationMs","addEntryToIndex","_autoPrune","catch","get","reason","isEntryExpired","touchEntry","uri","getPublicUri","path","ageMs","has","peek","getUri","touch","setTtl","newExpiresAt","updatedEntry","extendTtl","additionalMs","getOrPut","fetcher","existing","fetched","fetchResult","putResult","keys","values","filter","e","map","count","validCount","list","sortBy","order","multiplier","sort","a","b","comparison","localeCompare","offset","slice","limit","stats","validEntries","length","entryCount","totalSizeBytes","oldest","newest","reduce","sum","oldestEntry","newestEntry","remove","removed","removeEntriesFromIndex","removeExpired","expired","getExpiredEntries","result","_removeEntries","pruneLru","maxSizeBytes","targets","getLruPruneTargets","push","clear","removeDir","validateAndRepair","issues","exists","files","listDir","indexedHashes","Set","file","repaired","Error","meta","URL","pathname","lastDot","lastIndexOf","substring","lastSlash","Math","max","mime","exports"],"sourceRoot":"../../../src","sources":["core/cacheEngine.ts"],"mappings":"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","ignoreList":[]}
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.UnsupportedSourceError = exports.ImmutableConflictError = exports.EntryNotFoundError = exports.CorruptIndexError = exports.CacheError = exports.AdapterIOError = void 0;
7
7
  /**
8
8
  * Base error class for cache operations.
9
+ * Supports ES2022 Error.cause for proper error chaining.
9
10
  */
10
11
  class CacheError extends Error {
11
- constructor(message) {
12
- super(message);
12
+ constructor(message, options) {
13
+ super(message, options);
13
14
  this.name = this.constructor.name;
14
15
  Object.setPrototypeOf(this, new.target.prototype);
15
16
  }
@@ -35,10 +36,11 @@ exports.UnsupportedSourceError = UnsupportedSourceError;
35
36
  class AdapterIOError extends CacheError {
36
37
  code = "ADAPTER_IO_ERROR";
37
38
  constructor(operation, path, cause) {
38
- super(`Adapter I/O error during "${operation}" at path "${path}": ${cause?.message ?? "unknown"}`);
39
+ super(`Adapter I/O error during "${operation}" at path "${path}": ${cause?.message ?? "unknown"}`, cause ? {
40
+ cause
41
+ } : undefined);
39
42
  this.operation = operation;
40
43
  this.path = path;
41
- this.cause = cause;
42
44
  }
43
45
  }
44
46
 
@@ -49,9 +51,10 @@ exports.AdapterIOError = AdapterIOError;
49
51
  class CorruptIndexError extends CacheError {
50
52
  code = "CORRUPT_INDEX";
51
53
  constructor(reason, cause) {
52
- super(`Cache index is corrupt: ${reason}`);
54
+ super(`Cache index is corrupt: ${reason}`, cause ? {
55
+ cause
56
+ } : undefined);
53
57
  this.reason = reason;
54
- this.cause = cause;
55
58
  }
56
59
  }
57
60
 
@@ -1 +1 @@
1
- {"version":3,"names":["CacheError","Error","constructor","message","name","Object","setPrototypeOf","new","target","prototype","exports","UnsupportedSourceError","code","sourceType","adapterKind","AdapterIOError","operation","path","cause","CorruptIndexError","reason","ImmutableConflictError","key","EntryNotFoundError"],"sourceRoot":"../../../src","sources":["core/errors.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAeA,UAAU,SAASC,KAAK,CAAC;EAG7CC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,IAAI,CAACF,WAAW,CAACE,IAAI;IACjCC,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEC,GAAG,CAACC,MAAM,CAACC,SAAS,CAAC;EACnD;AACF;;AAEA;AACA;AACA;AAFAC,OAAA,CAAAV,UAAA,GAAAA,UAAA;AAGO,MAAMW,sBAAsB,SAASX,UAAU,CAAC;EAC5CY,IAAI,GAAG,oBAAoB;EAEpCV,WAAWA,CACOW,UAAiC,EACjCC,WAAmB,EACnC;IACA,KAAK,CAAC,YAAYA,WAAW,mCAAmCD,UAAU,GAAG,CAAC;IAAC,KAH/DA,UAAiC,GAAjCA,UAAiC;IAAA,KACjCC,WAAmB,GAAnBA,WAAmB;EAGrC;AACF;;AAEA;AACA;AACA;AAFAJ,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AAGO,MAAMI,cAAc,SAASf,UAAU,CAAC;EACpCY,IAAI,GAAG,kBAAkB;EAElCV,WAAWA,CACOc,SAAiB,EACjBC,IAAY,EACZC,KAAa,EAC7B;IACA,KAAK,CACH,6BAA6BF,SAAS,cAAcC,IAAI,MAAMC,KAAK,EAAEf,OAAO,IAAI,SAAS,EAC3F,CAAC;IAAC,KANca,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,IAAY,GAAZA,IAAY;IAAA,KACZC,KAAa,GAAbA,KAAa;EAK/B;AACF;;AAEA;AACA;AACA;AAFAR,OAAA,CAAAK,cAAA,GAAAA,cAAA;AAGO,MAAMI,iBAAiB,SAASnB,UAAU,CAAC;EACvCY,IAAI,GAAG,eAAe;EAE/BV,WAAWA,CACOkB,MAAc,EACdF,KAAa,EAC7B;IACA,KAAK,CAAC,2BAA2BE,MAAM,EAAE,CAAC;IAAC,KAH3BA,MAAc,GAAdA,MAAc;IAAA,KACdF,KAAa,GAAbA,KAAa;EAG/B;AACF;;AAEA;AACA;AACA;AACA;AAHAR,OAAA,CAAAS,iBAAA,GAAAA,iBAAA;AAIO,MAAME,sBAAsB,SAASrB,UAAU,CAAC;EAC5CY,IAAI,GAAG,oBAAoB;EAEpCV,WAAWA,CAAiBoB,GAAW,EAAE;IACvC,KAAK,CAAC,8CAA8CA,GAAG,GAAG,CAAC;IAAC,KADlCA,GAAW,GAAXA,GAAW;EAEvC;AACF;;AAEA;AACA;AACA;AAFAZ,OAAA,CAAAW,sBAAA,GAAAA,sBAAA;AAGO,MAAME,kBAAkB,SAASvB,UAAU,CAAC;EACxCY,IAAI,GAAG,iBAAiB;EAEjCV,WAAWA,CAAiBoB,GAAW,EAAE;IACvC,KAAK,CAAC,kCAAkCA,GAAG,GAAG,CAAC;IAAC,KADtBA,GAAW,GAAXA,GAAW;EAEvC;AACF;AAACZ,OAAA,CAAAa,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["CacheError","Error","constructor","message","options","name","Object","setPrototypeOf","new","target","prototype","exports","UnsupportedSourceError","code","sourceType","adapterKind","AdapterIOError","operation","path","cause","undefined","CorruptIndexError","reason","ImmutableConflictError","key","EntryNotFoundError"],"sourceRoot":"../../../src","sources":["core/errors.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACO,MAAeA,UAAU,SAASC,KAAK,CAAC;EAG7CC,WAAWA,CAACC,OAAe,EAAEC,OAA2B,EAAE;IACxD,KAAK,CAACD,OAAO,EAAEC,OAAO,CAAC;IACvB,IAAI,CAACC,IAAI,GAAG,IAAI,CAACH,WAAW,CAACG,IAAI;IACjCC,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEC,GAAG,CAACC,MAAM,CAACC,SAAS,CAAC;EACnD;AACF;;AAEA;AACA;AACA;AAFAC,OAAA,CAAAX,UAAA,GAAAA,UAAA;AAGO,MAAMY,sBAAsB,SAASZ,UAAU,CAAC;EAC5Ca,IAAI,GAAG,oBAAoB;EAEpCX,WAAWA,CACOY,UAAiC,EACjCC,WAAmB,EACnC;IACA,KAAK,CAAC,YAAYA,WAAW,mCAAmCD,UAAU,GAAG,CAAC;IAAC,KAH/DA,UAAiC,GAAjCA,UAAiC;IAAA,KACjCC,WAAmB,GAAnBA,WAAmB;EAGrC;AACF;;AAEA;AACA;AACA;AAFAJ,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AAGO,MAAMI,cAAc,SAAShB,UAAU,CAAC;EACpCa,IAAI,GAAG,kBAAkB;EAElCX,WAAWA,CACOe,SAAiB,EACjBC,IAAY,EAC5BC,KAAa,EACb;IACA,KAAK,CACH,6BAA6BF,SAAS,cAAcC,IAAI,MAAMC,KAAK,EAAEhB,OAAO,IAAI,SAAS,EAAE,EAC3FgB,KAAK,GAAG;MAAEA;IAAM,CAAC,GAAGC,SACtB,CAAC;IAAC,KAPcH,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,IAAY,GAAZA,IAAY;EAO9B;AACF;;AAEA;AACA;AACA;AAFAP,OAAA,CAAAK,cAAA,GAAAA,cAAA;AAGO,MAAMK,iBAAiB,SAASrB,UAAU,CAAC;EACvCa,IAAI,GAAG,eAAe;EAE/BX,WAAWA,CACOoB,MAAc,EAC9BH,KAAa,EACb;IACA,KAAK,CAAC,2BAA2BG,MAAM,EAAE,EAAEH,KAAK,GAAG;MAAEA;IAAM,CAAC,GAAGC,SAAS,CAAC;IAAC,KAH1DE,MAAc,GAAdA,MAAc;EAIhC;AACF;;AAEA;AACA;AACA;AACA;AAHAX,OAAA,CAAAU,iBAAA,GAAAA,iBAAA;AAIO,MAAME,sBAAsB,SAASvB,UAAU,CAAC;EAC5Ca,IAAI,GAAG,oBAAoB;EAEpCX,WAAWA,CAAiBsB,GAAW,EAAE;IACvC,KAAK,CAAC,8CAA8CA,GAAG,GAAG,CAAC;IAAC,KADlCA,GAAW,GAAXA,GAAW;EAEvC;AACF;;AAEA;AACA;AACA;AAFAb,OAAA,CAAAY,sBAAA,GAAAA,sBAAA;AAGO,MAAME,kBAAkB,SAASzB,UAAU,CAAC;EACxCa,IAAI,GAAG,iBAAiB;EAEjCX,WAAWA,CAAiBsB,GAAW,EAAE;IACvC,KAAK,CAAC,kCAAkCA,GAAG,GAAG,CAAC;IAAC,KADtBA,GAAW,GAAXA,GAAW;EAEvC;AACF;AAACb,OAAA,CAAAc,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -15,11 +15,11 @@ exports.hashSync = hashSync;
15
15
  */
16
16
  function arrayBufferToHex(buffer) {
17
17
  const bytes = new Uint8Array(buffer);
18
- let hex = "";
18
+ const hexParts = new Array(bytes.length);
19
19
  for (let i = 0; i < bytes.length; i++) {
20
- hex += bytes[i].toString(16).padStart(2, "0");
20
+ hexParts[i] = bytes[i].toString(16).padStart(2, "0");
21
21
  }
22
- return hex;
22
+ return hexParts.join("");
23
23
  }
24
24
 
25
25
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["arrayBufferToHex","buffer","bytes","Uint8Array","hex","i","length","toString","padStart","stringToUint8Array","str","encoder","TextEncoder","encode","hash","input","globalThis","crypto","subtle","digest","data","hashBuffer","fallbackHash","h1","h2","ch","charCodeAt","Math","imul","result","hashSync"],"sourceRoot":"../../../src","sources":["core/hash.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,gBAAgBA,CAACC,MAAmB,EAAU;EACrD,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpC,IAAIG,GAAG,GAAG,EAAE;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACrCD,GAAG,IAAIF,KAAK,CAACG,CAAC,CAAC,CAACE,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC/C;EACA,OAAOJ,GAAG;AACZ;;AAEA;AACA;AACA;AACA,SAASK,kBAAkBA,CAACC,GAAW,EAAc;EACnD,MAAMC,OAAO,GAAG,IAAIC,WAAW,CAAC,CAAC;EACjC,OAAOD,OAAO,CAACE,MAAM,CAACH,GAAG,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeI,IAAIA,CAACC,KAAa,EAAmB;EACzD;EACA,IAAI,OAAOC,UAAU,CAACC,MAAM,EAAEC,MAAM,EAAEC,MAAM,KAAK,UAAU,EAAE;IAC3D,MAAMC,IAAI,GAAGX,kBAAkB,CAACM,KAAK,CAAC;IACtC,MAAMM,UAAU,GAAG,MAAML,UAAU,CAACC,MAAM,CAACC,MAAM,CAACC,MAAM,CAAC,SAAS,EAAEC,IAAI,CAACnB,MAAqB,CAAC;IAC/F,OAAOD,gBAAgB,CAACqB,UAAU,CAAC;EACrC;;EAEA;EACA;EACA;EACA,OAAOC,YAAY,CAACP,KAAK,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA,SAASO,YAAYA,CAACP,KAAa,EAAU;EAC3C,IAAIQ,EAAE,GAAG,UAAU;EACnB,IAAIC,EAAE,GAAG,UAAU;EAEnB,KAAK,IAAInB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,KAAK,CAACT,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMoB,EAAE,GAAGV,KAAK,CAACW,UAAU,CAACrB,CAAC,CAAC;IAC9BkB,EAAE,GAAGI,IAAI,CAACC,IAAI,CAACL,EAAE,GAAGE,EAAE,EAAE,UAAU,CAAC;IACnCD,EAAE,GAAGG,IAAI,CAACC,IAAI,CAACJ,EAAE,GAAGC,EAAE,EAAE,UAAU,CAAC;EACrC;EAEAF,EAAE,GAAGI,IAAI,CAACC,IAAI,CAACL,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAC5CA,EAAE,IAAII,IAAI,CAACC,IAAI,CAACJ,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAC7CA,EAAE,GAAGG,IAAI,CAACC,IAAI,CAACJ,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAC5CA,EAAE,IAAIG,IAAI,CAACC,IAAI,CAACL,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAE7C,MAAMM,MAAM,GAAG,UAAU,IAAI,OAAO,GAAGL,EAAE,CAAC,IAAID,EAAE,KAAK,CAAC,CAAC;EACvD,OAAOM,MAAM,CAACtB,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACO,SAASsB,QAAQA,CAACf,KAAa,EAAU;EAC9C,OAAOO,YAAY,CAACP,KAAK,CAAC;AAC5B","ignoreList":[]}
1
+ {"version":3,"names":["arrayBufferToHex","buffer","bytes","Uint8Array","hexParts","Array","length","i","toString","padStart","join","stringToUint8Array","str","encoder","TextEncoder","encode","hash","input","globalThis","crypto","subtle","digest","data","hashBuffer","fallbackHash","h1","h2","ch","charCodeAt","Math","imul","result","hashSync"],"sourceRoot":"../../../src","sources":["core/hash.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,gBAAgBA,CAACC,MAAmB,EAAU;EACrD,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpC,MAAMG,QAAkB,GAAG,IAAIC,KAAK,CAASH,KAAK,CAACI,MAAM,CAAC;EAC1D,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;IACrCH,QAAQ,CAACG,CAAC,CAAC,GAAGL,KAAK,CAACK,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACtD;EACA,OAAOL,QAAQ,CAACM,IAAI,CAAC,EAAE,CAAC;AAC1B;;AAEA;AACA;AACA;AACA,SAASC,kBAAkBA,CAACC,GAAW,EAAc;EACnD,MAAMC,OAAO,GAAG,IAAIC,WAAW,CAAC,CAAC;EACjC,OAAOD,OAAO,CAACE,MAAM,CAACH,GAAG,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeI,IAAIA,CAACC,KAAa,EAAmB;EACzD;EACA,IAAI,OAAOC,UAAU,CAACC,MAAM,EAAEC,MAAM,EAAEC,MAAM,KAAK,UAAU,EAAE;IAC3D,MAAMC,IAAI,GAAGX,kBAAkB,CAACM,KAAK,CAAC;IACtC,MAAMM,UAAU,GAAG,MAAML,UAAU,CAACC,MAAM,CAACC,MAAM,CAACC,MAAM,CAAC,SAAS,EAAEC,IAAI,CAACrB,MAAqB,CAAC;IAC/F,OAAOD,gBAAgB,CAACuB,UAAU,CAAC;EACrC;;EAEA;EACA;EACA;EACA,OAAOC,YAAY,CAACP,KAAK,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA,SAASO,YAAYA,CAACP,KAAa,EAAU;EAC3C,IAAIQ,EAAE,GAAG,UAAU;EACnB,IAAIC,EAAE,GAAG,UAAU;EAEnB,KAAK,IAAInB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,KAAK,CAACX,MAAM,EAAEC,CAAC,EAAE,EAAE;IACrC,MAAMoB,EAAE,GAAGV,KAAK,CAACW,UAAU,CAACrB,CAAC,CAAC;IAC9BkB,EAAE,GAAGI,IAAI,CAACC,IAAI,CAACL,EAAE,GAAGE,EAAE,EAAE,UAAU,CAAC;IACnCD,EAAE,GAAGG,IAAI,CAACC,IAAI,CAACJ,EAAE,GAAGC,EAAE,EAAE,UAAU,CAAC;EACrC;EAEAF,EAAE,GAAGI,IAAI,CAACC,IAAI,CAACL,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAC5CA,EAAE,IAAII,IAAI,CAACC,IAAI,CAACJ,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAC7CA,EAAE,GAAGG,IAAI,CAACC,IAAI,CAACJ,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAC5CA,EAAE,IAAIG,IAAI,CAACC,IAAI,CAACL,EAAE,GAAIA,EAAE,KAAK,EAAG,EAAE,UAAU,CAAC;EAE7C,MAAMM,MAAM,GAAG,UAAU,IAAI,OAAO,GAAGL,EAAE,CAAC,IAAID,EAAE,KAAK,CAAC,CAAC;EACvD,OAAOM,MAAM,CAACvB,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACO,SAASuB,QAAQA,CAACf,KAAa,EAAU;EAC9C,OAAOO,YAAY,CAACP,KAAK,CAAC;AAC5B","ignoreList":[]}
@@ -6,7 +6,41 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.IndexStore = void 0;
7
7
  var _errors = require("./errors");
8
8
  var _prune = require("./prune");
9
- const INDEX_VERSION = 1;
9
+ /**
10
+ * Current index schema version.
11
+ * Increment when making breaking changes to ICacheIndex structure.
12
+ */
13
+ const CURRENT_INDEX_VERSION = 1;
14
+
15
+ /**
16
+ * Minimum supported version for migration.
17
+ * Versions below this will be rebuilt from scratch.
18
+ */
19
+ const MIN_SUPPORTED_VERSION = 1;
20
+
21
+ /**
22
+ * Migration function type.
23
+ * Takes an index at version N and returns an index at version N+1.
24
+ */
25
+
26
+ /**
27
+ * Registry of migration functions.
28
+ * Key is the source version, value migrates to source version + 1.
29
+ *
30
+ * Example: When upgrading from v1 to v2, add:
31
+ * ```
32
+ * 1: (index) => {
33
+ * // Transform v1 index to v2 format
34
+ * return { ...index, version: 2, newField: defaultValue };
35
+ * }
36
+ * ```
37
+ */
38
+ const INDEX_MIGRATIONS = {
39
+ // No migrations yet - v1 is the initial version
40
+ // Future migrations will be added here:
41
+ // 1: (index) => migrateV1ToV2(index),
42
+ // 2: (index) => migrateV2ToV3(index),
43
+ };
10
44
 
11
45
  /**
12
46
  * Manages persistence of the cache index via the storage adapter.
@@ -96,7 +130,7 @@ class IndexStore {
96
130
  return (0, _prune.createEmptyIndex)();
97
131
  }
98
132
  const rebuiltIndex = {
99
- version: INDEX_VERSION,
133
+ version: CURRENT_INDEX_VERSION,
100
134
  entries,
101
135
  totalSizeBytes,
102
136
  lastModifiedAt: Date.now()
@@ -108,17 +142,60 @@ class IndexStore {
108
142
  }
109
143
 
110
144
  /**
111
- * Validates that the parsed object is a valid ICacheIndex.
145
+ * Applies migrations to upgrade an index from an older version to current.
146
+ * @param parsed - The parsed index object (may be any version)
147
+ * @returns The migrated index at current version
148
+ * @throws CorruptIndexError if version is unsupported or migration fails
112
149
  */
113
- _validateIndex(parsed) {
150
+ _migrateIndex(parsed) {
114
151
  if (typeof parsed !== "object" || parsed === null) {
115
152
  throw new _errors.CorruptIndexError("Index is not an object");
116
153
  }
117
154
  const obj = parsed;
155
+ let version = obj.version;
156
+
157
+ // Validate version is a number
158
+ if (typeof version !== "number") {
159
+ throw new _errors.CorruptIndexError(`Invalid version type: ${typeof version}`);
160
+ }
161
+
162
+ // Check if version is too old to migrate
163
+ if (version < MIN_SUPPORTED_VERSION) {
164
+ throw new _errors.CorruptIndexError(`Version ${version} is too old. Minimum supported: ${MIN_SUPPORTED_VERSION}`);
165
+ }
166
+
167
+ // Check if version is from the future
168
+ if (version > CURRENT_INDEX_VERSION) {
169
+ throw new _errors.CorruptIndexError(`Version ${version} is newer than current (${CURRENT_INDEX_VERSION}). ` + `Please upgrade the package.`);
170
+ }
171
+
172
+ // Apply migrations sequentially
173
+ let migrated = parsed;
174
+ while (version < CURRENT_INDEX_VERSION) {
175
+ const migrator = INDEX_MIGRATIONS[version];
176
+ if (!migrator) {
177
+ throw new _errors.CorruptIndexError(`No migration path from version ${version} to ${version + 1}`);
178
+ }
179
+ migrated = migrator(migrated);
180
+ version++;
181
+ }
182
+ return migrated;
183
+ }
184
+
185
+ /**
186
+ * Validates that the parsed object is a valid ICacheIndex.
187
+ */
188
+ _validateIndex(parsed) {
189
+ // First, migrate to current version if needed
190
+ const migrated = this._migrateIndex(parsed);
191
+ if (typeof migrated !== "object" || migrated === null) {
192
+ throw new _errors.CorruptIndexError("Index is not an object");
193
+ }
194
+ const obj = migrated;
118
195
 
119
- // Check version
120
- if (obj.version !== INDEX_VERSION) {
121
- throw new _errors.CorruptIndexError(`Unsupported version: ${String(obj.version)}`);
196
+ // Verify version is current after migration
197
+ if (obj.version !== CURRENT_INDEX_VERSION) {
198
+ throw new _errors.CorruptIndexError(`Migration failed: expected version ${CURRENT_INDEX_VERSION}, got ${String(obj.version)}`);
122
199
  }
123
200
 
124
201
  // Check entries
@@ -142,7 +219,7 @@ class IndexStore {
142
219
  throw new _errors.CorruptIndexError("Invalid lastModifiedAt");
143
220
  }
144
221
  return {
145
- version: INDEX_VERSION,
222
+ version: CURRENT_INDEX_VERSION,
146
223
  entries: entries,
147
224
  totalSizeBytes: obj.totalSizeBytes,
148
225
  lastModifiedAt: obj.lastModifiedAt
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_prune","INDEX_VERSION","IndexStore","constructor","adapter","indexPath","_adapter","_indexPath","load","exists","createEmptyIndex","content","readText","parsed","JSON","parse","_validateIndex","error","CorruptIndexError","SyntaxError","AdapterIOError","save","index","stringify","writeTextAtomic","rebuild","entriesDir","entries","totalSizeBytes","files","listDir","file","filePath","stat","lastDot","lastIndexOf","hash","substring","ext","entry","key","sizeBytes","createdAt","mtimeMs","lastAccessedAt","rebuiltIndex","version","lastModifiedAt","Date","now","obj","String","Object","_validateEntry","requiredStrings","requiredNumbers","field","exports"],"sourceRoot":"../../../src","sources":["core/indexStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_prune","CURRENT_INDEX_VERSION","MIN_SUPPORTED_VERSION","INDEX_MIGRATIONS","IndexStore","constructor","adapter","indexPath","_adapter","_indexPath","load","exists","createEmptyIndex","content","readText","parsed","JSON","parse","_validateIndex","error","CorruptIndexError","SyntaxError","AdapterIOError","save","index","stringify","writeTextAtomic","rebuild","entriesDir","entries","totalSizeBytes","files","listDir","file","filePath","stat","lastDot","lastIndexOf","hash","substring","ext","entry","key","sizeBytes","createdAt","mtimeMs","lastAccessedAt","rebuiltIndex","version","lastModifiedAt","Date","now","_migrateIndex","obj","migrated","migrator","String","Object","_validateEntry","requiredStrings","requiredNumbers","field","exports"],"sourceRoot":"../../../src","sources":["core/indexStore.ts"],"mappings":"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","ignoreList":[]}
@@ -7,11 +7,35 @@ exports.addEntryToIndex = addEntryToIndex;
7
7
  exports.createEmptyIndex = createEmptyIndex;
8
8
  exports.getExpiredEntries = getExpiredEntries;
9
9
  exports.getLruPruneTargets = getLruPruneTargets;
10
+ exports.isEntryExpired = isEntryExpired;
11
+ exports.isEntryValid = isEntryValid;
10
12
  exports.removeEntriesFromIndex = removeEntriesFromIndex;
11
13
  exports.touchEntry = touchEntry;
12
14
  /**
13
- * Options for pruning operations.
15
+ * Current index schema version.
16
+ * Keep in sync with indexStore.ts CURRENT_INDEX_VERSION.
14
17
  */
18
+ const INDEX_VERSION = 1;
19
+
20
+ /**
21
+ * Checks if a cache entry has expired.
22
+ * @param entry - The cache entry to check
23
+ * @param now - Current timestamp in milliseconds (defaults to Date.now())
24
+ * @returns true if the entry has expired, false otherwise
25
+ */
26
+ function isEntryExpired(entry, now = Date.now()) {
27
+ return entry.expiresAt !== undefined && entry.expiresAt < now;
28
+ }
29
+
30
+ /**
31
+ * Checks if a cache entry is valid (not expired).
32
+ * @param entry - The cache entry to check
33
+ * @param now - Current timestamp in milliseconds (defaults to Date.now())
34
+ * @returns true if the entry is valid, false if expired
35
+ */
36
+ function isEntryValid(entry, now = Date.now()) {
37
+ return entry.expiresAt === undefined || entry.expiresAt >= now;
38
+ }
15
39
 
16
40
  /**
17
41
  * Identifies entries to remove based on TTL expiration.
@@ -20,7 +44,7 @@ exports.touchEntry = touchEntry;
20
44
  function getExpiredEntries(index, now = Date.now()) {
21
45
  const expired = [];
22
46
  for (const entry of Object.values(index.entries)) {
23
- if (entry.expiresAt !== undefined && entry.expiresAt < now) {
47
+ if (isEntryExpired(entry, now)) {
24
48
  expired.push(entry);
25
49
  }
26
50
  }
@@ -54,8 +78,11 @@ function getLruPruneTargets(index, maxSizeBytes) {
54
78
  /**
55
79
  * Creates a new index with the specified entries removed.
56
80
  * Returns a new ICacheIndex without mutating the original.
81
+ * @param index - The source index
82
+ * @param keysToRemove - Keys to remove from the index
83
+ * @param now - Optional timestamp for lastModifiedAt (defaults to Date.now())
57
84
  */
58
- function removeEntriesFromIndex(index, keysToRemove) {
85
+ function removeEntriesFromIndex(index, keysToRemove, now = Date.now()) {
59
86
  const keySet = new Set(keysToRemove);
60
87
  const newEntries = {};
61
88
  let newTotalSize = 0;
@@ -66,28 +93,31 @@ function removeEntriesFromIndex(index, keysToRemove) {
66
93
  }
67
94
  }
68
95
  return {
69
- version: 1,
96
+ version: INDEX_VERSION,
70
97
  entries: newEntries,
71
98
  totalSizeBytes: newTotalSize,
72
- lastModifiedAt: Date.now()
99
+ lastModifiedAt: now
73
100
  };
74
101
  }
75
102
 
76
103
  /**
77
104
  * Adds or updates an entry in the index.
78
105
  * Returns a new ICacheIndex without mutating the original.
106
+ * @param index - The source index
107
+ * @param entry - The entry to add or update
108
+ * @param now - Optional timestamp for lastModifiedAt (defaults to Date.now())
79
109
  */
80
- function addEntryToIndex(index, entry) {
110
+ function addEntryToIndex(index, entry, now = Date.now()) {
81
111
  const existingEntry = index.entries[entry.key];
82
112
  const sizeDelta = entry.sizeBytes - (existingEntry?.sizeBytes ?? 0);
83
113
  return {
84
- version: 1,
114
+ version: INDEX_VERSION,
85
115
  entries: {
86
116
  ...index.entries,
87
117
  [entry.key]: entry
88
118
  },
89
119
  totalSizeBytes: index.totalSizeBytes + sizeDelta,
90
- lastModifiedAt: Date.now()
120
+ lastModifiedAt: now
91
121
  };
92
122
  }
93
123
 
@@ -115,13 +145,14 @@ function touchEntry(index, key, accessedAt = Date.now()) {
115
145
 
116
146
  /**
117
147
  * Creates an empty cache index.
148
+ * @param now - Optional timestamp for lastModifiedAt (defaults to Date.now())
118
149
  */
119
- function createEmptyIndex() {
150
+ function createEmptyIndex(now = Date.now()) {
120
151
  return {
121
- version: 1,
152
+ version: INDEX_VERSION,
122
153
  entries: {},
123
154
  totalSizeBytes: 0,
124
- lastModifiedAt: Date.now()
155
+ lastModifiedAt: now
125
156
  };
126
157
  }
127
158
  //# sourceMappingURL=prune.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getExpiredEntries","index","now","Date","expired","entry","Object","values","entries","expiresAt","undefined","push","getLruPruneTargets","maxSizeBytes","totalSizeBytes","sortedEntries","sort","a","b","lastAccessedAt","toRemove","currentSize","sizeBytes","removeEntriesFromIndex","keysToRemove","keySet","Set","newEntries","newTotalSize","key","has","version","lastModifiedAt","addEntryToIndex","existingEntry","sizeDelta","touchEntry","accessedAt","createEmptyIndex"],"sourceRoot":"../../../src","sources":["core/prune.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["INDEX_VERSION","isEntryExpired","entry","now","Date","expiresAt","undefined","isEntryValid","getExpiredEntries","index","expired","Object","values","entries","push","getLruPruneTargets","maxSizeBytes","totalSizeBytes","sortedEntries","sort","a","b","lastAccessedAt","toRemove","currentSize","sizeBytes","removeEntriesFromIndex","keysToRemove","keySet","Set","newEntries","newTotalSize","key","has","version","lastModifiedAt","addEntryToIndex","existingEntry","sizeDelta","touchEntry","accessedAt","createEmptyIndex"],"sourceRoot":"../../../src","sources":["core/prune.ts"],"mappings":"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","ignoreList":[]}
@@ -3,4 +3,136 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.err = err;
7
+ exports.ok = ok;
8
+ // ─────────────────────────────────────────────────────────────────
9
+ // Result Type (for internal use)
10
+ // ─────────────────────────────────────────────────────────────────
11
+
12
+ /**
13
+ * Represents a successful result.
14
+ */
15
+
16
+ /**
17
+ * Represents a failure result.
18
+ */
19
+
20
+ /**
21
+ * Discriminated union for operation results.
22
+ * Enables explicit error handling without exceptions.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * function divide(a: number, b: number): TResult<number, string> {
27
+ * if (b === 0) return { ok: false, error: "Division by zero" };
28
+ * return { ok: true, value: a / b };
29
+ * }
30
+ *
31
+ * const result = divide(10, 2);
32
+ * if (result.ok) {
33
+ * console.log(result.value); // 5
34
+ * } else {
35
+ * console.error(result.error);
36
+ * }
37
+ * ```
38
+ */
39
+
40
+ /**
41
+ * Helper to create a success result.
42
+ */
43
+ function ok(value) {
44
+ return {
45
+ ok: true,
46
+ value
47
+ };
48
+ }
49
+
50
+ /**
51
+ * Helper to create a failure result.
52
+ */
53
+ function err(error) {
54
+ return {
55
+ ok: false,
56
+ error
57
+ };
58
+ }
59
+
60
+ // ─────────────────────────────────────────────────────────────────
61
+ // Cache Events (Observability)
62
+ // ─────────────────────────────────────────────────────────────────
63
+
64
+ /**
65
+ * Event emitted when a cache hit occurs.
66
+ */
67
+
68
+ /**
69
+ * Event emitted when a cache miss occurs.
70
+ */
71
+
72
+ /**
73
+ * Event emitted when an entry is created.
74
+ */
75
+
76
+ /**
77
+ * Event emitted when an entry is removed.
78
+ */
79
+
80
+ /**
81
+ * Event emitted during pruning operations.
82
+ */
83
+
84
+ /**
85
+ * Event emitted on errors (non-fatal).
86
+ */
87
+
88
+ /**
89
+ * Union of all cache events.
90
+ */
91
+
92
+ /**
93
+ * Callback for receiving cache events.
94
+ */
95
+
96
+ // ─────────────────────────────────────────────────────────────────
97
+ // Cache Configuration
98
+ // ─────────────────────────────────────────────────────────────────
99
+
100
+ // ─────────────────────────────────────────────────────────────────
101
+ // Cache Entry
102
+ // ─────────────────────────────────────────────────────────────────
103
+
104
+ // ─────────────────────────────────────────────────────────────────
105
+ // Cache Index
106
+ // ─────────────────────────────────────────────────────────────────
107
+
108
+ // ─────────────────────────────────────────────────────────────────
109
+ // Put Operations
110
+ // ─────────────────────────────────────────────────────────────────
111
+
112
+ // ─────────────────────────────────────────────────────────────────
113
+ // Get/List Operations
114
+ // ─────────────────────────────────────────────────────────────────
115
+
116
+ // ─────────────────────────────────────────────────────────────────
117
+ // Prune/Stats Operations
118
+ // ─────────────────────────────────────────────────────────────────
119
+
120
+ // ─────────────────────────────────────────────────────────────────
121
+ // Read-Through Cache (getOrPut)
122
+ // ─────────────────────────────────────────────────────────────────
123
+
124
+ /**
125
+ * Fetcher result for getOrPut operations.
126
+ * Provides the data to cache along with optional configuration.
127
+ */
128
+
129
+ /**
130
+ * Fetcher function type for getOrPut.
131
+ * Called when the key doesn't exist in cache.
132
+ * Should return the data to be cached, or throw to skip caching.
133
+ */
134
+
135
+ /**
136
+ * Result of a getOrPut operation.
137
+ */
6
138
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["core/types.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["ok","value","err","error"],"sourceRoot":"../../../src","sources":["core/types.ts"],"mappings":";;;;;;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACO,SAASA,EAAEA,CAAIC,KAAQ,EAAU;EACtC,OAAO;IAAED,EAAE,EAAE,IAAI;IAAEC;EAAM,CAAC;AAC5B;;AAEA;AACA;AACA;AACO,SAASC,GAAGA,CAAIC,KAAQ,EAAW;EACxC,OAAO;IAAEH,EAAE,EAAE,KAAK;IAAEG;EAAM,CAAC;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAQA;AACA;AACA;;AAOA;AACA;AACA;;AASA;AACA;AACA;;AAOA;AACA;AACA;;AAQA;AACA;AACA;;AAOA;AACA;AACA;;AASA;AACA;AACA;;AAGA;AACA;AACA;;AA8DA;AACA;AACA;;AAoCA;AACA;AACA;;AASA;AACA;AACA;;AA0BA;AACA;AACA;;AA2BA;AACA;AACA;;AAeA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA","ignoreList":[]}