@warlock.js/cache 4.0.174 → 4.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 (213) hide show
  1. package/README.md +85 -0
  2. package/cjs/index.cjs +4088 -0
  3. package/cjs/index.cjs.map +1 -0
  4. package/esm/cache-manager.d.mts +314 -0
  5. package/esm/cache-manager.d.mts.map +1 -0
  6. package/esm/cache-manager.mjs +486 -0
  7. package/esm/cache-manager.mjs.map +1 -0
  8. package/esm/cached/auto-key.d.mts +25 -0
  9. package/esm/cached/auto-key.d.mts.map +1 -0
  10. package/esm/cached/auto-key.mjs +55 -0
  11. package/esm/cached/auto-key.mjs.map +1 -0
  12. package/esm/cached/cached.d.mts +54 -0
  13. package/esm/cached/cached.d.mts.map +1 -0
  14. package/esm/cached/cached.mjs +25 -0
  15. package/esm/cached/cached.mjs.map +1 -0
  16. package/esm/cached/index.d.mts +3 -0
  17. package/esm/cached/index.mjs +5 -0
  18. package/esm/cached/normalize-args.d.mts +51 -0
  19. package/esm/cached/normalize-args.d.mts.map +1 -0
  20. package/esm/cached/normalize-args.mjs +26 -0
  21. package/esm/cached/normalize-args.mjs.map +1 -0
  22. package/esm/drivers/base-cache-driver.d.mts +322 -0
  23. package/esm/drivers/base-cache-driver.d.mts.map +1 -0
  24. package/esm/drivers/base-cache-driver.mjs +522 -0
  25. package/esm/drivers/base-cache-driver.mjs.map +1 -0
  26. package/esm/drivers/file-cache-driver.d.mts +68 -0
  27. package/esm/drivers/file-cache-driver.d.mts.map +1 -0
  28. package/esm/drivers/file-cache-driver.mjs +174 -0
  29. package/esm/drivers/file-cache-driver.mjs.map +1 -0
  30. package/esm/drivers/index.d.mts +9 -0
  31. package/esm/drivers/index.mjs +11 -0
  32. package/esm/drivers/lru-memory-cache-driver.d.mts +136 -0
  33. package/esm/drivers/lru-memory-cache-driver.d.mts.map +1 -0
  34. package/esm/drivers/lru-memory-cache-driver.mjs +317 -0
  35. package/esm/drivers/lru-memory-cache-driver.mjs.map +1 -0
  36. package/esm/drivers/memory-cache-driver.d.mts +112 -0
  37. package/esm/drivers/memory-cache-driver.d.mts.map +1 -0
  38. package/esm/drivers/memory-cache-driver.mjs +241 -0
  39. package/esm/drivers/memory-cache-driver.mjs.map +1 -0
  40. package/esm/drivers/memory-extended-cache-driver.d.mts +17 -0
  41. package/esm/drivers/memory-extended-cache-driver.d.mts.map +1 -0
  42. package/esm/drivers/memory-extended-cache-driver.mjs +34 -0
  43. package/esm/drivers/memory-extended-cache-driver.mjs.map +1 -0
  44. package/esm/drivers/mock-cache-driver.d.mts +137 -0
  45. package/esm/drivers/mock-cache-driver.d.mts.map +1 -0
  46. package/esm/drivers/mock-cache-driver.mjs +226 -0
  47. package/esm/drivers/mock-cache-driver.mjs.map +1 -0
  48. package/esm/drivers/null-cache-driver.d.mts +69 -0
  49. package/esm/drivers/null-cache-driver.d.mts.map +1 -0
  50. package/esm/drivers/null-cache-driver.mjs +92 -0
  51. package/esm/drivers/null-cache-driver.mjs.map +1 -0
  52. package/esm/drivers/pg-cache-driver.d.mts +148 -0
  53. package/esm/drivers/pg-cache-driver.d.mts.map +1 -0
  54. package/esm/drivers/pg-cache-driver.mjs +437 -0
  55. package/esm/drivers/pg-cache-driver.mjs.map +1 -0
  56. package/esm/drivers/redis-cache-driver.d.mts +86 -0
  57. package/esm/drivers/redis-cache-driver.d.mts.map +1 -0
  58. package/esm/drivers/redis-cache-driver.mjs +312 -0
  59. package/esm/drivers/redis-cache-driver.mjs.map +1 -0
  60. package/esm/index.d.mts +21 -0
  61. package/esm/index.mjs +24 -0
  62. package/esm/list/index.d.mts +1 -0
  63. package/esm/list/memory-cache-list.d.mts +77 -0
  64. package/esm/list/memory-cache-list.d.mts.map +1 -0
  65. package/esm/list/memory-cache-list.mjs +119 -0
  66. package/esm/list/memory-cache-list.mjs.map +1 -0
  67. package/esm/metrics.d.mts +118 -0
  68. package/esm/metrics.d.mts.map +1 -0
  69. package/esm/metrics.mjs +197 -0
  70. package/esm/metrics.mjs.map +1 -0
  71. package/esm/scoped-cache.d.mts +205 -0
  72. package/esm/scoped-cache.d.mts.map +1 -0
  73. package/esm/scoped-cache.mjs +274 -0
  74. package/esm/scoped-cache.mjs.map +1 -0
  75. package/esm/tagged-cache.d.mts +89 -0
  76. package/esm/tagged-cache.d.mts.map +1 -0
  77. package/esm/tagged-cache.mjs +147 -0
  78. package/esm/tagged-cache.mjs.map +1 -0
  79. package/esm/tagged-scoped-cache.d.mts +111 -0
  80. package/esm/tagged-scoped-cache.d.mts.map +1 -0
  81. package/esm/tagged-scoped-cache.mjs +142 -0
  82. package/esm/tagged-scoped-cache.mjs.map +1 -0
  83. package/esm/types.d.mts +1067 -0
  84. package/esm/types.d.mts.map +1 -0
  85. package/esm/types.mjs +62 -0
  86. package/esm/types.mjs.map +1 -0
  87. package/esm/utils.d.mts +161 -0
  88. package/esm/utils.d.mts.map +1 -0
  89. package/esm/utils.mjs +222 -0
  90. package/esm/utils.mjs.map +1 -0
  91. package/llms-full.txt +2071 -0
  92. package/llms.txt +28 -0
  93. package/package.json +53 -39
  94. package/skills/apply-cache-patterns/SKILL.md +97 -0
  95. package/skills/cache-basics/SKILL.md +121 -0
  96. package/skills/configure-pg-cache/SKILL.md +115 -0
  97. package/skills/configure-set-options/SKILL.md +96 -0
  98. package/skills/handle-cache-errors/SKILL.md +91 -0
  99. package/skills/observe-cache/SKILL.md +103 -0
  100. package/skills/overview/SKILL.md +69 -0
  101. package/skills/pick-cache-driver/SKILL.md +115 -0
  102. package/skills/test-cache-code/SKILL.md +219 -0
  103. package/skills/use-cache-atomic/SKILL.md +67 -0
  104. package/skills/use-cache-bulk/SKILL.md +57 -0
  105. package/skills/use-cache-list/SKILL.md +85 -0
  106. package/skills/use-cache-lock/SKILL.md +104 -0
  107. package/skills/use-cache-namespace/SKILL.md +88 -0
  108. package/skills/use-cache-similarity/SKILL.md +94 -0
  109. package/skills/use-cache-tags/SKILL.md +85 -0
  110. package/skills/use-cache-update-merge/SKILL.md +84 -0
  111. package/skills/use-cache-utils/SKILL.md +89 -0
  112. package/skills/use-cached-hof/SKILL.md +102 -0
  113. package/skills/use-swr/SKILL.md +104 -0
  114. package/cjs/cache-manager.d.ts +0 -163
  115. package/cjs/cache-manager.d.ts.map +0 -1
  116. package/cjs/cache-manager.js +0 -322
  117. package/cjs/cache-manager.js.map +0 -1
  118. package/cjs/drivers/base-cache-driver.d.ts +0 -152
  119. package/cjs/drivers/base-cache-driver.d.ts.map +0 -1
  120. package/cjs/drivers/base-cache-driver.js +0 -321
  121. package/cjs/drivers/base-cache-driver.js.map +0 -1
  122. package/cjs/drivers/file-cache-driver.d.ts +0 -45
  123. package/cjs/drivers/file-cache-driver.d.ts.map +0 -1
  124. package/cjs/drivers/file-cache-driver.js +0 -133
  125. package/cjs/drivers/file-cache-driver.js.map +0 -1
  126. package/cjs/drivers/index.d.ts +0 -8
  127. package/cjs/drivers/index.d.ts.map +0 -1
  128. package/cjs/drivers/lru-memory-cache-driver.d.ts +0 -98
  129. package/cjs/drivers/lru-memory-cache-driver.d.ts.map +0 -1
  130. package/cjs/drivers/lru-memory-cache-driver.js +0 -252
  131. package/cjs/drivers/lru-memory-cache-driver.js.map +0 -1
  132. package/cjs/drivers/memory-cache-driver.d.ts +0 -82
  133. package/cjs/drivers/memory-cache-driver.d.ts.map +0 -1
  134. package/cjs/drivers/memory-cache-driver.js +0 -218
  135. package/cjs/drivers/memory-cache-driver.js.map +0 -1
  136. package/cjs/drivers/memory-extended-cache-driver.d.ts +0 -13
  137. package/cjs/drivers/memory-extended-cache-driver.d.ts.map +0 -1
  138. package/cjs/drivers/memory-extended-cache-driver.js +0 -25
  139. package/cjs/drivers/memory-extended-cache-driver.js.map +0 -1
  140. package/cjs/drivers/null-cache-driver.d.ts +0 -58
  141. package/cjs/drivers/null-cache-driver.d.ts.map +0 -1
  142. package/cjs/drivers/null-cache-driver.js +0 -84
  143. package/cjs/drivers/null-cache-driver.js.map +0 -1
  144. package/cjs/drivers/redis-cache-driver.d.ts +0 -57
  145. package/cjs/drivers/redis-cache-driver.d.ts.map +0 -1
  146. package/cjs/drivers/redis-cache-driver.js +0 -263
  147. package/cjs/drivers/redis-cache-driver.js.map +0 -1
  148. package/cjs/index.d.ts +0 -6
  149. package/cjs/index.d.ts.map +0 -1
  150. package/cjs/index.js +0 -1
  151. package/cjs/index.js.map +0 -1
  152. package/cjs/tagged-cache.d.ts +0 -77
  153. package/cjs/tagged-cache.d.ts.map +0 -1
  154. package/cjs/tagged-cache.js +0 -160
  155. package/cjs/tagged-cache.js.map +0 -1
  156. package/cjs/types.d.ts +0 -391
  157. package/cjs/types.d.ts.map +0 -1
  158. package/cjs/types.js +0 -36
  159. package/cjs/types.js.map +0 -1
  160. package/cjs/utils.d.ts +0 -50
  161. package/cjs/utils.d.ts.map +0 -1
  162. package/cjs/utils.js +0 -55
  163. package/cjs/utils.js.map +0 -1
  164. package/esm/cache-manager.d.ts +0 -163
  165. package/esm/cache-manager.d.ts.map +0 -1
  166. package/esm/cache-manager.js +0 -322
  167. package/esm/cache-manager.js.map +0 -1
  168. package/esm/drivers/base-cache-driver.d.ts +0 -152
  169. package/esm/drivers/base-cache-driver.d.ts.map +0 -1
  170. package/esm/drivers/base-cache-driver.js +0 -321
  171. package/esm/drivers/base-cache-driver.js.map +0 -1
  172. package/esm/drivers/file-cache-driver.d.ts +0 -45
  173. package/esm/drivers/file-cache-driver.d.ts.map +0 -1
  174. package/esm/drivers/file-cache-driver.js +0 -133
  175. package/esm/drivers/file-cache-driver.js.map +0 -1
  176. package/esm/drivers/index.d.ts +0 -8
  177. package/esm/drivers/index.d.ts.map +0 -1
  178. package/esm/drivers/lru-memory-cache-driver.d.ts +0 -98
  179. package/esm/drivers/lru-memory-cache-driver.d.ts.map +0 -1
  180. package/esm/drivers/lru-memory-cache-driver.js +0 -252
  181. package/esm/drivers/lru-memory-cache-driver.js.map +0 -1
  182. package/esm/drivers/memory-cache-driver.d.ts +0 -82
  183. package/esm/drivers/memory-cache-driver.d.ts.map +0 -1
  184. package/esm/drivers/memory-cache-driver.js +0 -218
  185. package/esm/drivers/memory-cache-driver.js.map +0 -1
  186. package/esm/drivers/memory-extended-cache-driver.d.ts +0 -13
  187. package/esm/drivers/memory-extended-cache-driver.d.ts.map +0 -1
  188. package/esm/drivers/memory-extended-cache-driver.js +0 -25
  189. package/esm/drivers/memory-extended-cache-driver.js.map +0 -1
  190. package/esm/drivers/null-cache-driver.d.ts +0 -58
  191. package/esm/drivers/null-cache-driver.d.ts.map +0 -1
  192. package/esm/drivers/null-cache-driver.js +0 -84
  193. package/esm/drivers/null-cache-driver.js.map +0 -1
  194. package/esm/drivers/redis-cache-driver.d.ts +0 -57
  195. package/esm/drivers/redis-cache-driver.d.ts.map +0 -1
  196. package/esm/drivers/redis-cache-driver.js +0 -263
  197. package/esm/drivers/redis-cache-driver.js.map +0 -1
  198. package/esm/index.d.ts +0 -6
  199. package/esm/index.d.ts.map +0 -1
  200. package/esm/index.js +0 -1
  201. package/esm/index.js.map +0 -1
  202. package/esm/tagged-cache.d.ts +0 -77
  203. package/esm/tagged-cache.d.ts.map +0 -1
  204. package/esm/tagged-cache.js +0 -160
  205. package/esm/tagged-cache.js.map +0 -1
  206. package/esm/types.d.ts +0 -391
  207. package/esm/types.d.ts.map +0 -1
  208. package/esm/types.js +0 -36
  209. package/esm/types.js.map +0 -1
  210. package/esm/utils.d.ts +0 -50
  211. package/esm/utils.d.ts.map +0 -1
  212. package/esm/utils.js +0 -55
  213. package/esm/utils.js.map +0 -1
@@ -0,0 +1,314 @@
1
+ import { CacheConfigurations, CacheDriver, CacheEventHandler, CacheEventType, CacheKey, CacheListAccessor, CacheMetricsSnapshot, CacheNamespaceOptions, CacheSetOptions, CacheSimilarHit, CacheSimilarOptions, CacheSwrOptions, CacheTtl, DriverClass, LockOptions, LockOutcome, RememberOptions, ScopedCacheContract, TaggedCacheDriver } from "./types.mjs";
2
+ import { CacheMetricsCollector } from "./metrics.mjs";
3
+
4
+ //#region ../../@warlock.js/cache/src/cache-manager.d.ts
5
+ declare class CacheManager implements CacheDriver<any, any> {
6
+ /**
7
+ * Cache Driver
8
+ */
9
+ currentDriver?: CacheDriver<any, any>;
10
+ /**
11
+ * Loaded drivers
12
+ */
13
+ loadedDrivers: Record<string, CacheDriver<any, any>>;
14
+ /**
15
+ * Configurations list
16
+ */
17
+ protected configurations: CacheConfigurations;
18
+ /**
19
+ * Global event listeners
20
+ */
21
+ protected globalEventListeners: Map<CacheEventType, Set<CacheEventHandler>>;
22
+ /**
23
+ * Metrics collector — lazy on first {@link metrics} call so apps that
24
+ * never read metrics pay zero cost. Once instantiated, it stays
25
+ * subscribed to events for the manager's lifetime.
26
+ */
27
+ protected metricsCollector?: CacheMetricsCollector;
28
+ /**
29
+ * {@inheritdoc}
30
+ */
31
+ name: string;
32
+ /**
33
+ * {@inheritdoc}
34
+ */
35
+ get client(): any;
36
+ /**
37
+ * Set the cache configurations
38
+ */
39
+ setCacheConfigurations(configurations: CacheConfigurations): void;
40
+ /**
41
+ * Set logging state
42
+ */
43
+ setLoggingState(loggingState: boolean): void;
44
+ /**
45
+ * Switch the manager to a registered driver, optionally injecting runtime
46
+ * options that merge over the static config.
47
+ *
48
+ * The string form looks the driver up in `setCacheConfigurations({ drivers })`,
49
+ * loads it (or returns the cached instance), and sets it as `currentDriver`.
50
+ * The instance form takes a pre-built driver and bypasses the registry; the
51
+ * `runtimeOptions` argument is silently ignored in that case because the
52
+ * instance was constructed externally.
53
+ *
54
+ * Runtime options merge over `config.options[name]` per-key — runtime wins.
55
+ * Use this for constructor-only knobs that can't live in static config
56
+ * (e.g. `pg`'s `client: pg.Pool`).
57
+ *
58
+ * @example
59
+ * const pool = new Pool({ connectionString });
60
+ * await cache.use("pg", { client: pool });
61
+ */
62
+ use(driver: string | CacheDriver<any, any>, runtimeOptions?: Record<string, any>): Promise<this>;
63
+ /**
64
+ * Ensure driver is initialized before operations
65
+ */
66
+ protected ensureDriverInitialized(): void;
67
+ /**
68
+ * Return the running metrics snapshot — counters, hit-rate, latency
69
+ * percentiles, per-driver breakdowns. Lazy-attaches the collector on
70
+ * first call so apps that never read metrics pay zero cost.
71
+ *
72
+ * @example
73
+ * const m = cache.metrics();
74
+ * console.log(`hit rate: ${(m.hitRate * 100).toFixed(1)}%`);
75
+ * console.log(`p95: ${m.latencyMs.p95.toFixed(2)}ms`);
76
+ */
77
+ metrics(): CacheMetricsSnapshot;
78
+ /**
79
+ * Wipe every counter + latency sample and reset `startedAt` to now.
80
+ * The collector itself stays subscribed to events.
81
+ */
82
+ resetMetrics(): void;
83
+ /**
84
+ * Lazy-construct the metrics collector and wire it to the global event
85
+ * bus. Subsequent calls return the same instance — survives `cache.use()`
86
+ * driver switches because handlers attach via `on()` and re-bind to every
87
+ * loaded driver.
88
+ */
89
+ protected ensureMetricsCollector(): CacheMetricsCollector;
90
+ /**
91
+ * Time the body, record the elapsed milliseconds against the metrics
92
+ * collector for the given driver (defaults to the current driver's name).
93
+ * Pass-through if the collector hasn't been instantiated yet — apps that
94
+ * don't read metrics never pay for sample collection.
95
+ */
96
+ protected timed<T>(body: () => Promise<T>, driverName?: string): Promise<T>;
97
+ /**
98
+ * {@inheritdoc}
99
+ */
100
+ get<T = any>(key: CacheKey): Promise<T | null>;
101
+ /**
102
+ * Set a value in the cache.
103
+ *
104
+ * Accepts a positional TTL (number of seconds or duration string like `"1h"`)
105
+ * or a rich {@link CacheSetOptions} object supporting `ttl`, `expiresAt`,
106
+ * `tags`, `onConflict`, `namespace`, and per-call `driver` overrides.
107
+ */
108
+ set(key: CacheKey, value: any, ttlOrOptions?: CacheTtl | CacheSetOptions): Promise<any>;
109
+ /**
110
+ * {@inheritdoc}
111
+ */
112
+ remove(key: CacheKey): Promise<void>;
113
+ /**
114
+ * {@inheritdoc}
115
+ */
116
+ removeNamespace(namespace: string): Promise<any>;
117
+ /**
118
+ * {@inheritdoc}
119
+ */
120
+ flush(): Promise<void>;
121
+ /**
122
+ * {@inheritdoc}
123
+ */
124
+ connect(): Promise<any>;
125
+ /**
126
+ * {@inheritdoc}
127
+ */
128
+ parseKey(key: CacheKey): string;
129
+ /**
130
+ * {@inheritdoc}
131
+ */
132
+ get options(): any;
133
+ /**
134
+ * {@inheritdoc}
135
+ */
136
+ setOptions(options: Record<string, any>): any;
137
+ /**
138
+ * Return the loaded driver instance for `driverName`, loading it on first
139
+ * call. Optional `runtimeOptions` follow the same merge-over-config rules
140
+ * as {@link load}; passing options after the driver has already been
141
+ * loaded throws to avoid silent swallowing.
142
+ */
143
+ driver(driverName: string, runtimeOptions?: Record<string, any>): Promise<CacheDriver<any, any>>;
144
+ /**
145
+ * Initialize the cache manager and pick the default driver
146
+ */
147
+ init(): Promise<void>;
148
+ /**
149
+ * Load and connect the registered driver named `driver`. First-call wins —
150
+ * subsequent calls without `runtimeOptions` return the cached instance, and
151
+ * subsequent calls *with* `runtimeOptions` throw {@link CacheConfigurationError}
152
+ * to avoid silently dropping the new options.
153
+ *
154
+ * `runtimeOptions` merge over `config.options[driver]` per-key (runtime wins),
155
+ * letting consumers split static knobs (table, ttl, globalPrefix) from
156
+ * constructor-only ones (pg's `client`, custom adapters, etc.).
157
+ *
158
+ * @example
159
+ * const pool = new Pool({ connectionString });
160
+ * const pg = await cache.load("pg", { client: pool });
161
+ */
162
+ load(driver: string, runtimeOptions?: Record<string, any>): Promise<CacheDriver<any, any>>;
163
+ /**
164
+ * Guard against silently dropping runtime options on a re-load. Once a
165
+ * driver has been instantiated, its options are frozen — calling `load` /
166
+ * `driver` / `use` again with a non-empty `runtimeOptions` would otherwise
167
+ * appear to work but actually use the original options. We throw instead
168
+ * so the misuse surfaces at the call site.
169
+ */
170
+ protected assertNoConflictingReload(driverName: string, runtimeOptions: Record<string, any> | undefined): void;
171
+ /**
172
+ * Register and bind a driver
173
+ */
174
+ registerDriver(driverName: string, driverClass: DriverClass): void;
175
+ /**
176
+ * Disconnect the cache manager
177
+ */
178
+ disconnect(): Promise<void>;
179
+ /**
180
+ * {@inheritdoc}
181
+ */
182
+ has(key: CacheKey): Promise<boolean>;
183
+ /**
184
+ * {@inheritdoc}
185
+ */
186
+ remember<T = any>(key: CacheKey, ttlOrOptions: CacheTtl | RememberOptions, callback: () => Promise<T>): Promise<T>;
187
+ /**
188
+ * Stale-while-revalidate. Returns cached when fresh, returns the stale
189
+ * value plus a background refresh when within `freshTtl..staleTtl`,
190
+ * blocks like a normal miss past `staleTtl`. Honors per-call `driver`
191
+ * override the same way `remember()` does.
192
+ *
193
+ * @example
194
+ * const product = await cache.swr(
195
+ * "product.42",
196
+ * { freshTtl: "1m", staleTtl: "1h" },
197
+ * () => db.products.find(42),
198
+ * );
199
+ */
200
+ swr<T = any>(key: CacheKey, options: CacheSwrOptions, callback: () => Promise<T>): Promise<T>;
201
+ /**
202
+ * {@inheritdoc}
203
+ */
204
+ pull(key: CacheKey): Promise<any | null>;
205
+ /**
206
+ * {@inheritdoc}
207
+ */
208
+ forever(key: CacheKey, value: any): Promise<any>;
209
+ /**
210
+ * {@inheritdoc}
211
+ */
212
+ increment(key: CacheKey, value?: number): Promise<number>;
213
+ /**
214
+ * {@inheritdoc}
215
+ */
216
+ decrement(key: CacheKey, value?: number): Promise<number>;
217
+ /**
218
+ * {@inheritdoc}
219
+ */
220
+ many(keys: CacheKey[]): Promise<any[]>;
221
+ /**
222
+ * {@inheritdoc}
223
+ */
224
+ setMany(items: Record<string, any>, ttl?: number): Promise<void>;
225
+ /**
226
+ * Register a global event listener (applies to all drivers)
227
+ */
228
+ on(event: CacheEventType, handler: CacheEventHandler): this;
229
+ /**
230
+ * Remove a global event listener
231
+ */
232
+ off(event: CacheEventType, handler: CacheEventHandler): this;
233
+ /**
234
+ * Register a one-time global event listener
235
+ */
236
+ once(event: CacheEventType, handler: CacheEventHandler): this;
237
+ /**
238
+ * Attach global listeners to a driver
239
+ */
240
+ protected attachGlobalListeners(driver: CacheDriver<any, any>): void;
241
+ /**
242
+ * Set if not exists (atomic operation)
243
+ * Returns true if key was set, false if key already existed
244
+ * Note: Only supported by drivers that implement setNX (e.g., Redis)
245
+ */
246
+ setNX(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
247
+ /**
248
+ * Create a tagged cache instance for the given tags
249
+ */
250
+ tags(tags: string[]): TaggedCacheDriver;
251
+ /**
252
+ * Atomically read, transform, and write a cached value. Delegates to the current driver.
253
+ */
254
+ update<T = any>(key: CacheKey, fn: (current: T | null) => T | null | Promise<T | null>, options?: {
255
+ ttl?: CacheTtl;
256
+ }): Promise<T | null>;
257
+ /**
258
+ * Shallow-merge a partial object into a cached value.
259
+ */
260
+ merge<T extends Record<string, any> = Record<string, any>>(key: CacheKey, partial: Partial<T>, options?: {
261
+ ttl?: CacheTtl;
262
+ }): Promise<T>;
263
+ /**
264
+ * Obtain a list accessor bound to the current driver.
265
+ */
266
+ list<T = any>(key: CacheKey): CacheListAccessor<T>;
267
+ /**
268
+ * Acquire a distributed lock, run `fn`, and auto-release. Returns a
269
+ * {@link LockOutcome} discriminated union so callers can distinguish
270
+ * "ran and got this value" from "skipped because someone else holds it".
271
+ *
272
+ * Honors the `driver` option for per-call driver override, same as `set`
273
+ * and `remember`.
274
+ *
275
+ * @example
276
+ * const outcome = await cache.lock("lock.import", "5m", async () => {
277
+ * await runImport();
278
+ * return "done";
279
+ * });
280
+ * if (!outcome.acquired) {
281
+ * console.log("another worker is already importing");
282
+ * }
283
+ */
284
+ lock<T>(key: CacheKey, ttlOrOptions: CacheTtl | LockOptions, fn: () => Promise<T>): Promise<LockOutcome<T>>;
285
+ /**
286
+ * Similarity retrieval. Delegates to the current driver's `similar()` impl.
287
+ *
288
+ * Drivers that lack a similarity index throw {@link CacheUnsupportedError}.
289
+ *
290
+ * @example
291
+ * const hits = await cache.similar(await embed(query), { topK: 5, threshold: 0.7 });
292
+ */
293
+ /**
294
+ * Create a scoped view over the cache. Every key written through the
295
+ * returned scope is automatically prefixed with `prefix`; optional defaults
296
+ * (`ttl`, `tags`) flow through every write inside the scope.
297
+ *
298
+ * Per-call options always win over scope defaults. Scope tags merge
299
+ * additively with per-call tags. Nested scopes inherit from the parent.
300
+ *
301
+ * @example
302
+ * const chat = cache.namespace("chats.10", { ttl: "30d" });
303
+ * await chat.set("messages.1", msg); // → "chats.10.messages.1", 30d
304
+ * await chat.set("draft", d, { ttl: "1h" }); // per-call ttl wins
305
+ * await chat.namespace("typing", { ttl: "5s" }).set("user.42", true);
306
+ * await chat.clear(); // wipe the whole scope
307
+ */
308
+ namespace(prefix: string, options?: CacheNamespaceOptions): ScopedCacheContract;
309
+ similar<T = any>(vector: number[], options: CacheSimilarOptions): Promise<CacheSimilarHit<T>[]>;
310
+ }
311
+ declare const cache: CacheManager;
312
+ //#endregion
313
+ export { CacheManager, cache };
314
+ //# sourceMappingURL=cache-manager.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.d.mts","names":[],"sources":["../../../../../@warlock.js/cache/src/cache-manager.ts"],"mappings":"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"}