cachimbo 0.0.4 → 0.0.6

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 CHANGED
@@ -4,7 +4,10 @@
4
4
 
5
5
  <h1 align="center">Cachimbo</h1>
6
6
 
7
- Cachimbo is an advanced caching library that allows you to layer different strategies in order to maximize the performance.
7
+ Cachimbo is a composable caching library that allows layering different strategies in order to maximize the performance.
8
+
9
+ [![NPM](https://img.shields.io/npm/v/cachimbo)](https://www.npmjs.com/package/cachimbo)
10
+ [![Coverage](https://img.shields.io/codecov/c/github/Guichaguri/cachimbo)](https://app.codecov.io/gh/Guichaguri/cachimbo)
8
11
 
9
12
  ## Features
10
13
 
@@ -13,17 +16,19 @@ Cachimbo is an advanced caching library that allows you to layer different strat
13
16
  - Valkey
14
17
  - Memcached
15
18
  - Cloudflare Workers KV
19
+ - Hazelcast
16
20
  - Keyv
17
21
  - Supports in-memory cache stores
18
22
  - Least Recently Used (LRU) eviction
19
23
  - Time-based (TTL) eviction
20
24
  - FIFO eviction
21
25
  - Weak References (garbage collectable cached items)
22
- - Supports intermediary cache strategies
26
+ - Supports composable cache strategies
23
27
  - Request coalescing (deduplication)
24
28
  - Multi-layer caching (tiered cache)
25
29
  - Stale-While-Revalidate
26
30
  - TTL jittering
31
+ - Fail-safety
27
32
  - Metrics collection
28
33
  - Easily extendable
29
34
 
@@ -69,27 +74,35 @@ const data = await cache.getOrLoad<MyData>(
69
74
 
70
75
  In-memory caches offer extremely low latency since data is stored directly in the application’s process. They reduce external round-trips, improve performance under load, and are ideal for fast, frequently accessed data.
71
76
 
72
- External caches (like Redis, Memcached, etc) provide fast, scalable, shared storage that can be accessed across multiple application instances. They offer high throughput, larger memory capacity, and centralized cache management beyond what in-memory caches can reliably provide.
77
+ External caches (like Redis, Memcached, etc.) provide fast, scalable, shared storage that can be accessed across multiple application instances. They offer high throughput, larger memory capacity, and centralized cache management beyond what in-memory caches can reliably provide.
73
78
 
74
79
  - [In-memory](/docs/stores/in-memory.md)
75
80
  - [Redis](/docs/stores/redis-valkey.md) (and Valkey)
76
81
  - [Memcached](/docs/stores/memcached.md)
77
82
  - [Cloudflare Workers KV](/docs/stores/cloudflare-workers-kv.md)
83
+ - [Hazelcast](/docs/stores/hazelcast.md)
78
84
  - [Keyv](/docs/stores/keyv.md)
79
85
 
80
86
  ## Cache Layers
81
87
 
82
- These layers work just like "middlewares" but for caches, they customize how a cache is handled.
88
+ Cache layers are composable components that sit between your code and the cache store. While cache stores define *where* data is stored, cache layers define *how* the cache is accessed.
89
+
90
+ Each layer intercepts cache operations to add behavior. Layers can be stacked to form a pipeline, allowing advanced caching strategies to be reused across different cache backends.
83
91
 
84
92
  - [Request Coalescing](/docs/layers/request-coalescing.md) (deduplication)
85
93
  - [Tiered Caching](/docs/layers/tiered.md) (multi-layer caching)
86
94
  - [Stale-While-Revalidate](/docs/layers/stale-while-revalidate.md)
87
95
  - [TTL Jittering](/docs/layers/jittering.md)
96
+ - [Fail-safety](/docs/layers/fail-safe.md)
88
97
  - [Async/Lazy Initialization](/docs/layers/async-lazy.md)
89
98
  - [Key Transformation](/docs/layers/key-transformation.md)
90
99
  - [Metrics Collection](/docs/layers/metrics-collection.md)
91
100
 
92
101
  ## Guides
102
+ - [Getting Started](/docs/guides/getting-started.md)
93
103
  - [Choosing the right combination of layers](/docs/guides/choosing-layers.md)
94
104
  - [Disabling cache](/docs/guides/disabling.md)
105
+ - [Testing](/docs/guides/testing.md)
95
106
  - [Extending](/docs/guides/extending.md)
107
+ - [Design Principles](/docs/guides/design-principles.md)
108
+ - [Samples](/samples)
package/dist/index.cjs CHANGED
@@ -214,61 +214,61 @@ var LocalTTLCache = class extends BaseLocalCache {
214
214
  * Once the limit of items is reached, the first inserted keys will be purged.
215
215
  */
216
216
  var LocalMapCache = class extends BaseLocalCache {
217
- cache;
217
+ map;
218
218
  max;
219
219
  constructor(options = {}) {
220
220
  super(options);
221
- this.cache = options.cache ?? /* @__PURE__ */ new Map();
221
+ this.map = options.map ?? /* @__PURE__ */ new Map();
222
222
  this.max = options.max ?? Infinity;
223
223
  }
224
224
  /** @internal */
225
225
  _get(key) {
226
226
  this.logger?.debug(this.name, "[get]", "key =", key);
227
- const data = this.cache.get(key);
227
+ const data = this.map.get(key);
228
228
  return data === void 0 ? null : data;
229
229
  }
230
230
  /** @internal */
231
231
  _set(key, value, options) {
232
232
  this.logger?.debug(this.name, "[set]", "key =", key);
233
- const previousValue = this.cache.get(key);
234
- if (this.cache.size >= this.max && previousValue === void 0) this.evict(1);
235
- this.cache.set(key, value);
233
+ const previousValue = this.map.get(key);
234
+ if (this.map.size >= this.max && previousValue === void 0) this.evict(1);
235
+ this.map.set(key, value);
236
236
  this.onDispose(key, previousValue, "set");
237
237
  }
238
238
  /** @internal */
239
239
  _delete(key) {
240
240
  this.logger?.debug(this.name, "[delete]", "key =", key);
241
- const previousValue = this.cache.get(key);
242
- this.cache.delete(key);
241
+ const previousValue = this.map.get(key);
242
+ this.map.delete(key);
243
243
  this.onDispose(key, previousValue, "delete");
244
244
  }
245
245
  async setMany(data, options) {
246
246
  this.logger?.debug(this.name, "[setMany]", "data =", data);
247
247
  const entries = Object.entries(data);
248
- const newEntries = entries.filter(([key]) => !this.cache.has(key)).length;
249
- if (this.cache.size + newEntries > this.max) this.evict(this.cache.size + newEntries - this.max);
248
+ const newEntries = entries.filter(([key]) => !this.map.has(key)).length;
249
+ if (this.map.size + newEntries > this.max) this.evict(this.map.size + newEntries - this.max);
250
250
  for (const [key, value] of entries) {
251
- const previousValue = this.cache.get(key);
252
- this.cache.set(key, value);
251
+ const previousValue = this.map.get(key);
252
+ this.map.set(key, value);
253
253
  this.onDispose(key, previousValue, "set");
254
254
  }
255
255
  }
256
256
  clear() {
257
257
  this.logger?.debug(this.name, "[clear]");
258
- for (const key of this.cache.keys()) this.onDispose(key, this.cache.get(key), "delete");
259
- this.cache.clear();
258
+ for (const key of this.map.keys()) this.onDispose(key, this.map.get(key), "delete");
259
+ this.map.clear();
260
260
  }
261
261
  onDispose(key, value, reason) {
262
262
  if (value !== void 0) super.onDispose(key, value, reason);
263
263
  }
264
264
  evict(length) {
265
- const keys = this.cache.keys();
265
+ const keys = this.map.keys();
266
266
  for (let i = 0; i < length; i++) {
267
267
  const key = keys.next();
268
268
  if (key.done) break;
269
269
  this.logger?.debug(this.name, "[evict]", "key = ", key);
270
- const previousValue = this.cache.get(key.value);
271
- this.cache.delete(key.value);
270
+ const previousValue = this.map.get(key.value);
271
+ this.map.delete(key.value);
272
272
  this.onDispose(key.value, previousValue, "evict");
273
273
  }
274
274
  }
@@ -387,6 +387,56 @@ var WeakCache = class extends BaseLocalCache {
387
387
  }
388
388
  };
389
389
 
390
+ //#endregion
391
+ //#region src/local/cloning/index.ts
392
+ /**
393
+ * A cache layer that deep clones data when reading and writing.
394
+ *
395
+ * This is useful when you mutate the objects retrieved from cache,
396
+ * and you don't want them to also change in cache.
397
+ *
398
+ * Do not use this layer if you do not intend to mutate cached objects,
399
+ * as the cloning process adds unnecessary overhead.
400
+ */
401
+ var DeepCloningCache = class extends BaseLocalCache {
402
+ cache;
403
+ cacheInternal;
404
+ deepClone;
405
+ constructor(options) {
406
+ super(options);
407
+ this.cache = options.cache;
408
+ this.cacheInternal = options.cache.internal;
409
+ if (options.deepClone) this.deepClone = options.deepClone;
410
+ else if (typeof structuredClone === "function") this.deepClone = structuredClone;
411
+ else this.deepClone = (data) => JSON.parse(JSON.stringify(data));
412
+ }
413
+ _get(key) {
414
+ return this.deepClone(this.cacheInternal._get(key));
415
+ }
416
+ _set(key, value, options) {
417
+ this.cacheInternal._set(key, this.deepClone(value), options);
418
+ }
419
+ _delete(key) {
420
+ this.cacheInternal._delete(key);
421
+ }
422
+ _getMany(keys) {
423
+ return this.deepClone(this.cacheInternal._getMany(keys));
424
+ }
425
+ _setMany(data, options) {
426
+ this.cacheInternal._setMany(this.deepClone(data), options);
427
+ }
428
+ _deleteMany(keys) {
429
+ this.cacheInternal._deleteMany(keys);
430
+ }
431
+ _addDisposeListener(listener) {
432
+ this.cacheInternal._addDisposeListener(listener);
433
+ }
434
+ async getOrLoad(key, load, options) {
435
+ const loadWrapped = async () => this.deepClone(await load());
436
+ return this.deepClone(await this.cache.getOrLoad(key, loadWrapped, options));
437
+ }
438
+ };
439
+
390
440
  //#endregion
391
441
  //#region src/local/noop/index.ts
392
442
  /**
@@ -698,6 +748,34 @@ var WorkersKVCache = class extends BaseCache {
698
748
  }
699
749
  };
700
750
 
751
+ //#endregion
752
+ //#region src/remote/hazelcast/index.ts
753
+ /**
754
+ * A Hazelcast cache implementation using an IMap
755
+ */
756
+ var HazelcastCache = class extends BaseCache {
757
+ map;
758
+ constructor(options) {
759
+ super(options);
760
+ this.map = options.map;
761
+ }
762
+ get(key) {
763
+ return this.map.get(key);
764
+ }
765
+ set(key, value, options) {
766
+ return this.map.set(key, value, options?.ttl);
767
+ }
768
+ delete(key) {
769
+ return this.map.delete(key);
770
+ }
771
+ async getMany(keys) {
772
+ const entries = await this.map.getAll(keys);
773
+ const data = {};
774
+ for (const [key, value] of entries) data[key] = value;
775
+ return data;
776
+ }
777
+ };
778
+
701
779
  //#endregion
702
780
  //#region src/remote/keyv/index.ts
703
781
  var KeyvCache = class extends BaseCache {
@@ -925,6 +1003,75 @@ var CoalescingCache = class {
925
1003
  }
926
1004
  };
927
1005
 
1006
+ //#endregion
1007
+ //#region src/layers/fail-safe/index.ts
1008
+ /**
1009
+ * Handles errors from an underlying cache according to a specified policy.
1010
+ *
1011
+ * @see https://read.thecoder.cafe/p/fail-open-fail-closed
1012
+ */
1013
+ var FailSafeCache = class {
1014
+ cache;
1015
+ policy;
1016
+ onError;
1017
+ constructor(options) {
1018
+ this.cache = options.cache;
1019
+ this.policy = {
1020
+ get: "fail-open",
1021
+ set: "fail-open",
1022
+ delete: "fail-closed",
1023
+ getOrLoad: "fail-open",
1024
+ ...options.policy || {}
1025
+ };
1026
+ this.onError = options.onError;
1027
+ }
1028
+ get(key) {
1029
+ return this.cache.get(key).catch((error) => this.handleError("get", error, null));
1030
+ }
1031
+ getMany(keys) {
1032
+ return this.cache.getMany(keys).catch((error) => this.handleError("get", error, {}));
1033
+ }
1034
+ set(key, value, options) {
1035
+ return this.cache.set(key, value, options).catch((error) => this.handleError("set", error, void 0));
1036
+ }
1037
+ setMany(data, options) {
1038
+ return this.cache.setMany(data, options).catch((error) => this.handleError("set", error, void 0));
1039
+ }
1040
+ delete(key) {
1041
+ return this.cache.delete(key).catch((error) => this.handleError("delete", error, void 0));
1042
+ }
1043
+ deleteMany(keys) {
1044
+ return this.cache.deleteMany(keys).catch((error) => this.handleError("delete", error, void 0));
1045
+ }
1046
+ async getOrLoad(key, load, options) {
1047
+ let loadResult;
1048
+ let loadErrored = false;
1049
+ let loadSuccessful = false;
1050
+ const loadWithErrorHandling = async () => {
1051
+ try {
1052
+ loadResult = await load();
1053
+ loadSuccessful = true;
1054
+ return loadResult;
1055
+ } catch (error) {
1056
+ loadErrored = true;
1057
+ throw error;
1058
+ }
1059
+ };
1060
+ try {
1061
+ return await this.cache.getOrLoad(key, loadWithErrorHandling, options);
1062
+ } catch (error) {
1063
+ if (loadErrored) throw error;
1064
+ await this.handleError("getOrLoad", error, null);
1065
+ return loadSuccessful ? loadResult : await load();
1066
+ }
1067
+ }
1068
+ handleError(operation, error, failOpenValue) {
1069
+ this.onError?.(operation, error);
1070
+ if (this.policy[operation] === "fail-open") return Promise.resolve(failOpenValue);
1071
+ else return Promise.reject(error);
1072
+ }
1073
+ };
1074
+
928
1075
  //#endregion
929
1076
  //#region src/layers/jittering/index.ts
930
1077
  /**
@@ -987,7 +1134,7 @@ var KeyTransformingCache = class {
987
1134
  transform;
988
1135
  constructor(options) {
989
1136
  this.cache = options.cache;
990
- if ("transform" in options) this.transform = options.transform;
1137
+ if ("transform" in options && typeof options.transform === "function") this.transform = options.transform;
991
1138
  else {
992
1139
  const prefix = options.prefix || "";
993
1140
  const suffix = options.suffix || "";
@@ -1344,6 +1491,9 @@ exports.AsyncLazyCache = AsyncLazyCache;
1344
1491
  exports.BaseCache = BaseCache;
1345
1492
  exports.BaseLocalCache = BaseLocalCache;
1346
1493
  exports.CoalescingCache = CoalescingCache;
1494
+ exports.DeepCloningCache = DeepCloningCache;
1495
+ exports.FailSafeCache = FailSafeCache;
1496
+ exports.HazelcastCache = HazelcastCache;
1347
1497
  exports.IORedisCache = IORedisCache;
1348
1498
  exports.JitteringCache = JitteringCache;
1349
1499
  exports.KeyTransformingCache = KeyTransformingCache;
package/dist/index.d.cts CHANGED
@@ -7,6 +7,7 @@ import { BaseClient, GlideClient, GlideClusterClient } from "@valkey/valkey-glid
7
7
  import Memcache from "memcache";
8
8
  import { Client } from "memjs";
9
9
  import { KVNamespace } from "@cloudflare/workers-types";
10
+ import { IMap } from "hazelcast-client";
10
11
  import Keyv from "keyv";
11
12
 
12
13
  //#region src/types/logger.d.ts
@@ -50,6 +51,8 @@ interface ICache {
50
51
  * Reads the cached resource from a key.
51
52
  * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.
52
53
  *
54
+ * This method implements the Cache-Aside pattern.
55
+ *
53
56
  * @param key The cache key
54
57
  * @param load The function which should fetch the fresh data from origin
55
58
  * @param options The options used to save the cache
@@ -260,7 +263,7 @@ interface LocalMapCacheOptions extends BaseCacheOptions {
260
263
  /**
261
264
  * The underlying map.
262
265
  */
263
- cache?: MapLike<string, any>;
266
+ map?: MapLike<string, any>;
264
267
  /**
265
268
  * The maximum size of the cache.
266
269
  * When not set, the cache can grow indefinitely.
@@ -285,7 +288,7 @@ interface MapLike<K, V> {
285
288
  * Once the limit of items is reached, the first inserted keys will be purged.
286
289
  */
287
290
  declare class LocalMapCache extends BaseLocalCache {
288
- protected readonly cache: MapLike<string, any>;
291
+ protected readonly map: MapLike<string, any>;
289
292
  protected max: number;
290
293
  constructor(options?: LocalMapCacheOptions);
291
294
  setMany(data: Record<string, any>, options?: SetCacheOptions): Promise<void>;
@@ -355,6 +358,47 @@ declare class WeakCache extends BaseLocalCache {
355
358
  protected unregisterByKey(key: string): void;
356
359
  }
357
360
  //#endregion
361
+ //#region src/local/cloning/index.d.ts
362
+ interface DeepCloningCacheOptions extends BaseCacheOptions {
363
+ /**
364
+ * The underlying cache. This must be an in-memory cache.
365
+ */
366
+ cache: BaseLocalCache;
367
+ /**
368
+ * The deep clone function to use.
369
+ *
370
+ * By default, it will try to use `structuredClone()` if available,
371
+ * otherwise it will use a JSON.parse/stringify-based implementation.
372
+ *
373
+ * @param data The data to deep clone
374
+ * @returns The cloned data
375
+ */
376
+ deepClone?: <T>(data: T) => T;
377
+ }
378
+ /**
379
+ * A cache layer that deep clones data when reading and writing.
380
+ *
381
+ * This is useful when you mutate the objects retrieved from cache,
382
+ * and you don't want them to also change in cache.
383
+ *
384
+ * Do not use this layer if you do not intend to mutate cached objects,
385
+ * as the cloning process adds unnecessary overhead.
386
+ */
387
+ declare class DeepCloningCache extends BaseLocalCache {
388
+ protected readonly cache: BaseLocalCache;
389
+ protected readonly cacheInternal: LocalCacheInternal;
390
+ protected deepClone: <T>(data: T) => T;
391
+ constructor(options: DeepCloningCacheOptions);
392
+ protected _get<T>(key: string): T | null;
393
+ protected _set<T>(key: string, value: T, options?: SetCacheOptions): void;
394
+ protected _delete(key: string): void;
395
+ protected _getMany<T>(keys: string[]): Record<string, T | null>;
396
+ protected _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
397
+ protected _deleteMany(keys: string[]): void;
398
+ protected _addDisposeListener(listener: any): void;
399
+ getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;
400
+ }
401
+ //#endregion
358
402
  //#region src/local/noop/index.d.ts
359
403
  /**
360
404
  * A cache implementation that does nothing.
@@ -578,6 +622,36 @@ declare class WorkersKVCache extends BaseCache {
578
622
  getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
579
623
  }
580
624
  //#endregion
625
+ //#region src/remote/hazelcast/index.d.ts
626
+ interface HazelcastCacheOptions extends BaseCacheOptions {
627
+ /**
628
+ * Hazelcast map instance.
629
+ *
630
+ * Obtain it through a Hazelcast client:
631
+ *
632
+ * ```ts
633
+ * import { Client } from 'hazelcast-client';
634
+ *
635
+ * const client = await Client.newHazelcastClient();
636
+ * const map = await client.getMap('my-cache');
637
+ *
638
+ * const cache = new HazelcastCache({ map });
639
+ * ```
640
+ */
641
+ map: IMap<string, any>;
642
+ }
643
+ /**
644
+ * A Hazelcast cache implementation using an IMap
645
+ */
646
+ declare class HazelcastCache extends BaseCache {
647
+ protected readonly map: IMap<string, any>;
648
+ constructor(options: HazelcastCacheOptions);
649
+ get<T>(key: string): Promise<T | null>;
650
+ set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
651
+ delete(key: string): Promise<void>;
652
+ getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
653
+ }
654
+ //#endregion
581
655
  //#region src/remote/keyv/index.d.ts
582
656
  interface KeyvCacheOptions extends BaseCacheOptions {
583
657
  /**
@@ -687,6 +761,85 @@ declare class CoalescingCache implements ICache {
687
761
  deleteMany(keys: string[]): Promise<void>;
688
762
  }
689
763
  //#endregion
764
+ //#region src/layers/fail-safe/index.d.ts
765
+ interface FailSafeCacheOptions extends BaseCacheOptions {
766
+ /**
767
+ * The underlying cache
768
+ */
769
+ cache: ICache;
770
+ /**
771
+ * The error policy
772
+ */
773
+ policy?: ErrorPolicy;
774
+ /**
775
+ * A callback that is called when an error occurs.
776
+ * This is useful for logging or metrics.
777
+ *
778
+ * @param operation In which operation call the error occurred
779
+ * @param error The error that occurred
780
+ */
781
+ onError?: (operation: ErrorPolicyOperation, error: unknown) => void;
782
+ }
783
+ type ErrorPolicyOperation = 'get' | 'set' | 'delete' | 'getOrLoad';
784
+ interface ErrorPolicy {
785
+ /**
786
+ * Policy for when the {@link ICache#get} and {@link ICache#getMany} throw errors
787
+ *
788
+ * - 'fail-open': return null on error
789
+ * - 'fail-closed': throw on error
790
+ *
791
+ * @defaultValue 'fail-open'
792
+ */
793
+ get?: 'fail-open' | 'fail-closed';
794
+ /**
795
+ * Policy for when the {@link ICache#set} and {@link ICache#setMany} throws errors
796
+ *
797
+ * - 'fail-open': does nothing on error
798
+ * - 'fail-closed': throw on error
799
+ *
800
+ * @defaultValue 'fail-open'
801
+ */
802
+ set?: 'fail-open' | 'fail-closed';
803
+ /**
804
+ * Policy for when the {@link ICache#delete} and {@link ICache#deleteMany} throws errors
805
+ *
806
+ * - 'fail-open': does nothing on error
807
+ * - 'fail-closed': throw on error
808
+ *
809
+ * @defaultValue 'fail-closed'
810
+ */
811
+ delete?: 'fail-open' | 'fail-closed';
812
+ /**
813
+ * Policy for when the {@link ICache#getOrLoad} throws errors.
814
+ * This does not include errors from the `load` function, only the cache operations.
815
+ *
816
+ * - 'fail-open': loads from origin on error
817
+ * - 'fail-closed': throw on error
818
+ *
819
+ * @defaultValue 'fail-open'
820
+ */
821
+ getOrLoad?: 'fail-open' | 'fail-closed';
822
+ }
823
+ /**
824
+ * Handles errors from an underlying cache according to a specified policy.
825
+ *
826
+ * @see https://read.thecoder.cafe/p/fail-open-fail-closed
827
+ */
828
+ declare class FailSafeCache implements ICache {
829
+ protected readonly cache: ICache;
830
+ protected readonly policy: ErrorPolicy;
831
+ protected readonly onError?: (operation: ErrorPolicyOperation, error: unknown) => void;
832
+ constructor(options: FailSafeCacheOptions);
833
+ get<T>(key: string): Promise<T | null>;
834
+ getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
835
+ set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
836
+ setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;
837
+ delete(key: string): Promise<void>;
838
+ deleteMany(keys: string[]): Promise<void>;
839
+ getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;
840
+ protected handleError<T>(operation: ErrorPolicyOperation, error: unknown, failOpenValue: T): Promise<T>;
841
+ }
842
+ //#endregion
690
843
  //#region src/layers/jittering/index.d.ts
691
844
  interface JitteringCacheOptions {
692
845
  /**
@@ -908,5 +1061,5 @@ declare class MetricsCollectingCache implements ICache {
908
1061
  resetMetrics(): void;
909
1062
  }
910
1063
  //#endregion
911
- export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, ExistingLRUCacheOptions, ExistingTTLCacheOptions, ICache, IORedisCache, IORedisCacheOptions, JitteringCache, JitteringCacheOptions, KeyTransformingCache, KeyTransformingCacheOptions, KeyvCache, KeyvCacheOptions, LocalCacheInternal, LocalLRUCache, LocalLRUCacheOptions, LocalMapCache, LocalMapCacheOptions, LocalTTLCache, LocalTTLCacheOptions, Logger, MapLike, MemJSCache, MemJSCacheOptions, MemcacheCache, MemcacheCacheOptions, MetricsCollectingCache, MetricsCollectingCacheOptions, NoOpCache, RedisCache, RedisCacheOptions, SWRCache, SWRCacheOptions, SetCacheOptions, TieredCache, TieredCacheOptions, ValkeyGlideCache, ValkeyGlideCacheOptions, WeakCache, WeakCacheOptions, WorkersKVCache, WorkersKVCacheOptions };
1064
+ export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, DeepCloningCache, DeepCloningCacheOptions, ErrorPolicy, ExistingLRUCacheOptions, ExistingTTLCacheOptions, FailSafeCache, FailSafeCacheOptions, HazelcastCache, HazelcastCacheOptions, ICache, IORedisCache, IORedisCacheOptions, JitteringCache, JitteringCacheOptions, KeyTransformingCache, KeyTransformingCacheOptions, KeyvCache, KeyvCacheOptions, LocalCacheInternal, LocalLRUCache, LocalLRUCacheOptions, LocalMapCache, LocalMapCacheOptions, LocalTTLCache, LocalTTLCacheOptions, Logger, MapLike, MemJSCache, MemJSCacheOptions, MemcacheCache, MemcacheCacheOptions, MetricsCollectingCache, MetricsCollectingCacheOptions, NoOpCache, RedisCache, RedisCacheOptions, SWRCache, SWRCacheOptions, SetCacheOptions, TieredCache, TieredCacheOptions, ValkeyGlideCache, ValkeyGlideCacheOptions, WeakCache, WeakCacheOptions, WorkersKVCache, WorkersKVCacheOptions };
912
1065
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":["Logger","Logger","SetCacheOptions","BaseCacheOptions","ICache","T","Promise","Record"],"sources":["../src/types/logger.d.ts","../src/types/cache.d.ts","../src/base/index.ts","../src/base/local.ts","../src/local/lru/index.ts","../src/local/ttl/index.ts","../src/local/map/index.ts","../src/local/weak/index.ts","../src/local/noop/index.ts","../src/remote/ioredis/index.ts","../src/remote/redis/index.ts","../src/remote/valkey-glide/index.ts","../src/remote/memcache/index.ts","../src/remote/memjs/index.ts","../src/remote/workers-kv/index.ts","../src/remote/keyv/index.ts","../src/layers/async-lazy/index.ts","../src/layers/coalescing/index.ts","../src/layers/jittering/index.ts","../src/layers/key-transforming/index.ts","../src/layers/swr/index.ts","../src/layers/tiered/index.ts","../src/layers/metrics/index.ts"],"sourcesContent":["\r\nexport interface Logger {\r\n /**\r\n * Sends a debug log\r\n * @param name The cache name\r\n * @param message The log message\r\n */\r\n debug: (name?: string, ...message: any[]) => void;\r\n}\r\n","import type { Logger } from './logger.js';\r\n\r\nexport interface SetCacheOptions {\r\n /**\r\n * Time to Live in seconds\r\n */\r\n ttl?: number;\r\n}\r\n\r\nexport interface BaseCacheOptions {\r\n /**\r\n * The name of this strategy. Used for logging\r\n */\r\n name?: string;\r\n\r\n /**\r\n * A logger that is useful for debugging the cache chain\r\n */\r\n logger?: Logger;\r\n}\r\n\r\nexport interface ICache {\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * Returns `null` when the resource is not found.\r\n *\r\n * @param key The cache key\r\n */\r\n get<T>(key: string): Promise<T | null>;\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.\r\n *\r\n * @param key The cache key\r\n * @param load The function which should fetch the fresh data from origin\r\n * @param options The options used to save the cache\r\n */\r\n getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;\r\n\r\n /**\r\n * Writes a resource into cache.\r\n *\r\n * The value **must** be JSON stringifiable.\r\n *\r\n * @param key The cache key\r\n * @param value The resource value\r\n * @param options The options to save the cache\r\n */\r\n set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes a cached resource by a key.\r\n *\r\n * @param key The cache key to delete\r\n */\r\n delete(key: string): Promise<void>;\r\n\r\n /**\r\n * Reads cached resources in batch.\r\n *\r\n * @param keys The list of cache keys.\r\n */\r\n getMany<T>(keys: string[]): Promise<Record<string, T | null>>;\r\n\r\n /**\r\n * Writes cache resources in batch.\r\n *\r\n * The values **must** be JSON stringifiable.\r\n *\r\n * @param data The cache keys and values\r\n * @param options The options to save the cache\r\n */\r\n setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes cached resources by their keys in batch.\r\n *\r\n * @param keys The list of keys to delete\r\n */\r\n deleteMany(keys: string[]): Promise<void>;\r\n\r\n}\r\n"],"mappings":";;;;;;;;;;;;UACiBA,MAAAA;;;;;;;;;;UCCAE,eAAAA;;;;;;UAOAC,gBAAAA;;;ADRjB;;;;ACCA;AAOA;EAYA,MAAiBC,CAAAA,EAHNH,MAGY;;AAkByBI,UAlB/BD,MAAAA,CAkB+BC;EAAcH;;;;;;EAkBvCI,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EA5BAA,OA4BAA,CA5BQD,CA4BRC,GAAAA,IAAAA,CAAAA;;EAOeC;;;;;;;;wCAzBED,QAAQD,cAAcH,kBAAkBI,QAAQD;;;AC9BxF;;;;;;;;EAagC,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,ED4BHA,CC5BG,EAAA,OAAA,CAAA,ED4BUH,eC5BV,CAAA,ED4B4BI,OC5B5B,CAAA,IAAA,CAAA;;EAEc;;;;;EAkBF,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EDerBA,OCfqB,CAAA,IAAA,CAAA;;EAUJ;;;;;EA3CG,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EDuDbA,OCvDa,CDuDLC,MCvDK,CAAA,MAAA,EDuDUF,CCvDV,GAAA,IAAA,CAAA,CAAA;;;;;ACRJ;AAQvC;;;;EAI8C,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EF6D3BE,ME7D2B,CAAA,MAAA,EF6DZF,CE7DY,CAAA,EAAA,OAAA,CAAA,EF6DEH,eE7DF,CAAA,EF6DoBI,OE7DpB,CAAA,IAAA,CAAA;;EACX;;;;;EAKnC,UAAsB,CAAA,IAAA,EAAA,MAAe,EAAA,CAAA,EF8DPA,OE9DO,CAAA,IAAA,CAAA;;;;;;;;;;uBDVf,SAAA,YAAqB;;8BAEb;iCAEG;EFZhBN,SAAM,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EEiBS,OFjBT,CEiBiB,CFjBjB,GAAA,IAAA,CAAA;sCEmBe,aAAa,kBAAkB;gCAErC;wCAEc,QAAQ,cAAc,kBAAkB,QAAQ;EDtB7EE,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAe,EAAA,CAAA,ECwCI,ODxCJ,CCwCY,MDxCZ,CAAA,MAAA,ECwC2B,CDxC3B,GAAA,IAAA,CAAA,CAAA;EAOfC,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EC2CQ,MD3CQ,CAAA,MAStBF,ECkC6B,CDlC7BA,CAAAA,EAAAA,OAAM,CAAA,ECkCqC,eDlCrC,CAAA,ECkCuD,ODlCvD,CAAA,IAAA,CAAA;EAGAG,UAAM,CAAA,IAAAC,EAAAA,MAAA,EAAA,CAAA,ECyCa,ODzCb,CAAA,IAAA,CAAA;;;;KElBlB,0DAA0D;;;;;UAM9C,kBAAA;wBACO;8BACM,aAAa;;+BAEZ,eAAe;EHZ7BL,QAAAA,CAAM,CAAA,CAAA,CAAA,IAAA,EGaH,MHbG,CAAA,MAAA,EGaY,CHbZ,CAAA,EAAA,OAAA,CAAA,EGa0B,eHb1B,CAAA,EAAA,IAAA;;gCGeS;;AFdfE,uBEiBK,cAAA,SAAuB,SAAA,CFjBb;EAOfC,UAAAA,gBAAgB,EEWH,yBFFb,EAAA;EAGAC;;;EAkB+BC,mBAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EEdL,CFcKA,GAAAA,IAAAA;EAARC;;;EAAwCA,mBAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EET/B,CFS+BA,EAAAA,OAAAA,CAAAA,EETlB,eFSkBA,CAAAA,EAAAA,IAAAA;EAWnDD;;;EAONC,mBAAAA,OAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,IAAAA;EAO8BD;;;EAUnBA,UAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EElCO,MFkCPA,CAAAA,MAAAA,EElCsB,CFkCtBA,GAAAA,IAAAA,CAAAA;EAAfE;;;EAOWD,UAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EEhCA,MFgCAA,CAAAA,MAAAA,EEhCe,CFgCfA,CAAAA,EAAAA,OAAAA,CAAAA,EEhC6B,eFgC7BA,CAAAA,EAAAA,IAAAA;EAAO;;;;ECxEf;;;;;EAWgB,UAAA,mBAAA,CAAA,QAAA,ECiDI,yBDjDJ,CAAA,EAAA,IAAA;EAAa;;;;EAIL,IAAA,QAAA,CAAA,CAAA,ECqD5B,kBDrD4B;EAAsB;EAA0B,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EC0DvE,OD1DuE,CC0D/D,CD1D+D,GAAA,IAAA,CAAA;EAAR;EAkB3B,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EC6C9B,CD7C8B,EAAA,OAAA,CAAA,EC6CjB,eD7CiB,CAAA,EC6CC,OD7CD,CAAA,IAAA,CAAA;EAAf;EAAR,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,ECmDb,ODnDa,CAAA,IAAA,CAAA;EAUI;EAAf,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EC+Cc,OD/Cd,CC+CsB,MD/CtB,CAAA,MAAA,EC+CqC,CD/CrC,GAAA,IAAA,CAAA,CAAA;EAA6B;EAAkB,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,ECoD5C,MDpD4C,CAAA,MAAA,ECoD7B,CDpD6B,CAAA,EAAA,OAAA,CAAA,ECoDf,eDpDe,CAAA,ECoDG,ODpDH,CAAA,IAAA,CAAA;EAUpC;EArDO,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ECqGJ,ODrGI,CAAA,IAAA,CAAA;EAAM,UAAA,SAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,EAAA,MAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;UELhC,uBAAA,SAAgC;;;;SAIxC,4BAA4B;;;;;AJPrC;;;;ACCA;AAOA;EAYiBF,cAAMC,CAAAA,EAAAA,OAAA;;AAQAC,UGNN,oBAAA,SAA6B,gBHMvBA,CAAAA;EAUyBD;;;EAAwCA,GAAAA,CAAAA,EAAAA,MAAAA;EAARC;;;EAWpBA,GAAAA,CAAAA,EAAAA,MAAAA;;;;;;;;;AA+B9BA,cGvCjB,aAAA,SAAsB,cAAA,CHuCLA;EAAO,mBAAA,KAAA,EGtCT,QHsCS,CAAA,MAAA,EAAA,GAAA,EAAA,GAAA,GGtCmB,OHsCnB,CAAA,GAAA,CAAA,CAAA;;wBGnCd,uBAAuB;wCA6CG,QAAQ,cAAc,kBAAkB,QAAQ;AFlFjG;;;UGLiB,uBAAA,SAAgC;;;;SAIxC;;UAGQ,oBAAA,SAA6B;;;ALV9C;;;;ACCA;EAOiBH,GAAAA,CAAAA,EAAAA,MAAAA;AAYjB;;;;;;AAkBwFE,cIX3E,aAAA,SAAsB,cAAA,CJWqDA;EAARC,mBAAAA,KAAAA,EIVpD,QJUoDA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA;EAWnDD,WAAAA,CAAAA,OAAAA,CAAAA,EInBN,oBJmBMA,GInBiB,uBJmBjBA;;;;UK/CZ,oBAAA,SAA6B;;;;UAIpC;;;;;;ANNV;UMeiB;WACN,IAAI;WACJ,UAAU;ELhBJH,MAAAA,CAAAA,GAAAA,EKiBH,CLjBGA,CAAAA,EAAAA,IAAe;EAOfC,GAAAA,CAAAA,GAAAA,EKWN,CLXMA,CAAAA,EAAAA,OAAgB;EAYhBC,IAAAA,EAAAA,EKAP,gBLAa,CKAI,CLAJ,CAAA;EAQQC,IAAAA,EAAAA,MAAAA;EAARC,KAAAA,EAAAA,EAAAA,IAAAA;;;;;;;;;;AAmC8BD,cK9BxC,aAAA,SAAsB,cAAA,CL8BkBA;EAAfE,mBAAAA,KAAAA,EK7BV,OL6BUA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA;EAARD,UAAAA,GAAAA,EAAAA,MAAAA;EAUID,WAAAA,CAAAA,OAAAA,CAAAA,EKpCX,oBLoCWA;EAAfE,OAAAA,CAAAA,IAAAA,EKEY,MLFZA,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EKE2C,eLF3CA,CAAAA,EKE6D,OLF7DA,CAAAA,IAAAA,CAAAA;EAA6BL,KAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAkBI,UAAAA,SAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAAAA,IAAAA;EAOpCA,UAAAA,KAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAAAA,IAAAA;;;;UM9Eb,gBAAA,SAAyB;;;;SAIjC;;KAGJ,SAAA;KAAiB;;;EPTLN,CAAAA,EAAAA,GAAAA;;;;ACCjB;AAOA;AAYA;;;;;;;AAkBgFM,cMjBnE,SAAA,SAAkB,cAAA,CNiBiDA;EAWnDD,mBAAAA,KAAAA,EM3BD,cN2BCA;EAAaH,mBAAAA,aAAAA,EM1BN,kBN0BMA;EAAkBI,mBAAAA,QAAAA,EMzB7B,oBNyB6BA,CAAAA,MAAAA,CAAAA;EAOrCA,WAAAA,CAAAA,OAAAA,EM9BA,gBN8BAA;EAO8BD,UAAAA,gBAAAA,EAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,GAAAA,IAAAA;EAAfE,UAAAA,cAAAA,EAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,MAAAA,EAAAA,GAAAA,IAAAA;EAARD,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,IAAAA,EAAAA,GAAAA,GMyByB,ONzBzBA,CMyBiC,CNzBjCA,CAAAA,EAAAA,OAAAA,CAAAA,EMyB+C,eNzB/CA,CAAAA,EMyBiE,ONzBjEA,CMyByE,CNzBzEA,CAAAA;EAUID;;;;;;;sDM4BoB;;AL7FtD;;;;;EAWsC,UAAA,MAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EKoGV,SLpGU,GAAA,IAAA,CAAA,EKoGS,CLpGT,GAAA,IAAA;EAAa;;;;;EAIiB,UAAA,UAAA,CAAA,KAAA,EKiHtC,SLjHsC,GAAA,IAAA,CAAA,EAAA,IAAA;EAA0B;;;;;EA4BtD,UAAA,eAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;;;;;;;;;;cMzC3B,SAAA,YAAqB;;ERVjBL,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAM,EAAA,MAAA,CAAA,EQaM,ORbN,CQac,CRbd,GAAA,IAAA,CAAA;8BQiBa,QAAQ,eAAe;wCAInB,QAAQ,cAAc,kBAAkB,QAAQ;6BAIrD,aAAa,kBAAkB;EPxBjDE,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EOyBQ,MPzBO,CAAA,MAAA,EOyBQ,CPzBR,CAAA,EAAA,OAAA,CAAA,EOyBsB,ePzBtB,CAAA,EOyBwC,OPzBxC,CAAA,IAAA,CAAA;EAOfC,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAgB,EOoBJ,OPpBI,CAAA,IAStBF,CAAAA;EAGMG,UAAM,CAAA,IAAAC,EAAAA,MAAA,EAAA,CAAA,EOSa,OPTb,CAAA,IAAA,CAAA;;;;UQhBN,mBAAA,SAA4B;;;;UAInC,QAAQ;;;;ETRDL,UAAM,CAAA,EAAA,MAAA;;;;ACCvB;AAOA;AAYA;;;;;EAkB8DE,iBAAAA,CAAAA,EAAAA,OAAAA;EAA0BG;;;;;;;;;;EAmCrEE,iBAAAA,CAAAA,EAAAA,OAAAA;;;;;cQ9BN,YAAA,SAAqB,SAAA;6BACL,QAAQ;;EPpCf,UAAA,iBAAU,EAAA,OAAA;EAEF,UAAA,iBAAA,EAAA,OAAA;EAEG,WAAA,CAAA,OAAA,EOqCV,mBPrCU;EAKO,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EOwCX,OPxCW,COwCH,CPxCG,GAAA,IAAA,CAAA;EAAR,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EOgDG,CPhDH,EAAA,OAAA,CAAA,EOgDgB,ePhDhB,CAAA,EOgDkC,OPhDlC,CAAA,IAAA,CAAA;EAEM,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EO2DT,OP3DS,CAAA,IAAA,CAAA;EAAa,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EOuEN,OPvEM,COuEE,MPvEF,CAAA,MAAA,EOuEiB,CPvEjB,GAAA,IAAA,CAAA,CAAA;EAAkB,OAAA,CAAA,IAAA,EOuFtC,MPvFsC,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,OAAA,CAAA,EOuFP,ePvFO,CAAA,EOuFW,OPvFX,CAAA,IAAA,CAAA;EAErC,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EOuGa,OPvGb,CAAA,IAAA,CAAA;;;;KQlB3B,OAAA,GAAQ,kBAAkB,sBAAsB,mBAAmB;UAEvD,iBAAA,SAA0B;;;;UAIjC,kBAAkB,sBAAsB,mBAAmB;;;;EVTpDP,UAAM,CAAA,EAAA,MAAA;;;;ACCvB;AAOA;AAYA;;;;;EAkB8DE,iBAAAA,CAAAA,EAAAA,OAAAA;EAA0BG;;;;;;;;;;;EAmCxCH,iBAAAA,CAAAA,EAAAA,OAAAA;;;;;cS5BnC,UAAA,SAAmB,SAAA;6BACH;ERtCP,UAAA,UAAU,CAAA,EAAA,MAAA;EAEF,UAAA,iBAAA,EAAA,OAAA;EAEG,UAAA,iBAAA,EAAA,OAAA;EAKO,WAAA,CAAA,OAAA,EQkCjB,iBRlCiB;EAAR,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EQ0CH,OR1CG,CQ0CK,CR1CL,GAAA,IAAA,CAAA;EAEM,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EQgDH,CRhDG,EAAA,OAAA,CAAA,EQgDU,eRhDV,CAAA,EQgD4B,ORhD5B,CAAA,IAAA,CAAA;EAAa,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EQ4DtB,OR5DsB,CAAA,IAAA,CAAA;EAAkB,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EQwExB,ORxEwB,CQwEhB,MRxEgB,CAAA,MAAA,EQwED,CRxEC,GAAA,IAAA,CAAA,CAAA;EAErC,OAAA,CAAA,IAAA,EQsFD,MRtFC,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,OAAA,CAAA,EQsF8B,eRtF9B,CAAA,EQsFgD,ORtFhD,CAAA,IAAA,CAAA;EAEsB,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EQwGT,ORxGS,CAAA,IAAA,CAAA;;;;USpBrC,uBAAA,SAAgC;;;;UAIvC,cAAc,qBAAqB;;;;;AXP7C;;;;ACCiBA,cUiBJ,gBAAA,SAAyB,SAAA,CVjBN;EAOfC,mBAAgB,MAAA,EUWJ,UVFZ;EAGAC,UAAM,UAAA,CAAA,EAAA,MAAA;EAQQC,WAAAA,CAAAA,OAAAA,EUNR,uBVMQA;EAARC,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EUAM,OVANA,CUAc,CVAdA,GAAAA,IAAAA,CAAAA;EAUyBD,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EUFb,CVEaA,EAAAA,OAAAA,CAAAA,EUFA,eVEAA,CAAAA,EUFkB,OVElBA,CAAAA,IAAAA,CAAAA;EAARC,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EUUX,OVVWA,CAAAA,IAAAA,CAAAA;EAAsBJ,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EUgBjB,OVhBiBA,CUgBT,MVhBSA,CAAAA,MAAAA,EUgBM,CVhBNA,GAAAA,IAAAA,CAAAA,CAAAA;EAA0BG,UAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EUgC3C,OVhC2CA,CAAAA,IAAAA,CAAAA;;;;UWnCvE,oBAAA,SAA6B;;;;UAIpC;;;;;AZPV;;;;ACCiBH,cWiBJ,aAAA,SAAsB,SAAA,CXjBH;EAOfC,mBAAgB,MAAA,EWWJ,QXFlBF;EAGMG,UAAM,UAAA,CAAA,EAAA,MAAA;EAQQC,WAAAA,CAAAA,OAAAA,EWNR,oBXMQA;EAARC,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EWAM,OXANA,CWAc,CXAdA,GAAAA,IAAAA,CAAAA;EAUyBD,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EWFb,CXEaA,EAAAA,OAAAA,CAAAA,EWFA,eXEAA,CAAAA,EWFkB,OXElBA,CAAAA,IAAAA,CAAAA;EAARC,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EWQX,OXRWA,CAAAA,IAAAA,CAAAA;EAAsBJ,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EWcjB,OXdiBA,CWcT,MXdSA,CAAAA,MAAAA,EWcM,CXdNA,GAAAA,IAAAA,CAAAA,CAAAA;;;;UYnC7C,iBAAA,SAA0B;;;;UAIjC;;;;;AbPV;;;;ACCiBA,cYiBJ,UAAA,SAAmB,SAAA,CZjBA;EAOfC,mBAAgB,MAAA,EYWJ,MZFlBF;EAGMG,UAAM,UAAA,CAAA,EAAA,MAAA;EAQQC,WAAAA,CAAAA,OAAAA,EYNR,iBZMQA;EAARC,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EYAM,OZANA,CYAc,CZAdA,GAAAA,IAAAA,CAAAA;EAUyBD,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EYFb,CZEaA,EAAAA,OAAAA,CAAAA,EYFA,eZEAA,CAAAA,EYFkB,OZElBA,CAAAA,IAAAA,CAAAA;EAARC,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EYUX,OZVWA,CAAAA,IAAAA,CAAAA;;;;UanCvB,qBAAA,SAA8B;;;;MAIzC;;;;;AdPN;;;;ACCA;AAOA;AAYA;;AAQuBA,caNV,cAAA,SAAuB,SAAA,CbMbA;EAUyBD,mBAAAA,EAAAA,EafvB,WbeuBA;EAARC,UAAAA,YAAAA,CAAAA,EAAAA,MAAAA;EAAsBJ,WAAAA,CAAAA,OAAAA,EaZvC,qBbYuCA;EAA0BG,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EaNjE,ObMiEA,CaNzD,CbMyDA,GAAAA,IAAAA,CAAAA;EAARC,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EaFnD,CbEmDA,EAAAA,OAAAA,CAAAA,EaFvC,ebEuCA,CAAAA,EaFhB,ObEgBA,CAAAA,IAAAA,CAAAA;EAWnDD,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EaTN,ObSMA,CAAAA,IAAAA,CAAAA;EAAaH,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EaLG,ObKHA,CaLW,MbKXA,CAAAA,MAAAA,EaL0B,CbK1BA,GAAAA,IAAAA,CAAAA,CAAAA;;;;Uc9CzB,gBAAA,SAAyB;;;;QAIlC;;cAGK,SAAA,SAAkB,SAAA;2BACJ;uBAEJ;EfbNF,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAM,EAAA,MAAA,CAAA,EekBM,OflBN,CekBc,CflBd,GAAA,IAAA,CAAA;6BewBY,aAAa,kBAAkB;uBAIrC;8BAIgB,QAAQ,eAAe;Ed/BnDE,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,Ec0CiB,Md1CF,CAAA,MAAA,Ec0CiB,Cd1CjB,CAAA,EAAA,OAAA,CAAA,Ec0C+B,ed1C/B,CAAA,Ec0CiD,Od1CjD,CAAA,IAAA,CAAA;EAOfC,UAAAA,CAAAA,IAAAA,EAAAA,MAAgB,EAAA,CAAA,Ec+CY,OdtClCF,CAAAA,IAAM,CAAA;AAGjB;;;UenBiB,qBAAA;;;;iBAIA,QAAQ,UAAU;;;;;;;AhBLnC;;;;ACCA;AAOA;AAYA;;;;;;;;;;;;;;;;;;;;;;cesBa,cAAA,YAA0B;oCACH,QAAQ,UAAU;EdnChC,UAAA,KAAU,EcoCb,OdpCa,CcoCL,MdpCK,CAAA,GAAA,IAAA;EAEF,WAAA,CAAA,OAAA,EcoCP,qBdpCO;EAEG,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,Ec0CJ,Od1CI,Cc0CI,Cd1CJ,GAAA,IAAA,CAAA;EAKO,SAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,GcyCM,OdzCN,CcyCc,CdzCd,CAAA,EAAA,OAAA,CAAA,EcyC4B,edzC5B,CAAA,EcyC8C,OdzC9C,CcyCsD,CdzCtD,CAAA;EAAR,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,Ec6CG,Cd7CH,EAAA,OAAA,CAAA,Ec6CgB,ed7ChB,CAAA,Ec6CkC,Od7ClC,CAAA,IAAA,CAAA;EAEM,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,Ec+CT,Od/CS,CAAA,IAAA,CAAA;EAAa,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EcmDf,OdnDe,CcmDP,MdnDO,CAAA,MAAA,EcmDQ,CdnDR,GAAA,IAAA,CAAA,CAAA;EAAkB,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EcuD5C,MdvD4C,CAAA,MAAA,EcuD7B,CdvD6B,CAAA,EAAA,OAAA,CAAA,EcuDf,edvDe,CAAA,EcuDG,OdvDH,CAAA,IAAA,CAAA;EAErC,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EcyDI,OdzDJ,CAAA,IAAA,CAAA;EAEsB;;;EAAwC,YAAA,CAAA,CAAA,Ec8DrE,Od9DqE,Cc8D7D,Md9D6D,CAAA;;;;;;;UelB7E,sBAAA,SAA+B;;;;SAIvC;;UAGC,cAAA;EjBZOD,OAAAA,EiBaN,OjBbY,CAAA,GAAA,GAAA,IAAA,CAAA;;;;ACCvB;AAOA;AAYA;;AAQuBM,cgBNV,eAAA,YAA2B,MhBMjBA,CAAAA;EAUyBD,mBAAAA,eAAAA,EgBfV,GhBeUA,CAAAA,MAAAA,EgBfE,chBeFA,CAAAA;EAARC,mBAAAA,KAAAA,EgBdZ,MhBcYA;EAAsBJ,mBAAAA,IAAAA,CAAAA,EAAAA,MAAAA;EAA0BG,mBAAAA,MAAAA,CAAAA,EgBZ1D,MhBY0DA;EAARC,WAAAA,CAAAA,OAAAA,EgBVzD,sBhBUyDA;EAWnDD,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EgBfN,OhBeMA,CgBfE,ChBeFA,GAAAA,IAAAA,CAAAA;EAAaH,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,IAAAA,EAAAA,GAAAA,GgBGI,OhBHJA,CgBGY,ChBHZA,CAAAA,EAAAA,OAAAA,CAAAA,EgBG0B,ehBH1BA,CAAAA,EgBG4C,OhBH5CA,CgBGoD,ChBHpDA,CAAAA;EAAkBI,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EgBiD/B,ChBjD+BA,EAAAA,OAAAA,CAAAA,EgBiDlB,ehBjDkBA,CAAAA,EgBiDA,OhBjDAA,CAAAA,IAAAA,CAAAA;EAOrCA,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EgBuDM,OhBvDNA,CAAAA,IAAAA,CAAAA;EAO8BD,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EgB+DjB,OhB/DiBA,CgB+DT,MhB/DSA,CAAAA,MAAAA,EgB+DM,ChB/DNA,GAAAA,IAAAA,CAAAA,CAAAA;EAAfE,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EgBuGnB,MhBvGmBA,CAAAA,MAAAA,EgBuGJ,ChBvGIA,CAAAA,EAAAA,OAAAA,CAAAA,EgBuGU,ehBvGVA,CAAAA,EgBuG4B,OhBvG5BA,CAAAA,IAAAA,CAAAA;EAARD,UAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EgBsHM,OhBtHNA,CAAAA,IAAAA,CAAAA;;;;UiB9Db,qBAAA;;;;SAIR;;;;;;;AlBLT;;;;ACCA;AAOA;AAYA;;AAQuBA,ciBLV,cAAA,YAA0B,MjBKhBA,CAAAA;EAUyBD,mBAAAA,KAAAA,EiBdpB,MjBcoBA;EAARC,UAAAA,UAAAA,EAAAA,MAAAA;EAAsBJ,UAAAA,YAAAA,EAAAA,MAAAA;EAA0BG,WAAAA,CAAAA,OAAAA,EiBVjE,qBjBUiEA;EAARC,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EiBJzD,OjBIyDA,CiBJjD,CjBIiDA,GAAAA,IAAAA,CAAAA;EAWnDD,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,IAAAA,EAAAA,GAAAA,GiBXW,OjBWXA,CiBXmB,CjBWnBA,CAAAA,EAAAA,OAAAA,CAAAA,EiBXgC,ejBWhCA,CAAAA,EiBXuD,OjBWvDA,CiBX+D,CjBW/DA,CAAAA;EAAaH,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EiBPb,CjBOaA,EAAAA,OAAAA,CAAAA,EiBPA,ejBOAA,CAAAA,EiBPkB,OjBOlBA,CAAAA,IAAAA,CAAAA;EAAkBI,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EiBHrC,OjBGqCA,CAAAA,IAAAA,CAAAA;EAOrCA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EiBNO,OjBMPA,CiBNe,MjBMfA,CAAAA,MAAAA,EiBN8B,CjBM9BA,GAAAA,IAAAA,CAAAA,CAAAA;EAO8BD,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EiBTlC,MjBSkCA,CAAAA,MAAAA,EiBTnB,CjBSmBA,CAAAA,EAAAA,OAAAA,CAAAA,EiBTL,ejBSKA,CAAAA,EiBTa,OjBSbA,CAAAA,IAAAA,CAAAA;EAAfE,UAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EiBLR,OjBKQA,CAAAA,IAAAA,CAAAA;EAARD,UAAAA,SAAAA,CAAAA,OAAAA,CAAAA,EiBDC,ejBCDA,CAAAA,EiBDwB,ejBCxBA;;;;UkB9DpB,+BAAA;;;;SAID;;UAGC,4BAAA,SAAqC;;;;;AnBR/C;;;;ACCA;AAOA,UkBWU,oBAAA,SAA6B,+BlBFtB,CAAA;EAGAF;;;EAkB+BC,MAAAA,CAAAA,EAAAA,MAAAA;EAARC;;;EAAwCA,MAAAA,CAAAA,EAAAA,MAAAA;;AAWtCJ,KkBlB9B,2BAAA,GAA8B,oBlBkBAA,GkBlBuB,4BlBkBvBA;;;;;;;;;AAwBwBI,ckBhCrD,oBAAA,YAAgC,MlBgCqBA,CAAAA;EAOpCA,mBAAAA,KAAAA,EkBtCF,MlBsCEA;EAAO,UAAA,SAAA,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAAA,MAAA;uBkBnCd;uBAYA,QAAQ;wCAIS,QAAQ,cAAc,kBAAkB,QAAQ;EjBrDlE,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAU,MAAA,EAAA,KAAA,EiByDH,CjBzDG,EAAA,OAAA,CAAA,EiByDU,ejBzDV,CAAA,EiByD4B,OjBzD5B,CAAA,IAAA,CAAA;EAEF,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EiB2DP,OjB3DO,CAAA,IAAA,CAAA;EAEG,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EiB6DG,OjB7DH,CiB6DW,MjB7DX,CAAA,MAAA,EiB6D0B,CjB7D1B,GAAA,IAAA,CAAA,CAAA;EAKO,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EiBoErB,MjBpEqB,CAAA,MAAA,EiBoEN,CjBpEM,CAAA,EAAA,OAAA,CAAA,EiBoEQ,ejBpER,CAAA,EiBoE0B,OjBpE1B,CAAA,IAAA,CAAA;EAAR,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EiB6EF,OjB7EE,CAAA,IAAA,CAAA;;;;;;;UkBZf,eAAA,SAAwB;;;;SAIhC;;;ApBTT;;;;ACCA;EAOiBH,QAAAA,EAAAA,MAAAA;AAYjB;;;;;;;;AA6B6BE,cmBfhB,QAAA,YAAoB,MnBeJA,CAAAA;EAAaH,mBAAAA,YAAAA,EmBdP,GnBcOA,CAAAA,MAAAA,EmBdK,OnBcLA,CAAAA,GAAAA,CAAAA,CAAAA;EAAkBI,mBAAAA,KAAAA,EmBbhC,MnBagCA;EAOrCA,mBAAAA,IAAAA,CAAAA,EAAAA,MAAAA;EAO8BD,mBAAAA,MAAAA,CAAAA,EmBzBvB,MnByBuBA;EAAfE,UAAAA,UAAAA,EAAAA,MAAAA;EAARD,UAAAA,QAAAA,EAAAA,MAAAA;EAUID,WAAAA,CAAAA,OAAAA,EmB/BX,enB+BWA;EAAfE,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EmBvBU,OnBuBVA,CmBvBkB,CnBuBlBA,GAAAA,IAAAA,CAAAA;EAA6BL,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,IAAAA,EAAAA,GAAAA,GmBfF,OnBeEA,CmBfM,CnBeNA,CAAAA,EAAAA,OAAAA,CAAAA,EmBfmB,enBenBA,CAAAA,EmBf0C,OnBe1CA,CmBfkD,CnBelDA,CAAAA;EAAkBI,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EmBerC,CnBfqCA,EAAAA,OAAAA,CAAAA,EmBezB,enBfyBA,CAAAA,EmBeF,OnBfEA,CAAAA,IAAAA,CAAAA;EAOpCA,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EmBwBP,OnBxBOA,CAAAA,IAAAA,CAAAA;EAAO,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EmB8BD,OnB9BC,CmB8BO,MnB9BP,CAAA,MAAA,EmB8BsB,CnB9BtB,GAAA,IAAA,CAAA,CAAA;mBmB2ClB,eAAe,cAAa,kBAAuB;8BAmBxC;;;;UC5Ib,kBAAA,SAA2B;;;;;;SAMnC;;UAGQ,SAAA;;ArBXjB;;SqBeS;;ApBdT;AAOA;EAYiBF,OAAAA,CAAAA,EoBAL,epBAW;;;;;;;;;;;AAoCAE,coBxBV,WAAA,SAAoB,SAAA,CpBwBVA;EAO8BD,mBAAAA,KAAAA,EoB9BzB,SpB8ByBA,EAAAA;EAAfE,WAAAA,CAAAA,OAAAA,EoB5Bf,kBpB4BeA;EAARD,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EoBvBD,OpBuBCA,CoBvBO,CpBuBPA,GAAAA,IAAAA,CAAAA;EAUID,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,IAAAA,EAAAA,GAAAA,GoBhBqB,OpBgBrBA,CoBhB6B,CpBgB7BA,CAAAA,EAAAA,OAAAA,CAAAA,EoBhB2C,epBgB3CA,CAAAA,EoBhB6D,OpBgB7DA,CoBhBqE,CpBgBrEA,CAAAA;EAAfE,GAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EoBCgB,CpBDhBA,EAAAA,OAAAA,CAAAA,EoBC6B,epBD7BA,CAAAA,EoBC+C,OpBD/CA,CAAAA,IAAAA,CAAAA;EAA6BL,MAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EoBanB,OpBbmBA,CAAAA,IAAAA,CAAAA;EAAkBI,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EoBqBrB,OpBrBqBA,CoBqBb,MpBrBaA,CAAAA,MAAAA,EoBqBE,CpBrBFA,GAAAA,IAAAA,CAAAA,CAAAA;EAOpCA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,EoBiDI,MpBjDJA,CAAAA,MAAAA,EoBiDmB,CpBjDnBA,CAAAA,EAAAA,OAAAA,CAAAA,EoBiDiC,epBjDjCA,CAAAA,EoBiDmD,OpBjDnDA,CAAAA,IAAAA,CAAAA;EAAO,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EoB6DQ,OpB7DR,CAAA,IAAA,CAAA;;;;UqB9EpB,6BAAA,SAAsC;;;;SAI9C;;UAGC,iBAAA;;;;EtBTON,QAAAA,EAAM,MAAA;;;;ECCNE,QAAAA,EAAAA,MAAAA;EAOAC;EAYAC,WAAM,EAAA,MAAAC;;UqBMb,gBAAA,CrBEaC;EAUyBD;EAARC,QAAAA,EAAAA,MAAAA;EAAsBJ;EAA0BG,OAAAA,EAAAA,MAAAA;EAARC;EAWnDD,QAAAA,EAAAA,MAAAA;EAAaH;EAAkBI,OAAAA,EAAAA,MAAAA;EAOrCA;EAO8BD,UAAAA,EAAAA,MAAAA;;AAAvBC,KqBpBlB,YAAA,GAAe,iBrBoBGA,GqBpBiB,gBrBoBjBA;;;;;;AAiBO,cqB9BxB,sBAAA,YAAkC,MrB8BV,CAAA;4BqB7BT;8BACE;;EpB5CR,UAAA,YAAU,EoB+CN,iBpB/CM;EAEF,UAAA,gBAAA,EoBoDA,gBpBpDA;EAEG,WAAA,CAAA,OAAA,EoB0DV,6BpB1DU;EAKO,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EoB2DX,OpB3DW,CoB2DH,CpB3DG,GAAA,IAAA,CAAA;EAAR,SAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,GoBiFc,OpBjFd,CoBiFsB,CpBjFtB,CAAA,EAAA,OAAA,CAAA,EoBiFoC,epBjFpC,CAAA,EoBiFsD,OpBjFtD,CoBiF8D,CpBjF9D,CAAA;EAEM,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EoB4HH,CpB5HG,EAAA,OAAA,CAAA,EoB4HU,epB5HV,CAAA,EoB4H4B,OpB5H5B,CAAA,IAAA,CAAA;EAAa,MAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EoByItB,OpBzIsB,CAAA,IAAA,CAAA;EAAkB,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EoBsJjC,OpBtJiC,CoBsJzB,MpBtJyB,CAAA,MAAA,EoBsJV,CpBtJU,GAAA,IAAA,CAAA,CAAA;EAErC,OAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EoByKP,MpBzKO,CAAA,MAAA,EoByKQ,CpBzKR,CAAA,EAAA,OAAA,CAAA,EoByKsB,epBzKtB,CAAA,EoByKwC,OpBzKxC,CAAA,IAAA,CAAA;EAEsB,UAAA,CAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EoBsLlB,OpBtLkB,CAAA,IAAA,CAAA;EAAR,UAAA,CAAA,CAAA,EoBmM9B,YpBnM8B;EAAsB,YAAA,CAAA,CAAA,EAAA,IAAA"}
1
+ {"version":3,"file":"index.d.cts","names":["Logger","Logger","SetCacheOptions","BaseCacheOptions","ICache","T","Promise","Record"],"sources":["../src/types/logger.d.ts","../src/types/cache.d.ts","../src/base/index.ts","../src/base/local.ts","../src/local/lru/index.ts","../src/local/ttl/index.ts","../src/local/map/index.ts","../src/local/weak/index.ts","../src/local/cloning/index.ts","../src/local/noop/index.ts","../src/remote/ioredis/index.ts","../src/remote/redis/index.ts","../src/remote/valkey-glide/index.ts","../src/remote/memcache/index.ts","../src/remote/memjs/index.ts","../src/remote/workers-kv/index.ts","../src/remote/hazelcast/index.ts","../src/remote/keyv/index.ts","../src/layers/async-lazy/index.ts","../src/layers/coalescing/index.ts","../src/layers/fail-safe/index.ts","../src/layers/jittering/index.ts","../src/layers/key-transforming/index.ts","../src/layers/swr/index.ts","../src/layers/tiered/index.ts","../src/layers/metrics/index.ts"],"sourcesContent":["\r\nexport interface Logger {\r\n /**\r\n * Sends a debug log\r\n * @param name The cache name\r\n * @param message The log message\r\n */\r\n debug: (name?: string, ...message: any[]) => void;\r\n}\r\n","import type { Logger } from './logger.js';\r\n\r\nexport interface SetCacheOptions {\r\n /**\r\n * Time to Live in seconds\r\n */\r\n ttl?: number;\r\n}\r\n\r\nexport interface BaseCacheOptions {\r\n /**\r\n * The name of this strategy. Used for logging\r\n */\r\n name?: string;\r\n\r\n /**\r\n * A logger that is useful for debugging the cache chain\r\n */\r\n logger?: Logger;\r\n}\r\n\r\nexport interface ICache {\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * Returns `null` when the resource is not found.\r\n *\r\n * @param key The cache key\r\n */\r\n get<T>(key: string): Promise<T | null>;\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.\r\n *\r\n * This method implements the Cache-Aside pattern.\r\n *\r\n * @param key The cache key\r\n * @param load The function which should fetch the fresh data from origin\r\n * @param options The options used to save the cache\r\n */\r\n getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;\r\n\r\n /**\r\n * Writes a resource into cache.\r\n *\r\n * The value **must** be JSON stringifiable.\r\n *\r\n * @param key The cache key\r\n * @param value The resource value\r\n * @param options The options to save the cache\r\n */\r\n set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes a cached resource by a key.\r\n *\r\n * @param key The cache key to delete\r\n */\r\n delete(key: string): Promise<void>;\r\n\r\n /**\r\n * Reads cached resources in batch.\r\n *\r\n * @param keys The list of cache keys.\r\n */\r\n getMany<T>(keys: string[]): Promise<Record<string, T | null>>;\r\n\r\n /**\r\n * Writes cache resources in batch.\r\n *\r\n * The values **must** be JSON stringifiable.\r\n *\r\n * @param data The cache keys and values\r\n * @param options The options to save the cache\r\n */\r\n setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes cached resources by their keys in batch.\r\n *\r\n * @param keys The list of keys to delete\r\n */\r\n deleteMany(keys: string[]): Promise<void>;\r\n\r\n}\r\n"],"mappings":"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"}