@warlock.js/cache 4.1.15 → 4.2.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 (85) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/cjs/index.cjs +32 -28
  4. package/cjs/index.cjs.map +1 -1
  5. package/esm/cache-manager.d.mts +1 -1
  6. package/esm/cache-manager.d.mts.map +1 -1
  7. package/esm/cache-manager.mjs +1 -1
  8. package/esm/cache-manager.mjs.map +1 -1
  9. package/esm/cached/auto-key.d.mts +1 -1
  10. package/esm/cached/auto-key.d.mts.map +1 -1
  11. package/esm/cached/auto-key.mjs +1 -1
  12. package/esm/cached/auto-key.mjs.map +1 -1
  13. package/esm/cached/cached.d.mts +1 -1
  14. package/esm/cached/cached.d.mts.map +1 -1
  15. package/esm/cached/cached.mjs +1 -1
  16. package/esm/cached/cached.mjs.map +1 -1
  17. package/esm/cached/normalize-args.d.mts +1 -1
  18. package/esm/cached/normalize-args.d.mts.map +1 -1
  19. package/esm/cached/normalize-args.mjs +1 -1
  20. package/esm/cached/normalize-args.mjs.map +1 -1
  21. package/esm/drivers/base-cache-driver.d.mts +2 -2
  22. package/esm/drivers/base-cache-driver.d.mts.map +1 -1
  23. package/esm/drivers/base-cache-driver.mjs +4 -2
  24. package/esm/drivers/base-cache-driver.mjs.map +1 -1
  25. package/esm/drivers/file-cache-driver.d.mts +1 -1
  26. package/esm/drivers/file-cache-driver.d.mts.map +1 -1
  27. package/esm/drivers/file-cache-driver.mjs +1 -1
  28. package/esm/drivers/file-cache-driver.mjs.map +1 -1
  29. package/esm/drivers/lru-memory-cache-driver.d.mts +1 -1
  30. package/esm/drivers/lru-memory-cache-driver.d.mts.map +1 -1
  31. package/esm/drivers/lru-memory-cache-driver.mjs +1 -1
  32. package/esm/drivers/lru-memory-cache-driver.mjs.map +1 -1
  33. package/esm/drivers/memory-cache-driver.d.mts +1 -1
  34. package/esm/drivers/memory-cache-driver.d.mts.map +1 -1
  35. package/esm/drivers/memory-cache-driver.mjs +1 -1
  36. package/esm/drivers/memory-cache-driver.mjs.map +1 -1
  37. package/esm/drivers/memory-extended-cache-driver.d.mts +1 -1
  38. package/esm/drivers/memory-extended-cache-driver.d.mts.map +1 -1
  39. package/esm/drivers/memory-extended-cache-driver.mjs +1 -1
  40. package/esm/drivers/memory-extended-cache-driver.mjs.map +1 -1
  41. package/esm/drivers/mock-cache-driver.d.mts +1 -1
  42. package/esm/drivers/mock-cache-driver.d.mts.map +1 -1
  43. package/esm/drivers/mock-cache-driver.mjs +1 -1
  44. package/esm/drivers/mock-cache-driver.mjs.map +1 -1
  45. package/esm/drivers/null-cache-driver.d.mts +1 -1
  46. package/esm/drivers/null-cache-driver.d.mts.map +1 -1
  47. package/esm/drivers/null-cache-driver.mjs +1 -1
  48. package/esm/drivers/null-cache-driver.mjs.map +1 -1
  49. package/esm/drivers/pg-cache-driver.d.mts +1 -1
  50. package/esm/drivers/pg-cache-driver.d.mts.map +1 -1
  51. package/esm/drivers/pg-cache-driver.mjs +1 -1
  52. package/esm/drivers/pg-cache-driver.mjs.map +1 -1
  53. package/esm/drivers/redis-cache-driver.d.mts +1 -1
  54. package/esm/drivers/redis-cache-driver.d.mts.map +1 -1
  55. package/esm/drivers/redis-cache-driver.mjs +10 -8
  56. package/esm/drivers/redis-cache-driver.mjs.map +1 -1
  57. package/esm/list/memory-cache-list.d.mts +1 -1
  58. package/esm/list/memory-cache-list.d.mts.map +1 -1
  59. package/esm/list/memory-cache-list.mjs +1 -1
  60. package/esm/list/memory-cache-list.mjs.map +1 -1
  61. package/esm/metrics.d.mts +1 -1
  62. package/esm/metrics.d.mts.map +1 -1
  63. package/esm/metrics.mjs +1 -1
  64. package/esm/metrics.mjs.map +1 -1
  65. package/esm/scoped-cache.d.mts +1 -1
  66. package/esm/scoped-cache.d.mts.map +1 -1
  67. package/esm/scoped-cache.mjs +1 -1
  68. package/esm/scoped-cache.mjs.map +1 -1
  69. package/esm/tagged-cache.d.mts +1 -1
  70. package/esm/tagged-cache.d.mts.map +1 -1
  71. package/esm/tagged-cache.mjs +1 -1
  72. package/esm/tagged-cache.mjs.map +1 -1
  73. package/esm/tagged-scoped-cache.d.mts +1 -1
  74. package/esm/tagged-scoped-cache.d.mts.map +1 -1
  75. package/esm/tagged-scoped-cache.mjs +1 -1
  76. package/esm/tagged-scoped-cache.mjs.map +1 -1
  77. package/esm/types.d.mts +2 -2
  78. package/esm/types.d.mts.map +1 -1
  79. package/esm/types.mjs +1 -1
  80. package/esm/types.mjs.map +1 -1
  81. package/esm/utils.d.mts +1 -1
  82. package/esm/utils.d.mts.map +1 -1
  83. package/esm/utils.mjs +1 -1
  84. package/esm/utils.mjs.map +1 -1
  85. package/package.json +3 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Changelog — @warlock.js/cache
2
+
3
+ All notable changes to `@warlock.js/cache` are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
6
+
7
+ ## [Unreleased]
8
+
9
+ ## 4.2.0
10
+
11
+ ### Changed
12
+
13
+ - Redis driver now logs a failed initial `connect()` at `log.fatal` (was `log.error`). Boot-time cache connection failures are unrecoverable in practice — `fatal` makes "page on fatal only" alerting clean, aligned with the cascade drivers and the herald connector.
14
+
15
+ ## 4.1.15
16
+
17
+ - Baseline — per-package changelog tracking starts at this version.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Hassan Zohdy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/cjs/index.cjs CHANGED
@@ -34,7 +34,7 @@ let _warlock_js_fs = require("@warlock.js/fs");
34
34
  let path = require("path");
35
35
  path = __toESM(path, 1);
36
36
 
37
- //#region ../../@warlock.js/cache/src/metrics.ts
37
+ //#region ../@warlock.js/cache/src/metrics.ts
38
38
  /**
39
39
  * Default size of the circular latency-sample buffer. 1000 samples covers
40
40
  * "tell me the current p95" for every realistic workload while keeping the
@@ -229,7 +229,7 @@ var CacheMetricsCollector = class {
229
229
  };
230
230
 
231
231
  //#endregion
232
- //#region ../../@warlock.js/cache/src/types.ts
232
+ //#region ../@warlock.js/cache/src/types.ts
233
233
  /**
234
234
  * Base error class for cache-related errors
235
235
  */
@@ -289,7 +289,7 @@ var CacheConcurrencyError = class extends CacheError {
289
289
  };
290
290
 
291
291
  //#endregion
292
- //#region ../../@warlock.js/cache/src/utils.ts
292
+ //#region ../@warlock.js/cache/src/utils.ts
293
293
  /**
294
294
  * Make a proper key for the cache
295
295
  */
@@ -505,7 +505,7 @@ let CACHE_FOR = /* @__PURE__ */ function(CACHE_FOR) {
505
505
  }({});
506
506
 
507
507
  //#endregion
508
- //#region ../../@warlock.js/cache/src/tagged-scoped-cache.ts
508
+ //#region ../@warlock.js/cache/src/tagged-scoped-cache.ts
509
509
  /**
510
510
  * One-shot tagged write handle on top of a {@link ScopedCache}.
511
511
  *
@@ -643,7 +643,7 @@ var TaggedScopedCache = class {
643
643
  };
644
644
 
645
645
  //#endregion
646
- //#region ../../@warlock.js/cache/src/scoped-cache.ts
646
+ //#region ../@warlock.js/cache/src/scoped-cache.ts
647
647
  /**
648
648
  * Scoped view over a cache source. Returned by `cache.namespace(prefix, options?)`.
649
649
  *
@@ -912,7 +912,7 @@ var ScopedCache = class ScopedCache {
912
912
  };
913
913
 
914
914
  //#endregion
915
- //#region ../../@warlock.js/cache/src/cache-manager.ts
915
+ //#region ../@warlock.js/cache/src/cache-manager.ts
916
916
  var CacheManager = class {
917
917
  constructor() {
918
918
  this.loadedDrivers = {};
@@ -1392,7 +1392,7 @@ var CacheManager = class {
1392
1392
  const cache = new CacheManager();
1393
1393
 
1394
1394
  //#endregion
1395
- //#region ../../@warlock.js/cache/src/cached/auto-key.ts
1395
+ //#region ../@warlock.js/cache/src/cached/auto-key.ts
1396
1396
  /**
1397
1397
  * Derive a cache key from a prefix and a set of function arguments.
1398
1398
  *
@@ -1443,7 +1443,7 @@ function serializePrimitive(value) {
1443
1443
  }
1444
1444
 
1445
1445
  //#endregion
1446
- //#region ../../@warlock.js/cache/src/cached/normalize-args.ts
1446
+ //#region ../@warlock.js/cache/src/cached/normalize-args.ts
1447
1447
  /**
1448
1448
  * Resolve the positional-or-options arguments of `cached()` into a single
1449
1449
  * normalized config. Keeps the wrapper body free of shape-checks.
@@ -1465,7 +1465,7 @@ function normalizeCachedArgs(prefixOrOptions, maybeTtl) {
1465
1465
  }
1466
1466
 
1467
1467
  //#endregion
1468
- //#region ../../@warlock.js/cache/src/cached/cached.ts
1468
+ //#region ../@warlock.js/cache/src/cached/cached.ts
1469
1469
  function cached(fn, prefixOrOptions, maybeTtl) {
1470
1470
  const config = normalizeCachedArgs(prefixOrOptions, maybeTtl);
1471
1471
  const buildRememberOptions = () => ({
@@ -1485,7 +1485,7 @@ function cached(fn, prefixOrOptions, maybeTtl) {
1485
1485
  }
1486
1486
 
1487
1487
  //#endregion
1488
- //#region ../../@warlock.js/cache/src/list/memory-cache-list.ts
1488
+ //#region ../@warlock.js/cache/src/list/memory-cache-list.ts
1489
1489
  /**
1490
1490
  * Generic array-backed {@link CacheListAccessor}.
1491
1491
  *
@@ -1602,7 +1602,7 @@ var MemoryCacheList = class {
1602
1602
  };
1603
1603
 
1604
1604
  //#endregion
1605
- //#region ../../@warlock.js/cache/src/tagged-cache.ts
1605
+ //#region ../@warlock.js/cache/src/tagged-cache.ts
1606
1606
  /**
1607
1607
  * Tagged Cache Wrapper
1608
1608
  * Wraps a cache driver to automatically manage tag relationships
@@ -1747,7 +1747,7 @@ var TaggedCache = class {
1747
1747
  };
1748
1748
 
1749
1749
  //#endregion
1750
- //#region ../../@warlock.js/cache/src/drivers/base-cache-driver.ts
1750
+ //#region ../@warlock.js/cache/src/drivers/base-cache-driver.ts
1751
1751
  const messages = {
1752
1752
  clearing: "Clearing namespace",
1753
1753
  cleared: "Namespace cleared",
@@ -1765,6 +1765,7 @@ const messages = {
1765
1765
  connected: "Connected to the cache engine.",
1766
1766
  disconnecting: "Disconnecting from the cache engine.",
1767
1767
  disconnected: "Disconnected from the cache engine.",
1768
+ connectionFailed: "Failed to connect to the cache engine.",
1768
1769
  error: "Error occurred"
1769
1770
  };
1770
1771
  var BaseCacheDriver = class {
@@ -2079,7 +2080,8 @@ var BaseCacheDriver = class {
2079
2080
  */
2080
2081
  log(operation, key) {
2081
2082
  if (!this.shouldLog) return;
2082
- if (key) key = key.replaceAll("/", ".");
2083
+ if (typeof key === "string") key = key.replace(/\//g, ".");
2084
+ if (operation === "connectionFailed") _warlock_js_logger.log.fatal(`cache.${this.name}`, operation, key);
2083
2085
  if (operation == "notFound" || operation == "expired") return _warlock_js_logger.log.warn("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
2084
2086
  if (operation.endsWith("ed")) return _warlock_js_logger.log.success("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
2085
2087
  _warlock_js_logger.log.info("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
@@ -2261,7 +2263,7 @@ var BaseCacheDriver = class {
2261
2263
  };
2262
2264
 
2263
2265
  //#endregion
2264
- //#region ../../@warlock.js/cache/src/drivers/file-cache-driver.ts
2266
+ //#region ../@warlock.js/cache/src/drivers/file-cache-driver.ts
2265
2267
  var FileCacheDriver = class extends BaseCacheDriver {
2266
2268
  constructor(..._args) {
2267
2269
  super(..._args);
@@ -2428,7 +2430,7 @@ var FileCacheDriver = class extends BaseCacheDriver {
2428
2430
  };
2429
2431
 
2430
2432
  //#endregion
2431
- //#region ../../@warlock.js/cache/src/drivers/lru-memory-cache-driver.ts
2433
+ //#region ../@warlock.js/cache/src/drivers/lru-memory-cache-driver.ts
2432
2434
  var CacheNode = class {
2433
2435
  constructor(key, value, ttl) {
2434
2436
  this.key = key;
@@ -2740,7 +2742,7 @@ var LRUMemoryCacheDriver = class extends BaseCacheDriver {
2740
2742
  };
2741
2743
 
2742
2744
  //#endregion
2743
- //#region ../../@warlock.js/cache/src/drivers/memory-cache-driver.ts
2745
+ //#region ../@warlock.js/cache/src/drivers/memory-cache-driver.ts
2744
2746
  var MemoryCacheDriver = class extends BaseCacheDriver {
2745
2747
  /**
2746
2748
  * {@inheritdoc}
@@ -2975,7 +2977,7 @@ var MemoryCacheDriver = class extends BaseCacheDriver {
2975
2977
  };
2976
2978
 
2977
2979
  //#endregion
2978
- //#region ../../@warlock.js/cache/src/drivers/memory-extended-cache-driver.ts
2980
+ //#region ../@warlock.js/cache/src/drivers/memory-extended-cache-driver.ts
2979
2981
  var MemoryExtendedCacheDriver = class extends MemoryCacheDriver {
2980
2982
  constructor(..._args) {
2981
2983
  super(..._args);
@@ -3003,7 +3005,7 @@ var MemoryExtendedCacheDriver = class extends MemoryCacheDriver {
3003
3005
  };
3004
3006
 
3005
3007
  //#endregion
3006
- //#region ../../@warlock.js/cache/src/drivers/mock-cache-driver.ts
3008
+ //#region ../@warlock.js/cache/src/drivers/mock-cache-driver.ts
3007
3009
  /**
3008
3010
  * In-memory cache driver with introspection helpers, intended for use as a
3009
3011
  * test double in downstream packages.
@@ -3225,7 +3227,7 @@ var MockCacheDriver = class extends BaseCacheDriver {
3225
3227
  };
3226
3228
 
3227
3229
  //#endregion
3228
- //#region ../../@warlock.js/cache/src/drivers/null-cache-driver.ts
3230
+ //#region ../@warlock.js/cache/src/drivers/null-cache-driver.ts
3229
3231
  var NullCacheDriver = class extends BaseCacheDriver {
3230
3232
  /**
3231
3233
  * {@inheritdoc}
@@ -3312,7 +3314,7 @@ var NullCacheDriver = class extends BaseCacheDriver {
3312
3314
  };
3313
3315
 
3314
3316
  //#endregion
3315
- //#region ../../@warlock.js/cache/src/drivers/pg-cache-driver.ts
3317
+ //#region ../@warlock.js/cache/src/drivers/pg-cache-driver.ts
3316
3318
  /**
3317
3319
  * Allowed characters in a Postgres identifier (table name). We accept the
3318
3320
  * conservative ASCII subset and reject anything else — interpolating an
@@ -3744,7 +3746,7 @@ var PgCacheDriver = class extends BaseCacheDriver {
3744
3746
  };
3745
3747
 
3746
3748
  //#endregion
3747
- //#region ../../@warlock.js/cache/src/drivers/redis-cache-driver.ts
3749
+ //#region ../@warlock.js/cache/src/drivers/redis-cache-driver.ts
3748
3750
  /**
3749
3751
  * Cached Redis module (loaded once, reused)
3750
3752
  */
@@ -3960,18 +3962,20 @@ var RedisCacheDriver = class extends BaseCacheDriver {
3960
3962
  ...options,
3961
3963
  ...this.options.clientOptions || {}
3962
3964
  };
3963
- this.log("connecting");
3964
- const { createClient } = RedisClient;
3965
- this.client = createClient(clientOptions);
3966
- this.client.on("error", (error) => {
3967
- this.log("error", error.message);
3968
- });
3969
3965
  try {
3966
+ this.log("connecting");
3967
+ const { createClient } = RedisClient;
3968
+ this.client = createClient(clientOptions);
3969
+ this.client.on("error", (error) => {
3970
+ if (error.code === "ECONNREFUSED") this.log("connectionFailed", error);
3971
+ else this.log("error", error.message);
3972
+ });
3970
3973
  await this.client.connect();
3971
3974
  this.log("connected");
3972
3975
  await this.emit("connected");
3973
3976
  } catch (error) {
3974
- _warlock_js_logger.log.error("cache", "redis", error);
3977
+ console.log("Err", error);
3978
+ _warlock_js_logger.log.fatal("cache", "redis", error);
3975
3979
  await this.emit("error", { error });
3976
3980
  }
3977
3981
  }