@warlock.js/cache 4.0.48 → 4.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/cjs/cache-manager.d.ts +159 -0
  2. package/cjs/cache-manager.d.ts.map +1 -0
  3. package/cjs/cache-manager.js +312 -0
  4. package/cjs/cache-manager.js.map +1 -0
  5. package/cjs/drivers/base-cache-driver.d.ts +144 -0
  6. package/cjs/drivers/base-cache-driver.d.ts.map +1 -0
  7. package/cjs/drivers/base-cache-driver.js +308 -0
  8. package/cjs/drivers/base-cache-driver.js.map +1 -0
  9. package/cjs/drivers/file-cache-driver.d.ts +45 -0
  10. package/cjs/drivers/file-cache-driver.d.ts.map +1 -0
  11. package/cjs/drivers/file-cache-driver.js +133 -0
  12. package/cjs/drivers/file-cache-driver.js.map +1 -0
  13. package/cjs/drivers/index.d.ts +8 -0
  14. package/cjs/drivers/index.d.ts.map +1 -0
  15. package/cjs/drivers/lru-memory-cache-driver.d.ts +98 -0
  16. package/cjs/drivers/lru-memory-cache-driver.d.ts.map +1 -0
  17. package/cjs/drivers/lru-memory-cache-driver.js +252 -0
  18. package/cjs/drivers/lru-memory-cache-driver.js.map +1 -0
  19. package/cjs/drivers/memory-cache-driver.d.ts +82 -0
  20. package/cjs/drivers/memory-cache-driver.d.ts.map +1 -0
  21. package/cjs/drivers/memory-cache-driver.js +218 -0
  22. package/cjs/drivers/memory-cache-driver.js.map +1 -0
  23. package/cjs/drivers/memory-extended-cache-driver.d.ts +13 -0
  24. package/cjs/drivers/memory-extended-cache-driver.d.ts.map +1 -0
  25. package/cjs/drivers/memory-extended-cache-driver.js +25 -0
  26. package/cjs/drivers/memory-extended-cache-driver.js.map +1 -0
  27. package/cjs/drivers/null-cache-driver.d.ts +58 -0
  28. package/cjs/drivers/null-cache-driver.d.ts.map +1 -0
  29. package/cjs/drivers/null-cache-driver.js +84 -0
  30. package/cjs/drivers/null-cache-driver.js.map +1 -0
  31. package/cjs/drivers/redis-cache-driver.d.ts +57 -0
  32. package/cjs/drivers/redis-cache-driver.d.ts.map +1 -0
  33. package/cjs/drivers/redis-cache-driver.js +222 -0
  34. package/cjs/drivers/redis-cache-driver.js.map +1 -0
  35. package/cjs/index.d.ts +6 -0
  36. package/cjs/index.d.ts.map +1 -0
  37. package/cjs/index.js +1 -42
  38. package/cjs/index.js.map +1 -1
  39. package/cjs/tagged-cache.d.ts +77 -0
  40. package/cjs/tagged-cache.d.ts.map +1 -0
  41. package/cjs/tagged-cache.js +160 -0
  42. package/cjs/tagged-cache.js.map +1 -0
  43. package/cjs/types.d.ts +381 -0
  44. package/cjs/types.d.ts.map +1 -0
  45. package/cjs/types.js +36 -0
  46. package/cjs/types.js.map +1 -0
  47. package/cjs/utils.d.ts +50 -0
  48. package/cjs/utils.d.ts.map +1 -0
  49. package/cjs/utils.js +55 -0
  50. package/cjs/utils.js.map +1 -0
  51. package/esm/cache-manager.d.ts +159 -0
  52. package/esm/cache-manager.d.ts.map +1 -0
  53. package/esm/cache-manager.js +312 -0
  54. package/esm/cache-manager.js.map +1 -0
  55. package/esm/drivers/base-cache-driver.d.ts +144 -0
  56. package/esm/drivers/base-cache-driver.d.ts.map +1 -0
  57. package/esm/drivers/base-cache-driver.js +308 -0
  58. package/esm/drivers/base-cache-driver.js.map +1 -0
  59. package/esm/drivers/file-cache-driver.d.ts +45 -0
  60. package/esm/drivers/file-cache-driver.d.ts.map +1 -0
  61. package/esm/drivers/file-cache-driver.js +133 -0
  62. package/esm/drivers/file-cache-driver.js.map +1 -0
  63. package/esm/drivers/index.d.ts +8 -0
  64. package/esm/drivers/index.d.ts.map +1 -0
  65. package/esm/drivers/lru-memory-cache-driver.d.ts +98 -0
  66. package/esm/drivers/lru-memory-cache-driver.d.ts.map +1 -0
  67. package/esm/drivers/lru-memory-cache-driver.js +252 -0
  68. package/esm/drivers/lru-memory-cache-driver.js.map +1 -0
  69. package/esm/drivers/memory-cache-driver.d.ts +82 -0
  70. package/esm/drivers/memory-cache-driver.d.ts.map +1 -0
  71. package/esm/drivers/memory-cache-driver.js +218 -0
  72. package/esm/drivers/memory-cache-driver.js.map +1 -0
  73. package/esm/drivers/memory-extended-cache-driver.d.ts +13 -0
  74. package/esm/drivers/memory-extended-cache-driver.d.ts.map +1 -0
  75. package/esm/drivers/memory-extended-cache-driver.js +25 -0
  76. package/esm/drivers/memory-extended-cache-driver.js.map +1 -0
  77. package/esm/drivers/null-cache-driver.d.ts +58 -0
  78. package/esm/drivers/null-cache-driver.d.ts.map +1 -0
  79. package/esm/drivers/null-cache-driver.js +84 -0
  80. package/esm/drivers/null-cache-driver.js.map +1 -0
  81. package/esm/drivers/redis-cache-driver.d.ts +57 -0
  82. package/esm/drivers/redis-cache-driver.d.ts.map +1 -0
  83. package/esm/drivers/redis-cache-driver.js +222 -0
  84. package/esm/drivers/redis-cache-driver.js.map +1 -0
  85. package/esm/index.d.ts +6 -0
  86. package/esm/index.d.ts.map +1 -0
  87. package/esm/index.js +1 -7
  88. package/esm/index.js.map +1 -1
  89. package/esm/tagged-cache.d.ts +77 -0
  90. package/esm/tagged-cache.d.ts.map +1 -0
  91. package/esm/tagged-cache.js +160 -0
  92. package/esm/tagged-cache.js.map +1 -0
  93. package/esm/types.d.ts +381 -0
  94. package/esm/types.d.ts.map +1 -0
  95. package/esm/types.js +36 -0
  96. package/esm/types.js.map +1 -0
  97. package/esm/utils.d.ts +50 -0
  98. package/esm/utils.d.ts.map +1 -0
  99. package/esm/utils.js +55 -0
  100. package/esm/utils.js.map +1 -0
  101. package/package.json +38 -51
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Tagged Cache Wrapper
3
+ * Wraps a cache driver to automatically manage tag relationships
4
+ */
5
+ class TaggedCache {
6
+ /**
7
+ * The tags associated with this tagged cache instance
8
+ */
9
+ cacheTags;
10
+ /**
11
+ * The underlying cache driver
12
+ */
13
+ driver;
14
+ /**
15
+ * Constructor
16
+ */
17
+ constructor(tags, driver) {
18
+ this.cacheTags = tags;
19
+ this.driver = driver;
20
+ }
21
+ /**
22
+ * Get the tag key prefix for storing tag-key relationships
23
+ */
24
+ tagKey(tag) {
25
+ return `cache:tags:${tag}`;
26
+ }
27
+ /**
28
+ * Store tag-key relationship
29
+ */
30
+ async storeTaggedKey(key) {
31
+ for (const tag of this.cacheTags) {
32
+ const tagKey = this.tagKey(tag);
33
+ const keys = (await this.driver.get(tagKey)) || [];
34
+ if (!keys.includes(key)) {
35
+ keys.push(key);
36
+ // Store tag relationships permanently
37
+ await this.driver.set(tagKey, keys, Infinity);
38
+ }
39
+ }
40
+ }
41
+ /**
42
+ * Get all keys associated with tags
43
+ */
44
+ async getTaggedKeys() {
45
+ const allKeys = new Set();
46
+ for (const tag of this.cacheTags) {
47
+ const tagKey = this.tagKey(tag);
48
+ const keys = (await this.driver.get(tagKey)) || [];
49
+ for (const key of keys) {
50
+ allKeys.add(key);
51
+ }
52
+ }
53
+ return allKeys;
54
+ }
55
+ /**
56
+ * {@inheritdoc}
57
+ */
58
+ async set(key, value, ttl) {
59
+ const parsedKey = this.driver.parseKey(key);
60
+ // Store the value
61
+ await this.driver.set(key, value, ttl);
62
+ // Store tag-key relationship
63
+ await this.storeTaggedKey(parsedKey);
64
+ return value;
65
+ }
66
+ /**
67
+ * {@inheritdoc}
68
+ */
69
+ async get(key) {
70
+ return this.driver.get(key);
71
+ }
72
+ /**
73
+ * {@inheritdoc}
74
+ */
75
+ async remove(key) {
76
+ const parsedKey = this.driver.parseKey(key);
77
+ // Remove the value
78
+ await this.driver.remove(key);
79
+ // Remove from all tag relationships
80
+ for (const tag of this.cacheTags) {
81
+ const tagKey = this.tagKey(tag);
82
+ const keys = (await this.driver.get(tagKey)) || [];
83
+ const updatedKeys = keys.filter((k) => k !== parsedKey);
84
+ await this.driver.set(tagKey, updatedKeys, Infinity);
85
+ }
86
+ }
87
+ /**
88
+ * Invalidate (clear) all keys associated with the current tags
89
+ */
90
+ async invalidate() {
91
+ const keysToRemove = await this.getTaggedKeys();
92
+ // Remove all tagged keys
93
+ for (const key of keysToRemove) {
94
+ await this.driver.remove(key);
95
+ }
96
+ // Clear tag relationship keys
97
+ for (const tag of this.cacheTags) {
98
+ await this.driver.remove(this.tagKey(tag));
99
+ }
100
+ }
101
+ /**
102
+ * Flush all keys associated with the current tags
103
+ * @deprecated Use invalidate() instead for better semantics
104
+ */
105
+ async flush() {
106
+ return this.invalidate();
107
+ }
108
+ /**
109
+ * {@inheritdoc}
110
+ */
111
+ async has(key) {
112
+ return this.driver.has(key);
113
+ }
114
+ /**
115
+ * {@inheritdoc}
116
+ */
117
+ async remember(key, ttl, callback) {
118
+ const value = await this.get(key);
119
+ if (value !== null) {
120
+ return value;
121
+ }
122
+ const result = await callback();
123
+ await this.set(key, result, ttl);
124
+ return result;
125
+ }
126
+ /**
127
+ * {@inheritdoc}
128
+ */
129
+ async pull(key) {
130
+ const value = await this.get(key);
131
+ if (value !== null) {
132
+ await this.remove(key);
133
+ }
134
+ return value;
135
+ }
136
+ /**
137
+ * {@inheritdoc}
138
+ */
139
+ async forever(key, value) {
140
+ return this.set(key, value, Infinity);
141
+ }
142
+ /**
143
+ * {@inheritdoc}
144
+ */
145
+ async increment(key, value = 1) {
146
+ const current = (await this.get(key)) || 0;
147
+ if (typeof current !== "number") {
148
+ throw new Error(`Cannot increment non-numeric value for key: ${this.driver.parseKey(key)}`);
149
+ }
150
+ const newValue = current + value;
151
+ await this.set(key, newValue);
152
+ return newValue;
153
+ }
154
+ /**
155
+ * {@inheritdoc}
156
+ */
157
+ async decrement(key, value = 1) {
158
+ return this.increment(key, -value);
159
+ }
160
+ }export{TaggedCache};//# sourceMappingURL=tagged-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagged-cache.js","sources":["../src/tagged-cache.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/esm/types.d.ts ADDED
@@ -0,0 +1,381 @@
1
+ import type { GenericObject } from "@mongez/reinforcements";
2
+ import type { RedisClientOptions } from "redis";
3
+ import type { BaseCacheDriver, FileCacheDriver, LRUMemoryCacheDriver, MemoryCacheDriver, MemoryExtendedCacheDriver, NullCacheDriver, RedisCacheDriver } from "./drivers";
4
+ /**
5
+ * Base error class for cache-related errors
6
+ */
7
+ export declare class CacheError extends Error {
8
+ constructor(message: string);
9
+ }
10
+ /**
11
+ * Error thrown when cache connection fails
12
+ */
13
+ export declare class CacheConnectionError extends CacheError {
14
+ constructor(message: string);
15
+ }
16
+ /**
17
+ * Error thrown when cache driver configuration is invalid
18
+ */
19
+ export declare class CacheConfigurationError extends CacheError {
20
+ constructor(message: string);
21
+ }
22
+ /**
23
+ * Error thrown when cache driver is not initialized
24
+ */
25
+ export declare class CacheDriverNotInitializedError extends CacheError {
26
+ constructor(message?: string);
27
+ }
28
+ /**
29
+ * Cache key type - can be a string or an object
30
+ */
31
+ export type CacheKey = string | GenericObject;
32
+ export type CacheOperationType = "fetching" | "fetched" | "caching" | "cached" | "flushing" | "flushed" | "removing" | "removed" | "clearing" | "cleared" | "expired" | "notFound" | "connecting" | "error" | "connected" | "disconnecting" | "disconnected";
33
+ /**
34
+ * Cache event types for observability
35
+ */
36
+ export type CacheEventType = "hit" | "miss" | "set" | "removed" | "flushed" | "expired" | "connected" | "disconnected" | "error";
37
+ /**
38
+ * Cache event data structure
39
+ */
40
+ export type CacheEventData = {
41
+ /**
42
+ * The cache key involved in the event
43
+ */
44
+ key?: string;
45
+ /**
46
+ * The value (for set/hit events)
47
+ */
48
+ value?: any;
49
+ /**
50
+ * TTL in seconds (for set events)
51
+ */
52
+ ttl?: number;
53
+ /**
54
+ * Driver name that emitted the event
55
+ */
56
+ driver: string;
57
+ /**
58
+ * Error object (for error events)
59
+ */
60
+ error?: any;
61
+ /**
62
+ * Namespace (for namespace operations)
63
+ */
64
+ namespace?: string;
65
+ };
66
+ /**
67
+ * Event handler function type
68
+ */
69
+ export type CacheEventHandler = (eventData: CacheEventData) => void | Promise<void>;
70
+ /**
71
+ * Tagged cache interface for working with cache tags
72
+ */
73
+ export interface TaggedCacheDriver {
74
+ /**
75
+ * Set a value in cache with tags
76
+ */
77
+ set(key: CacheKey, value: any, ttl?: number): Promise<any>;
78
+ /**
79
+ * Get a value from cache (checks tags)
80
+ */
81
+ get(key: CacheKey): Promise<any | null>;
82
+ /**
83
+ * Remove a specific key
84
+ */
85
+ remove(key: CacheKey): Promise<void>;
86
+ /**
87
+ * Invalidate (clear) all keys associated with the current tags
88
+ */
89
+ invalidate(): Promise<void>;
90
+ /**
91
+ * Flush all keys associated with the current tags
92
+ * @deprecated Use invalidate() instead
93
+ */
94
+ flush(): Promise<void>;
95
+ /**
96
+ * Check if a key exists
97
+ */
98
+ has(key: CacheKey): Promise<boolean>;
99
+ /**
100
+ * Remember pattern with tags
101
+ */
102
+ remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
103
+ /**
104
+ * Pull value with tags
105
+ */
106
+ pull(key: CacheKey): Promise<any | null>;
107
+ /**
108
+ * Forever with tags
109
+ */
110
+ forever(key: CacheKey, value: any): Promise<any>;
111
+ /**
112
+ * Increment with tags
113
+ */
114
+ increment(key: CacheKey, value?: number): Promise<number>;
115
+ /**
116
+ * Decrement with tags
117
+ */
118
+ decrement(key: CacheKey, value?: number): Promise<number>;
119
+ }
120
+ export type MemoryCacheOptions = {
121
+ /**
122
+ * The global prefix for the cache key
123
+ */
124
+ globalPrefix?: string | (() => string);
125
+ /**
126
+ * The default TTL for the cache in seconds
127
+ *
128
+ * @default Infinity
129
+ */
130
+ ttl?: number;
131
+ /**
132
+ * Maximum number of items in cache
133
+ * When exceeded, least recently used items will be evicted
134
+ *
135
+ * @default undefined (no limit)
136
+ */
137
+ maxSize?: number;
138
+ };
139
+ export type MemoryExtendedCacheOptions = MemoryCacheOptions;
140
+ export type LRUMemoryCacheOptions = {
141
+ /**
142
+ * The maximum number of items in the cache
143
+ *
144
+ * @default 1000
145
+ */
146
+ capacity?: number;
147
+ };
148
+ export type FileCacheOptions = {
149
+ /**
150
+ * The global prefix for the cache key
151
+ */
152
+ globalPrefix?: string | (() => string);
153
+ /**
154
+ * The default TTL for the cache in seconds
155
+ *
156
+ * @default 0
157
+ */
158
+ ttl?: number;
159
+ /**
160
+ * Storage cache directory
161
+ *
162
+ * @default storagePath("cache")
163
+ */
164
+ directory: string | (() => string);
165
+ /**
166
+ * File name
167
+ *
168
+ * @default cache.json
169
+ */
170
+ fileName?: string | (() => string);
171
+ };
172
+ export type RedisOptions = {
173
+ /**
174
+ * Redis Port
175
+ *
176
+ * @default 6379
177
+ */
178
+ port?: number;
179
+ /**
180
+ * Redis Host
181
+ */
182
+ host?: string;
183
+ /**
184
+ * Redis Username
185
+ */
186
+ username?: string;
187
+ /**
188
+ * Redis Password
189
+ */
190
+ password?: string;
191
+ /**
192
+ * Redis URL
193
+ *
194
+ * If used, it will override the host and port options
195
+ */
196
+ url?: string;
197
+ /**
198
+ * Global prefix for the cache key
199
+ */
200
+ globalPrefix?: string | (() => string);
201
+ /**
202
+ * Time to live in seconds
203
+ *
204
+ * @default Infinity
205
+ */
206
+ ttl?: number;
207
+ /**
208
+ * Redis client options
209
+ */
210
+ clientOptions?: RedisClientOptions;
211
+ };
212
+ export type NullCacheDriverOptions = GenericObject;
213
+ export interface CacheDriver<ClientType, Options> {
214
+ /**
215
+ * The cache driver options
216
+ */
217
+ options: Options;
218
+ /**
219
+ * Cache driver name
220
+ */
221
+ name: string;
222
+ /**
223
+ * Remove all cached items by namespace
224
+ */
225
+ removeNamespace(namespace: string): Promise<any>;
226
+ /**
227
+ * Set the cache driver options
228
+ */
229
+ setOptions(options: Options): any;
230
+ /**
231
+ * Parse the key to be used in the cache
232
+ */
233
+ parseKey(key: CacheKey): string;
234
+ /**
235
+ * Set a value in the cache
236
+ *
237
+ * @param key The cache key, could be an object or string
238
+ * @param value The value to be stored in the cache
239
+ * @param ttl The time to live in seconds
240
+ */
241
+ set(key: CacheKey, value: any, ttl?: number): Promise<any>;
242
+ /**
243
+ * Get a value from the cache
244
+ */
245
+ get(key: CacheKey): Promise<any | null>;
246
+ /**
247
+ * Remove a value from the cache
248
+ */
249
+ remove(key: CacheKey): Promise<void>;
250
+ /**
251
+ * Flush the entire cache
252
+ */
253
+ flush(): Promise<void>;
254
+ /**
255
+ * Connect to the cache driver
256
+ */
257
+ connect(): Promise<any>;
258
+ /**
259
+ * The cache client
260
+ */
261
+ client?: ClientType;
262
+ /**
263
+ * Disconnect the cache driver
264
+ */
265
+ disconnect(): Promise<void>;
266
+ /**
267
+ * Check if a key exists in the cache without fetching its value
268
+ */
269
+ has(key: CacheKey): Promise<boolean>;
270
+ /**
271
+ * Get value from cache or execute callback and cache the result
272
+ *
273
+ * @param key The cache key
274
+ * @param ttl Time to live in seconds
275
+ * @param callback Function to execute if cache miss
276
+ */
277
+ remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
278
+ /**
279
+ * Get value and remove it from cache (atomic operation)
280
+ */
281
+ pull(key: CacheKey): Promise<any | null>;
282
+ /**
283
+ * Set a value in cache permanently (no expiration)
284
+ */
285
+ forever(key: CacheKey, value: any): Promise<any>;
286
+ /**
287
+ * Increment a numeric value in cache
288
+ *
289
+ * @param key The cache key
290
+ * @param value The value to increment by (default 1)
291
+ */
292
+ increment(key: CacheKey, value?: number): Promise<number>;
293
+ /**
294
+ * Decrement a numeric value in cache
295
+ *
296
+ * @param key The cache key
297
+ * @param value The value to decrement by (default 1)
298
+ */
299
+ decrement(key: CacheKey, value?: number): Promise<number>;
300
+ /**
301
+ * Get multiple values from cache at once
302
+ */
303
+ many(keys: CacheKey[]): Promise<any[]>;
304
+ /**
305
+ * Set multiple values in cache at once
306
+ */
307
+ setMany(items: Record<string, any>, ttl?: number): Promise<void>;
308
+ /**
309
+ * Register an event listener
310
+ */
311
+ on(event: CacheEventType, handler: CacheEventHandler): this;
312
+ /**
313
+ * Remove an event listener
314
+ */
315
+ off(event: CacheEventType, handler: CacheEventHandler): this;
316
+ /**
317
+ * Register a one-time event listener
318
+ */
319
+ once(event: CacheEventType, handler: CacheEventHandler): this;
320
+ /**
321
+ * Set if not exists (atomic operation)
322
+ * Returns true if key was set, false if key already existed
323
+ * Note: Not all drivers support this operation
324
+ */
325
+ setNX?(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
326
+ /**
327
+ * Create a tagged cache instance for the given tags
328
+ */
329
+ tags(tags: string[]): TaggedCacheDriver;
330
+ }
331
+ export type CacheData = {
332
+ /**
333
+ * Value stored in the cache
334
+ */
335
+ data: any;
336
+ /**
337
+ * The expiration date in milliseconds
338
+ */
339
+ expiresAt?: number;
340
+ /**
341
+ * Time to live in seconds
342
+ */
343
+ ttl?: number;
344
+ };
345
+ export type DriverClass = new () => CacheDriver<any, any>;
346
+ type DefaultDrivers = "redis" | "file" | "memory" | "memoryExtended" | "null" | "lru";
347
+ type MergeWithDefaultDrivers<T> = T extends undefined ? DefaultDrivers : DefaultDrivers | T;
348
+ export type CacheConfigurations<T extends string | undefined = undefined, DriverName = MergeWithDefaultDrivers<T>> = {
349
+ /**
350
+ * The default cache driver name
351
+ */
352
+ default?: DriverName;
353
+ /**
354
+ * The cache drivers list
355
+ */
356
+ drivers: {
357
+ redis?: typeof RedisCacheDriver;
358
+ file?: typeof FileCacheDriver;
359
+ null?: typeof NullCacheDriver;
360
+ memory?: typeof MemoryCacheDriver;
361
+ memoryExtended?: typeof MemoryExtendedCacheDriver;
362
+ lru?: typeof LRUMemoryCacheDriver;
363
+ } & {
364
+ [key in Extract<T, string>]?: typeof BaseCacheDriver<any, any> | undefined;
365
+ };
366
+ /**
367
+ * The cache driver options
368
+ */
369
+ options: {
370
+ redis?: RedisOptions;
371
+ file?: FileCacheOptions;
372
+ memory?: MemoryCacheOptions;
373
+ memoryExtended?: MemoryExtendedCacheOptions;
374
+ null?: NullCacheDriverOptions;
375
+ lru?: LRUMemoryCacheOptions;
376
+ } & {
377
+ [key in Extract<T, string>]?: GenericObject;
378
+ };
379
+ };
380
+ export {};
381
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/esm/types.js ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Base error class for cache-related errors
3
+ */
4
+ class CacheError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = "CacheError";
8
+ }
9
+ }
10
+ /**
11
+ * Error thrown when cache connection fails
12
+ */
13
+ class CacheConnectionError extends CacheError {
14
+ constructor(message) {
15
+ super(message);
16
+ this.name = "CacheConnectionError";
17
+ }
18
+ }
19
+ /**
20
+ * Error thrown when cache driver configuration is invalid
21
+ */
22
+ class CacheConfigurationError extends CacheError {
23
+ constructor(message) {
24
+ super(message);
25
+ this.name = "CacheConfigurationError";
26
+ }
27
+ }
28
+ /**
29
+ * Error thrown when cache driver is not initialized
30
+ */
31
+ class CacheDriverNotInitializedError extends CacheError {
32
+ constructor(message = "No cache driver initialized. Call cache.init() or cache.use() first.") {
33
+ super(message);
34
+ this.name = "CacheDriverNotInitializedError";
35
+ }
36
+ }export{CacheConfigurationError,CacheConnectionError,CacheDriverNotInitializedError,CacheError};//# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAYA;;AAEG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;AACnC,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;KAC1B;AACF,CAAA;AAED;;AAEG;AACG,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAClD,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;KACpC;AACF,CAAA;AAED;;AAEG;AACG,MAAO,uBAAwB,SAAQ,UAAU,CAAA;AACrD,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;KACvC;AACF,CAAA;AAED;;AAEG;AACG,MAAO,8BAA+B,SAAQ,UAAU,CAAA;AAC5D,IAAA,WAAA,CACE,UAAkB,sEAAsE,EAAA;QAExF,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;KAC9C;AACF"}
package/esm/utils.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ import type { CacheKey } from "./types";
2
+ /**
3
+ * Make a proper key for the cache
4
+ */
5
+ export declare function parseCacheKey(key: CacheKey, options?: {
6
+ globalPrefix?: string | (() => string);
7
+ }): string;
8
+ export declare enum CACHE_FOR {
9
+ /**
10
+ * Cache for 30 Minutes (in seconds)
11
+ */
12
+ HALF_HOUR = 1800,
13
+ /**
14
+ * Cache for 1 Hour (in seconds)
15
+ */
16
+ ONE_HOUR = 3600,
17
+ /**
18
+ * Cache for 12 Hours (in seconds)
19
+ */
20
+ HALF_DAY = 43200,
21
+ /**
22
+ * Cache for 24 Hours (in seconds)
23
+ */
24
+ ONE_DAY = 86400,
25
+ /**
26
+ * Cache for 7 Days (in seconds)
27
+ */
28
+ ONE_WEEK = 604800,
29
+ /**
30
+ * Cache for 15 Days (in seconds)
31
+ */
32
+ HALF_MONTH = 1296000,
33
+ /**
34
+ * Cache for 30 Days (in seconds)
35
+ */
36
+ ONE_MONTH = 2592000,
37
+ /**
38
+ * Cache for 60 Days (in seconds)
39
+ */
40
+ TWO_MONTHS = 5184000,
41
+ /**
42
+ * Cache for 180 Days (in seconds)
43
+ */
44
+ SIX_MONTHS = 15768000,
45
+ /**
46
+ * Cache for 365 Days (in seconds)
47
+ */
48
+ ONE_YEAR = 31536000
49
+ }
50
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAA;CAAO,GACvD,MAAM,CAYR;AAED,oBAAY,SAAS;IACnB;;OAEG;IACH,SAAS,OAAO;IAChB;;OAEG;IACH,QAAQ,OAAO;IACf;;OAEG;IACH,QAAQ,QAAQ;IAChB;;OAEG;IACH,OAAO,QAAQ;IACf;;OAEG;IACH,QAAQ,SAAS;IACjB;;OAEG;IACH,UAAU,UAAU;IACpB;;OAEG;IACH,SAAS,UAAU;IACnB;;OAEG;IACH,UAAU,UAAU;IACpB;;OAEG;IACH,UAAU,WAAW;IACrB;;OAEG;IACH,QAAQ,WAAW;CACpB"}