@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.
- package/README.md +183 -261
- package/lib/commonjs/adapters/memoryAdapter.js +1 -0
- package/lib/commonjs/adapters/memoryAdapter.js.map +1 -1
- package/lib/commonjs/adapters/rnfsAdapter.js +9 -4
- package/lib/commonjs/adapters/rnfsAdapter.js.map +1 -1
- package/lib/commonjs/adapters/webAdapter.js +1 -0
- package/lib/commonjs/adapters/webAdapter.js.map +1 -1
- package/lib/commonjs/core/adapter.js +54 -0
- package/lib/commonjs/core/adapter.js.map +1 -1
- package/lib/commonjs/core/cacheEngine.js +452 -59
- package/lib/commonjs/core/cacheEngine.js.map +1 -1
- package/lib/commonjs/core/errors.js +9 -6
- package/lib/commonjs/core/errors.js.map +1 -1
- package/lib/commonjs/core/hash.js +3 -3
- package/lib/commonjs/core/hash.js.map +1 -1
- package/lib/commonjs/core/indexStore.js +85 -8
- package/lib/commonjs/core/indexStore.js.map +1 -1
- package/lib/commonjs/core/prune.js +42 -11
- package/lib/commonjs/core/prune.js.map +1 -1
- package/lib/commonjs/core/types.js +132 -0
- package/lib/commonjs/core/types.js.map +1 -1
- package/lib/commonjs/index.js +33 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/adapters/memoryAdapter.js +1 -0
- package/lib/module/adapters/memoryAdapter.js.map +1 -1
- package/lib/module/adapters/rnfsAdapter.js +9 -4
- package/lib/module/adapters/rnfsAdapter.js.map +1 -1
- package/lib/module/adapters/webAdapter.js +1 -0
- package/lib/module/adapters/webAdapter.js.map +1 -1
- package/lib/module/core/adapter.js +48 -0
- package/lib/module/core/adapter.js.map +1 -1
- package/lib/module/core/cacheEngine.js +453 -60
- package/lib/module/core/cacheEngine.js.map +1 -1
- package/lib/module/core/errors.js +9 -6
- package/lib/module/core/errors.js.map +1 -1
- package/lib/module/core/hash.js +3 -3
- package/lib/module/core/hash.js.map +1 -1
- package/lib/module/core/indexStore.js +86 -8
- package/lib/module/core/indexStore.js.map +1 -1
- package/lib/module/core/prune.js +40 -11
- package/lib/module/core/prune.js.map +1 -1
- package/lib/module/core/types.js +130 -1
- package/lib/module/core/types.js.map +1 -1
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/adapters/memoryAdapter.d.ts.map +1 -1
- package/lib/typescript/src/adapters/rnfsAdapter.d.ts.map +1 -1
- package/lib/typescript/src/adapters/webAdapter.d.ts.map +1 -1
- package/lib/typescript/src/core/adapter.d.ts +16 -0
- package/lib/typescript/src/core/adapter.d.ts.map +1 -1
- package/lib/typescript/src/core/cacheEngine.d.ts +120 -1
- package/lib/typescript/src/core/cacheEngine.d.ts.map +1 -1
- package/lib/typescript/src/core/errors.d.ts +6 -5
- package/lib/typescript/src/core/errors.d.ts.map +1 -1
- package/lib/typescript/src/core/indexStore.d.ts +7 -0
- package/lib/typescript/src/core/indexStore.d.ts.map +1 -1
- package/lib/typescript/src/core/prune.d.ts +22 -8
- package/lib/typescript/src/core/prune.d.ts.map +1 -1
- package/lib/typescript/src/core/types.d.ts +153 -0
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/memoryAdapter.ts +3 -0
- package/src/adapters/rnfsAdapter.ts +11 -4
- package/src/adapters/webAdapter.ts +1 -0
- package/src/core/adapter.ts +28 -0
- package/src/core/cacheEngine.ts +476 -62
- package/src/core/errors.ts +8 -6
- package/src/core/hash.ts +3 -3
- package/src/core/indexStore.ts +99 -11
- package/src/core/prune.ts +44 -14
- package/src/core/types.ts +194 -0
- 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":"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","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;
|
|
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
|
-
|
|
18
|
+
const hexParts = new Array(bytes.length);
|
|
19
19
|
for (let i = 0; i < bytes.length; i++) {
|
|
20
|
-
|
|
20
|
+
hexParts[i] = bytes[i].toString(16).padStart(2, "0");
|
|
21
21
|
}
|
|
22
|
-
return
|
|
22
|
+
return hexParts.join("");
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["arrayBufferToHex","buffer","bytes","Uint8Array","
|
|
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
|
-
|
|
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:
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
-
//
|
|
120
|
-
if (obj.version !==
|
|
121
|
-
throw new _errors.CorruptIndexError(`
|
|
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:
|
|
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","
|
|
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
|
-
*
|
|
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
|
|
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:
|
|
96
|
+
version: INDEX_VERSION,
|
|
70
97
|
entries: newEntries,
|
|
71
98
|
totalSizeBytes: newTotalSize,
|
|
72
|
-
lastModifiedAt:
|
|
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:
|
|
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:
|
|
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:
|
|
152
|
+
version: INDEX_VERSION,
|
|
122
153
|
entries: {},
|
|
123
154
|
totalSizeBytes: 0,
|
|
124
|
-
lastModifiedAt:
|
|
155
|
+
lastModifiedAt: now
|
|
125
156
|
};
|
|
126
157
|
}
|
|
127
158
|
//# sourceMappingURL=prune.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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":[]}
|