@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","Mutex","KeyedMutex","hash","defaultHash","getExpiredEntries","getLruPruneTargets","removeEntriesFromIndex","addEntryToIndex","touchEntry","createEmptyIndex","ENTRIES_DIR","INDEX_FILE","CacheEngine","_indexMutex","_keyMutex","_index","_initialized","constructor","config","adapter","_config","namespace","autoPruneExpired","_adapter","_indexStore","_hashFn","hashFn","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","sizeBytes","contentType","createdAt","lastAccessedAt","metadata","save","_autoPrune","catch","get","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","removeExpired","expired","removedCount","freedBytes","removedKeys","_removeEntries","pruneLru","maxSizeBytes","targets","push","clear","removeDir","validateAndRepair","issues","exists","files","listDir","indexedHashes","Set","file","repaired","Error","meta","URL","pathname","lastDot","lastIndexOf","substring","lastSlash","Math","max","mime","mimeToExt"],"sourceRoot":"../../../src","sources":["core/cacheEngine.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["IndexStore","Mutex","KeyedMutex","hash","defaultHash","getExpiredEntries","getLruPruneTargets","removeEntriesFromIndex","addEntryToIndex","touchEntry","createEmptyIndex","isEntryExpired","isEntryValid","ENTRIES_DIR","INDEX_FILE","MIME_TO_EXT","EMPTY_PRUNE_RESULT","Object","freeze","removedCount","freedBytes","removedKeys","buildEntryPath","ext","CacheEngine","_indexMutex","_keyMutex","_index","_initialized","_indexDirty","_debounceTimer","constructor","config","adapter","_config","namespace","autoPruneExpired","_adapter","_indexStore","_hashFn","hashFn","_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","entry","_entryWithPath","status","_removeEntry","hashValue","_extractExtension","entryPath","writeResult","writeBinaryAtomic","onProgress","ttlMs","defaultTtlMs","expiresAt","undefined","entryMeta","sizeBytes","contentType","createdAt","lastAccessedAt","metadata","durationMs","_autoPrune","catch","get","reason","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","removeExpired","expired","result","_removeEntries","pruneLru","maxSizeBytes","targets","push","clear","removeDir","validateAndRepair","issues","exists","files","listDir","indexedHashes","Set","file","repaired","Error","meta","URL","pathname","lastDot","lastIndexOf","substring","lastSlash","Math","max","mime"],"sourceRoot":"../../../src","sources":["core/cacheEngine.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Base error class for cache operations.
|
|
3
|
+
* Supports ES2022 Error.cause for proper error chaining.
|
|
3
4
|
*/
|
|
4
5
|
export class CacheError extends Error {
|
|
5
|
-
constructor(message) {
|
|
6
|
-
super(message);
|
|
6
|
+
constructor(message, options) {
|
|
7
|
+
super(message, options);
|
|
7
8
|
this.name = this.constructor.name;
|
|
8
9
|
Object.setPrototypeOf(this, new.target.prototype);
|
|
9
10
|
}
|
|
@@ -27,10 +28,11 @@ export class UnsupportedSourceError extends CacheError {
|
|
|
27
28
|
export class AdapterIOError extends CacheError {
|
|
28
29
|
code = "ADAPTER_IO_ERROR";
|
|
29
30
|
constructor(operation, path, cause) {
|
|
30
|
-
super(`Adapter I/O error during "${operation}" at path "${path}": ${cause?.message ?? "unknown"}
|
|
31
|
+
super(`Adapter I/O error during "${operation}" at path "${path}": ${cause?.message ?? "unknown"}`, cause ? {
|
|
32
|
+
cause
|
|
33
|
+
} : undefined);
|
|
31
34
|
this.operation = operation;
|
|
32
35
|
this.path = path;
|
|
33
|
-
this.cause = cause;
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
|
|
@@ -40,9 +42,10 @@ export class AdapterIOError extends CacheError {
|
|
|
40
42
|
export class CorruptIndexError extends CacheError {
|
|
41
43
|
code = "CORRUPT_INDEX";
|
|
42
44
|
constructor(reason, cause) {
|
|
43
|
-
super(`Cache index is corrupt: ${reason}
|
|
45
|
+
super(`Cache index is corrupt: ${reason}`, cause ? {
|
|
46
|
+
cause
|
|
47
|
+
} : undefined);
|
|
44
48
|
this.reason = reason;
|
|
45
|
-
this.cause = cause;
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CacheError","Error","constructor","message","name","Object","setPrototypeOf","new","target","prototype","UnsupportedSourceError","code","sourceType","adapterKind","AdapterIOError","operation","path","cause","CorruptIndexError","reason","ImmutableConflictError","key","EntryNotFoundError"],"sourceRoot":"../../../src","sources":["core/errors.ts"],"mappings":"AAEA;AACA;AACA;AACA,OAAO,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","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;AACA,OAAO,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;AACA,OAAO,MAAMC,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;AACA,OAAO,MAAMC,cAAc,SAASf,UAAU,CAAC;EACpCY,IAAI,GAAG,kBAAkB;EAElCV,WAAWA,CACOc,SAAiB,EACjBC,IAAY,EAC5BC,KAAa,EACb;IACA,KAAK,CACH,6BAA6BF,SAAS,cAAcC,IAAI,MAAMC,KAAK,EAAEf,OAAO,IAAI,SAAS,EAAE,EAC3Fe,KAAK,GAAG;MAAEA;IAAM,CAAC,GAAGC,SACtB,CAAC;IAAC,KAPcH,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,IAAY,GAAZA,IAAY;EAO9B;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAMG,iBAAiB,SAASpB,UAAU,CAAC;EACvCY,IAAI,GAAG,eAAe;EAE/BV,WAAWA,CACOmB,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;AACA,OAAO,MAAMC,sBAAsB,SAAStB,UAAU,CAAC;EAC5CY,IAAI,GAAG,oBAAoB;EAEpCV,WAAWA,CAAiBqB,GAAW,EAAE;IACvC,KAAK,CAAC,8CAA8CA,GAAG,GAAG,CAAC;IAAC,KADlCA,GAAW,GAAXA,GAAW;EAEvC;AACF;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,SAASxB,UAAU,CAAC;EACxCY,IAAI,GAAG,iBAAiB;EAEjCV,WAAWA,CAAiBqB,GAAW,EAAE;IACvC,KAAK,CAAC,kCAAkCA,GAAG,GAAG,CAAC;IAAC,KADtBA,GAAW,GAAXA,GAAW;EAEvC;AACF","ignoreList":[]}
|
package/lib/module/core/hash.js
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
function arrayBufferToHex(buffer) {
|
|
10
10
|
const bytes = new Uint8Array(buffer);
|
|
11
|
-
|
|
11
|
+
const hexParts = new Array(bytes.length);
|
|
12
12
|
for (let i = 0; i < bytes.length; i++) {
|
|
13
|
-
|
|
13
|
+
hexParts[i] = bytes[i].toString(16).padStart(2, "0");
|
|
14
14
|
}
|
|
15
|
-
return
|
|
15
|
+
return hexParts.join("");
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -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;AACA,OAAO,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;AACA,OAAO,SAASuB,QAAQA,CAACf,KAAa,EAAU;EAC9C,OAAOO,YAAY,CAACP,KAAK,CAAC;AAC5B","ignoreList":[]}
|
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
import { CorruptIndexError, AdapterIOError } from "./errors";
|
|
2
2
|
import { createEmptyIndex } from "./prune";
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Current index schema version.
|
|
6
|
+
* Increment when making breaking changes to ICacheIndex structure.
|
|
7
|
+
*/
|
|
8
|
+
const CURRENT_INDEX_VERSION = 1;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Minimum supported version for migration.
|
|
12
|
+
* Versions below this will be rebuilt from scratch.
|
|
13
|
+
*/
|
|
14
|
+
const MIN_SUPPORTED_VERSION = 1;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Migration function type.
|
|
18
|
+
* Takes an index at version N and returns an index at version N+1.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Registry of migration functions.
|
|
23
|
+
* Key is the source version, value migrates to source version + 1.
|
|
24
|
+
*
|
|
25
|
+
* Example: When upgrading from v1 to v2, add:
|
|
26
|
+
* ```
|
|
27
|
+
* 1: (index) => {
|
|
28
|
+
* // Transform v1 index to v2 format
|
|
29
|
+
* return { ...index, version: 2, newField: defaultValue };
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
const INDEX_MIGRATIONS = {
|
|
34
|
+
// No migrations yet - v1 is the initial version
|
|
35
|
+
// Future migrations will be added here:
|
|
36
|
+
// 1: (index) => migrateV1ToV2(index),
|
|
37
|
+
// 2: (index) => migrateV2ToV3(index),
|
|
38
|
+
};
|
|
4
39
|
|
|
5
40
|
/**
|
|
6
41
|
* Manages persistence of the cache index via the storage adapter.
|
|
@@ -90,7 +125,7 @@ export class IndexStore {
|
|
|
90
125
|
return createEmptyIndex();
|
|
91
126
|
}
|
|
92
127
|
const rebuiltIndex = {
|
|
93
|
-
version:
|
|
128
|
+
version: CURRENT_INDEX_VERSION,
|
|
94
129
|
entries,
|
|
95
130
|
totalSizeBytes,
|
|
96
131
|
lastModifiedAt: Date.now()
|
|
@@ -102,17 +137,60 @@ export class IndexStore {
|
|
|
102
137
|
}
|
|
103
138
|
|
|
104
139
|
/**
|
|
105
|
-
*
|
|
140
|
+
* Applies migrations to upgrade an index from an older version to current.
|
|
141
|
+
* @param parsed - The parsed index object (may be any version)
|
|
142
|
+
* @returns The migrated index at current version
|
|
143
|
+
* @throws CorruptIndexError if version is unsupported or migration fails
|
|
106
144
|
*/
|
|
107
|
-
|
|
145
|
+
_migrateIndex(parsed) {
|
|
108
146
|
if (typeof parsed !== "object" || parsed === null) {
|
|
109
147
|
throw new CorruptIndexError("Index is not an object");
|
|
110
148
|
}
|
|
111
149
|
const obj = parsed;
|
|
150
|
+
let version = obj.version;
|
|
151
|
+
|
|
152
|
+
// Validate version is a number
|
|
153
|
+
if (typeof version !== "number") {
|
|
154
|
+
throw new CorruptIndexError(`Invalid version type: ${typeof version}`);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Check if version is too old to migrate
|
|
158
|
+
if (version < MIN_SUPPORTED_VERSION) {
|
|
159
|
+
throw new CorruptIndexError(`Version ${version} is too old. Minimum supported: ${MIN_SUPPORTED_VERSION}`);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Check if version is from the future
|
|
163
|
+
if (version > CURRENT_INDEX_VERSION) {
|
|
164
|
+
throw new CorruptIndexError(`Version ${version} is newer than current (${CURRENT_INDEX_VERSION}). ` + `Please upgrade the package.`);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Apply migrations sequentially
|
|
168
|
+
let migrated = parsed;
|
|
169
|
+
while (version < CURRENT_INDEX_VERSION) {
|
|
170
|
+
const migrator = INDEX_MIGRATIONS[version];
|
|
171
|
+
if (!migrator) {
|
|
172
|
+
throw new CorruptIndexError(`No migration path from version ${version} to ${version + 1}`);
|
|
173
|
+
}
|
|
174
|
+
migrated = migrator(migrated);
|
|
175
|
+
version++;
|
|
176
|
+
}
|
|
177
|
+
return migrated;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Validates that the parsed object is a valid ICacheIndex.
|
|
182
|
+
*/
|
|
183
|
+
_validateIndex(parsed) {
|
|
184
|
+
// First, migrate to current version if needed
|
|
185
|
+
const migrated = this._migrateIndex(parsed);
|
|
186
|
+
if (typeof migrated !== "object" || migrated === null) {
|
|
187
|
+
throw new CorruptIndexError("Index is not an object");
|
|
188
|
+
}
|
|
189
|
+
const obj = migrated;
|
|
112
190
|
|
|
113
|
-
//
|
|
114
|
-
if (obj.version !==
|
|
115
|
-
throw new CorruptIndexError(`
|
|
191
|
+
// Verify version is current after migration
|
|
192
|
+
if (obj.version !== CURRENT_INDEX_VERSION) {
|
|
193
|
+
throw new CorruptIndexError(`Migration failed: expected version ${CURRENT_INDEX_VERSION}, got ${String(obj.version)}`);
|
|
116
194
|
}
|
|
117
195
|
|
|
118
196
|
// Check entries
|
|
@@ -136,7 +214,7 @@ export class IndexStore {
|
|
|
136
214
|
throw new CorruptIndexError("Invalid lastModifiedAt");
|
|
137
215
|
}
|
|
138
216
|
return {
|
|
139
|
-
version:
|
|
217
|
+
version: CURRENT_INDEX_VERSION,
|
|
140
218
|
entries: entries,
|
|
141
219
|
totalSizeBytes: obj.totalSizeBytes,
|
|
142
220
|
lastModifiedAt: obj.lastModifiedAt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CorruptIndexError","AdapterIOError","createEmptyIndex","
|
|
1
|
+
{"version":3,"names":["CorruptIndexError","AdapterIOError","createEmptyIndex","CURRENT_INDEX_VERSION","MIN_SUPPORTED_VERSION","INDEX_MIGRATIONS","IndexStore","constructor","adapter","indexPath","_adapter","_indexPath","load","exists","content","readText","parsed","JSON","parse","_validateIndex","error","SyntaxError","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"],"sourceRoot":"../../../src","sources":["core/indexStore.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/core/prune.js
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Current index schema version.
|
|
3
|
+
* Keep in sync with indexStore.ts CURRENT_INDEX_VERSION.
|
|
3
4
|
*/
|
|
5
|
+
const INDEX_VERSION = 1;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Checks if a cache entry has expired.
|
|
9
|
+
* @param entry - The cache entry to check
|
|
10
|
+
* @param now - Current timestamp in milliseconds (defaults to Date.now())
|
|
11
|
+
* @returns true if the entry has expired, false otherwise
|
|
12
|
+
*/
|
|
13
|
+
export function isEntryExpired(entry, now = Date.now()) {
|
|
14
|
+
return entry.expiresAt !== undefined && entry.expiresAt < now;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a cache entry is valid (not expired).
|
|
19
|
+
* @param entry - The cache entry to check
|
|
20
|
+
* @param now - Current timestamp in milliseconds (defaults to Date.now())
|
|
21
|
+
* @returns true if the entry is valid, false if expired
|
|
22
|
+
*/
|
|
23
|
+
export function isEntryValid(entry, now = Date.now()) {
|
|
24
|
+
return entry.expiresAt === undefined || entry.expiresAt >= now;
|
|
25
|
+
}
|
|
4
26
|
|
|
5
27
|
/**
|
|
6
28
|
* Identifies entries to remove based on TTL expiration.
|
|
@@ -9,7 +31,7 @@
|
|
|
9
31
|
export function getExpiredEntries(index, now = Date.now()) {
|
|
10
32
|
const expired = [];
|
|
11
33
|
for (const entry of Object.values(index.entries)) {
|
|
12
|
-
if (entry
|
|
34
|
+
if (isEntryExpired(entry, now)) {
|
|
13
35
|
expired.push(entry);
|
|
14
36
|
}
|
|
15
37
|
}
|
|
@@ -43,8 +65,11 @@ export function getLruPruneTargets(index, maxSizeBytes) {
|
|
|
43
65
|
/**
|
|
44
66
|
* Creates a new index with the specified entries removed.
|
|
45
67
|
* Returns a new ICacheIndex without mutating the original.
|
|
68
|
+
* @param index - The source index
|
|
69
|
+
* @param keysToRemove - Keys to remove from the index
|
|
70
|
+
* @param now - Optional timestamp for lastModifiedAt (defaults to Date.now())
|
|
46
71
|
*/
|
|
47
|
-
export function removeEntriesFromIndex(index, keysToRemove) {
|
|
72
|
+
export function removeEntriesFromIndex(index, keysToRemove, now = Date.now()) {
|
|
48
73
|
const keySet = new Set(keysToRemove);
|
|
49
74
|
const newEntries = {};
|
|
50
75
|
let newTotalSize = 0;
|
|
@@ -55,28 +80,31 @@ export function removeEntriesFromIndex(index, keysToRemove) {
|
|
|
55
80
|
}
|
|
56
81
|
}
|
|
57
82
|
return {
|
|
58
|
-
version:
|
|
83
|
+
version: INDEX_VERSION,
|
|
59
84
|
entries: newEntries,
|
|
60
85
|
totalSizeBytes: newTotalSize,
|
|
61
|
-
lastModifiedAt:
|
|
86
|
+
lastModifiedAt: now
|
|
62
87
|
};
|
|
63
88
|
}
|
|
64
89
|
|
|
65
90
|
/**
|
|
66
91
|
* Adds or updates an entry in the index.
|
|
67
92
|
* Returns a new ICacheIndex without mutating the original.
|
|
93
|
+
* @param index - The source index
|
|
94
|
+
* @param entry - The entry to add or update
|
|
95
|
+
* @param now - Optional timestamp for lastModifiedAt (defaults to Date.now())
|
|
68
96
|
*/
|
|
69
|
-
export function addEntryToIndex(index, entry) {
|
|
97
|
+
export function addEntryToIndex(index, entry, now = Date.now()) {
|
|
70
98
|
const existingEntry = index.entries[entry.key];
|
|
71
99
|
const sizeDelta = entry.sizeBytes - (existingEntry?.sizeBytes ?? 0);
|
|
72
100
|
return {
|
|
73
|
-
version:
|
|
101
|
+
version: INDEX_VERSION,
|
|
74
102
|
entries: {
|
|
75
103
|
...index.entries,
|
|
76
104
|
[entry.key]: entry
|
|
77
105
|
},
|
|
78
106
|
totalSizeBytes: index.totalSizeBytes + sizeDelta,
|
|
79
|
-
lastModifiedAt:
|
|
107
|
+
lastModifiedAt: now
|
|
80
108
|
};
|
|
81
109
|
}
|
|
82
110
|
|
|
@@ -104,13 +132,14 @@ export function touchEntry(index, key, accessedAt = Date.now()) {
|
|
|
104
132
|
|
|
105
133
|
/**
|
|
106
134
|
* Creates an empty cache index.
|
|
135
|
+
* @param now - Optional timestamp for lastModifiedAt (defaults to Date.now())
|
|
107
136
|
*/
|
|
108
|
-
export function createEmptyIndex() {
|
|
137
|
+
export function createEmptyIndex(now = Date.now()) {
|
|
109
138
|
return {
|
|
110
|
-
version:
|
|
139
|
+
version: INDEX_VERSION,
|
|
111
140
|
entries: {},
|
|
112
141
|
totalSizeBytes: 0,
|
|
113
|
-
lastModifiedAt:
|
|
142
|
+
lastModifiedAt: now
|
|
114
143
|
};
|
|
115
144
|
}
|
|
116
145
|
//# 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":[]}
|
package/lib/module/core/types.js
CHANGED
|
@@ -1,2 +1,131 @@
|
|
|
1
|
-
|
|
1
|
+
// ─────────────────────────────────────────────────────────────────
|
|
2
|
+
// Result Type (for internal use)
|
|
3
|
+
// ─────────────────────────────────────────────────────────────────
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a successful result.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents a failure result.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Discriminated union for operation results.
|
|
15
|
+
* Enables explicit error handling without exceptions.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* function divide(a: number, b: number): TResult<number, string> {
|
|
20
|
+
* if (b === 0) return { ok: false, error: "Division by zero" };
|
|
21
|
+
* return { ok: true, value: a / b };
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* const result = divide(10, 2);
|
|
25
|
+
* if (result.ok) {
|
|
26
|
+
* console.log(result.value); // 5
|
|
27
|
+
* } else {
|
|
28
|
+
* console.error(result.error);
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Helper to create a success result.
|
|
35
|
+
*/
|
|
36
|
+
export function ok(value) {
|
|
37
|
+
return {
|
|
38
|
+
ok: true,
|
|
39
|
+
value
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Helper to create a failure result.
|
|
45
|
+
*/
|
|
46
|
+
export function err(error) {
|
|
47
|
+
return {
|
|
48
|
+
ok: false,
|
|
49
|
+
error
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// ─────────────────────────────────────────────────────────────────
|
|
54
|
+
// Cache Events (Observability)
|
|
55
|
+
// ─────────────────────────────────────────────────────────────────
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Event emitted when a cache hit occurs.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Event emitted when a cache miss occurs.
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Event emitted when an entry is created.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Event emitted when an entry is removed.
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Event emitted during pruning operations.
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Event emitted on errors (non-fatal).
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Union of all cache events.
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Callback for receiving cache events.
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
// ─────────────────────────────────────────────────────────────────
|
|
90
|
+
// Cache Configuration
|
|
91
|
+
// ─────────────────────────────────────────────────────────────────
|
|
92
|
+
|
|
93
|
+
// ─────────────────────────────────────────────────────────────────
|
|
94
|
+
// Cache Entry
|
|
95
|
+
// ─────────────────────────────────────────────────────────────────
|
|
96
|
+
|
|
97
|
+
// ─────────────────────────────────────────────────────────────────
|
|
98
|
+
// Cache Index
|
|
99
|
+
// ─────────────────────────────────────────────────────────────────
|
|
100
|
+
|
|
101
|
+
// ─────────────────────────────────────────────────────────────────
|
|
102
|
+
// Put Operations
|
|
103
|
+
// ─────────────────────────────────────────────────────────────────
|
|
104
|
+
|
|
105
|
+
// ─────────────────────────────────────────────────────────────────
|
|
106
|
+
// Get/List Operations
|
|
107
|
+
// ─────────────────────────────────────────────────────────────────
|
|
108
|
+
|
|
109
|
+
// ─────────────────────────────────────────────────────────────────
|
|
110
|
+
// Prune/Stats Operations
|
|
111
|
+
// ─────────────────────────────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
// ─────────────────────────────────────────────────────────────────
|
|
114
|
+
// Read-Through Cache (getOrPut)
|
|
115
|
+
// ─────────────────────────────────────────────────────────────────
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Fetcher result for getOrPut operations.
|
|
119
|
+
* Provides the data to cache along with optional configuration.
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Fetcher function type for getOrPut.
|
|
124
|
+
* Called when the key doesn't exist in cache.
|
|
125
|
+
* Should return the data to be cached, or throw to skip caching.
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Result of a getOrPut operation.
|
|
130
|
+
*/
|
|
2
131
|
//# 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;AACA,OAAO,SAASA,EAAEA,CAAIC,KAAQ,EAAU;EACtC,OAAO;IAAED,EAAE,EAAE,IAAI;IAAEC;EAAM,CAAC;AAC5B;;AAEA;AACA;AACA;AACA,OAAO,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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
// Core Types
|
|
9
9
|
// ─────────────────────────────────────────────────────────────────
|
|
10
10
|
|
|
11
|
+
export { adapterSupportsSource } from "./core/adapter";
|
|
12
|
+
export { ok, err } from "./core/types";
|
|
13
|
+
|
|
11
14
|
// ─────────────────────────────────────────────────────────────────
|
|
12
15
|
// Errors
|
|
13
16
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -38,4 +41,5 @@ export { createMemoryAdapter } from "./adapters/memoryAdapter";
|
|
|
38
41
|
|
|
39
42
|
export { hash, hashSync } from "./core/hash";
|
|
40
43
|
export { Mutex, KeyedMutex } from "./core/mutex";
|
|
44
|
+
export { isEntryExpired, isEntryValid } from "./core/prune";
|
|
41
45
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CacheError","UnsupportedSourceError","AdapterIOError","CorruptIndexError","ImmutableConflictError","EntryNotFoundError","CacheEngine","createImmutableFileCache","createCacheEngineSync","createRnfsAdapter","createWebAdapter","createMemoryAdapter","hash","hashSync","Mutex","KeyedMutex"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["adapterSupportsSource","ok","err","CacheError","UnsupportedSourceError","AdapterIOError","CorruptIndexError","ImmutableConflictError","EntryNotFoundError","CacheEngine","createImmutableFileCache","createCacheEngineSync","createRnfsAdapter","createWebAdapter","createMemoryAdapter","hash","hashSync","Mutex","KeyedMutex","isEntryExpired","isEntryValid"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAaA,SAASA,qBAAqB,QAAQ,gBAAgB;AAkCtD,SAASC,EAAE,EAAEC,GAAG,QAAQ,cAAc;;AAEtC;AACA;AACA;;AAEA,SACEC,UAAU,EACVC,sBAAsB,EACtBC,cAAc,EACdC,iBAAiB,EACjBC,sBAAsB,EACtBC,kBAAkB,QACb,eAAe;;AAEtB;AACA;AACA;;AAEA,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;;AAEA,SAASC,wBAAwB,EAAEC,qBAAqB,QAAQ,WAAW;AAI3E;AACA;AACA;;AAEA,SAASC,iBAAiB,QAAQ,wBAAwB;AAG1D,SAASC,gBAAgB,QAAQ,uBAAuB;AAGxD,SAASC,mBAAmB,QAAQ,0BAA0B;AAG9D;AACA;AACA;;AAEA,SAASC,IAAI,EAAEC,QAAQ,QAAQ,aAAa;AAC5C,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,SAASC,cAAc,EAAEC,YAAY,QAAQ,cAAc","ignoreList":[]}
|