@warlock.js/cache 3.0.19 → 3.0.22

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
@@ -3,10 +3,16 @@ import {BaseCacheDriver}from'./base-cache-driver.js';class CacheNode {
3
3
  value;
4
4
  next = null;
5
5
  prev = null;
6
- constructor(key, value) {
6
+ expiresAt;
7
+ constructor(key, value, ttl) {
7
8
  this.key = key;
8
9
  this.value = value;
9
- //
10
+ if (ttl && ttl !== Infinity) {
11
+ this.expiresAt = Date.now() + ttl * 1000;
12
+ }
13
+ }
14
+ get isExpired() {
15
+ return this.expiresAt !== undefined && this.expiresAt < Date.now();
10
16
  }
11
17
  }
12
18
  /**
@@ -32,12 +38,17 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
32
38
  * Tail of the cache
33
39
  */
34
40
  tail = new CacheNode("", null);
41
+ /**
42
+ * Cleanup interval reference
43
+ */
44
+ cleanupInterval;
35
45
  /**
36
46
  * {@inheritdoc}
37
47
  */
38
48
  constructor() {
39
49
  super();
40
50
  this.init();
51
+ this.startCleanup();
41
52
  }
42
53
  /**
43
54
  * Initialize the cache
@@ -46,6 +57,36 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
46
57
  this.head.next = this.tail;
47
58
  this.tail.prev = this.head;
48
59
  }
60
+ /**
61
+ * Start the cleanup process for expired items
62
+ */
63
+ startCleanup() {
64
+ // Clear existing interval if any
65
+ if (this.cleanupInterval) {
66
+ clearInterval(this.cleanupInterval);
67
+ }
68
+ this.cleanupInterval = setInterval(async () => {
69
+ const now = Date.now();
70
+ const expiredKeys = [];
71
+ for (const [key, node] of this.cache) {
72
+ if (node.expiresAt && node.expiresAt <= now) {
73
+ expiredKeys.push(key);
74
+ }
75
+ }
76
+ for (const key of expiredKeys) {
77
+ const node = this.cache.get(key);
78
+ if (node) {
79
+ this.removeNode(node);
80
+ this.cache.delete(key);
81
+ this.log("expired", key);
82
+ // Emit expired event
83
+ await this.emit("expired", { key });
84
+ }
85
+ }
86
+ }, 1000);
87
+ // do not block the process from exiting
88
+ this.cleanupInterval.unref();
89
+ }
49
90
  /**
50
91
  * {@inheritdoc}
51
92
  */
@@ -55,16 +96,26 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
55
96
  /**
56
97
  * {@inheritdoc}
57
98
  */
58
- async set(key, value, _ttl) {
59
- key = await this.parseKey(key);
99
+ async set(key, value, ttl) {
100
+ key = this.parseKey(key);
60
101
  this.log("caching", key);
102
+ if (ttl === undefined) {
103
+ ttl = this.ttl;
104
+ }
61
105
  const existingNode = this.cache.get(key);
62
106
  if (existingNode) {
63
107
  existingNode.value = value;
108
+ // Update TTL
109
+ if (ttl && ttl !== Infinity) {
110
+ existingNode.expiresAt = Date.now() + ttl * 1000;
111
+ }
112
+ else {
113
+ existingNode.expiresAt = undefined;
114
+ }
64
115
  this.moveHead(existingNode);
65
116
  }
66
117
  else {
67
- const newNode = new CacheNode(key, value);
118
+ const newNode = new CacheNode(key, value, ttl);
68
119
  this.cache.set(key, newNode);
69
120
  this.addNode(newNode);
70
121
  if (this.cache.size > this.capacity) {
@@ -72,6 +123,8 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
72
123
  }
73
124
  }
74
125
  this.log("cached", key);
126
+ // Emit set event
127
+ await this.emit("set", { key, value, ttl });
75
128
  return this;
76
129
  }
77
130
  /**
@@ -109,22 +162,55 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
109
162
  * {@inheritdoc}
110
163
  */
111
164
  async get(key) {
112
- const parsedKey = await this.parseKey(key);
165
+ const parsedKey = this.parseKey(key);
113
166
  this.log("fetching", parsedKey);
114
167
  const node = this.cache.get(parsedKey);
115
168
  if (!node) {
116
169
  this.log("notFound", parsedKey);
170
+ // Emit miss event
171
+ await this.emit("miss", { key: parsedKey });
172
+ return null;
173
+ }
174
+ // Check if expired
175
+ if (node.isExpired) {
176
+ this.removeNode(node);
177
+ this.cache.delete(parsedKey);
178
+ this.log("expired", parsedKey);
179
+ // Emit expired event
180
+ await this.emit("expired", { key: parsedKey });
181
+ // Also emit miss since we're returning null
182
+ await this.emit("miss", { key: parsedKey });
117
183
  return null;
118
184
  }
119
185
  this.moveHead(node);
120
186
  this.log("fetched", parsedKey);
121
- return node.value;
187
+ const value = node.value;
188
+ // Apply cloning for immutability protection
189
+ if (value === null || value === undefined) {
190
+ return value;
191
+ }
192
+ const type = typeof value;
193
+ if (type === "string" || type === "number" || type === "boolean") {
194
+ // Emit hit event
195
+ await this.emit("hit", { key: parsedKey, value });
196
+ return value;
197
+ }
198
+ try {
199
+ const clonedValue = structuredClone(value);
200
+ // Emit hit event
201
+ await this.emit("hit", { key: parsedKey, value: clonedValue });
202
+ return clonedValue;
203
+ }
204
+ catch (error) {
205
+ this.logError(`Failed to clone cached value for ${parsedKey}`, error);
206
+ throw error;
207
+ }
122
208
  }
123
209
  /**
124
210
  * {@inheritdoc}
125
211
  */
126
212
  async remove(key) {
127
- const parsedKey = await this.parseKey(key);
213
+ const parsedKey = this.parseKey(key);
128
214
  this.log("removing", parsedKey);
129
215
  const node = this.cache.get(parsedKey);
130
216
  if (node) {
@@ -132,6 +218,8 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
132
218
  this.cache.delete(parsedKey);
133
219
  }
134
220
  this.log("removed", parsedKey);
221
+ // Emit removed event
222
+ await this.emit("removed", { key: parsedKey });
135
223
  }
136
224
  /**
137
225
  * {@inheritdoc}
@@ -141,6 +229,8 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
141
229
  this.cache.clear();
142
230
  this.init();
143
231
  this.log("flushed");
232
+ // Emit flushed event
233
+ await this.emit("flushed");
144
234
  }
145
235
  /**
146
236
  * Get lru capacity
@@ -148,4 +238,15 @@ class LRUMemoryCacheDriver extends BaseCacheDriver {
148
238
  get capacity() {
149
239
  return this.options.capacity || 1000;
150
240
  }
241
+ /**
242
+ * {@inheritdoc}
243
+ */
244
+ async disconnect() {
245
+ // Clear the cleanup interval to prevent memory leaks
246
+ if (this.cleanupInterval) {
247
+ clearInterval(this.cleanupInterval);
248
+ this.cleanupInterval = undefined;
249
+ }
250
+ await super.disconnect();
251
+ }
151
252
  }export{LRUMemoryCacheDriver};//# sourceMappingURL=lru-memory-cache-driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lru-memory-cache-driver.js","sources":["../../src/drivers/lru-memory-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lru-memory-cache-driver.js","sources":["../../src/drivers/lru-memory-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ /// <reference types="node" />
1
2
  import type { GenericObject } from "@mongez/reinforcements";
2
- import type { CacheDriver, MemoryCacheOptions } from "../types";
3
+ import type { CacheDriver, CacheKey, MemoryCacheOptions } from "../types";
3
4
  import { BaseCacheDriver } from "./base-cache-driver";
4
5
  export declare class MemoryCacheDriver extends BaseCacheDriver<MemoryCacheDriver, MemoryCacheOptions> implements CacheDriver<MemoryCacheDriver, MemoryCacheOptions> {
5
6
  /**
@@ -17,6 +18,14 @@ export declare class MemoryCacheDriver extends BaseCacheDriver<MemoryCacheDriver
17
18
  key: string;
18
19
  expiresAt: number;
19
20
  }>;
21
+ /**
22
+ * Cleanup interval reference
23
+ */
24
+ protected cleanupInterval?: NodeJS.Timeout;
25
+ /**
26
+ * Access order tracking for LRU eviction (when maxSize is set)
27
+ */
28
+ protected accessOrder: string[];
20
29
  /**
21
30
  * {@inheritdoc}
22
31
  */
@@ -32,15 +41,15 @@ export declare class MemoryCacheDriver extends BaseCacheDriver<MemoryCacheDriver
32
41
  /**
33
42
  * {@inheritdoc}
34
43
  */
35
- set(key: string | GenericObject, value: any, ttl?: number): Promise<this>;
44
+ set(key: CacheKey, value: any, ttl?: number): Promise<this>;
36
45
  /**
37
46
  * {@inheritdoc}
38
47
  */
39
- get(key: string | GenericObject): Promise<any>;
48
+ get(key: CacheKey): Promise<any>;
40
49
  /**
41
50
  * {@inheritdoc}
42
51
  */
43
- remove(key: string | GenericObject): Promise<void>;
52
+ remove(key: CacheKey): Promise<void>;
44
53
  /**
45
54
  * {@inheritdoc}
46
55
  */
@@ -48,6 +57,26 @@ export declare class MemoryCacheDriver extends BaseCacheDriver<MemoryCacheDriver
48
57
  /**
49
58
  * Set the temporary data
50
59
  */
51
- protected setTemporaryData(key: string | GenericObject, parsedKey: string, ttl: number): void;
60
+ protected setTemporaryData(key: CacheKey, parsedKey: string, ttl: number): void;
61
+ /**
62
+ * Track access for LRU eviction
63
+ */
64
+ protected trackAccess(key: string): void;
65
+ /**
66
+ * Remove key from access order tracking
67
+ */
68
+ protected removeFromAccessOrder(key: string): void;
69
+ /**
70
+ * Enforce max size by evicting least recently used items
71
+ */
72
+ protected enforceMaxSize(): Promise<void>;
73
+ /**
74
+ * Get current cache size (number of cached items)
75
+ */
76
+ protected getCacheSize(): number;
77
+ /**
78
+ * {@inheritdoc}
79
+ */
80
+ disconnect(): Promise<void>;
52
81
  }
53
82
  //# sourceMappingURL=memory-cache-driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/memory-cache-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAa,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,iBACX,SAAQ,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,CAC7D,YAAW,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAE7D;;OAEG;IACI,IAAI,SAAY;IAEvB;;OAEG;IACI,IAAI,EAAE,aAAa,CAAM;IAEhC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAC7B,MAAM,EACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CACF,CAAM;IAEP;;OAEG;;IAOH;;OAEG;IACI,YAAY;IAkBnB;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAY9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAuBtE;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAe5C;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAU/C;;OAEG;IACU,KAAK;IAWlB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,MAAM,GAAG,aAAa,EAC3B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM;CAOd"}
1
+ {"version":3,"file":"memory-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/memory-cache-driver.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAEV,WAAW,EACX,QAAQ,EACR,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,iBACX,SAAQ,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,CAC7D,YAAW,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAE7D;;OAEG;IACI,IAAI,SAAY;IAEvB;;OAEG;IACI,IAAI,EAAE,aAAa,CAAM;IAEhC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAC7B,MAAM,EACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CACF,CAAM;IAEP;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAE3C;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IAErC;;OAEG;;IAOH;;OAEG;IACI,YAAY;IAyBnB;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAY9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAsCxD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;IA6B9B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ;IAmBjC;;OAEG;IACU,KAAK;IAelB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAOxE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;IAajC;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM;IAO3C;;OAEG;cACa,cAAc;IAmB9B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM;IAKhC;;OAEG;IACU,UAAU;CASxB"}
@@ -1,4 +1,4 @@
1
- import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'./base-cache-driver.js';class MemoryCacheDriver extends BaseCacheDriver {
1
+ import {unset,get,set}from'@mongez/reinforcements';import {BaseCacheDriver}from'./base-cache-driver.js';class MemoryCacheDriver extends BaseCacheDriver {
2
2
  /**
3
3
  * {@inheritdoc}
4
4
  */
@@ -11,6 +11,14 @@ import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'
11
11
  * List of data that will be cleared from cache
12
12
  */
13
13
  temporaryData = {};
14
+ /**
15
+ * Cleanup interval reference
16
+ */
17
+ cleanupInterval;
18
+ /**
19
+ * Access order tracking for LRU eviction (when maxSize is set)
20
+ */
21
+ accessOrder = [];
14
22
  /**
15
23
  * {@inheritdoc}
16
24
  */
@@ -22,25 +30,31 @@ import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'
22
30
  * Start the cleanup process whenever a data that has a cache key is set
23
31
  */
24
32
  startCleanup() {
25
- const interval = setInterval(() => {
33
+ // Clear existing interval if any
34
+ if (this.cleanupInterval) {
35
+ clearInterval(this.cleanupInterval);
36
+ }
37
+ this.cleanupInterval = setInterval(async () => {
26
38
  const now = Date.now();
27
39
  for (const key in this.temporaryData) {
28
40
  if (this.temporaryData[key].expiresAt <= now) {
29
- this.remove(this.temporaryData[key].key);
41
+ await this.remove(this.temporaryData[key].key);
30
42
  delete this.temporaryData[key];
31
43
  this.log("expired", key);
44
+ // Emit expired event
45
+ await this.emit("expired", { key });
32
46
  }
33
47
  }
34
48
  }, 1000);
35
49
  // do not block the process from exiting
36
- interval.unref();
50
+ this.cleanupInterval.unref();
37
51
  }
38
52
  /**
39
53
  * {@inheritdoc}
40
54
  */
41
55
  async removeNamespace(namespace) {
42
56
  this.log("clearing", namespace);
43
- namespace = await this.parseKey(namespace);
57
+ namespace = this.parseKey(namespace);
44
58
  unset(this.data, [namespace]);
45
59
  this.log("cleared", namespace);
46
60
  return this;
@@ -49,7 +63,7 @@ import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'
49
63
  * {@inheritdoc}
50
64
  */
51
65
  async set(key, value, ttl) {
52
- const parsedKey = await this.parseKey(key);
66
+ const parsedKey = this.parseKey(key);
53
67
  this.log("caching", parsedKey);
54
68
  if (ttl === undefined) {
55
69
  ttl = this.ttl;
@@ -59,31 +73,61 @@ import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'
59
73
  // it means we need to check for expiration
60
74
  this.setTemporaryData(key, parsedKey, ttl);
61
75
  }
76
+ // Check if key already exists
77
+ const existingData = get(this.data, parsedKey);
78
+ const isNewKey = !existingData;
62
79
  set(this.data, parsedKey, data);
80
+ // Track access for LRU eviction
81
+ this.trackAccess(parsedKey);
82
+ // Check size limit and evict if necessary
83
+ if (isNewKey && this.options.maxSize) {
84
+ await this.enforceMaxSize();
85
+ }
63
86
  this.log("cached", parsedKey);
87
+ // Emit set event
88
+ await this.emit("set", { key: parsedKey, value, ttl });
64
89
  return this;
65
90
  }
66
91
  /**
67
92
  * {@inheritdoc}
68
93
  */
69
94
  async get(key) {
70
- const parsedKey = await this.parseKey(key);
95
+ const parsedKey = this.parseKey(key);
71
96
  this.log("fetching", parsedKey);
72
97
  const value = get(this.data, parsedKey);
73
98
  if (!value) {
74
99
  this.log("notFound", parsedKey);
100
+ // Emit miss event
101
+ await this.emit("miss", { key: parsedKey });
75
102
  return null;
76
103
  }
77
- return this.parseCachedData(parsedKey, value);
104
+ const result = await this.parseCachedData(parsedKey, value);
105
+ if (result === null) {
106
+ // Expired
107
+ await this.emit("miss", { key: parsedKey });
108
+ }
109
+ else {
110
+ // Track access for LRU
111
+ this.trackAccess(parsedKey);
112
+ // Emit hit event
113
+ await this.emit("hit", { key: parsedKey, value: result });
114
+ }
115
+ return result;
78
116
  }
79
117
  /**
80
118
  * {@inheritdoc}
81
119
  */
82
120
  async remove(key) {
83
- const parsedKey = await this.parseKey(key);
121
+ const parsedKey = this.parseKey(key);
84
122
  this.log("removing", parsedKey);
85
123
  unset(this.data, [parsedKey]);
124
+ // Clean up from temporaryData as well
125
+ delete this.temporaryData[parsedKey];
126
+ // Remove from access order
127
+ this.removeFromAccessOrder(parsedKey);
86
128
  this.log("removed", parsedKey);
129
+ // Emit removed event
130
+ await this.emit("removed", { key: parsedKey });
87
131
  }
88
132
  /**
89
133
  * {@inheritdoc}
@@ -95,8 +139,11 @@ import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'
95
139
  }
96
140
  else {
97
141
  this.data = {};
142
+ this.accessOrder = [];
98
143
  }
99
144
  this.log("flushed");
145
+ // Emit flushed event
146
+ await this.emit("flushed");
100
147
  }
101
148
  /**
102
149
  * Set the temporary data
@@ -107,4 +154,65 @@ import {unset,set,get}from'@mongez/reinforcements';import {BaseCacheDriver}from'
107
154
  expiresAt: Date.now() + ttl * 1000,
108
155
  };
109
156
  }
157
+ /**
158
+ * Track access for LRU eviction
159
+ */
160
+ trackAccess(key) {
161
+ if (!this.options.maxSize)
162
+ return;
163
+ // Remove key from current position
164
+ const index = this.accessOrder.indexOf(key);
165
+ if (index > -1) {
166
+ this.accessOrder.splice(index, 1);
167
+ }
168
+ // Add to end (most recently used)
169
+ this.accessOrder.push(key);
170
+ }
171
+ /**
172
+ * Remove key from access order tracking
173
+ */
174
+ removeFromAccessOrder(key) {
175
+ const index = this.accessOrder.indexOf(key);
176
+ if (index > -1) {
177
+ this.accessOrder.splice(index, 1);
178
+ }
179
+ }
180
+ /**
181
+ * Enforce max size by evicting least recently used items
182
+ */
183
+ async enforceMaxSize() {
184
+ if (!this.options.maxSize)
185
+ return;
186
+ // Count actual cache items (excluding internal metadata)
187
+ const cacheSize = this.getCacheSize();
188
+ while (cacheSize > this.options.maxSize && this.accessOrder.length > 0) {
189
+ // Evict least recently used (first in array)
190
+ const lruKey = this.accessOrder.shift();
191
+ if (lruKey) {
192
+ this.log("removing", lruKey);
193
+ unset(this.data, [lruKey]);
194
+ delete this.temporaryData[lruKey];
195
+ this.log("removed", lruKey);
196
+ // Could emit 'evicted' event if we add that type
197
+ }
198
+ }
199
+ }
200
+ /**
201
+ * Get current cache size (number of cached items)
202
+ */
203
+ getCacheSize() {
204
+ // Count top-level keys in data object
205
+ return Object.keys(this.data).length;
206
+ }
207
+ /**
208
+ * {@inheritdoc}
209
+ */
210
+ async disconnect() {
211
+ // Clear the cleanup interval to prevent memory leaks
212
+ if (this.cleanupInterval) {
213
+ clearInterval(this.cleanupInterval);
214
+ this.cleanupInterval = undefined;
215
+ }
216
+ await super.disconnect();
217
+ }
110
218
  }export{MemoryCacheDriver};//# sourceMappingURL=memory-cache-driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-cache-driver.js","sources":["../../src/drivers/memory-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-cache-driver.js","sources":["../../src/drivers/memory-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { GenericObject } from "@mongez/reinforcements";
2
- import type { CacheDriver, MemoryExtendedCacheOptions } from "../types";
1
+ import type { CacheDriver, CacheKey, MemoryExtendedCacheOptions } from "../types";
3
2
  import { MemoryCacheDriver } from "./memory-cache-driver";
4
3
  export declare class MemoryExtendedCacheDriver extends MemoryCacheDriver implements CacheDriver<MemoryExtendedCacheDriver, MemoryExtendedCacheOptions> {
5
4
  /**
@@ -9,6 +8,6 @@ export declare class MemoryExtendedCacheDriver extends MemoryCacheDriver impleme
9
8
  /**
10
9
  * {@inheritdoc}
11
10
  */
12
- get(key: string | GenericObject): Promise<any>;
11
+ get(key: CacheKey): Promise<any>;
13
12
  }
14
13
  //# sourceMappingURL=memory-extended-cache-driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-extended-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/memory-extended-cache-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAEV,WAAW,EACX,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAAa,yBACX,SAAQ,iBACR,YAAW,WAAW,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IAE7E;;OAEG;IACI,IAAI,SAAoB;IAE/B;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;CAsB7C"}
1
+ {"version":3,"file":"memory-extended-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/memory-extended-cache-driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,WAAW,EACX,QAAQ,EACR,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAAa,yBACX,SAAQ,iBACR,YAAW,WAAW,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IAE7E;;OAEG;IACI,IAAI,SAAoB;IAE/B;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;CAsB/B"}
@@ -7,7 +7,7 @@ import {get}from'@mongez/reinforcements';import {MemoryCacheDriver}from'./memory
7
7
  * {@inheritdoc}
8
8
  */
9
9
  async get(key) {
10
- const parsedKey = await this.parseKey(key);
10
+ const parsedKey = this.parseKey(key);
11
11
  this.log("fetching", parsedKey);
12
12
  const value = get(this.data, parsedKey);
13
13
  if (!value) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-extended-cache-driver.js","sources":["../../src/drivers/memory-extended-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"kGASM,MAAO,yBACX,SAAQ,iBAAiB,CAAA;AAGzB;;AAEG;IACI,IAAI,GAAG,gBAAgB,CAAC;AAE/B;;AAEG;IACI,MAAM,GAAG,CAAC,GAA2B,EAAA;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAE3C,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAc,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAChC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAE1C,QAAA,IAAI,GAAG,EAAE;;YAEP,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAA;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAC/C;AACF"}
1
+ {"version":3,"file":"memory-extended-cache-driver.js","sources":["../../src/drivers/memory-extended-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"kGASM,MAAO,yBACX,SAAQ,iBAAiB,CAAA;AAGzB;;AAEG;IACI,IAAI,GAAG,gBAAgB,CAAC;AAE/B;;AAEG;IACI,MAAM,GAAG,CAAC,GAAa,EAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAErC,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAc,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAChC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAE1C,QAAA,IAAI,GAAG,EAAE;;YAEP,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAA;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAC/C;AACF"}
@@ -1,5 +1,5 @@
1
1
  import type { GenericObject } from "@mongez/reinforcements";
2
- import type { CacheDriver, NullCacheDriverOptions } from "../types";
2
+ import type { CacheDriver, CacheKey, NullCacheDriverOptions } from "../types";
3
3
  import { BaseCacheDriver } from "./base-cache-driver";
4
4
  export declare class NullCacheDriver extends BaseCacheDriver<NullCacheDriver, NullCacheDriverOptions> implements CacheDriver<NullCacheDriver, NullCacheDriverOptions> {
5
5
  /**
@@ -29,7 +29,7 @@ export declare class NullCacheDriver extends BaseCacheDriver<NullCacheDriver, Nu
29
29
  /**
30
30
  * {@inheritdoc}
31
31
  */
32
- parseKey(_key: string | GenericObject): Promise<string>;
32
+ parseKey(_key: CacheKey): string;
33
33
  /**
34
34
  * {@inheritdoc}
35
35
  */
@@ -37,15 +37,15 @@ export declare class NullCacheDriver extends BaseCacheDriver<NullCacheDriver, Nu
37
37
  /**
38
38
  * {@inheritdoc}
39
39
  */
40
- set(key: string | GenericObject, _value: any): Promise<this>;
40
+ set(key: CacheKey, _value: any): Promise<this>;
41
41
  /**
42
42
  * {@inheritdoc}
43
43
  */
44
- get(key: string | GenericObject): Promise<any>;
44
+ get(key: CacheKey): Promise<any>;
45
45
  /**
46
46
  * {@inheritdoc}
47
47
  */
48
- remove(key: string | GenericObject): Promise<void>;
48
+ remove(key: CacheKey): Promise<void>;
49
49
  /**
50
50
  * {@inheritdoc}
51
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"null-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/null-cache-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,eACX,SAAQ,eAAe,CAAC,eAAe,EAAE,sBAAsB,CAC/D,YAAW,WAAW,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAE/D;;OAEG;IACI,OAAO,EAAE,aAAa,CAAM;IAEnC;;OAEG;IACI,IAAI,SAAU;IAErB;;OAEG;IACI,IAAI,EAAE,aAAa,CAAM;IAEhC;;OAEG;IACH,IAAW,MAAM,SAEhB;IAED;;OAEG;gBACgB,OAAO,GAAE,aAAkB;IAK9C;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,aAAa;IAKxC;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAIlD;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAQ9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,MAAM,EAAE,GAAG;IAQzD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAQ5C;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAM/C;;OAEG;IACU,KAAK;IAMlB;;OAEG;IACU,OAAO;CAGrB"}
1
+ {"version":3,"file":"null-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/null-cache-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,eACX,SAAQ,eAAe,CAAC,eAAe,EAAE,sBAAsB,CAC/D,YAAW,WAAW,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAE/D;;OAEG;IACI,OAAO,EAAE,aAAa,CAAM;IAEnC;;OAEG;IACI,IAAI,SAAU;IAErB;;OAEG;IACI,IAAI,EAAE,aAAa,CAAM;IAEhC;;OAEG;IACH,IAAW,MAAM,SAEhB;IAED;;OAEG;gBACgB,OAAO,GAAE,aAAkB;IAK9C;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,aAAa;IAKxC;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAI9B;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAQ9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG;IAQ3C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;IAQ9B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ;IAMjC;;OAEG;IACU,KAAK;IAMlB;;OAEG;IACU,OAAO;CAGrB"}
@@ -34,7 +34,7 @@ import {log}from'@warlock.js/logger';import {BaseCacheDriver}from'./base-cache-d
34
34
  /**
35
35
  * {@inheritdoc}
36
36
  */
37
- async parseKey(_key) {
37
+ parseKey(_key) {
38
38
  return "";
39
39
  }
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"null-cache-driver.js","sources":["../../src/drivers/null-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"0FAKM,MAAO,eACX,SAAQ,eAAwD,CAAA;AAGhE;;AAEG;IACI,OAAO,GAAkB,EAAE,CAAC;AAEnC;;AAEG;IACI,IAAI,GAAG,MAAM,CAAC;AAErB;;AAEG;IACI,IAAI,GAAkB,EAAE,CAAC;AAEhC;;AAEG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,WAAA,CAAmB,UAAyB,EAAE,EAAA;AAC5C,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1B;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,QAAQ,CAAC,IAA4B,EAAA;AAChD,QAAA,OAAO,EAAE,CAAC;KACX;AAED;;AAEG;IACI,MAAM,eAAe,CAAC,SAAiB,EAAA;QAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAEnD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAErD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,GAAG,CAAC,GAA2B,EAAE,MAAW,EAAA;QACvD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAEtC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,GAAG,CAAC,GAA2B,EAAA;QAC1C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,MAAM,CAAC,GAA2B,EAAA;QAC7C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;KACtC;AAED;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAErC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KACxC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,gCAAgC,CAAC,CAAC;KACrE;AACF"}
1
+ {"version":3,"file":"null-cache-driver.js","sources":["../../src/drivers/null-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"0FAKM,MAAO,eACX,SAAQ,eAAwD,CAAA;AAGhE;;AAEG;IACI,OAAO,GAAkB,EAAE,CAAC;AAEnC;;AAEG;IACI,IAAI,GAAG,MAAM,CAAC;AAErB;;AAEG;IACI,IAAI,GAAkB,EAAE,CAAC;AAEhC;;AAEG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,WAAA,CAAmB,UAAyB,EAAE,EAAA;AAC5C,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1B;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,QAAQ,CAAC,IAAc,EAAA;AAC5B,QAAA,OAAO,EAAE,CAAC;KACX;AAED;;AAEG;IACI,MAAM,eAAe,CAAC,SAAiB,EAAA;QAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAEnD,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAErD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,GAAG,CAAC,GAAa,EAAE,MAAW,EAAA;QACzC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAEtC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,GAAG,CAAC,GAAa,EAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,MAAM,CAAC,GAAa,EAAA;QAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;KACtC;AAED;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAErC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KACxC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,gCAAgC,CAAC,CAAC;KACrE;AACF"}