@warlock.js/cache 3.0.18 → 3.0.21

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 (107) hide show
  1. package/cjs/cache-manager.d.ts +72 -7
  2. package/cjs/cache-manager.d.ts.map +1 -1
  3. package/cjs/cache-manager.js +175 -15
  4. package/cjs/cache-manager.js.map +1 -1
  5. package/cjs/drivers/base-cache-driver.d.ts +70 -7
  6. package/cjs/drivers/base-cache-driver.d.ts.map +1 -1
  7. package/cjs/drivers/base-cache-driver.js +189 -9
  8. package/cjs/drivers/base-cache-driver.js.map +1 -1
  9. package/cjs/drivers/file-cache-driver.d.ts +8 -5
  10. package/cjs/drivers/file-cache-driver.d.ts.map +1 -1
  11. package/cjs/drivers/file-cache-driver.js +34 -7
  12. package/cjs/drivers/file-cache-driver.js.map +1 -1
  13. package/cjs/drivers/index.d.ts +0 -1
  14. package/cjs/drivers/index.d.ts.map +1 -1
  15. package/cjs/drivers/lru-memory-cache-driver.d.ts +20 -6
  16. package/cjs/drivers/lru-memory-cache-driver.d.ts.map +1 -1
  17. package/cjs/drivers/lru-memory-cache-driver.js +109 -8
  18. package/cjs/drivers/lru-memory-cache-driver.js.map +1 -1
  19. package/cjs/drivers/memory-cache-driver.d.ts +34 -5
  20. package/cjs/drivers/memory-cache-driver.d.ts.map +1 -1
  21. package/cjs/drivers/memory-cache-driver.js +116 -8
  22. package/cjs/drivers/memory-cache-driver.js.map +1 -1
  23. package/cjs/drivers/memory-extended-cache-driver.d.ts +2 -3
  24. package/cjs/drivers/memory-extended-cache-driver.d.ts.map +1 -1
  25. package/cjs/drivers/memory-extended-cache-driver.js +1 -1
  26. package/cjs/drivers/memory-extended-cache-driver.js.map +1 -1
  27. package/cjs/drivers/null-cache-driver.d.ts +5 -5
  28. package/cjs/drivers/null-cache-driver.d.ts.map +1 -1
  29. package/cjs/drivers/null-cache-driver.js +1 -1
  30. package/cjs/drivers/null-cache-driver.js.map +1 -1
  31. package/cjs/drivers/redis-cache-driver.d.ts +23 -5
  32. package/cjs/drivers/redis-cache-driver.d.ts.map +1 -1
  33. package/cjs/drivers/redis-cache-driver.js +120 -10
  34. package/cjs/drivers/redis-cache-driver.js.map +1 -1
  35. package/cjs/index.d.ts +1 -0
  36. package/cjs/index.d.ts.map +1 -1
  37. package/cjs/index.js +1 -1
  38. package/cjs/tagged-cache.d.ts +77 -0
  39. package/cjs/tagged-cache.d.ts.map +1 -0
  40. package/cjs/tagged-cache.js +160 -0
  41. package/cjs/tagged-cache.js.map +1 -0
  42. package/cjs/types.d.ts +186 -19
  43. package/cjs/types.d.ts.map +1 -1
  44. package/cjs/types.js +36 -0
  45. package/cjs/types.js.map +1 -0
  46. package/cjs/utils.d.ts +3 -3
  47. package/cjs/utils.d.ts.map +1 -1
  48. package/cjs/utils.js +13 -13
  49. package/cjs/utils.js.map +1 -1
  50. package/esm/cache-manager.d.ts +72 -7
  51. package/esm/cache-manager.d.ts.map +1 -1
  52. package/esm/cache-manager.js +175 -15
  53. package/esm/cache-manager.js.map +1 -1
  54. package/esm/drivers/base-cache-driver.d.ts +70 -7
  55. package/esm/drivers/base-cache-driver.d.ts.map +1 -1
  56. package/esm/drivers/base-cache-driver.js +189 -9
  57. package/esm/drivers/base-cache-driver.js.map +1 -1
  58. package/esm/drivers/file-cache-driver.d.ts +8 -5
  59. package/esm/drivers/file-cache-driver.d.ts.map +1 -1
  60. package/esm/drivers/file-cache-driver.js +34 -7
  61. package/esm/drivers/file-cache-driver.js.map +1 -1
  62. package/esm/drivers/index.d.ts +0 -1
  63. package/esm/drivers/index.d.ts.map +1 -1
  64. package/esm/drivers/lru-memory-cache-driver.d.ts +20 -6
  65. package/esm/drivers/lru-memory-cache-driver.d.ts.map +1 -1
  66. package/esm/drivers/lru-memory-cache-driver.js +109 -8
  67. package/esm/drivers/lru-memory-cache-driver.js.map +1 -1
  68. package/esm/drivers/memory-cache-driver.d.ts +34 -5
  69. package/esm/drivers/memory-cache-driver.d.ts.map +1 -1
  70. package/esm/drivers/memory-cache-driver.js +117 -9
  71. package/esm/drivers/memory-cache-driver.js.map +1 -1
  72. package/esm/drivers/memory-extended-cache-driver.d.ts +2 -3
  73. package/esm/drivers/memory-extended-cache-driver.d.ts.map +1 -1
  74. package/esm/drivers/memory-extended-cache-driver.js +1 -1
  75. package/esm/drivers/memory-extended-cache-driver.js.map +1 -1
  76. package/esm/drivers/null-cache-driver.d.ts +5 -5
  77. package/esm/drivers/null-cache-driver.d.ts.map +1 -1
  78. package/esm/drivers/null-cache-driver.js +1 -1
  79. package/esm/drivers/null-cache-driver.js.map +1 -1
  80. package/esm/drivers/redis-cache-driver.d.ts +23 -5
  81. package/esm/drivers/redis-cache-driver.d.ts.map +1 -1
  82. package/esm/drivers/redis-cache-driver.js +120 -10
  83. package/esm/drivers/redis-cache-driver.js.map +1 -1
  84. package/esm/index.d.ts +1 -0
  85. package/esm/index.d.ts.map +1 -1
  86. package/esm/index.js +1 -1
  87. package/esm/tagged-cache.d.ts +77 -0
  88. package/esm/tagged-cache.d.ts.map +1 -0
  89. package/esm/tagged-cache.js +160 -0
  90. package/esm/tagged-cache.js.map +1 -0
  91. package/esm/types.d.ts +186 -19
  92. package/esm/types.d.ts.map +1 -1
  93. package/esm/types.js +36 -0
  94. package/esm/types.js.map +1 -0
  95. package/esm/utils.d.ts +3 -3
  96. package/esm/utils.d.ts.map +1 -1
  97. package/esm/utils.js +13 -13
  98. package/esm/utils.js.map +1 -1
  99. package/package.json +2 -2
  100. package/cjs/drivers/database-cache-driver.d.ts +0 -39
  101. package/cjs/drivers/database-cache-driver.d.ts.map +0 -1
  102. package/cjs/drivers/database-cache-driver.js +0 -92
  103. package/cjs/drivers/database-cache-driver.js.map +0 -1
  104. package/esm/drivers/database-cache-driver.d.ts +0 -39
  105. package/esm/drivers/database-cache-driver.d.ts.map +0 -1
  106. package/esm/drivers/database-cache-driver.js +0 -92
  107. package/esm/drivers/database-cache-driver.js.map +0 -1
@@ -1,12 +1,15 @@
1
- import type { GenericObject } from "@mongez/reinforcements";
2
1
  import { createClient } from "redis";
3
- import type { CacheDriver, RedisOptions } from "../types";
2
+ import type { CacheDriver, CacheKey, RedisOptions } from "../types";
4
3
  import { BaseCacheDriver } from "./base-cache-driver";
5
4
  export declare class RedisCacheDriver extends BaseCacheDriver<ReturnType<typeof createClient>, RedisOptions> implements CacheDriver<ReturnType<typeof createClient>, RedisOptions> {
6
5
  /**
7
6
  * Cache driver name
8
7
  */
9
8
  name: string;
9
+ /**
10
+ * {@inheritdoc}
11
+ */
12
+ setOptions(options: RedisOptions): this;
10
13
  /**
11
14
  * {@inheritDoc}
12
15
  */
@@ -14,15 +17,15 @@ export declare class RedisCacheDriver extends BaseCacheDriver<ReturnType<typeof
14
17
  /**
15
18
  * {@inheritDoc}
16
19
  */
17
- set(key: string | GenericObject, value: any, ttl?: number): Promise<any>;
20
+ set(key: CacheKey, value: any, ttl?: number): Promise<any>;
18
21
  /**
19
22
  * {@inheritDoc}
20
23
  */
21
- get(key: string | GenericObject): Promise<any>;
24
+ get(key: CacheKey): Promise<any>;
22
25
  /**
23
26
  * {@inheritDoc}
24
27
  */
25
- remove(key: string | GenericObject): Promise<void>;
28
+ remove(key: CacheKey): Promise<void>;
26
29
  /**
27
30
  * {@inheritDoc}
28
31
  */
@@ -35,5 +38,20 @@ export declare class RedisCacheDriver extends BaseCacheDriver<ReturnType<typeof
35
38
  * {@inheritDoc}
36
39
  */
37
40
  disconnect(): Promise<void>;
41
+ /**
42
+ * Atomic increment using Redis native INCRBY command
43
+ * {@inheritdoc}
44
+ */
45
+ increment(key: CacheKey, value?: number): Promise<number>;
46
+ /**
47
+ * Atomic decrement using Redis native DECRBY command
48
+ * {@inheritdoc}
49
+ */
50
+ decrement(key: CacheKey, value?: number): Promise<number>;
51
+ /**
52
+ * Set if not exists (atomic operation)
53
+ * Returns true if key was set, false if key already existed
54
+ */
55
+ setNX(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
38
56
  }
39
57
  //# sourceMappingURL=redis-cache-driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/redis-cache-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAa,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,gBACX,SAAQ,eAAe,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,YAAY,CACrE,YAAW,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,YAAY,CAAC;IAErE;;OAEG;IACI,IAAI,SAAW;IAEtB;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAmB9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAgBtE;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAiB5C;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAU/C;;OAEG;IACU,KAAK;IAYlB;;OAEG;IACU,OAAO;IAuCpB;;OAEG;IACU,UAAU;CASxB"}
1
+ {"version":3,"file":"redis-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/redis-cache-driver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,gBACX,SAAQ,eAAe,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,YAAY,CACrE,YAAW,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,YAAY,CAAC;IAErE;;OAEG;IACI,IAAI,SAAW;IAEtB;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,YAAY;IAUvC;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAmB9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAwBxD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;IA4C9B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ;IAajC;;OAEG;IACU,KAAK;IAelB;;OAEG;IACU,OAAO;IAyCpB;;OAEG;IACU,UAAU;IAWvB;;;OAGG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE;;;OAGG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE;;;OAGG;IACU,KAAK,CAChB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,GAAG,EACV,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;CAmCpB"}
@@ -1,13 +1,22 @@
1
- 'use strict';var logger=require('@warlock.js/logger'),redis=require('redis'),baseCacheDriver=require('./base-cache-driver.js');class RedisCacheDriver extends baseCacheDriver.BaseCacheDriver {
1
+ 'use strict';var logger=require('@warlock.js/logger'),redis=require('redis'),types=require('../types.js'),baseCacheDriver=require('./base-cache-driver.js');class RedisCacheDriver extends baseCacheDriver.BaseCacheDriver {
2
2
  /**
3
3
  * Cache driver name
4
4
  */
5
5
  name = "redis";
6
+ /**
7
+ * {@inheritdoc}
8
+ */
9
+ setOptions(options) {
10
+ if (!options.url && !options.host) {
11
+ throw new types.CacheConfigurationError("Redis driver requires either 'url' or 'host' option to be configured.");
12
+ }
13
+ return super.setOptions(options);
14
+ }
6
15
  /**
7
16
  * {@inheritDoc}
8
17
  */
9
18
  async removeNamespace(namespace) {
10
- namespace = await this.parseKey(namespace);
19
+ namespace = this.parseKey(namespace);
11
20
  this.log("clearing", namespace);
12
21
  const keys = await this.client?.keys(`${namespace}*`);
13
22
  if (!keys || keys.length === 0) {
@@ -22,36 +31,72 @@
22
31
  * {@inheritDoc}
23
32
  */
24
33
  async set(key, value, ttl) {
25
- key = await this.parseKey(key);
34
+ key = this.parseKey(key);
26
35
  this.log("caching", key);
27
- ttl = this.getExpiresAt(ttl);
28
- const data = this.prepareDataForStorage(value, ttl);
29
- await this.client?.set(key, JSON.stringify(data));
36
+ if (ttl === undefined) {
37
+ ttl = this.ttl;
38
+ }
39
+ // Use Redis native expiration instead of manual checking
40
+ if (ttl && ttl !== Infinity) {
41
+ await this.client?.set(key, JSON.stringify(value), { EX: ttl });
42
+ }
43
+ else {
44
+ await this.client?.set(key, JSON.stringify(value));
45
+ }
30
46
  this.log("cached", key);
47
+ // Emit set event
48
+ await this.emit("set", { key, value, ttl });
31
49
  return value;
32
50
  }
33
51
  /**
34
52
  * {@inheritDoc}
35
53
  */
36
54
  async get(key) {
37
- key = await this.parseKey(key);
55
+ key = this.parseKey(key);
38
56
  this.log("fetching", key);
39
57
  const value = await this.client?.get(key);
40
58
  if (!value) {
41
59
  this.log("notFound", key);
60
+ // Emit miss event
61
+ await this.emit("miss", { key });
42
62
  return null;
43
63
  }
44
- const data = JSON.parse(value);
45
- return this.parseCachedData(key, data);
64
+ this.log("fetched", key);
65
+ // Parse and return the value directly (Redis handles expiration natively)
66
+ const parsedValue = JSON.parse(value);
67
+ // Apply cloning for immutability protection
68
+ if (parsedValue === null || parsedValue === undefined) {
69
+ // Emit hit event
70
+ await this.emit("hit", { key, value: parsedValue });
71
+ return parsedValue;
72
+ }
73
+ const type = typeof parsedValue;
74
+ if (type === "string" || type === "number" || type === "boolean") {
75
+ // Emit hit event
76
+ await this.emit("hit", { key, value: parsedValue });
77
+ return parsedValue;
78
+ }
79
+ try {
80
+ const clonedValue = structuredClone(parsedValue);
81
+ // Emit hit event
82
+ await this.emit("hit", { key, value: clonedValue });
83
+ return clonedValue;
84
+ }
85
+ catch (error) {
86
+ this.logError(`Failed to clone cached value for ${key}`, error);
87
+ throw error;
88
+ }
46
89
  }
47
90
  /**
48
91
  * {@inheritDoc}
49
92
  */
50
93
  async remove(key) {
51
- key = await this.parseKey(key);
94
+ key = this.parseKey(key);
52
95
  this.log("removing", key);
53
96
  await this.client?.del(key);
54
97
  this.log("removed", key);
98
+ // Emit removed event
99
+ await this.emit("removed", { key });
55
100
  }
56
101
  /**
57
102
  * {@inheritDoc}
@@ -65,6 +110,8 @@
65
110
  await this.client?.flushAll();
66
111
  }
67
112
  this.log("flushed");
113
+ // Emit flushed event
114
+ await this.emit("flushed");
68
115
  }
69
116
  /**
70
117
  * {@inheritDoc}
@@ -95,9 +142,11 @@
95
142
  try {
96
143
  await this.client.connect();
97
144
  this.log("connected");
145
+ await this.emit("connected");
98
146
  }
99
147
  catch (error) {
100
148
  logger.log.error("cache", "redis", error);
149
+ await this.emit("error", { error });
101
150
  }
102
151
  }
103
152
  /**
@@ -109,5 +158,66 @@
109
158
  this.log("disconnecting");
110
159
  await this.client.quit();
111
160
  this.log("disconnected");
161
+ await this.emit("disconnected");
162
+ }
163
+ /**
164
+ * Atomic increment using Redis native INCRBY command
165
+ * {@inheritdoc}
166
+ */
167
+ async increment(key, value = 1) {
168
+ const parsedKey = this.parseKey(key);
169
+ this.log("caching", parsedKey);
170
+ const result = await this.client?.incrBy(parsedKey, value);
171
+ this.log("cached", parsedKey);
172
+ // Emit set event
173
+ await this.emit("set", { key: parsedKey, value: result, ttl: undefined });
174
+ return result || 0;
175
+ }
176
+ /**
177
+ * Atomic decrement using Redis native DECRBY command
178
+ * {@inheritdoc}
179
+ */
180
+ async decrement(key, value = 1) {
181
+ const parsedKey = this.parseKey(key);
182
+ this.log("caching", parsedKey);
183
+ const result = await this.client?.decrBy(parsedKey, value);
184
+ this.log("cached", parsedKey);
185
+ // Emit set event
186
+ await this.emit("set", { key: parsedKey, value: result, ttl: undefined });
187
+ return result || 0;
188
+ }
189
+ /**
190
+ * Set if not exists (atomic operation)
191
+ * Returns true if key was set, false if key already existed
192
+ */
193
+ async setNX(key, value, ttl) {
194
+ const parsedKey = this.parseKey(key);
195
+ this.log("caching", parsedKey);
196
+ if (ttl === undefined) {
197
+ ttl = this.ttl;
198
+ }
199
+ let result;
200
+ // Use Redis native SET with NX option
201
+ if (ttl && ttl !== Infinity) {
202
+ result = await this.client?.set(parsedKey, JSON.stringify(value), {
203
+ NX: true,
204
+ EX: ttl,
205
+ });
206
+ }
207
+ else {
208
+ result = await this.client?.set(parsedKey, JSON.stringify(value), {
209
+ NX: true,
210
+ });
211
+ }
212
+ const wasSet = result === "OK";
213
+ if (wasSet) {
214
+ this.log("cached", parsedKey);
215
+ // Emit set event
216
+ await this.emit("set", { key: parsedKey, value, ttl });
217
+ }
218
+ else {
219
+ this.log("notFound", parsedKey);
220
+ }
221
+ return wasSet;
112
222
  }
113
223
  }exports.RedisCacheDriver=RedisCacheDriver;//# sourceMappingURL=redis-cache-driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-cache-driver.js","sources":["../../src/drivers/redis-cache-driver.ts"],"sourcesContent":[null],"names":["BaseCacheDriver","createClient","log"],"mappings":"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"}
1
+ {"version":3,"file":"redis-cache-driver.js","sources":["../../src/drivers/redis-cache-driver.ts"],"sourcesContent":[null],"names":["BaseCacheDriver","CacheConfigurationError","createClient","log"],"mappings":"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"}
package/cjs/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./cache-manager";
2
2
  export * from "./drivers";
3
+ export * from "./tagged-cache";
3
4
  export * from "./types";
4
5
  export * from "./utils";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/cjs/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var cacheManager=require('./cache-manager.js'),baseCacheDriver=require('./drivers/base-cache-driver.js'),databaseCacheDriver=require('./drivers/database-cache-driver.js'),fileCacheDriver=require('./drivers/file-cache-driver.js'),lruMemoryCacheDriver=require('./drivers/lru-memory-cache-driver.js'),memoryCacheDriver=require('./drivers/memory-cache-driver.js'),memoryExtendedCacheDriver=require('./drivers/memory-extended-cache-driver.js'),nullCacheDriver=require('./drivers/null-cache-driver.js'),redisCacheDriver=require('./drivers/redis-cache-driver.js'),utils=require('./utils.js');exports.CacheManager=cacheManager.CacheManager;exports.cache=cacheManager.cache;exports.BaseCacheDriver=baseCacheDriver.BaseCacheDriver;exports.DatabaseCacheDriver=databaseCacheDriver.DatabaseCacheDriver;exports.FileCacheDriver=fileCacheDriver.FileCacheDriver;exports.LRUMemoryCacheDriver=lruMemoryCacheDriver.LRUMemoryCacheDriver;exports.MemoryCacheDriver=memoryCacheDriver.MemoryCacheDriver;exports.MemoryExtendedCacheDriver=memoryExtendedCacheDriver.MemoryExtendedCacheDriver;exports.NullCacheDriver=nullCacheDriver.NullCacheDriver;exports.RedisCacheDriver=redisCacheDriver.RedisCacheDriver;Object.defineProperty(exports,'EXPIRES_AFTER',{enumerable:true,get:function(){return utils.EXPIRES_AFTER}});exports.parseCacheKey=utils.parseCacheKey;//# sourceMappingURL=index.js.map
1
+ 'use strict';var cacheManager=require('./cache-manager.js'),baseCacheDriver=require('./drivers/base-cache-driver.js'),fileCacheDriver=require('./drivers/file-cache-driver.js'),lruMemoryCacheDriver=require('./drivers/lru-memory-cache-driver.js'),memoryCacheDriver=require('./drivers/memory-cache-driver.js'),memoryExtendedCacheDriver=require('./drivers/memory-extended-cache-driver.js'),nullCacheDriver=require('./drivers/null-cache-driver.js'),redisCacheDriver=require('./drivers/redis-cache-driver.js'),taggedCache=require('./tagged-cache.js'),types=require('./types.js'),utils=require('./utils.js');exports.CacheManager=cacheManager.CacheManager;exports.cache=cacheManager.cache;exports.BaseCacheDriver=baseCacheDriver.BaseCacheDriver;exports.FileCacheDriver=fileCacheDriver.FileCacheDriver;exports.LRUMemoryCacheDriver=lruMemoryCacheDriver.LRUMemoryCacheDriver;exports.MemoryCacheDriver=memoryCacheDriver.MemoryCacheDriver;exports.MemoryExtendedCacheDriver=memoryExtendedCacheDriver.MemoryExtendedCacheDriver;exports.NullCacheDriver=nullCacheDriver.NullCacheDriver;exports.RedisCacheDriver=redisCacheDriver.RedisCacheDriver;exports.TaggedCache=taggedCache.TaggedCache;exports.CacheConfigurationError=types.CacheConfigurationError;exports.CacheConnectionError=types.CacheConnectionError;exports.CacheDriverNotInitializedError=types.CacheDriverNotInitializedError;exports.CacheError=types.CacheError;Object.defineProperty(exports,'CACHE_FOR',{enumerable:true,get:function(){return utils.CACHE_FOR}});exports.parseCacheKey=utils.parseCacheKey;//# sourceMappingURL=index.js.map
@@ -0,0 +1,77 @@
1
+ import type { CacheDriver, CacheKey, TaggedCacheDriver } from "./types";
2
+ /**
3
+ * Tagged Cache Wrapper
4
+ * Wraps a cache driver to automatically manage tag relationships
5
+ */
6
+ export declare class TaggedCache implements TaggedCacheDriver {
7
+ /**
8
+ * The tags associated with this tagged cache instance
9
+ */
10
+ protected cacheTags: string[];
11
+ /**
12
+ * The underlying cache driver
13
+ */
14
+ protected driver: CacheDriver<any, any>;
15
+ /**
16
+ * Constructor
17
+ */
18
+ constructor(tags: string[], driver: CacheDriver<any, any>);
19
+ /**
20
+ * Get the tag key prefix for storing tag-key relationships
21
+ */
22
+ protected tagKey(tag: string): string;
23
+ /**
24
+ * Store tag-key relationship
25
+ */
26
+ protected storeTaggedKey(key: string): Promise<void>;
27
+ /**
28
+ * Get all keys associated with tags
29
+ */
30
+ protected getTaggedKeys(): Promise<Set<string>>;
31
+ /**
32
+ * {@inheritdoc}
33
+ */
34
+ set(key: CacheKey, value: any, ttl?: number): Promise<any>;
35
+ /**
36
+ * {@inheritdoc}
37
+ */
38
+ get(key: CacheKey): Promise<any | null>;
39
+ /**
40
+ * {@inheritdoc}
41
+ */
42
+ remove(key: CacheKey): Promise<void>;
43
+ /**
44
+ * Invalidate (clear) all keys associated with the current tags
45
+ */
46
+ invalidate(): Promise<void>;
47
+ /**
48
+ * Flush all keys associated with the current tags
49
+ * @deprecated Use invalidate() instead for better semantics
50
+ */
51
+ flush(): Promise<void>;
52
+ /**
53
+ * {@inheritdoc}
54
+ */
55
+ has(key: CacheKey): Promise<boolean>;
56
+ /**
57
+ * {@inheritdoc}
58
+ */
59
+ remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
60
+ /**
61
+ * {@inheritdoc}
62
+ */
63
+ pull(key: CacheKey): Promise<any | null>;
64
+ /**
65
+ * {@inheritdoc}
66
+ */
67
+ forever(key: CacheKey, value: any): Promise<any>;
68
+ /**
69
+ * {@inheritdoc}
70
+ */
71
+ increment(key: CacheKey, value?: number): Promise<number>;
72
+ /**
73
+ * {@inheritdoc}
74
+ */
75
+ decrement(key: CacheKey, value?: number): Promise<number>;
76
+ }
77
+ //# sourceMappingURL=tagged-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagged-cache.d.ts","sourceRoot":"","sources":["../src/tagged-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExE;;;GAGG;AACH,qBAAa,WAAY,YAAW,iBAAiB;IACnD;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAExC;;OAEG;gBACgB,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAKhE;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrC;;OAEG;cACa,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D;;OAEG;cACa,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAerD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYvE;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAIpD;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxC;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;OAEG;IACU,QAAQ,CACnB,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAC3B,OAAO,CAAC,GAAG,CAAC;IAaf;;OAEG;IACU,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAUrD;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D;;OAEG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE;;OAEG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAG1E"}
@@ -0,0 +1,160 @@
1
+ 'use strict';/**
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
+ }exports.TaggedCache=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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"}