@wgtechlabs/nuvex 0.2.0 → 0.2.1-dev.e91ecac

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 (45) hide show
  1. package/README.md +19 -5
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cjs/core/client.js +57 -32
  4. package/dist/cjs/core/client.js.map +1 -1
  5. package/dist/cjs/core/database.js +11 -8
  6. package/dist/cjs/core/database.js.map +1 -1
  7. package/dist/cjs/core/engine.js +112 -63
  8. package/dist/cjs/core/engine.js.map +1 -1
  9. package/dist/cjs/layers/memory.js +13 -1
  10. package/dist/cjs/layers/memory.js.map +1 -1
  11. package/dist/cjs/layers/postgres.js +222 -19
  12. package/dist/cjs/layers/postgres.js.map +1 -1
  13. package/dist/cjs/layers/redis.js +78 -12
  14. package/dist/cjs/layers/redis.js.map +1 -1
  15. package/dist/cjs/types/index.js.map +1 -1
  16. package/dist/esm/core/client.js +57 -32
  17. package/dist/esm/core/client.js.map +1 -1
  18. package/dist/esm/core/database.js +11 -8
  19. package/dist/esm/core/database.js.map +1 -1
  20. package/dist/esm/core/engine.js +113 -64
  21. package/dist/esm/core/engine.js.map +1 -1
  22. package/dist/esm/layers/memory.js +13 -1
  23. package/dist/esm/layers/memory.js.map +1 -1
  24. package/dist/esm/layers/postgres.js +223 -20
  25. package/dist/esm/layers/postgres.js.map +1 -1
  26. package/dist/esm/layers/redis.js +78 -12
  27. package/dist/esm/layers/redis.js.map +1 -1
  28. package/dist/esm/types/index.js.map +1 -1
  29. package/dist/types/core/client.d.ts +3 -2
  30. package/dist/types/core/client.d.ts.map +1 -1
  31. package/dist/types/core/database.d.ts +5 -1
  32. package/dist/types/core/database.d.ts.map +1 -1
  33. package/dist/types/core/engine.d.ts +7 -1
  34. package/dist/types/core/engine.d.ts.map +1 -1
  35. package/dist/types/interfaces/index.d.ts +5 -0
  36. package/dist/types/interfaces/index.d.ts.map +1 -1
  37. package/dist/types/layers/memory.d.ts +1 -0
  38. package/dist/types/layers/memory.d.ts.map +1 -1
  39. package/dist/types/layers/postgres.d.ts +37 -3
  40. package/dist/types/layers/postgres.d.ts.map +1 -1
  41. package/dist/types/layers/redis.d.ts +5 -1
  42. package/dist/types/layers/redis.d.ts.map +1 -1
  43. package/dist/types/types/index.d.ts +22 -3
  44. package/dist/types/types/index.d.ts.map +1 -1
  45. package/package.json +11 -14
@@ -18,7 +18,8 @@
18
18
  */
19
19
  import pkg from 'pg';
20
20
  const { Pool } = pkg;
21
- import { validateSQLIdentifier } from '../core/database.js';
21
+ import { randomUUID } from 'node:crypto';
22
+ import { setupNuvexSchema, validateSQLIdentifier } from '../core/database.js';
22
23
  /**
23
24
  * PostgreSQL Storage Layer - L3 Persistent Storage
24
25
  *
@@ -115,14 +116,27 @@ export class PostgresStorage {
115
116
  this.pool = null;
116
117
  this.connected = false;
117
118
  this.logger = logger;
119
+ this.schemaReady = false;
120
+ this.lastSchemaIssue = null;
118
121
  // Check if config is already a Pool instance
119
122
  this.ownsPool = !('query' in config && typeof config.query === 'function');
120
123
  // Extract schema configuration with defaults
121
124
  // Note: Schema is only extracted from config objects, not from existing Pool instances
122
- const schema = this.ownsPool ? config.schema : undefined;
125
+ const schema = this.ownsPool
126
+ ? config.schema
127
+ : undefined;
123
128
  this.tableName = schema?.tableName ?? 'nuvex_storage';
124
129
  this.keyColumn = schema?.columns?.key ?? 'nuvex_key';
125
130
  this.valueColumn = schema?.columns?.value ?? 'nuvex_data';
131
+ this.autoSetupSchema = this.ownsPool
132
+ ? Boolean(config.autoSetupSchema)
133
+ : false;
134
+ this.enableTrigram = this.ownsPool
135
+ ? Boolean(config.enableTrigram)
136
+ : false;
137
+ this.enableCleanupJob = this.ownsPool
138
+ ? Boolean(config.enableCleanupJob)
139
+ : false;
126
140
  // Validate all identifiers to prevent SQL injection
127
141
  validateSQLIdentifier(this.tableName, 'table name');
128
142
  validateSQLIdentifier(this.keyColumn, 'key column name');
@@ -160,13 +174,37 @@ export class PostgresStorage {
160
174
  if (this.pool) {
161
175
  await this.pool.query('SELECT 1');
162
176
  this.connected = true;
163
- this.log('info', 'PostgreSQL L3: Connected successfully');
177
+ if (this.autoSetupSchema) {
178
+ this.log('info', 'PostgreSQL L3: Auto-setup enabled, ensuring Nuvex schema exists', {
179
+ tableName: this.tableName,
180
+ enableTrigram: this.enableTrigram,
181
+ enableCleanupJob: this.enableCleanupJob,
182
+ });
183
+ await setupNuvexSchema(this.pool, {
184
+ enableTrigram: this.enableTrigram,
185
+ enableCleanupJob: this.enableCleanupJob,
186
+ schema: {
187
+ tableName: this.tableName,
188
+ columns: {
189
+ key: this.keyColumn,
190
+ value: this.valueColumn,
191
+ },
192
+ },
193
+ }, this.logger ?? undefined);
194
+ }
195
+ this.schemaReady = await this.isReady();
196
+ this.log('info', 'PostgreSQL L3: Connected successfully', {
197
+ tableName: this.tableName,
198
+ ready: this.schemaReady,
199
+ });
164
200
  }
165
201
  }
166
202
  catch (error) {
167
203
  this.connected = false;
204
+ this.schemaReady = false;
205
+ this.lastSchemaIssue = null;
168
206
  this.log('error', 'PostgreSQL L3: Connection failed', {
169
- error: error instanceof Error ? error.message : String(error)
207
+ error: error instanceof Error ? error.message : String(error),
170
208
  });
171
209
  throw error;
172
210
  }
@@ -188,6 +226,8 @@ export class PostgresStorage {
188
226
  this.log('info', 'PostgreSQL L3: Disconnected');
189
227
  }
190
228
  this.connected = false;
229
+ this.schemaReady = false;
230
+ this.lastSchemaIssue = null;
191
231
  }
192
232
  /**
193
233
  * Retrieve a value from PostgreSQL
@@ -219,10 +259,7 @@ export class PostgresStorage {
219
259
  return result.rows[0][this.valueColumn];
220
260
  }
221
261
  catch (error) {
222
- // Table might not exist yet, that's okay
223
- this.log('debug', `PostgreSQL L3: Error getting key: ${key}`, {
224
- error: error instanceof Error ? error.message : String(error)
225
- });
262
+ this.handleQueryError('get', error, { key });
226
263
  return null;
227
264
  }
228
265
  }
@@ -254,7 +291,9 @@ export class PostgresStorage {
254
291
  throw new Error('PostgreSQL not connected');
255
292
  }
256
293
  try {
257
- const expiresAt = ttlSeconds ? new Date(Date.now() + (ttlSeconds * 1000)) : null;
294
+ const expiresAt = ttlSeconds
295
+ ? new Date(Date.now() + ttlSeconds * 1000)
296
+ : null;
258
297
  await this.pool.query(`INSERT INTO ${this.tableName} (${this.keyColumn}, ${this.valueColumn}, expires_at)
259
298
  VALUES ($1, $2, $3)
260
299
  ON CONFLICT (${this.keyColumn})
@@ -263,7 +302,7 @@ export class PostgresStorage {
263
302
  catch (error) {
264
303
  // If table doesn't exist, this is a critical error for L3
265
304
  this.log('error', `PostgreSQL L3: Error setting key: ${key}`, {
266
- error: error instanceof Error ? error.message : String(error)
305
+ error: error instanceof Error ? error.message : String(error),
267
306
  });
268
307
  throw error;
269
308
  }
@@ -289,7 +328,7 @@ export class PostgresStorage {
289
328
  }
290
329
  catch (error) {
291
330
  this.log('error', `PostgreSQL L3: Error deleting key: ${key}`, {
292
- error: error instanceof Error ? error.message : String(error)
331
+ error: error instanceof Error ? error.message : String(error),
293
332
  });
294
333
  }
295
334
  }
@@ -318,7 +357,7 @@ export class PostgresStorage {
318
357
  }
319
358
  catch (error) {
320
359
  this.log('error', `PostgreSQL L3: Error checking existence: ${key}`, {
321
- error: error instanceof Error ? error.message : String(error)
360
+ error: error instanceof Error ? error.message : String(error),
322
361
  });
323
362
  return false;
324
363
  }
@@ -344,16 +383,57 @@ export class PostgresStorage {
344
383
  }
345
384
  catch (error) {
346
385
  this.log('error', 'PostgreSQL L3: Error clearing data', {
347
- error: error instanceof Error ? error.message : String(error)
386
+ error: error instanceof Error ? error.message : String(error),
348
387
  });
349
388
  }
350
389
  }
390
+ async keys(pattern = '*') {
391
+ if (!this.connected || !this.pool) {
392
+ return [];
393
+ }
394
+ try {
395
+ const result = await this.pool.query(`SELECT ${this.keyColumn} AS key
396
+ FROM ${this.tableName}
397
+ WHERE expires_at IS NULL OR expires_at > NOW()`);
398
+ const regex = this.createPatternRegex(pattern);
399
+ return result.rows
400
+ .map((row) => row.key)
401
+ .filter((key) => regex.test(key));
402
+ }
403
+ catch (error) {
404
+ this.handleQueryError('keys', error, { pattern });
405
+ return [];
406
+ }
407
+ }
408
+ async getTtl(key) {
409
+ if (!this.connected || !this.pool) {
410
+ return null;
411
+ }
412
+ try {
413
+ const result = await this.pool.query(`SELECT expires_at
414
+ FROM ${this.tableName}
415
+ WHERE ${this.keyColumn} = $1`, [key]);
416
+ if (result.rows.length === 0) {
417
+ return null;
418
+ }
419
+ const expiresAt = result.rows[0].expires_at;
420
+ if (!expiresAt) {
421
+ return null;
422
+ }
423
+ const remainingMs = new Date(expiresAt).getTime() - Date.now();
424
+ return remainingMs > 0 ? Math.ceil(remainingMs / 1000) : null;
425
+ }
426
+ catch (error) {
427
+ this.handleQueryError('ttl', error, { key });
428
+ return null;
429
+ }
430
+ }
351
431
  /**
352
- * Health check for PostgreSQL connection
432
+ * Health check for PostgreSQL connectivity
353
433
  *
354
434
  * Executes a simple SELECT 1 query to verify connectivity and database
355
- * responsiveness. This is a lightweight operation that tests the full
356
- * connection path including pool, connection, and database.
435
+ * responsiveness. This is a lightweight connectivity check only and does
436
+ * not guarantee that the configured Nuvex schema exists or is writable.
357
437
  *
358
438
  * @returns Promise resolving to true if PostgreSQL is healthy and responsive
359
439
  *
@@ -383,10 +463,87 @@ export class PostgresStorage {
383
463
  }
384
464
  catch (error) {
385
465
  this.log('error', 'PostgreSQL L3: Ping failed', {
386
- error: error instanceof Error ? error.message : String(error)
466
+ error: error instanceof Error ? error.message : String(error),
467
+ });
468
+ return false;
469
+ }
470
+ }
471
+ /**
472
+ * Check whether the configured Nuvex PostgreSQL schema is ready for use.
473
+ *
474
+ * Verifies that the configured storage table exists with the expected
475
+ * columns and that writes can succeed inside a rolled-back transaction.
476
+ *
477
+ * @returns Promise resolving to true when storage is usable
478
+ */
479
+ async isReady() {
480
+ if (!this.connected || !this.pool) {
481
+ this.schemaReady = false;
482
+ this.lastSchemaIssue = null;
483
+ return false;
484
+ }
485
+ let client;
486
+ try {
487
+ client = await this.pool.connect();
488
+ const normalizedTableName = this.tableName.toLowerCase();
489
+ const normalizedKeyColumn = this.keyColumn.toLowerCase();
490
+ const normalizedValueColumn = this.valueColumn.toLowerCase();
491
+ const tableResult = await client.query('SELECT to_regclass($1) as table_name', [normalizedTableName]);
492
+ if (!tableResult.rows[0]?.table_name) {
493
+ this.markSchemaUnready('PostgreSQL L3: Nuvex schema is not ready - storage table is missing', {
494
+ tableName: this.tableName,
495
+ autoSetupSchema: this.autoSetupSchema,
496
+ });
497
+ return false;
498
+ }
499
+ const columnsResult = await client.query(`SELECT column_name
500
+ FROM information_schema.columns
501
+ WHERE table_schema = current_schema()
502
+ AND table_name = $1
503
+ AND column_name IN ($2, $3)`, [normalizedTableName, normalizedKeyColumn, normalizedValueColumn]);
504
+ const availableColumns = new Set(columnsResult.rows.map((row) => row.column_name.toLowerCase()));
505
+ if (!availableColumns.has(normalizedKeyColumn) ||
506
+ !availableColumns.has(normalizedValueColumn)) {
507
+ this.markSchemaUnready('PostgreSQL L3: Nuvex schema is not ready - expected columns are missing', {
508
+ tableName: this.tableName,
509
+ keyColumn: this.keyColumn,
510
+ valueColumn: this.valueColumn,
511
+ });
512
+ return false;
513
+ }
514
+ const readinessKey = `__nuvex_readiness__:${randomUUID()}`;
515
+ await client.query('BEGIN');
516
+ await client.query(`INSERT INTO ${this.tableName} (${this.keyColumn}, ${this.valueColumn}, expires_at)
517
+ VALUES ($1, $2::jsonb, NULL)
518
+ ON CONFLICT (${this.keyColumn})
519
+ DO UPDATE SET ${this.valueColumn} = EXCLUDED.${this.valueColumn}, updated_at = NOW()`, [readinessKey, JSON.stringify({ ready: true })]);
520
+ await client.query('ROLLBACK');
521
+ this.schemaReady = true;
522
+ this.lastSchemaIssue = null;
523
+ return true;
524
+ }
525
+ catch (error) {
526
+ if (client) {
527
+ try {
528
+ await client.query('ROLLBACK');
529
+ }
530
+ catch {
531
+ // Ignore rollback failures when readiness already failed
532
+ }
533
+ }
534
+ this.handleQueryError('readiness', error, {
535
+ tableName: this.tableName,
536
+ keyColumn: this.keyColumn,
537
+ valueColumn: this.valueColumn,
387
538
  });
539
+ this.schemaReady = false;
388
540
  return false;
389
541
  }
542
+ finally {
543
+ if (client) {
544
+ client.release();
545
+ }
546
+ }
390
547
  }
391
548
  /**
392
549
  * Check if PostgreSQL is connected
@@ -435,11 +592,15 @@ export class PostgresStorage {
435
592
  */
436
593
  async increment(key, delta, ttlSeconds) {
437
594
  if (!this.connected || !this.pool) {
438
- this.log('warn', 'PostgreSQL L3: Cannot increment - not connected', { key });
595
+ this.log('warn', 'PostgreSQL L3: Cannot increment - not connected', {
596
+ key,
597
+ });
439
598
  throw new Error('PostgreSQL not connected');
440
599
  }
441
600
  try {
442
- const expiresAt = ttlSeconds ? new Date(Date.now() + (ttlSeconds * 1000)) : null;
601
+ const expiresAt = ttlSeconds
602
+ ? new Date(Date.now() + ttlSeconds * 1000)
603
+ : null;
443
604
  // Atomic upsert to handle both insert and update cases
444
605
  // This avoids race conditions when multiple concurrent increments happen on non-existent keys
445
606
  const result = await this.pool.query(`INSERT INTO ${this.tableName} (${this.keyColumn}, ${this.valueColumn}, expires_at)
@@ -463,7 +624,7 @@ export class PostgresStorage {
463
624
  }
464
625
  catch (error) {
465
626
  this.log('error', `PostgreSQL L3: Error incrementing key: ${key}`, {
466
- error: error instanceof Error ? error.message : String(error)
627
+ error: error instanceof Error ? error.message : String(error),
467
628
  });
468
629
  throw error;
469
630
  }
@@ -481,5 +642,47 @@ export class PostgresStorage {
481
642
  this.logger[level](message, meta);
482
643
  }
483
644
  }
645
+ createPatternRegex(pattern) {
646
+ const escaped = pattern
647
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
648
+ .replace(/\*/g, '.*')
649
+ .replace(/\?/g, '.');
650
+ return new RegExp(`^${escaped}$`);
651
+ }
652
+ handleQueryError(operation, error, meta = {}) {
653
+ const pgError = error;
654
+ const details = {
655
+ ...meta,
656
+ tableName: this.tableName,
657
+ keyColumn: this.keyColumn,
658
+ valueColumn: this.valueColumn,
659
+ error: pgError.message ?? String(error),
660
+ };
661
+ if (pgError.code === '42P01') {
662
+ this.markSchemaUnready(`PostgreSQL L3: ${operation} failed because the Nuvex schema is missing`, details);
663
+ return;
664
+ }
665
+ if (pgError.code === '42703') {
666
+ this.markSchemaUnready(`PostgreSQL L3: ${operation} failed because the Nuvex schema is incompatible`, details);
667
+ return;
668
+ }
669
+ this.log(operation === 'get' ? 'debug' : 'error', `PostgreSQL L3: ${operation} failed`, details);
670
+ }
671
+ /**
672
+ * Mark the configured schema as not ready and log the issue.
673
+ *
674
+ * Emits a warning when readiness transitions from ready to unready or when a
675
+ * new schema issue message is observed. Repeated identical schema problems are
676
+ * downgraded to debug level to reduce noisy logs during high read volume.
677
+ *
678
+ * @param message - Schema readiness log message
679
+ * @param meta - Structured metadata for diagnostics
680
+ */
681
+ markSchemaUnready(message, meta) {
682
+ const shouldWarn = this.schemaReady || this.lastSchemaIssue !== message;
683
+ this.schemaReady = false;
684
+ this.lastSchemaIssue = message;
685
+ this.log(shouldWarn ? 'warn' : 'debug', message, meta);
686
+ }
484
687
  }
485
688
  //# sourceMappingURL=postgres.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/layers/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/layers/postgres.ts"],"names":[],"mappings":"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"}
@@ -117,7 +117,7 @@ export class RedisStorage {
117
117
  catch (error) {
118
118
  this.connected = false;
119
119
  this.log('error', 'Redis L2: Connection failed', {
120
- error: error instanceof Error ? error.message : String(error)
120
+ error: error instanceof Error ? error.message : String(error),
121
121
  });
122
122
  throw error;
123
123
  }
@@ -170,7 +170,7 @@ export class RedisStorage {
170
170
  }
171
171
  catch (error) {
172
172
  this.log('error', `Redis L2: Error getting key: ${key}`, {
173
- error: error instanceof Error ? error.message : String(error)
173
+ error: error instanceof Error ? error.message : String(error),
174
174
  });
175
175
  return null;
176
176
  }
@@ -207,10 +207,11 @@ export class RedisStorage {
207
207
  else {
208
208
  await this.client.set(key, serialized);
209
209
  }
210
+ await this.client.sAdd(RedisStorage.TRACKED_KEYS_SET, key);
210
211
  }
211
212
  catch (error) {
212
213
  this.log('error', `Redis L2: Error setting key: ${key}`, {
213
- error: error instanceof Error ? error.message : String(error)
214
+ error: error instanceof Error ? error.message : String(error),
214
215
  });
215
216
  }
216
217
  }
@@ -230,10 +231,11 @@ export class RedisStorage {
230
231
  }
231
232
  try {
232
233
  await this.client.del(key);
234
+ await this.client.sRem(RedisStorage.TRACKED_KEYS_SET, key);
233
235
  }
234
236
  catch (error) {
235
237
  this.log('error', `Redis L2: Error deleting key: ${key}`, {
236
- error: error instanceof Error ? error.message : String(error)
238
+ error: error instanceof Error ? error.message : String(error),
237
239
  });
238
240
  }
239
241
  }
@@ -260,7 +262,7 @@ export class RedisStorage {
260
262
  }
261
263
  catch (error) {
262
264
  this.log('error', `Redis L2: Error checking existence: ${key}`, {
263
- error: error instanceof Error ? error.message : String(error)
265
+ error: error instanceof Error ? error.message : String(error),
264
266
  });
265
267
  return false;
266
268
  }
@@ -276,18 +278,73 @@ export class RedisStorage {
276
278
  * await redis.clear(); // Flushes entire Redis DB
277
279
  * ```
278
280
  */
279
- async clear() {
281
+ async clear(pattern = '*') {
280
282
  if (!this.connected || !this.client) {
281
283
  return;
282
284
  }
283
285
  try {
284
- await this.client.flushDb();
285
- this.log('info', 'Redis L2: Database flushed');
286
+ const keys = await this.keys(pattern);
287
+ for (const key of keys) {
288
+ await this.client.del(key);
289
+ }
290
+ if (pattern === '*') {
291
+ await this.client.del(RedisStorage.TRACKED_KEYS_SET);
292
+ }
293
+ else if (keys.length > 0) {
294
+ await this.client.sRem(RedisStorage.TRACKED_KEYS_SET, keys);
295
+ }
296
+ this.log('info', 'Redis L2: Cleared tracked Nuvex keys', {
297
+ pattern,
298
+ cleared: keys.length,
299
+ });
300
+ }
301
+ catch (error) {
302
+ this.log('error', 'Redis L2: Error clearing tracked keys', {
303
+ error: error instanceof Error ? error.message : String(error),
304
+ });
305
+ }
306
+ }
307
+ async keys(pattern = '*') {
308
+ if (!this.connected || !this.client) {
309
+ return [];
310
+ }
311
+ try {
312
+ const trackedKeys = await this.client.sMembers(RedisStorage.TRACKED_KEYS_SET);
313
+ const regex = this.createPatternRegex(pattern);
314
+ const matchingKeys = [];
315
+ for (const key of trackedKeys) {
316
+ const exists = await this.client.exists(key);
317
+ if (exists !== 1) {
318
+ await this.client.sRem(RedisStorage.TRACKED_KEYS_SET, key);
319
+ continue;
320
+ }
321
+ if (regex.test(key)) {
322
+ matchingKeys.push(key);
323
+ }
324
+ }
325
+ return matchingKeys;
326
+ }
327
+ catch (error) {
328
+ this.log('error', 'Redis L2: Error listing tracked keys', {
329
+ error: error instanceof Error ? error.message : String(error),
330
+ pattern,
331
+ });
332
+ return [];
333
+ }
334
+ }
335
+ async getTtl(key) {
336
+ if (!this.connected || !this.client) {
337
+ return null;
338
+ }
339
+ try {
340
+ const ttl = await this.client.ttl(key);
341
+ return ttl >= 0 ? ttl : null;
286
342
  }
287
343
  catch (error) {
288
- this.log('error', 'Redis L2: Error flushing database', {
289
- error: error instanceof Error ? error.message : String(error)
344
+ this.log('error', `Redis L2: Error getting TTL for key: ${key}`, {
345
+ error: error instanceof Error ? error.message : String(error),
290
346
  });
347
+ return null;
291
348
  }
292
349
  }
293
350
  /**
@@ -316,7 +373,7 @@ export class RedisStorage {
316
373
  }
317
374
  catch (error) {
318
375
  this.log('error', 'Redis L2: Ping failed', {
319
- error: error instanceof Error ? error.message : String(error)
376
+ error: error instanceof Error ? error.message : String(error),
320
377
  });
321
378
  return false;
322
379
  }
@@ -354,6 +411,7 @@ export class RedisStorage {
354
411
  try {
355
412
  // Use INCRBY for atomic increment
356
413
  const newValue = await this.client.incrBy(key, delta);
414
+ await this.client.sAdd(RedisStorage.TRACKED_KEYS_SET, key);
357
415
  // Set TTL if specified
358
416
  if (ttlSeconds) {
359
417
  await this.client.expire(key, ttlSeconds);
@@ -362,7 +420,7 @@ export class RedisStorage {
362
420
  }
363
421
  catch (error) {
364
422
  this.log('error', `Redis L2: Error incrementing key: ${key}`, {
365
- error: error instanceof Error ? error.message : String(error)
423
+ error: error instanceof Error ? error.message : String(error),
366
424
  });
367
425
  throw error;
368
426
  }
@@ -380,5 +438,13 @@ export class RedisStorage {
380
438
  this.logger[level](message, meta);
381
439
  }
382
440
  }
441
+ createPatternRegex(pattern) {
442
+ const escaped = pattern
443
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
444
+ .replace(/\*/g, '.*')
445
+ .replace(/\?/g, '.');
446
+ return new RegExp(`^${escaped}$`);
447
+ }
383
448
  }
449
+ RedisStorage.TRACKED_KEYS_SET = '__nuvex_keys__';
384
450
  //# sourceMappingURL=redis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/layers/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/layers/redis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyYH,yBAAyB;AAEzB;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+DAA+D;IAC/D,iCAAiB,CAAA;IACjB,2EAA2E;IAC3E,+BAAe,CAAA;IACf,6DAA6D;IAC7D,qCAAqB,CAAA;AACvB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,iCAAiC;IACjC,2BAAe,CAAA;IACf,mCAAmC;IACnC,yBAAa,CAAA;IACb,+CAA+C;IAC/C,yBAAa,CAAA;IACb,iDAAiD;IACjD,2BAAe,CAAA;AACjB,CAAC,EATW,QAAQ,KAAR,QAAQ,QASnB;AAED,+BAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqaH,yBAAyB;AAEzB;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+DAA+D;IAC/D,iCAAiB,CAAA;IACjB,2EAA2E;IAC3E,+BAAe,CAAA;IACf,6DAA6D;IAC7D,qCAAqB,CAAA;AACvB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,iCAAiC;IACjC,2BAAe,CAAA;IACf,mCAAmC;IACnC,yBAAa,CAAA;IACb,+CAA+C;IAC/C,yBAAa,CAAA;IACb,iDAAiD;IACjD,2BAAe,CAAA;AACjB,CAAC,EATW,QAAQ,KAAR,QAAQ,QASnB;AAED,+BAA+B"}
@@ -377,8 +377,9 @@ export declare class NuvexClient implements IStore {
377
377
  /**
378
378
  * Health check for all storage layers or specific layer(s)
379
379
  *
380
- * Performs comprehensive health checks on configured storage layers
381
- * using the underlying engine's ping() methods for each layer.
380
+ * Performs comprehensive health checks on configured storage layers.
381
+ * PostgreSQL health reflects Nuvex storage readiness, not just raw
382
+ * database connectivity.
382
383
  *
383
384
  * @param layers - Optional layer(s) to check. If not provided, checks all layers.
384
385
  * Can be a single layer string or array of layer strings.