@wgtechlabs/nuvex 0.1.1

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 (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +427 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/cjs/core/client.js +981 -0
  5. package/dist/cjs/core/client.js.map +1 -0
  6. package/dist/cjs/core/database.js +297 -0
  7. package/dist/cjs/core/database.js.map +1 -0
  8. package/dist/cjs/core/engine.js +1202 -0
  9. package/dist/cjs/core/engine.js.map +1 -0
  10. package/dist/cjs/core/index.js +35 -0
  11. package/dist/cjs/core/index.js.map +1 -0
  12. package/dist/cjs/index.js +109 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/interfaces/index.js +12 -0
  15. package/dist/cjs/interfaces/index.js.map +1 -0
  16. package/dist/cjs/layers/index.js +22 -0
  17. package/dist/cjs/layers/index.js.map +1 -0
  18. package/dist/cjs/layers/memory.js +388 -0
  19. package/dist/cjs/layers/memory.js.map +1 -0
  20. package/dist/cjs/layers/postgres.js +492 -0
  21. package/dist/cjs/layers/postgres.js.map +1 -0
  22. package/dist/cjs/layers/redis.js +388 -0
  23. package/dist/cjs/layers/redis.js.map +1 -0
  24. package/dist/cjs/types/index.js +52 -0
  25. package/dist/cjs/types/index.js.map +1 -0
  26. package/dist/esm/core/client.js +944 -0
  27. package/dist/esm/core/client.js.map +1 -0
  28. package/dist/esm/core/database.js +289 -0
  29. package/dist/esm/core/database.js.map +1 -0
  30. package/dist/esm/core/engine.js +1198 -0
  31. package/dist/esm/core/engine.js.map +1 -0
  32. package/dist/esm/core/index.js +16 -0
  33. package/dist/esm/core/index.js.map +1 -0
  34. package/dist/esm/index.js +87 -0
  35. package/dist/esm/index.js.map +1 -0
  36. package/dist/esm/interfaces/index.js +11 -0
  37. package/dist/esm/interfaces/index.js.map +1 -0
  38. package/dist/esm/layers/index.js +16 -0
  39. package/dist/esm/layers/index.js.map +1 -0
  40. package/dist/esm/layers/memory.js +384 -0
  41. package/dist/esm/layers/memory.js.map +1 -0
  42. package/dist/esm/layers/postgres.js +485 -0
  43. package/dist/esm/layers/postgres.js.map +1 -0
  44. package/dist/esm/layers/redis.js +384 -0
  45. package/dist/esm/layers/redis.js.map +1 -0
  46. package/dist/esm/types/index.js +49 -0
  47. package/dist/esm/types/index.js.map +1 -0
  48. package/dist/types/core/client.d.ts +561 -0
  49. package/dist/types/core/client.d.ts.map +1 -0
  50. package/dist/types/core/database.d.ts +130 -0
  51. package/dist/types/core/database.d.ts.map +1 -0
  52. package/dist/types/core/engine.d.ts +450 -0
  53. package/dist/types/core/engine.d.ts.map +1 -0
  54. package/dist/types/core/index.d.ts +13 -0
  55. package/dist/types/core/index.d.ts.map +1 -0
  56. package/dist/types/index.d.ts +85 -0
  57. package/dist/types/index.d.ts.map +1 -0
  58. package/dist/types/interfaces/index.d.ts +209 -0
  59. package/dist/types/interfaces/index.d.ts.map +1 -0
  60. package/dist/types/layers/index.d.ts +16 -0
  61. package/dist/types/layers/index.d.ts.map +1 -0
  62. package/dist/types/layers/memory.d.ts +261 -0
  63. package/dist/types/layers/memory.d.ts.map +1 -0
  64. package/dist/types/layers/postgres.d.ts +313 -0
  65. package/dist/types/layers/postgres.d.ts.map +1 -0
  66. package/dist/types/layers/redis.d.ts +248 -0
  67. package/dist/types/layers/redis.d.ts.map +1 -0
  68. package/dist/types/types/index.d.ts +410 -0
  69. package/dist/types/types/index.d.ts.map +1 -0
  70. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/core/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Nuvex - Core Module Exports
3
+ * Next-gen Unified Vault Experience
4
+ *
5
+ * Clean exports for all core components
6
+ *
7
+ * @author Waren Gonzaga, WG Technology Labs
8
+ * @since 2025
9
+ */
10
+ // Core storage engine
11
+ export { StorageEngine } from './engine.js';
12
+ // Main client interface
13
+ export { NuvexClient } from './client.js';
14
+ // Database utilities
15
+ export * from './database.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sBAAsB;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAqB;AACrB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * # Nuvex - Next-gen Unified Vault Experience
3
+ *
4
+ * A production-ready, minimalist SDK for structured memory layering in Redis and PostgreSQL.
5
+ * Designed for any Node.js application that needs intelligent multi-layer storage with automatic
6
+ * data promotion, demotion, and comprehensive reliability features.
7
+ *
8
+ * ## Architecture Overview
9
+ *
10
+ * Nuvex implements a sophisticated three-tier storage system:
11
+ *
12
+ * ### Layer 1: Memory Cache (Ultra-fast)
13
+ * - **TTL**: Configurable (default: 24 hours)
14
+ * - **Use case**: Hot data, session information, frequently accessed content
15
+ * - **Performance**: Sub-millisecond access time
16
+ * - **Features**: LRU eviction, automatic cleanup, size limits
17
+ *
18
+ * ### Layer 2: Redis Cache (Fast & Distributed)
19
+ * - **TTL**: Configurable (default: 3 days)
20
+ * - **Use case**: Warm data, distributed caching across instances
21
+ * - **Performance**: 1-5ms access time
22
+ * - **Features**: Atomic operations, cluster support, persistence
23
+ *
24
+ * ### Layer 3: PostgreSQL (Persistent & Reliable)
25
+ * - **TTL**: Permanent storage with optional expiration
26
+ * - **Use case**: Cold data, critical information, audit trails
27
+ * - **Performance**: 5-50ms access time depending on query complexity
28
+ * - **Features**: ACID compliance, advanced querying, schema flexibility
29
+ *
30
+ * ## Key Components
31
+ *
32
+ * - **{@link StorageEngine}**: Low-level multi-layer storage implementation
33
+ * - **{@link NuvexClient}**: High-level client with convenience methods
34
+ * - **Database Utilities**: Schema management and migration tools
35
+ * - **Type System**: Comprehensive TypeScript definitions
36
+ *
37
+ * ## Quick Start Example
38
+ *
39
+ * ```typescript
40
+ * import { NuvexClient } from '@wgtechlabs/nuvex';
41
+ *
42
+ * const client = new NuvexClient({
43
+ * memory: { ttl: 3600000, maxSize: 10000 },
44
+ * redis: { url: 'redis://localhost:6379', ttl: 86400 },
45
+ * postgres: {
46
+ * host: 'localhost',
47
+ * database: 'myapp',
48
+ * user: 'user',
49
+ * password: 'pass'
50
+ * }
51
+ * });
52
+ *
53
+ * await client.connect();
54
+ *
55
+ * // Set data (automatically stored in all layers)
56
+ * await client.set('user:123', { name: 'John', email: 'john@example.com' });
57
+ *
58
+ * // Get data (automatically checks Memory → Redis → PostgreSQL)
59
+ * const user = await client.get('user:123');
60
+ * ```
61
+ * * ## Use Cases
62
+ *
63
+ * - **Session Management**: Store user sessions with automatic expiration
64
+ * - **API Caching**: Cache API responses with intelligent invalidation
65
+ * - **Configuration Storage**: Store application settings with fallback
66
+ * - **Real-time Data**: Handle high-frequency data with performance optimization
67
+ * - **Application State**: Store application state and user preferences
68
+ * - **Microservices**: Shared data layer across distributed services
69
+ *
70
+ * @author Waren Gonzaga, WG Technology Labs
71
+ * @since 2025
72
+ * @see {@link https://github.com/wgtechlabs/nuvex} GitHub Repository
73
+ * @see {@link https://wgtechlabs.com} WG Technology Labs
74
+ *
75
+ * @packageDocumentation
76
+ */
77
+ // Core components
78
+ export { StorageEngine } from './core/engine.js';
79
+ export { NuvexClient } from './core/client.js';
80
+ // Database utilities
81
+ export * from './core/database.js';
82
+ // Main export (recommended usage)
83
+ export { NuvexClient as Nuvex } from './core/client.js';
84
+ // Alternative exports for different use cases
85
+ export { NuvexClient as Client } from './core/client.js';
86
+ export { StorageEngine as Engine } from './core/engine.js';
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AAEH,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAqB;AACrB,cAAc,oBAAoB,CAAC;AAMnC,kCAAkC;AAClC,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAExD,8CAA8C;AAC9C,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Nuvex - Interface Definitions
3
+ * Next-gen Unified Vault Experience
4
+ *
5
+ * Core interfaces for the multi-layer storage SDK
6
+ *
7
+ * @author Waren Gonzaga, WG Technology Labs
8
+ * @since 2025
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Nuvex - Storage Layers
3
+ * Next-gen Unified Vault Experience
4
+ *
5
+ * Exports modular storage layer implementations for the 3-tier architecture.
6
+ * Each layer provides consistent interface but different performance and
7
+ * persistence characteristics.
8
+ *
9
+ * @author Waren Gonzaga, WG Technology Labs
10
+ * @version 1.0.0
11
+ * @since 2025
12
+ */
13
+ export { MemoryStorage } from './memory.js';
14
+ export { RedisStorage } from './redis.js';
15
+ export { PostgresStorage } from './postgres.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,384 @@
1
+ /**
2
+ * Nuvex - Memory Storage Layer (L1)
3
+ * Next-gen Unified Vault Experience
4
+ *
5
+ * In-memory cache layer with LRU (Least Recently Used) eviction policy.
6
+ * Provides the fastest access tier in the multi-layer storage architecture.
7
+ *
8
+ * Features:
9
+ * - LRU eviction with configurable maxSize
10
+ * - TTL-based expiration
11
+ * - Sub-millisecond access times
12
+ * - Automatic cleanup of expired entries
13
+ *
14
+ * @author Waren Gonzaga, WG Technology Labs
15
+ * @since 2025
16
+ */
17
+ /**
18
+ * Memory Storage Layer - L1 Cache with LRU Eviction
19
+ *
20
+ * Implements an in-memory cache with Least Recently Used (LRU) eviction policy.
21
+ * This layer provides the fastest access times but has limited capacity defined
22
+ * by maxSize. When the cache is full, the least recently accessed item is evicted
23
+ * to make room for new entries.
24
+ *
25
+ * **LRU Implementation:**
26
+ * - Uses JavaScript Map which maintains insertion order
27
+ * - On get(), moves accessed entry to end (marks as recently used)
28
+ * - On set(), evicts first entry (oldest/least recently used) when full
29
+ * - Combines LRU with TTL-based expiration for optimal memory management
30
+ *
31
+ * **Performance Characteristics:**
32
+ * - Get: O(1) average, O(n) worst case due to delete+set for LRU
33
+ * - Set: O(1) with occasional O(1) eviction
34
+ * - Memory: O(maxSize)
35
+ *
36
+ * @implements {StorageLayerInterface}
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // Create memory layer with 1000 entry limit
41
+ * const memory = new MemoryStorage(1000);
42
+ *
43
+ * // Store with 60 second TTL
44
+ * await memory.set('user:123', userData, 60);
45
+ *
46
+ * // Retrieve (marks as recently used)
47
+ * const data = await memory.get('user:123');
48
+ *
49
+ * // Check health
50
+ * const isHealthy = await memory.ping(); // Always true
51
+ * ```
52
+ *
53
+ * @class MemoryStorage
54
+ * @since 1.0.0
55
+ */
56
+ export class MemoryStorage {
57
+ /**
58
+ * Creates a new MemoryStorage instance
59
+ *
60
+ * @param maxSize - Maximum number of entries to store (default: 10,000)
61
+ * @param logger - Optional logger for debugging
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * // Default configuration
66
+ * const memory = new MemoryStorage();
67
+ *
68
+ * // Custom size limit
69
+ * const memory = new MemoryStorage(5000);
70
+ *
71
+ * // With logging
72
+ * const memory = new MemoryStorage(10000, console);
73
+ * ```
74
+ */
75
+ constructor(maxSize = 10000, logger = null) {
76
+ this.cache = new Map();
77
+ this.maxSize = maxSize;
78
+ this.logger = logger;
79
+ }
80
+ /**
81
+ * Retrieve a value from memory cache
82
+ *
83
+ * Implements LRU by moving accessed entries to the end of the Map,
84
+ * marking them as recently used. Automatically removes expired entries.
85
+ *
86
+ * @param key - The key to retrieve
87
+ * @returns Promise resolving to the value or null if not found/expired
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const value = await memory.get('user:123');
92
+ * if (value !== null) {
93
+ * console.log('Cache hit!');
94
+ * }
95
+ * ```
96
+ */
97
+ async get(key) {
98
+ const entry = this.cache.get(key);
99
+ if (!entry) {
100
+ return null;
101
+ }
102
+ // Check if entry has expired
103
+ if (entry.expires && Date.now() > entry.expires) {
104
+ this.cache.delete(key);
105
+ this.log('debug', `Memory L1: Expired entry removed: ${key}`);
106
+ return null;
107
+ }
108
+ // LRU: Move to end (mark as recently used)
109
+ // This is done by deleting and re-adding to maintain Map insertion order
110
+ this.cache.delete(key);
111
+ this.cache.set(key, entry);
112
+ return entry.value;
113
+ }
114
+ /**
115
+ * Store a value in memory cache
116
+ *
117
+ * Implements LRU eviction when cache is full. If the cache has reached
118
+ * maxSize and the key doesn't already exist, the oldest entry (first in Map)
119
+ * is evicted to make room for the new entry.
120
+ *
121
+ * @param key - The key to store
122
+ * @param value - The value to store
123
+ * @param ttlSeconds - Optional TTL in seconds
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * // Store without TTL
128
+ * await memory.set('config:app', configData);
129
+ *
130
+ * // Store with 5 minute TTL
131
+ * await memory.set('session:abc', sessionData, 300);
132
+ * ```
133
+ */
134
+ async set(key, value, ttlSeconds) {
135
+ // LRU eviction: Remove least recently used entry if cache is full
136
+ if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
137
+ const firstKey = this.cache.keys().next().value;
138
+ if (firstKey) {
139
+ this.cache.delete(firstKey);
140
+ this.log('debug', `Memory L1: LRU eviction: ${firstKey}`);
141
+ }
142
+ }
143
+ // Create entry with optional expiration
144
+ const entry = { value };
145
+ if (ttlSeconds) {
146
+ entry.expires = Date.now() + (ttlSeconds * 1000);
147
+ }
148
+ this.cache.set(key, entry);
149
+ }
150
+ /**
151
+ * Delete a value from memory cache
152
+ *
153
+ * @param key - The key to delete
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * await memory.delete('user:123');
158
+ * ```
159
+ */
160
+ async delete(key) {
161
+ this.cache.delete(key);
162
+ }
163
+ /**
164
+ * Check if a key exists in memory cache
165
+ *
166
+ * Verifies existence and checks if the entry has expired.
167
+ * Automatically removes expired entries.
168
+ *
169
+ * @param key - The key to check
170
+ * @returns Promise resolving to true if the key exists and is not expired
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * if (await memory.exists('user:123')) {
175
+ * console.log('Key exists in memory');
176
+ * }
177
+ * ```
178
+ */
179
+ async exists(key) {
180
+ const entry = this.cache.get(key);
181
+ if (!entry) {
182
+ return false;
183
+ }
184
+ // Check expiration
185
+ if (entry.expires && Date.now() > entry.expires) {
186
+ this.cache.delete(key);
187
+ return false;
188
+ }
189
+ return true;
190
+ }
191
+ /**
192
+ * Clear all entries from memory cache
193
+ *
194
+ * Removes all stored entries, resetting the cache to empty state.
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * await memory.clear();
199
+ * console.log('All memory cache cleared');
200
+ * ```
201
+ */
202
+ async clear() {
203
+ this.cache.clear();
204
+ this.log('info', 'Memory L1: Cache cleared');
205
+ }
206
+ /**
207
+ * Get all keys matching an optional pattern
208
+ *
209
+ * Returns all non-expired keys from the memory cache, optionally filtered
210
+ * by a glob pattern. Supports '*' (match any characters) and '?' (match single character).
211
+ *
212
+ * @param pattern - Optional glob pattern (default: '*' returns all keys)
213
+ * @returns Promise resolving to array of matching keys
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * // Get all keys
218
+ * const allKeys = await memory.keys();
219
+ *
220
+ * // Get keys matching pattern
221
+ * const userKeys = await memory.keys('user:*');
222
+ * ```
223
+ */
224
+ async keys(pattern) {
225
+ const now = Date.now();
226
+ const matchingKeys = [];
227
+ for (const [key, entry] of this.cache.entries()) {
228
+ // Skip expired entries
229
+ if (entry.expires && now > entry.expires) {
230
+ this.cache.delete(key);
231
+ continue;
232
+ }
233
+ // If no pattern or wildcard, include all keys
234
+ if (!pattern || pattern === '*') {
235
+ matchingKeys.push(key);
236
+ continue;
237
+ }
238
+ // Simple glob pattern matching
239
+ // Escape regex special chars, then convert glob wildcards
240
+ const escaped = pattern
241
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
242
+ .replace(/\*/g, '.*')
243
+ .replace(/\?/g, '.');
244
+ const regex = new RegExp(`^${escaped}$`);
245
+ if (regex.test(key)) {
246
+ matchingKeys.push(key);
247
+ }
248
+ }
249
+ return matchingKeys;
250
+ }
251
+ /**
252
+ * Health check for memory storage layer
253
+ *
254
+ * Memory storage is always available if the application is running,
255
+ * so this method always returns true unless there's a critical failure.
256
+ *
257
+ * @returns Promise resolving to true (memory is always available)
258
+ *
259
+ * @example
260
+ * ```typescript
261
+ * const isHealthy = await memory.ping();
262
+ * console.log('Memory layer healthy:', isHealthy);
263
+ * ```
264
+ */
265
+ async ping() {
266
+ try {
267
+ // Memory is always available if the app is running
268
+ // Perform a quick sanity check
269
+ const testKey = '__nuvex_health_check__';
270
+ const testEntry = { value: true };
271
+ this.cache.set(testKey, testEntry);
272
+ this.cache.delete(testKey);
273
+ return true;
274
+ }
275
+ catch (error) {
276
+ this.log('error', 'Memory L1: Health check failed', { error });
277
+ return false;
278
+ }
279
+ }
280
+ /**
281
+ * Get current cache size
282
+ *
283
+ * Returns the number of entries currently stored in the cache.
284
+ * Useful for monitoring and debugging.
285
+ *
286
+ * @returns Current number of entries in cache
287
+ *
288
+ * @example
289
+ * ```typescript
290
+ * console.log(`Cache usage: ${memory.size()}/${memory.getMaxSize()}`);
291
+ * ```
292
+ */
293
+ size() {
294
+ return this.cache.size;
295
+ }
296
+ /**
297
+ * Get maximum cache size
298
+ *
299
+ * Returns the configured maximum number of entries.
300
+ *
301
+ * @returns Maximum cache size
302
+ */
303
+ getMaxSize() {
304
+ return this.maxSize;
305
+ }
306
+ /**
307
+ * Clean up expired entries
308
+ *
309
+ * Iterates through all entries and removes expired ones.
310
+ * This is useful for manual cleanup or scheduled maintenance.
311
+ *
312
+ * @returns Number of entries removed
313
+ *
314
+ * @example
315
+ * ```typescript
316
+ * const cleaned = await memory.cleanup();
317
+ * console.log(`Removed ${cleaned} expired entries`);
318
+ * ```
319
+ */
320
+ async cleanup() {
321
+ const now = Date.now();
322
+ let cleaned = 0;
323
+ for (const [key, entry] of this.cache.entries()) {
324
+ if (entry.expires && now > entry.expires) {
325
+ this.cache.delete(key);
326
+ cleaned++;
327
+ }
328
+ }
329
+ if (cleaned > 0) {
330
+ this.log('debug', `Memory L1: Cleanup removed ${cleaned} expired entries`);
331
+ }
332
+ return cleaned;
333
+ }
334
+ /**
335
+ * Atomically increment a numeric value
336
+ *
337
+ * This operation is thread-safe for single-instance deployments.
338
+ * If the key doesn't exist or is expired, it's initialized to 0 before incrementing.
339
+ *
340
+ * @param key - The key to increment
341
+ * @param delta - The amount to increment by (can be negative for decrement)
342
+ * @param ttlSeconds - Optional TTL in seconds
343
+ * @returns Promise resolving to the new value after increment
344
+ *
345
+ * @example
346
+ * ```typescript
347
+ * const newValue = await memory.increment('counter', 1, 60);
348
+ * console.log(`Counter is now: ${newValue}`);
349
+ * ```
350
+ */
351
+ async increment(key, delta, ttlSeconds) {
352
+ const entry = this.cache.get(key);
353
+ // Check if entry exists and is not expired
354
+ let currentValue = 0;
355
+ if (entry) {
356
+ if (entry.expires && Date.now() > entry.expires) {
357
+ // Expired entry, treat as non-existent
358
+ this.cache.delete(key);
359
+ }
360
+ else {
361
+ currentValue = typeof entry.value === 'number' ? entry.value : 0;
362
+ }
363
+ }
364
+ // Calculate new value
365
+ const newValue = currentValue + delta;
366
+ // Store the new value (this also handles LRU eviction if needed)
367
+ await this.set(key, newValue, ttlSeconds);
368
+ return newValue;
369
+ }
370
+ /**
371
+ * Log a message if logger is configured
372
+ *
373
+ * @private
374
+ * @param level - Log level
375
+ * @param message - Log message
376
+ * @param meta - Optional metadata
377
+ */
378
+ log(level, message, meta) {
379
+ if (this.logger) {
380
+ this.logger[level](message, meta);
381
+ }
382
+ }
383
+ }
384
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/layers/memory.ts"],"names":[],"mappings":"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"}