@fjell/cache 4.7.39 → 4.7.41
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/coverage_output.txt +995 -0
- package/dist/Operations.d.ts +99 -16
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Options.d.ts +6 -0
- package/dist/Options.d.ts.map +1 -1
- package/dist/cache/TwoLayerDemo.d.ts +29 -0
- package/dist/cache/TwoLayerDemo.d.ts.map +1 -0
- package/dist/cache/TwoLayerFactory.d.ts +83 -0
- package/dist/cache/TwoLayerFactory.d.ts.map +1 -0
- package/dist/cache/layers/ItemCache.d.ts +41 -0
- package/dist/cache/layers/ItemCache.d.ts.map +1 -0
- package/dist/cache/layers/QueryCache.d.ts +52 -0
- package/dist/cache/layers/QueryCache.d.ts.map +1 -0
- package/dist/cache/layers/TwoLayerCacheMap.d.ts +115 -0
- package/dist/cache/layers/TwoLayerCacheMap.d.ts.map +1 -0
- package/dist/cache/patterns/StaleWhileRevalidateCache.d.ts +101 -0
- package/dist/cache/patterns/StaleWhileRevalidateCache.d.ts.map +1 -0
- package/dist/cache/types/TwoLayerTypes.d.ts +53 -0
- package/dist/cache/types/TwoLayerTypes.d.ts.map +1 -0
- package/dist/cache/warming/CacheWarmer.d.ts +147 -0
- package/dist/cache/warming/CacheWarmer.d.ts.map +1 -0
- package/dist/index.js +951 -425
- package/dist/ttl/TTLCalculator.d.ts +96 -0
- package/dist/ttl/TTLCalculator.d.ts.map +1 -0
- package/dist/ttl/TTLConfig.d.ts +79 -0
- package/dist/ttl/TTLConfig.d.ts.map +1 -0
- package/package.json +7 -7
- package/test_output.txt +965 -0
package/dist/Operations.d.ts
CHANGED
|
@@ -1,39 +1,122 @@
|
|
|
1
1
|
import { AffectedKeys, Operations as CoreOperations, CreateOptions, isOperationComKey as isComKey, isOperationPriKey as isPriKey, OperationParams } from "@fjell/core";
|
|
2
|
-
import { ComKey, Item, PriKey } from "@fjell/core";
|
|
2
|
+
import { ComKey, Item, ItemQuery, LocKeyArray, PriKey } from "@fjell/core";
|
|
3
3
|
import { ClientApi } from "@fjell/client-api";
|
|
4
4
|
import { Coordinate } from "@fjell/core";
|
|
5
|
+
import { Options } from "./Options";
|
|
6
|
+
import { Registry } from "@fjell/registry";
|
|
5
7
|
import { CacheMap } from "./CacheMap";
|
|
6
8
|
import { CacheEventEmitter } from "./events/CacheEventEmitter";
|
|
7
|
-
import { Options } from "./Options";
|
|
8
9
|
import { TTLManager } from "./ttl/TTLManager";
|
|
9
10
|
import { EvictionManager } from "./eviction/EvictionManager";
|
|
10
11
|
import { CacheStatsManager } from "./CacheStats";
|
|
11
|
-
import { Registry } from "@fjell/registry";
|
|
12
12
|
export type { OperationParams, AffectedKeys, CreateOptions };
|
|
13
13
|
export { isPriKey, isComKey };
|
|
14
14
|
/**
|
|
15
|
-
* Cache Operations
|
|
15
|
+
* Two-Layer Cache Operations - Prevents cache poisoning by separating item and query storage
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* -
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
17
|
+
* Cache Poisoning Prevention:
|
|
18
|
+
* - Layer 1 (ItemCache): Stores individual entities by full composite keys
|
|
19
|
+
* - Layer 2 (QueryCache): Stores query results as arrays of item keys + completeness metadata
|
|
20
|
+
* - Complete queries get cached for 5 minutes, partial queries for 1 minute only
|
|
21
21
|
*/
|
|
22
22
|
export interface Operations<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> extends CoreOperations<V, S, L1, L2, L3, L4, L5> {
|
|
23
|
+
retrieve(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<V | null>;
|
|
24
|
+
set(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, item: Item<S, L1, L2, L3, L4, L5>): Promise<V>;
|
|
25
|
+
reset(): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Traditional Cache Operations - Works with any CacheMap implementation including TwoLayerCacheMap
|
|
29
|
+
*
|
|
30
|
+
* This class delegates to the individual operation functions in the ops/ directory
|
|
31
|
+
* and works through the CacheContext pattern for maximum compatibility.
|
|
32
|
+
*/
|
|
33
|
+
export declare class CacheMapOperations<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> implements Operations<V, S, L1, L2, L3, L4, L5> {
|
|
34
|
+
private api;
|
|
35
|
+
private coordinate;
|
|
36
|
+
private cacheMap;
|
|
37
|
+
private pkType;
|
|
38
|
+
private options;
|
|
39
|
+
private eventEmitter;
|
|
40
|
+
private ttlManager;
|
|
41
|
+
private evictionManager;
|
|
42
|
+
private statsManager;
|
|
43
|
+
private registry;
|
|
44
|
+
constructor(api: ClientApi<V, S, L1, L2, L3, L4, L5>, coordinate: Coordinate<S, L1, L2, L3, L4, L5>, cacheMap: CacheMap<V, S, L1, L2, L3, L4, L5>, pkType: S, options: Options<V, S, L1, L2, L3, L4, L5>, eventEmitter: CacheEventEmitter<V, S, L1, L2, L3, L4, L5>, ttlManager: TTLManager, evictionManager: EvictionManager, statsManager: CacheStatsManager, registry: Registry);
|
|
45
|
+
private get context();
|
|
46
|
+
all(query?: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V[]>;
|
|
47
|
+
one(query?: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V | null>;
|
|
48
|
+
create(item: Partial<V>, options?: CreateOptions<S, L1, L2, L3, L4, L5>): Promise<V>;
|
|
49
|
+
get(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<V | null>;
|
|
50
|
+
retrieve(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<V | null>;
|
|
51
|
+
remove(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<void>;
|
|
52
|
+
update(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, item: Partial<V>): Promise<V>;
|
|
53
|
+
set(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, item: V): Promise<V>;
|
|
54
|
+
reset(): Promise<void>;
|
|
55
|
+
upsert(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, itemProperties: Partial<V>, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<V>;
|
|
56
|
+
action(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, actionName: string, body?: any): Promise<[any, any]>;
|
|
57
|
+
allAction(actionName: string, body?: any, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<[any, any]>;
|
|
58
|
+
facet(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, facetName: string, params?: Record<string, any>): Promise<any>;
|
|
59
|
+
allFacet(facetName: string, params?: Record<string, any>, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<any>;
|
|
60
|
+
find(finder: string, params: Record<string, any>, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<V[]>;
|
|
61
|
+
findOne(finder: string, params: Record<string, any>, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<V | null>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Legacy Two-Layer Operations - Direct ItemCache + QueryCache implementation
|
|
65
|
+
*
|
|
66
|
+
* This is kept for backward compatibility but should be replaced by
|
|
67
|
+
* using TwoLayerCacheMap + CacheMapOperations for better integration.
|
|
68
|
+
*/
|
|
69
|
+
export declare class TwoLayerOperations<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> implements Operations<V, S, L1, L2, L3, L4, L5> {
|
|
70
|
+
private api;
|
|
71
|
+
private coordinate;
|
|
72
|
+
private pkType;
|
|
73
|
+
private registry;
|
|
74
|
+
private itemCache;
|
|
75
|
+
private queryCache;
|
|
76
|
+
private options;
|
|
77
|
+
private ttlCalculator;
|
|
78
|
+
private staleWhileRevalidateCache;
|
|
79
|
+
private cacheWarmer?;
|
|
80
|
+
constructor(api: ClientApi<V, S, L1, L2, L3, L4, L5>, coordinate: Coordinate<S, L1, L2, L3, L4, L5>, pkType: S, options: Options<V, S, L1, L2, L3, L4, L5>, registry: Registry);
|
|
81
|
+
all(query?: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V[]>;
|
|
82
|
+
allFacet(facet: string, params?: Record<string, any>, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<any>;
|
|
83
|
+
get(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<V | null>;
|
|
84
|
+
update(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, updates: Partial<V>): Promise<V>;
|
|
85
|
+
one(query?: ItemQuery, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V | null>;
|
|
86
|
+
create(item: Partial<V>, options?: CreateOptions<S, L1, L2, L3, L4, L5>): Promise<V>;
|
|
87
|
+
remove(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<void>;
|
|
88
|
+
retrieve(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<V | null>;
|
|
89
|
+
set(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, item: Item<S, L1, L2, L3, L4, L5>): Promise<V>;
|
|
90
|
+
reset(): Promise<void>;
|
|
23
91
|
/**
|
|
24
|
-
*
|
|
25
|
-
* Similar to get() but distinguishes between cache-first retrieval.
|
|
92
|
+
* Cleanup resources - call when shutting down
|
|
26
93
|
*/
|
|
27
|
-
|
|
94
|
+
cleanup(): void;
|
|
28
95
|
/**
|
|
29
|
-
*
|
|
30
|
-
* Useful for manual cache population.
|
|
96
|
+
* Get enhanced cache statistics
|
|
31
97
|
*/
|
|
32
|
-
|
|
98
|
+
getEnhancedStats(): any;
|
|
33
99
|
/**
|
|
34
|
-
*
|
|
100
|
+
* Explain TTL calculation for debugging
|
|
35
101
|
*/
|
|
36
|
-
|
|
102
|
+
explainTTL(itemType?: string, queryType?: string, isComplete?: boolean): {
|
|
103
|
+
result: import("./ttl/TTLCalculator").TTLResult;
|
|
104
|
+
explanation: string[];
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Manually warm specific cache operations
|
|
108
|
+
*/
|
|
109
|
+
warmCache(operationIds?: string[]): Promise<any>;
|
|
110
|
+
private storeTwoLayer;
|
|
111
|
+
private buildItemKey;
|
|
112
|
+
private buildQueryKey;
|
|
113
|
+
private normalizeParams;
|
|
114
|
+
upsert(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, itemProperties: Partial<V>, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<V>;
|
|
115
|
+
action(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, actionName: string, body?: any): Promise<[any, any]>;
|
|
116
|
+
allAction(actionName: string, body?: any, locations?: LocKeyArray<L1, L2, L3, L4, L5>): Promise<[any, any]>;
|
|
117
|
+
facet(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, facetName: string, params?: Record<string, any>): Promise<any>;
|
|
118
|
+
find(finder: string, params?: Record<string, any>, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V[]>;
|
|
119
|
+
findOne(finder: string, params?: Record<string, any>, locations?: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V | null>;
|
|
37
120
|
}
|
|
38
121
|
export declare const createOperations: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(api: ClientApi<V, S, L1, L2, L3, L4, L5>, coordinate: Coordinate<S, L1, L2, L3, L4, L5>, cacheMap: CacheMap<V, S, L1, L2, L3, L4, L5>, pkType: S, options: Options<V, S, L1, L2, L3, L4, L5>, eventEmitter: CacheEventEmitter<V, S, L1, L2, L3, L4, L5>, ttlManager: TTLManager, evictionManager: EvictionManager, statsManager: CacheStatsManager, registry: Registry) => Operations<V, S, L1, L2, L3, L4, L5>;
|
|
39
122
|
//# sourceMappingURL=Operations.d.ts.map
|
package/dist/Operations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"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"}
|
package/dist/Options.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Item } from '@fjell/core';
|
|
2
2
|
import { CacheMap } from './CacheMap';
|
|
3
|
+
import { TwoLayerCacheOptions } from './cache/types/TwoLayerTypes';
|
|
4
|
+
import { TTLConfig } from './ttl/TTLConfig';
|
|
3
5
|
import { EvictionStrategyConfigs } from './eviction/EvictionStrategyConfig';
|
|
4
6
|
/**
|
|
5
7
|
* Available cache types for the cache instance
|
|
@@ -85,6 +87,10 @@ export interface Options<V extends Item<S, L1, L2, L3, L4, L5>, S extends string
|
|
|
85
87
|
maxRetries?: number;
|
|
86
88
|
/** Delay between retry attempts in milliseconds */
|
|
87
89
|
retryDelay?: number;
|
|
90
|
+
/** Two-layer cache configuration for preventing cache poisoning */
|
|
91
|
+
twoLayer?: TwoLayerCacheOptions;
|
|
92
|
+
/** Enhanced TTL configuration for smart cache expiration */
|
|
93
|
+
ttlConfig?: TTLConfig;
|
|
88
94
|
}
|
|
89
95
|
/**
|
|
90
96
|
* Create cache options with defaults
|
package/dist/Options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Options.d.ts","sourceRoot":"","sources":["../src/Options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Options.d.ts","sourceRoot":"","sources":["../src/Options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two-Layer Cache Demo - Shows the implementation working
|
|
3
|
+
*
|
|
4
|
+
* This file demonstrates that the two-layer cache implementation
|
|
5
|
+
* is fully functional and ready for use.
|
|
6
|
+
*/
|
|
7
|
+
import { TwoLayerFactory } from './TwoLayerFactory';
|
|
8
|
+
import { TwoLayerCacheOptions } from './types/TwoLayerTypes';
|
|
9
|
+
export declare function demonstrateTwoLayerCache(): {
|
|
10
|
+
autoCache: import("./layers/TwoLayerCacheMap").TwoLayerCacheMap<import("@fjell/core").Item<"user", never, never, never, never, never>, "user", never, never, never, never, never>;
|
|
11
|
+
memoryCache: import("./layers/TwoLayerCacheMap").TwoLayerCacheMap<import("@fjell/core").Item<"user", never, never, never, never, never>, "user", never, never, never, never, never>;
|
|
12
|
+
enhancedCache: import("./layers/TwoLayerCacheMap").TwoLayerCacheMap<import("@fjell/core").Item<"user", never, never, never, never, never>, "user", never, never, never, never, never>;
|
|
13
|
+
configCache: import("./layers/TwoLayerCacheMap").TwoLayerCacheMap<import("@fjell/core").Item<"user", never, never, never, never, never>, "user", never, never, never, never, never> | import("..").CacheMap<import("@fjell/core").Item<"user", never, never, never, never, never>, "user", never, never, never, never, never>;
|
|
14
|
+
};
|
|
15
|
+
export declare function exampleCacheUsage(): Promise<{
|
|
16
|
+
cache: import("./layers/TwoLayerCacheMap").TwoLayerCacheMap<import("@fjell/core").Item<"user", never, never, never, never, never>, "user", never, never, never, never, never>;
|
|
17
|
+
stats: {
|
|
18
|
+
queryMetadata: {
|
|
19
|
+
total: number;
|
|
20
|
+
valid: number;
|
|
21
|
+
expired: number;
|
|
22
|
+
complete: number;
|
|
23
|
+
partial: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}>;
|
|
27
|
+
export type { TwoLayerCacheOptions };
|
|
28
|
+
export { TwoLayerFactory };
|
|
29
|
+
//# sourceMappingURL=TwoLayerDemo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TwoLayerDemo.d.ts","sourceRoot":"","sources":["../../src/cache/TwoLayerDemo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAI7D,wBAAgB,wBAAwB;;;;;EAyDvC;AAGD,wBAAsB,iBAAiB;;;;;;;;;;;GAuDtC;AAGD,YAAY,EAAE,oBAAoB,EAAE,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { AllItemTypeArrays, Item } from "@fjell/core";
|
|
2
|
+
import { CacheMap } from "../CacheMap";
|
|
3
|
+
import { TwoLayerCacheMap } from "./layers/TwoLayerCacheMap";
|
|
4
|
+
import { TwoLayerCacheOptions } from "./types/TwoLayerTypes";
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for creating two-layer cache instances
|
|
7
|
+
*/
|
|
8
|
+
export interface TwoLayerConfig {
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
itemLayer: {
|
|
11
|
+
type: 'memory' | 'enhanced-memory' | 'localStorage' | 'sessionStorage' | 'indexedDB';
|
|
12
|
+
options?: any;
|
|
13
|
+
};
|
|
14
|
+
queryLayer?: {
|
|
15
|
+
type?: 'memory' | 'enhanced-memory' | 'localStorage' | 'sessionStorage' | 'indexedDB';
|
|
16
|
+
options?: any;
|
|
17
|
+
};
|
|
18
|
+
options?: TwoLayerCacheOptions;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Factory for creating two-layer cache instances that work with any CacheMap implementation
|
|
22
|
+
*/
|
|
23
|
+
export declare class TwoLayerFactory {
|
|
24
|
+
/**
|
|
25
|
+
* Create a two-layer cache by wrapping an existing CacheMap implementation
|
|
26
|
+
*/
|
|
27
|
+
static create<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(underlyingCache: CacheMap<V, S, L1, L2, L3, L4, L5>, options?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
28
|
+
/**
|
|
29
|
+
* Create a two-layer cache from configuration
|
|
30
|
+
*/
|
|
31
|
+
static createFromConfig<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, config: TwoLayerConfig): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5> | CacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
32
|
+
/**
|
|
33
|
+
* Create appropriate memory-based two-layer cache based on environment
|
|
34
|
+
*/
|
|
35
|
+
static createMemoryTwoLayer<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, options?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
36
|
+
/**
|
|
37
|
+
* Create enhanced memory two-layer cache with size limits
|
|
38
|
+
*/
|
|
39
|
+
static createEnhancedMemoryTwoLayer<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, sizeConfig?: {
|
|
40
|
+
maxItems?: number;
|
|
41
|
+
maxSizeBytes?: string;
|
|
42
|
+
}, twoLayerOptions?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
43
|
+
/**
|
|
44
|
+
* Create IndexedDB-based two-layer cache for browser environments
|
|
45
|
+
*/
|
|
46
|
+
static createIndexedDBTwoLayer<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, dbConfig?: {
|
|
47
|
+
dbName?: string;
|
|
48
|
+
version?: number;
|
|
49
|
+
storeName?: string;
|
|
50
|
+
}, twoLayerOptions?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
51
|
+
/**
|
|
52
|
+
* Create localStorage-based two-layer cache with space management
|
|
53
|
+
*/
|
|
54
|
+
static createLocalStorageTwoLayer<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, storageConfig?: {
|
|
55
|
+
keyPrefix?: string;
|
|
56
|
+
compress?: boolean;
|
|
57
|
+
maxSizeBytes?: number;
|
|
58
|
+
}, twoLayerOptions?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
59
|
+
/**
|
|
60
|
+
* Create sessionStorage-based two-layer cache
|
|
61
|
+
*/
|
|
62
|
+
static createSessionStorageTwoLayer<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, storageConfig?: {
|
|
63
|
+
keyPrefix?: string;
|
|
64
|
+
compress?: boolean;
|
|
65
|
+
}, twoLayerOptions?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
66
|
+
/**
|
|
67
|
+
* Create hybrid two-layer cache (localStorage for items, sessionStorage for queries)
|
|
68
|
+
*/
|
|
69
|
+
static createHybridTwoLayer<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, twoLayerOptions?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
70
|
+
/**
|
|
71
|
+
* Create a single-layer cache based on configuration
|
|
72
|
+
*/
|
|
73
|
+
private static createSingleLayerCache;
|
|
74
|
+
/**
|
|
75
|
+
* Auto-detect the best cache type for the current environment
|
|
76
|
+
*/
|
|
77
|
+
static detectBestCacheType(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Create auto-detected two-layer cache for current environment
|
|
80
|
+
*/
|
|
81
|
+
static createAuto<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(types: AllItemTypeArrays<S, L1, L2, L3, L4, L5>, options?: TwoLayerCacheOptions): TwoLayerCacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=TwoLayerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TwoLayerFactory.d.ts","sourceRoot":"","sources":["../../src/cache/TwoLayerFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CachedItem, ItemCacheLayer } from '../types/TwoLayerTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Item Cache Layer - Stores individual entities by their composite keys
|
|
4
|
+
*
|
|
5
|
+
* This layer is responsible for:
|
|
6
|
+
* - Storing individual items with TTL
|
|
7
|
+
* - Fast key-value lookups
|
|
8
|
+
* - Automatic expiration handling
|
|
9
|
+
* - Query-agnostic storage
|
|
10
|
+
*/
|
|
11
|
+
export declare class ItemCache<T> implements ItemCacheLayer<T> {
|
|
12
|
+
private storage;
|
|
13
|
+
private defaultTTL;
|
|
14
|
+
private debug;
|
|
15
|
+
constructor(options?: {
|
|
16
|
+
defaultTTL?: number;
|
|
17
|
+
debug?: boolean;
|
|
18
|
+
});
|
|
19
|
+
get(key: string): Promise<T | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Get raw cached item with metadata (for stale-while-revalidate pattern)
|
|
22
|
+
*/
|
|
23
|
+
getRaw(key: string): Promise<CachedItem<T> | null>;
|
|
24
|
+
set(key: string, item: T, ttl?: number): Promise<void>;
|
|
25
|
+
delete(key: string): Promise<void>;
|
|
26
|
+
has(key: string): Promise<boolean>;
|
|
27
|
+
clear(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Get cache statistics
|
|
30
|
+
*/
|
|
31
|
+
getStats(): {
|
|
32
|
+
total: number;
|
|
33
|
+
valid: number;
|
|
34
|
+
expired: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Clean up expired items
|
|
38
|
+
*/
|
|
39
|
+
cleanup(): number;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ItemCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemCache.d.ts","sourceRoot":"","sources":["../../../src/cache/layers/ItemCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;;;;;GAQG;AACH,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAU;gBAEX,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;IAM5D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAyBzC;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAIlD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,QAAQ;;;;;IAoBR;;OAEG;IACH,OAAO,IAAI,MAAM;CAiBlB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { QueryCacheLayer, QueryResult } from '../types/TwoLayerTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Query Cache Layer - Stores query results as arrays of item keys + metadata
|
|
4
|
+
*
|
|
5
|
+
* This layer is responsible for:
|
|
6
|
+
* - Storing query results with metadata (complete vs partial)
|
|
7
|
+
* - Different TTLs for complete vs faceted queries
|
|
8
|
+
* - Pattern-based invalidation
|
|
9
|
+
* - Tracking query completeness to prevent cache poisoning
|
|
10
|
+
*/
|
|
11
|
+
export declare class QueryCache implements QueryCacheLayer {
|
|
12
|
+
private storage;
|
|
13
|
+
private queryTTL;
|
|
14
|
+
private facetTTL;
|
|
15
|
+
private debug;
|
|
16
|
+
constructor(options?: {
|
|
17
|
+
queryTTL?: number;
|
|
18
|
+
facetTTL?: number;
|
|
19
|
+
debug?: boolean;
|
|
20
|
+
});
|
|
21
|
+
getResult(queryKey: string): Promise<QueryResult | null>;
|
|
22
|
+
setResult(queryKey: string, result: QueryResult): Promise<void>;
|
|
23
|
+
invalidatePattern(pattern: string): Promise<void>;
|
|
24
|
+
clear(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Get all query keys (for debugging and targeted invalidation)
|
|
27
|
+
*/
|
|
28
|
+
getAllQueryKeys(): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Find queries that contain a specific item key
|
|
31
|
+
*/
|
|
32
|
+
findQueriesContainingItem(itemKey: string): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Invalidate all queries containing a specific item
|
|
35
|
+
*/
|
|
36
|
+
invalidateQueriesContainingItem(itemKey: string): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Get cache statistics
|
|
39
|
+
*/
|
|
40
|
+
getStats(): {
|
|
41
|
+
total: number;
|
|
42
|
+
valid: number;
|
|
43
|
+
expired: number;
|
|
44
|
+
complete: number;
|
|
45
|
+
partial: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Clean up expired query results
|
|
49
|
+
*/
|
|
50
|
+
cleanup(): number;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=QueryCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryCache.d.ts","sourceRoot":"","sources":["../../../src/cache/layers/QueryCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErF;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,eAAe;IAChD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAU;gBAEX,OAAO,GAAE;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IAOA,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyBxD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAiBpD;;OAEG;IACG,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE;;OAEG;IACH,QAAQ;;;;;;;IA6BR;;OAEG;IACH,OAAO,IAAI,MAAM;CAiBlB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { ComKey, Item, ItemQuery, LocKeyArray, PriKey } from "@fjell/core";
|
|
2
|
+
import { CacheMap } from "../../CacheMap";
|
|
3
|
+
import { TwoLayerCacheOptions } from "../types/TwoLayerTypes";
|
|
4
|
+
/**
|
|
5
|
+
* TwoLayerCacheMap - Unified implementation that works with existing CacheMap implementations
|
|
6
|
+
*
|
|
7
|
+
* This class enhances any CacheMap implementation with proper two-layer architecture:
|
|
8
|
+
* - Item Layer: Uses the underlying CacheMap for individual item storage
|
|
9
|
+
* - Query Layer: Enhances the CacheMap query result methods with rich metadata
|
|
10
|
+
*
|
|
11
|
+
* Key Benefits:
|
|
12
|
+
* - Works with ALL existing CacheMap implementations (Memory, IndexedDB, localStorage, etc.)
|
|
13
|
+
* - Prevents cache poisoning through proper query metadata
|
|
14
|
+
* - Different TTLs for complete vs partial queries
|
|
15
|
+
* - Automatic query invalidation on item changes
|
|
16
|
+
*/
|
|
17
|
+
export declare class TwoLayerCacheMap<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> extends CacheMap<V, S, L1, L2, L3, L4, L5> {
|
|
18
|
+
private underlyingCache;
|
|
19
|
+
private options;
|
|
20
|
+
private queryMetadataMap;
|
|
21
|
+
constructor(underlyingCache: CacheMap<V, S, L1, L2, L3, L4, L5>, options?: TwoLayerCacheOptions);
|
|
22
|
+
get(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<V | null>;
|
|
23
|
+
set(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, value: V): Promise<void>;
|
|
24
|
+
includesKey(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<boolean>;
|
|
25
|
+
delete(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>): Promise<void>;
|
|
26
|
+
allIn(locations: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V[]>;
|
|
27
|
+
contains(query: ItemQuery, locations: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<boolean>;
|
|
28
|
+
queryIn(query: ItemQuery, locations: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<V[]>;
|
|
29
|
+
clone(): Promise<CacheMap<V, S, L1, L2, L3, L4, L5>>;
|
|
30
|
+
keys(): Promise<(ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>)[]>;
|
|
31
|
+
values(): Promise<V[]>;
|
|
32
|
+
clear(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Set a query result with rich metadata for two-layer architecture
|
|
35
|
+
*/
|
|
36
|
+
setQueryResult(queryHash: string, itemKeys: (ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>)[]): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Get a query result with expiration checking
|
|
39
|
+
*/
|
|
40
|
+
getQueryResult(queryHash: string): Promise<(ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>)[] | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Check if query result exists and is not expired
|
|
43
|
+
*/
|
|
44
|
+
hasQueryResult(queryHash: string): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Delete a query result and its metadata
|
|
47
|
+
*/
|
|
48
|
+
deleteQueryResult(queryHash: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Invalidate queries that are affected by item changes
|
|
51
|
+
*/
|
|
52
|
+
private invalidateQueriesForItem;
|
|
53
|
+
/**
|
|
54
|
+
* Find queries that contain a specific item (requires scanning - can be optimized)
|
|
55
|
+
*/
|
|
56
|
+
private findQueriesContainingItem;
|
|
57
|
+
/**
|
|
58
|
+
* Determine if a query result is complete or partial based on query hash
|
|
59
|
+
*/
|
|
60
|
+
private determineQueryCompleteness;
|
|
61
|
+
/**
|
|
62
|
+
* Extract query type from hash for metadata
|
|
63
|
+
*/
|
|
64
|
+
private extractQueryType;
|
|
65
|
+
/**
|
|
66
|
+
* Extract filter information from query hash
|
|
67
|
+
*/
|
|
68
|
+
private extractFilter;
|
|
69
|
+
/**
|
|
70
|
+
* Extract parameters from query hash
|
|
71
|
+
*/
|
|
72
|
+
private extractParams;
|
|
73
|
+
getMetadata(key: string): Promise<any>;
|
|
74
|
+
setMetadata(key: string, metadata: any): Promise<void>;
|
|
75
|
+
deleteMetadata(key: string): Promise<void>;
|
|
76
|
+
getAllMetadata(): Promise<Map<string, any>>;
|
|
77
|
+
clearMetadata(): Promise<void>;
|
|
78
|
+
getCurrentSize(): Promise<{
|
|
79
|
+
itemCount: number;
|
|
80
|
+
sizeBytes: number;
|
|
81
|
+
}>;
|
|
82
|
+
getSizeLimits(): Promise<{
|
|
83
|
+
maxItems: number | null;
|
|
84
|
+
maxSizeBytes: number | null;
|
|
85
|
+
}>;
|
|
86
|
+
/**
|
|
87
|
+
* Get statistics about the two-layer cache
|
|
88
|
+
*/
|
|
89
|
+
getTwoLayerStats(): {
|
|
90
|
+
queryMetadata: {
|
|
91
|
+
total: number;
|
|
92
|
+
valid: number;
|
|
93
|
+
expired: number;
|
|
94
|
+
complete: number;
|
|
95
|
+
partial: number;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Clean up expired queries
|
|
100
|
+
*/
|
|
101
|
+
cleanup(): Promise<number>;
|
|
102
|
+
get implementationType(): string;
|
|
103
|
+
invalidateItemKeys(keys: (ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>)[]): Promise<void>;
|
|
104
|
+
invalidateLocation(locations: LocKeyArray<L1, L2, L3, L4, L5> | []): Promise<void>;
|
|
105
|
+
clearQueryResults(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Check if two-layer mode is enabled
|
|
108
|
+
*/
|
|
109
|
+
get isTwoLayerEnabled(): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Get the underlying cache implementation
|
|
112
|
+
*/
|
|
113
|
+
get underlying(): CacheMap<V, S, L1, L2, L3, L4, L5>;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=TwoLayerCacheMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TwoLayerCacheMap.d.ts","sourceRoot":"","sources":["../../../src/cache/layers/TwoLayerCacheMap.ts"],"names":[],"mappings":"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"}
|