@gantryland/task-cache 0.3.0 → 0.4.0

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.
package/README.md CHANGED
@@ -1,179 +1,140 @@
1
1
  # @gantryland/task-cache
2
2
 
3
- Cache primitives and combinators for `@gantryland/task`.
4
-
5
- Use this package when you want explicit caching at the `TaskFn` layer: predictable TTL behavior, optional stale-while-revalidate, and clear invalidation.
3
+ Task-function cache wrappers with TTL, stale-while-revalidate, and in-flight dedupe.
6
4
 
7
5
  ## Installation
8
6
 
9
7
  ```bash
10
- npm install @gantryland/task-cache
8
+ npm install @gantryland/task @gantryland/task-cache
11
9
  ```
12
10
 
13
- ## Quick start
11
+ ## Quick Start
14
12
 
15
13
  ```typescript
16
14
  import { Task } from "@gantryland/task";
17
15
  import { MemoryCacheStore, cache } from "@gantryland/task-cache";
18
- import { pipe } from "@gantryland/task-combinators";
19
-
20
- type User = { id: string; name: string };
21
16
 
22
17
  const store = new MemoryCacheStore();
23
-
24
- const usersTask = new Task<User[]>(
25
- pipe(
26
- (signal) => fetch("/api/users", { signal }).then((r) => r.json()),
27
- cache("users", store, { ttl: 60_000, tags: ["users"] })
28
- )
18
+ const usersTaskFn = cache("users", store, { ttl: 60_000 })(
19
+ () => fetch("/api/users").then((r) => r.json()),
29
20
  );
30
21
 
31
- await usersTask.run(); // miss -> fetch -> set
32
- await usersTask.run(); // hit
22
+ const usersTask = new Task(usersTaskFn);
23
+
24
+ await usersTask.run();
25
+ await usersTask.run();
26
+ ```
27
+
28
+ ## Exports
29
+
30
+ | Export | Kind | What it does |
31
+ | --- | --- | --- |
32
+ | `MemoryCacheStore` | Class | Provides an in-memory `CacheStore` backed by `Map`. |
33
+ | `cache` | Wrapper factory | Returns a TTL cache wrapper with optional in-flight dedupe. |
34
+ | `staleWhileRevalidate` | Wrapper factory | Returns an SWR wrapper with stale window background refresh. |
35
+ | `CacheKey` | Type | Represents supported cache keys (`string | number | symbol`). |
36
+ | `CacheEntry` | Type | Represents cached value data with `updatedAt` timestamp. |
37
+ | `CacheStore` | Type | Represents the minimal cache store contract (`get`, `set`, `delete`). |
38
+ | `CacheOptions` | Type | Represents options for `cache` (`ttl?`, `dedupe?`). |
39
+ | `StaleWhileRevalidateOptions` | Type | Represents options for `staleWhileRevalidate` (`ttl`, `staleTtl?`, `dedupe?`). |
40
+
41
+ ## API Reference
42
+
43
+ ### `MemoryCacheStore`
44
+
45
+ Provides an in-memory `CacheStore` implementation backed by `Map`.
46
+
47
+ | Method | Signature | Description |
48
+ | --- | --- | --- |
49
+ | `get` | `<T>(key: CacheKey) => CacheEntry<T> \| undefined` | Returns cached entry for `key`, if present. |
50
+ | `set` | `<T>(key: CacheKey, entry: CacheEntry<T>) => void` | Stores or replaces entry for `key`. |
51
+ | `delete` | `(key: CacheKey) => void` | Removes entry for `key`. |
52
+
53
+ ### `cache`
54
+
55
+ ```typescript
56
+ cache<T, Args extends unknown[] = []>(
57
+ key: CacheKey,
58
+ store: CacheStore,
59
+ options?: CacheOptions,
60
+ ): (taskFn: (...args: Args) => Promise<T>) => (...args: Args) => Promise<T>
33
61
  ```
34
62
 
35
- ## When to use
63
+ Returns a wrapper that serves fresh cache hits and resolves source on miss or stale entry.
36
64
 
37
- - You want cache behavior close to task execution, not hidden in global framework config.
38
- - You need per-key TTL, dedupe, and tag/key invalidation.
39
- - You want a simple in-memory default store that can be replaced.
65
+ ### `staleWhileRevalidate`
40
66
 
41
- ## When not to use
67
+ ```typescript
68
+ staleWhileRevalidate<T, Args extends unknown[] = []>(
69
+ key: CacheKey,
70
+ store: CacheStore,
71
+ options: StaleWhileRevalidateOptions,
72
+ ): (taskFn: (...args: Args) => Promise<T>) => (...args: Args) => Promise<T>
73
+ ```
42
74
 
43
- - You need a full normalized client cache/data framework.
44
- - You cannot tolerate stale reads at all.
75
+ Returns a wrapper that can return stale values within `staleTtl` while refreshing in background.
45
76
 
46
- ## Core types
77
+ ### Types
47
78
 
48
79
  ```typescript
49
80
  type CacheKey = string | number | symbol;
50
81
 
51
82
  type CacheEntry<T> = {
52
83
  value: T;
53
- createdAt: number;
54
84
  updatedAt: number;
55
- tags?: string[];
85
+ };
86
+
87
+ type CacheStore = {
88
+ get<T>(key: CacheKey): CacheEntry<T> | undefined;
89
+ set<T>(key: CacheKey, entry: CacheEntry<T>): void;
90
+ delete(key: CacheKey): void;
56
91
  };
57
92
 
58
93
  type CacheOptions = {
59
94
  ttl?: number;
60
- staleTtl?: number;
61
- tags?: string[];
62
95
  dedupe?: boolean;
63
96
  };
64
- ```
65
-
66
- `createdAt` and `updatedAt` are epoch milliseconds.
67
-
68
- ## Semantics
69
-
70
- - `cache(...)`
71
- - Fresh entry returns immediately.
72
- - Miss/stale executes source task and stores on success.
73
- - Rejections (including `AbortError`) do not update cache.
74
- - `staleWhileRevalidate(...)`
75
- - Fresh entry returns immediately.
76
- - Stale-within-window returns stale value and triggers background revalidation.
77
- - Background revalidation errors are ignored and emitted as `revalidateError`.
78
- - Dedupe is enabled by default (`dedupe !== false`).
79
- - Concurrent calls for the same key share one in-flight promise.
80
- - In deduped mode, only the first caller signal is used for that shared request.
81
- - `invalidateOnResolve(...)`
82
- - Invalidates keys/tags only after successful resolution.
83
- - Failures do not invalidate.
84
-
85
- ## API
86
97
 
87
- | Export | Purpose | Return |
88
- | --- | --- | --- |
89
- | `new MemoryCacheStore()` | In-memory cache store with tag invalidation and events | `MemoryCacheStore` |
90
- | `cache(key, store, options?)` | TTL cache combinator | `(taskFn) => TaskFn` |
91
- | `staleWhileRevalidate(key, store, options?)` | Serve stale, refresh in background | `(taskFn) => TaskFn` |
92
- | `invalidateOnResolve(target, store)` | Invalidate keys/tags after success | `(taskFn) => TaskFn` |
93
-
94
- ### MemoryCacheStore methods
95
-
96
- ```typescript
97
- store.get(key)
98
- store.set(key, entry)
99
- store.delete(key)
100
- store.clear()
101
- store.has(key)
102
- store.keys()
103
- store.subscribe((event) => {})
104
- store.emit(event)
105
- store.invalidateTags(tags)
98
+ type StaleWhileRevalidateOptions = CacheOptions & {
99
+ ttl: number;
100
+ staleTtl?: number;
101
+ };
106
102
  ```
107
103
 
108
- ## Patterns
104
+ ## Practical Use Cases
109
105
 
110
- ### 1) Stale-while-revalidate for fast UI
106
+ ### Example: TTL Cache for List Endpoints
111
107
 
112
108
  ```typescript
113
- import { Task } from "@gantryland/task";
114
- import { MemoryCacheStore, staleWhileRevalidate } from "@gantryland/task-cache";
115
- import { pipe } from "@gantryland/task-combinators";
116
-
117
109
  const store = new MemoryCacheStore();
118
110
 
119
- const feedTask = new Task(
120
- pipe(
121
- (signal) => fetch("/api/feed", { signal }).then((r) => r.json()),
122
- staleWhileRevalidate("feed", store, { ttl: 10_000, staleTtl: 30_000 })
123
- )
111
+ const listUsers = cache("users:list", store, { ttl: 30_000 })(() =>
112
+ fetch("/api/users").then((r) => r.json()),
124
113
  );
125
-
126
- await feedTask.run();
127
114
  ```
128
115
 
129
- ### 2) Invalidate tagged entries after write
116
+ ### Example: Stale-While-Revalidate for Dashboards
130
117
 
131
118
  ```typescript
132
- import { Task } from "@gantryland/task";
133
- import { MemoryCacheStore, cache, invalidateOnResolve } from "@gantryland/task-cache";
134
- import { pipe } from "@gantryland/task-combinators";
135
-
136
- const store = new MemoryCacheStore();
137
-
138
- const listTask = new Task(
139
- pipe(
140
- (signal) => fetch("/api/posts", { signal }).then((r) => r.json()),
141
- cache("posts", store, { ttl: 30_000, tags: ["posts"] })
142
- )
143
- );
144
-
145
- const createTask = new Task(
146
- pipe(
147
- (signal) => fetch("/api/posts", { method: "POST", signal }).then((r) => r.json()),
148
- invalidateOnResolve({ tags: ["posts"] }, store)
149
- )
150
- );
151
-
152
- await listTask.run();
153
- await createTask.run();
119
+ const getStats = staleWhileRevalidate("stats", store, {
120
+ ttl: 10_000,
121
+ staleTtl: 50_000,
122
+ })(() => fetch("/api/stats").then((r) => r.json()));
154
123
  ```
155
124
 
156
- ### 3) Observe cache events
125
+ ### Example: Disable Dedupe for Independent Refreshes
157
126
 
158
127
  ```typescript
159
- import { MemoryCacheStore } from "@gantryland/task-cache";
160
-
161
- const store = new MemoryCacheStore();
162
-
163
- const unsubscribe = store.subscribe((event) => {
164
- console.log(event.type, event.key);
165
- });
166
-
167
- unsubscribe();
128
+ const getFeed = cache("feed", store, { ttl: 5_000, dedupe: false })(() =>
129
+ fetch("/api/feed").then((r) => r.json()),
130
+ );
168
131
  ```
169
132
 
170
- ## Related packages
171
-
172
- - [@gantryland/task](../task/) - Task execution and state primitive
173
- - [@gantryland/task-combinators](../task-combinators/) - TaskFn composition and control-flow operators
133
+ ## Runtime Semantics
174
134
 
175
- ## Test this package
176
-
177
- ```bash
178
- npx vitest packages/task-cache/test
179
- ```
135
+ - `cache` returns cached value when entry is fresh; otherwise it executes and stores on success.
136
+ - `staleWhileRevalidate` requires `ttl` as a non-negative finite number.
137
+ - Fresh SWR hit returns immediately without background work.
138
+ - Stale-window SWR hit returns stale value and triggers background revalidation.
139
+ - Background revalidation errors are ignored for the caller path.
140
+ - `dedupe` defaults to `true` so same key and in-flight requests share one promise.
package/dist/index.d.ts CHANGED
@@ -1,258 +1,37 @@
1
1
  import type { TaskFn } from "@gantryland/task";
2
- /** Supported cache key types. */
2
+ /** Cache key type used by cache stores and wrappers. */
3
3
  export type CacheKey = string | number | symbol;
4
- /**
5
- * Cache entry payload with metadata.
6
- *
7
- * Timestamps use epoch milliseconds.
8
- *
9
- * @template T - Cached value type
10
- *
11
- * @property value - Cached value
12
- * @property createdAt - Epoch timestamp of initial write
13
- * @property updatedAt - Epoch timestamp of last update
14
- * @property tags - Optional tags for invalidation
15
- */
4
+ /** Stored cache value with last update timestamp. */
16
5
  export type CacheEntry<T> = {
17
6
  value: T;
18
- createdAt: number;
19
7
  updatedAt: number;
20
- tags?: string[];
21
- };
22
- /**
23
- * Cache event payload.
24
- *
25
- * `error` is set for `revalidateError` events.
26
- *
27
- * @property type - Event type
28
- * @property key - Cache key involved in the event
29
- * @property entry - Cache entry involved in the event
30
- * @property error - Error for `revalidateError` events
31
- */
32
- export type CacheEvent = {
33
- type: "hit" | "miss" | "stale" | "set" | "invalidate" | "clear" | "revalidate" | "revalidateError";
34
- key?: CacheKey;
35
- entry?: CacheEntry<unknown>;
36
- error?: unknown;
37
8
  };
38
- /**
39
- * Minimal cache store interface.
40
- *
41
- * Optional methods enable eventing and tag invalidation.
42
- *
43
- * @property get - Return a cache entry by key
44
- * @property set - Store a cache entry by key
45
- * @property delete - Remove a cache entry by key
46
- * @property clear - Remove all cache entries
47
- * @property has - Check whether a key exists
48
- * @property keys - Return all cache keys
49
- * @property subscribe - Subscribe to cache events
50
- * @property emit - Emit a cache event to subscribers
51
- * @property invalidateTags - Remove entries matching tags
52
- */
9
+ /** Minimal cache store contract used by this package. */
53
10
  export type CacheStore = {
54
11
  get<T>(key: CacheKey): CacheEntry<T> | undefined;
55
12
  set<T>(key: CacheKey, entry: CacheEntry<T>): void;
56
13
  delete(key: CacheKey): void;
57
- clear(): void;
58
- has(key: CacheKey): boolean;
59
- keys?(): Iterable<CacheKey>;
60
- subscribe?(listener: (event: CacheEvent) => void): () => void;
61
- emit?(event: CacheEvent): void;
62
- invalidateTags?(tags: string[]): void;
63
14
  };
64
- /**
65
- * In-memory CacheStore with tag support.
66
- *
67
- * Emits cache events on set, delete, clear, and tag invalidation.
68
- * Listener errors are caught and logged.
69
- *
70
- * @example
71
- * ```typescript
72
- * const store = new MemoryCacheStore();
73
- * store.set("user:1", { value: { id: 1 }, createdAt: Date.now(), updatedAt: Date.now() });
74
- * const entry = store.get<{ id: number }>("user:1");
75
- * ```
76
- */
15
+ /** In-memory `CacheStore` backed by `Map`. */
77
16
  export declare class MemoryCacheStore implements CacheStore {
78
17
  private store;
79
- private tagIndex;
80
- private listeners;
81
- /**
82
- * Get a cache entry by key.
83
- *
84
- * @template T - Cached value type
85
- * @param key - Cache key
86
- * @returns The cache entry, or undefined when missing
87
- */
88
18
  get<T>(key: CacheKey): CacheEntry<T> | undefined;
89
- /**
90
- * Set a cache entry by key.
91
- *
92
- * Replaces any existing entry and updates tag indices.
93
- *
94
- * @template T - Cached value type
95
- * @param key - Cache key
96
- * @param entry - Entry to store
97
- */
98
19
  set<T>(key: CacheKey, entry: CacheEntry<T>): void;
99
- /**
100
- * Delete a cache entry by key.
101
- *
102
- * Emits an `invalidate` event with the previous entry when present.
103
- *
104
- * @param key - Cache key
105
- */
106
20
  delete(key: CacheKey): void;
107
- /**
108
- * Clear all entries.
109
- *
110
- * @returns Returns nothing.
111
- */
112
- clear(): void;
113
- /**
114
- * Check whether a key exists.
115
- *
116
- * @param key - Cache key
117
- * @returns True when the key exists
118
- */
119
- has(key: CacheKey): boolean;
120
- /**
121
- * List all keys.
122
- *
123
- * @returns Iterable of cache keys
124
- */
125
- keys(): Iterable<CacheKey>;
126
- /**
127
- * Subscribe to cache events.
128
- *
129
- * @param listener - Event listener
130
- * @returns Unsubscribe function
131
- */
132
- subscribe(listener: (event: CacheEvent) => void): () => void;
133
- /**
134
- * Emit a cache event to listeners.
135
- *
136
- * Listener errors are caught and logged to `console.error`.
137
- *
138
- * @param event - Cache event payload
139
- */
140
- emit(event: CacheEvent): void;
141
- /**
142
- * Invalidate entries matching any tag.
143
- *
144
- * @param tags - Tags to invalidate
145
- */
146
- invalidateTags(tags: string[]): void;
147
- private addTags;
148
- private removeTags;
149
21
  }
150
- /**
151
- * Options for cache and stale-while-revalidate.
152
- *
153
- * @property ttl - Time-to-live in milliseconds (fresh window)
154
- * @property staleTtl - Additional stale window after ttl expires
155
- * @property tags - Tags to associate with stored entries
156
- * @property dedupe - Share in-flight requests for the same key
157
- */
158
22
  export type CacheOptions = {
159
- /**
160
- * Time-to-live in milliseconds. When undefined, entries are always fresh.
161
- */
162
23
  ttl?: number;
163
- /**
164
- * Additional stale window after ttl expires.
165
- */
166
- staleTtl?: number;
167
- /**
168
- * Tags to associate with stored entries.
169
- */
170
- tags?: string[];
171
- /**
172
- * Dedupe in-flight requests for the same key. Defaults to true.
173
- */
174
24
  dedupe?: boolean;
175
25
  };
176
- /**
177
- * Cache TaskFn results by key and store.
178
- *
179
- * Returns cached data when fresh; otherwise runs the TaskFn and stores the result.
180
- * If the TaskFn rejects (including AbortError), the cache is not updated.
181
- * Dedupe is enabled by default; when deduped, only the first caller's AbortSignal is used.
182
- * The returned TaskFn rejects when the underlying TaskFn rejects.
183
- *
184
- * @template T - Resolved data type
185
- * @template Args - TaskFn argument tuple
186
- * @param key - Cache key for the entry
187
- * @param store - CacheStore implementation
188
- * @param options - Cache behavior options
189
- * @returns A combinator that returns a TaskFn resolving to cached or fresh data
190
- *
191
- * @example
192
- * ```typescript
193
- * const store = new MemoryCacheStore();
194
- * const taskFn = pipe(
195
- * (signal) => fetch("/api/users", { signal }).then((r) => r.json()),
196
- * cache("users", store, { ttl: 10_000 })
197
- * );
198
- * const users = await taskFn();
199
- * ```
200
- */
26
+ /** Options for stale-while-revalidate behavior. */
27
+ export type StaleWhileRevalidateOptions = CacheOptions & {
28
+ ttl: number;
29
+ staleTtl?: number;
30
+ };
31
+ /** Cache wrapper with optional TTL and in-flight deduplication. */
201
32
  export declare const cache: <T, Args extends unknown[] = []>(key: CacheKey, store: CacheStore, options?: CacheOptions) => (taskFn: TaskFn<T, Args>) => TaskFn<T, Args>;
202
33
  /**
203
- * Return cached data and refresh in the background when stale.
204
- *
205
- * Returns cached data when fresh, or when within the stale window.
206
- * If the TaskFn rejects (including AbortError), the cache is not updated.
207
- * Dedupe is enabled by default; when deduped, only the first caller's AbortSignal is used.
208
- * Background revalidation does not use the caller's AbortSignal.
209
- * Background errors emit `revalidateError`, are ignored, and do not update the cache.
210
- * The returned TaskFn rejects when the underlying TaskFn rejects.
211
- *
212
- * @template T - Resolved data type
213
- * @template Args - TaskFn argument tuple
214
- * @param key - Cache key for the entry
215
- * @param store - CacheStore implementation
216
- * @param options - Cache behavior options
217
- * @returns A combinator that returns a TaskFn resolving to cached or fresh data
218
- *
219
- * @example
220
- * ```typescript
221
- * const store = new MemoryCacheStore();
222
- * const taskFn = pipe(
223
- * (signal) => fetch("/api/feed", { signal }).then((r) => r.json()),
224
- * staleWhileRevalidate("feed", store, { ttl: 5_000, staleTtl: 30_000 })
225
- * );
226
- * const feed = await taskFn();
227
- * ```
228
- */
229
- export declare const staleWhileRevalidate: <T, Args extends unknown[] = []>(key: CacheKey, store: CacheStore, options?: CacheOptions) => (taskFn: TaskFn<T, Args>) => TaskFn<T, Args>;
230
- /**
231
- * Invalidate cache entries after a TaskFn resolves.
232
- *
233
- * Supports keys, key arrays, tags, or a resolver function.
234
- * If the TaskFn rejects (including AbortError), no invalidation happens.
235
- * The returned TaskFn rejects when the underlying TaskFn rejects.
236
- *
237
- * @template T - Resolved data type
238
- * @template Args - TaskFn argument tuple
239
- * @param target - Keys, tags, or resolver for invalidation
240
- * @param store - CacheStore implementation
241
- * @returns A combinator that returns a TaskFn resolving to the original result
242
- *
243
- * @example
244
- * ```typescript
245
- * const store = new MemoryCacheStore();
246
- * const taskFn = pipe(
247
- * (signal) => fetch("/api/posts", { method: "POST", signal }).then((r) => r.json()),
248
- * invalidateOnResolve({ tags: ["posts"] }, store)
249
- * );
250
- * await taskFn();
251
- * ```
34
+ * Return stale values within a stale window and refresh in background.
252
35
  */
253
- export declare const invalidateOnResolve: <T, Args extends unknown[] = []>(target: CacheKey | CacheKey[] | {
254
- tags: string[];
255
- } | ((result: T) => CacheKey | CacheKey[] | {
256
- tags: string[];
257
- }), store: CacheStore) => (taskFn: TaskFn<T, Args>) => TaskFn<T, Args>;
36
+ export declare const staleWhileRevalidate: <T, Args extends unknown[] = []>(key: CacheKey, store: CacheStore, options: StaleWhileRevalidateOptions) => (taskFn: TaskFn<T, Args>) => TaskFn<T, Args>;
258
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,wDAAwD;AACxD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,qDAAqD;AACrD,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClD,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,8CAA8C;AAC9C,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,KAAK,CAA4C;IAEzD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAIhD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAIjD,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;CAG5B;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,mDAAmD;AACnD,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA2EF,mEAAmE;AACnE,eAAO,MAAM,KAAK,GACf,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,GAAG,EAAE,EAC7B,KAAK,QAAQ,EACb,OAAO,UAAU,EACjB,UAAS,YAAiB,MAE3B,QAAQ,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAKxC,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC9B,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,GAAG,EAAE,EAC7B,KAAK,QAAQ,EACb,OAAO,UAAU,EACjB,SAAS,2BAA2B,MAErC,QAAQ,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAcxC,CAAC"}
package/dist/index.js CHANGED
@@ -1,149 +1,16 @@
1
- /**
2
- * In-memory CacheStore with tag support.
3
- *
4
- * Emits cache events on set, delete, clear, and tag invalidation.
5
- * Listener errors are caught and logged.
6
- *
7
- * @example
8
- * ```typescript
9
- * const store = new MemoryCacheStore();
10
- * store.set("user:1", { value: { id: 1 }, createdAt: Date.now(), updatedAt: Date.now() });
11
- * const entry = store.get<{ id: number }>("user:1");
12
- * ```
13
- */
1
+ /** In-memory `CacheStore` backed by `Map`. */
14
2
  export class MemoryCacheStore {
15
3
  constructor() {
16
4
  this.store = new Map();
17
- this.tagIndex = new Map();
18
- this.listeners = new Set();
19
5
  }
20
- /**
21
- * Get a cache entry by key.
22
- *
23
- * @template T - Cached value type
24
- * @param key - Cache key
25
- * @returns The cache entry, or undefined when missing
26
- */
27
6
  get(key) {
28
7
  return this.store.get(key);
29
8
  }
30
- /**
31
- * Set a cache entry by key.
32
- *
33
- * Replaces any existing entry and updates tag indices.
34
- *
35
- * @template T - Cached value type
36
- * @param key - Cache key
37
- * @param entry - Entry to store
38
- */
39
9
  set(key, entry) {
40
- const existing = this.store.get(key);
41
- if (existing?.tags)
42
- this.removeTags(key, existing.tags);
43
- if (entry.tags)
44
- this.addTags(key, entry.tags);
45
10
  this.store.set(key, entry);
46
- this.emit({ type: "set", key, entry });
47
11
  }
48
- /**
49
- * Delete a cache entry by key.
50
- *
51
- * Emits an `invalidate` event with the previous entry when present.
52
- *
53
- * @param key - Cache key
54
- */
55
12
  delete(key) {
56
- const existing = this.store.get(key);
57
- if (existing?.tags)
58
- this.removeTags(key, existing.tags);
59
13
  this.store.delete(key);
60
- this.emit({ type: "invalidate", key, entry: existing });
61
- }
62
- /**
63
- * Clear all entries.
64
- *
65
- * @returns Returns nothing.
66
- */
67
- clear() {
68
- this.store.clear();
69
- this.tagIndex.clear();
70
- this.emit({ type: "clear" });
71
- }
72
- /**
73
- * Check whether a key exists.
74
- *
75
- * @param key - Cache key
76
- * @returns True when the key exists
77
- */
78
- has(key) {
79
- return this.store.has(key);
80
- }
81
- /**
82
- * List all keys.
83
- *
84
- * @returns Iterable of cache keys
85
- */
86
- keys() {
87
- return this.store.keys();
88
- }
89
- /**
90
- * Subscribe to cache events.
91
- *
92
- * @param listener - Event listener
93
- * @returns Unsubscribe function
94
- */
95
- subscribe(listener) {
96
- this.listeners.add(listener);
97
- return () => this.listeners.delete(listener);
98
- }
99
- /**
100
- * Emit a cache event to listeners.
101
- *
102
- * Listener errors are caught and logged to `console.error`.
103
- *
104
- * @param event - Cache event payload
105
- */
106
- emit(event) {
107
- for (const listener of this.listeners) {
108
- try {
109
- listener(event);
110
- }
111
- catch (error) {
112
- console.error("Cache listener error", error);
113
- }
114
- }
115
- }
116
- /**
117
- * Invalidate entries matching any tag.
118
- *
119
- * @param tags - Tags to invalidate
120
- */
121
- invalidateTags(tags) {
122
- for (const tag of tags) {
123
- const keys = this.tagIndex.get(tag);
124
- if (!keys)
125
- continue;
126
- for (const key of keys)
127
- this.delete(key);
128
- this.tagIndex.delete(tag);
129
- }
130
- }
131
- addTags(key, tags) {
132
- for (const tag of tags) {
133
- const set = this.tagIndex.get(tag) ?? new Set();
134
- set.add(key);
135
- this.tagIndex.set(tag, set);
136
- }
137
- }
138
- removeTags(key, tags) {
139
- for (const tag of tags) {
140
- const set = this.tagIndex.get(tag);
141
- if (!set)
142
- continue;
143
- set.delete(key);
144
- if (set.size === 0)
145
- this.tagIndex.delete(tag);
146
- }
147
14
  }
148
15
  }
149
16
  const pendingByStore = new WeakMap();
@@ -160,46 +27,37 @@ const isFresh = (entry, ttl) => {
160
27
  return true;
161
28
  return Date.now() - entry.updatedAt <= ttl;
162
29
  };
30
+ const toValidTtl = (ttl) => {
31
+ if (typeof ttl !== "number" || !Number.isFinite(ttl) || ttl < 0) {
32
+ throw new Error("staleWhileRevalidate requires a non-negative finite ttl");
33
+ }
34
+ return ttl;
35
+ };
163
36
  const isWithinStale = (entry, ttl, staleTtl) => {
164
- if (ttl === undefined)
165
- return false;
166
37
  const age = Date.now() - entry.updatedAt;
167
38
  return age > ttl && age <= ttl + (staleTtl ?? 0);
168
39
  };
169
- const setEntry = (store, key, value, tags, previous) => {
170
- const now = Date.now();
40
+ const setEntry = (store, key, value) => {
171
41
  const entry = {
172
42
  value,
173
- createdAt: previous?.createdAt ?? now,
174
- updatedAt: now,
175
- tags,
43
+ updatedAt: Date.now(),
176
44
  };
177
45
  store.set(key, entry);
178
46
  return entry;
179
47
  };
180
- const resolveWithDedupe = async (key, store, taskFn, signal, args, options = {}, previous, onError) => {
48
+ const resolveWithDedupe = async (key, store, taskFn, args, options = {}) => {
181
49
  const dedupe = options.dedupe !== false;
182
50
  const pending = dedupe ? getPendingMap(store) : undefined;
183
51
  if (pending) {
184
52
  const inFlight = pending.get(key);
185
- if (inFlight) {
186
- if (onError) {
187
- inFlight.catch((error) => {
188
- onError(error);
189
- });
190
- }
53
+ if (inFlight)
191
54
  return inFlight;
192
- }
193
55
  }
194
56
  const promise = Promise.resolve()
195
- .then(() => taskFn(signal, ...args))
57
+ .then(() => taskFn(...args))
196
58
  .then((value) => {
197
- setEntry(store, key, value, options.tags, previous);
59
+ setEntry(store, key, value);
198
60
  return value;
199
- })
200
- .catch((error) => {
201
- onError?.(error);
202
- throw error;
203
61
  })
204
62
  .finally(() => {
205
63
  pending?.delete(key);
@@ -207,121 +65,27 @@ const resolveWithDedupe = async (key, store, taskFn, signal, args, options = {},
207
65
  pending?.set(key, promise);
208
66
  return promise;
209
67
  };
210
- /**
211
- * Cache TaskFn results by key and store.
212
- *
213
- * Returns cached data when fresh; otherwise runs the TaskFn and stores the result.
214
- * If the TaskFn rejects (including AbortError), the cache is not updated.
215
- * Dedupe is enabled by default; when deduped, only the first caller's AbortSignal is used.
216
- * The returned TaskFn rejects when the underlying TaskFn rejects.
217
- *
218
- * @template T - Resolved data type
219
- * @template Args - TaskFn argument tuple
220
- * @param key - Cache key for the entry
221
- * @param store - CacheStore implementation
222
- * @param options - Cache behavior options
223
- * @returns A combinator that returns a TaskFn resolving to cached or fresh data
224
- *
225
- * @example
226
- * ```typescript
227
- * const store = new MemoryCacheStore();
228
- * const taskFn = pipe(
229
- * (signal) => fetch("/api/users", { signal }).then((r) => r.json()),
230
- * cache("users", store, { ttl: 10_000 })
231
- * );
232
- * const users = await taskFn();
233
- * ```
234
- */
235
- export const cache = (key, store, options = {}) => (taskFn) => async (signal, ...args) => {
68
+ /** Cache wrapper with optional TTL and in-flight deduplication. */
69
+ export const cache = (key, store, options = {}) => (taskFn) => async (...args) => {
236
70
  const entry = store.get(key);
237
- if (entry && isFresh(entry, options.ttl)) {
238
- store.emit?.({ type: "hit", key, entry });
71
+ if (entry && isFresh(entry, options.ttl))
239
72
  return entry.value;
240
- }
241
- store.emit?.({ type: entry ? "stale" : "miss", key, entry });
242
- return resolveWithDedupe(key, store, taskFn, signal, args, options, entry);
73
+ return resolveWithDedupe(key, store, taskFn, args, options);
243
74
  };
244
75
  /**
245
- * Return cached data and refresh in the background when stale.
246
- *
247
- * Returns cached data when fresh, or when within the stale window.
248
- * If the TaskFn rejects (including AbortError), the cache is not updated.
249
- * Dedupe is enabled by default; when deduped, only the first caller's AbortSignal is used.
250
- * Background revalidation does not use the caller's AbortSignal.
251
- * Background errors emit `revalidateError`, are ignored, and do not update the cache.
252
- * The returned TaskFn rejects when the underlying TaskFn rejects.
253
- *
254
- * @template T - Resolved data type
255
- * @template Args - TaskFn argument tuple
256
- * @param key - Cache key for the entry
257
- * @param store - CacheStore implementation
258
- * @param options - Cache behavior options
259
- * @returns A combinator that returns a TaskFn resolving to cached or fresh data
260
- *
261
- * @example
262
- * ```typescript
263
- * const store = new MemoryCacheStore();
264
- * const taskFn = pipe(
265
- * (signal) => fetch("/api/feed", { signal }).then((r) => r.json()),
266
- * staleWhileRevalidate("feed", store, { ttl: 5_000, staleTtl: 30_000 })
267
- * );
268
- * const feed = await taskFn();
269
- * ```
76
+ * Return stale values within a stale window and refresh in background.
270
77
  */
271
- export const staleWhileRevalidate = (key, store, options = {}) => (taskFn) => async (signal, ...args) => {
78
+ export const staleWhileRevalidate = (key, store, options) => (taskFn) => async (...args) => {
79
+ const ttl = toValidTtl(options?.ttl);
272
80
  const entry = store.get(key);
273
- if (entry && isFresh(entry, options.ttl)) {
274
- store.emit?.({ type: "hit", key, entry });
81
+ if (entry && isFresh(entry, ttl))
275
82
  return entry.value;
276
- }
277
- if (entry && isWithinStale(entry, options.ttl, options.staleTtl)) {
278
- store.emit?.({ type: "stale", key, entry });
279
- store.emit?.({ type: "revalidate", key, entry });
280
- void resolveWithDedupe(key, store, taskFn, undefined, args, options, entry, (error) => {
281
- store.emit?.({ type: "revalidateError", key, entry, error });
282
- }).catch(() => {
83
+ if (entry && isWithinStale(entry, ttl, options.staleTtl)) {
84
+ void resolveWithDedupe(key, store, taskFn, args, options).catch(() => {
283
85
  // Background revalidation errors are ignored.
284
86
  });
285
87
  return entry.value;
286
88
  }
287
- store.emit?.({ type: "miss", key, entry });
288
- return resolveWithDedupe(key, store, taskFn, signal, args, options, entry);
289
- };
290
- /**
291
- * Invalidate cache entries after a TaskFn resolves.
292
- *
293
- * Supports keys, key arrays, tags, or a resolver function.
294
- * If the TaskFn rejects (including AbortError), no invalidation happens.
295
- * The returned TaskFn rejects when the underlying TaskFn rejects.
296
- *
297
- * @template T - Resolved data type
298
- * @template Args - TaskFn argument tuple
299
- * @param target - Keys, tags, or resolver for invalidation
300
- * @param store - CacheStore implementation
301
- * @returns A combinator that returns a TaskFn resolving to the original result
302
- *
303
- * @example
304
- * ```typescript
305
- * const store = new MemoryCacheStore();
306
- * const taskFn = pipe(
307
- * (signal) => fetch("/api/posts", { method: "POST", signal }).then((r) => r.json()),
308
- * invalidateOnResolve({ tags: ["posts"] }, store)
309
- * );
310
- * await taskFn();
311
- * ```
312
- */
313
- export const invalidateOnResolve = (target, store) => (taskFn) => async (signal, ...args) => {
314
- const result = await taskFn(signal, ...args);
315
- const resolved = typeof target === "function" ? target(result) : target;
316
- if (typeof resolved === "object" &&
317
- !Array.isArray(resolved) &&
318
- "tags" in resolved) {
319
- store.invalidateTags?.(resolved.tags);
320
- return result;
321
- }
322
- const keys = Array.isArray(resolved) ? resolved : [resolved];
323
- for (const key of keys)
324
- store.delete(key);
325
- return result;
89
+ return resolveWithDedupe(key, store, taskFn, args, options);
326
90
  };
327
91
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gantryland/task-cache",
3
- "version": "0.3.0",
4
- "description": "Cache store and combinator for @gantryland/task",
3
+ "version": "0.4.0",
4
+ "description": "Task-function cache wrappers for @gantryland/task",
5
5
  "keywords": ["task", "cache", "memoize", "async"],
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -13,7 +13,13 @@
13
13
  },
14
14
  "./package.json": "./package.json"
15
15
  },
16
- "files": ["dist", "README.md"],
16
+ "files": [
17
+ "dist/index.js",
18
+ "dist/index.js.map",
19
+ "dist/index.d.ts",
20
+ "dist/index.d.ts.map",
21
+ "README.md"
22
+ ],
17
23
  "scripts": {
18
24
  "prepack": "tsc -b"
19
25
  },
@@ -34,6 +40,6 @@
34
40
  },
35
41
  "homepage": "https://github.com/joehoot/gantryland/tree/main/packages/task-cache#readme",
36
42
  "dependencies": {
37
- "@gantryland/task": "^0.3.0"
43
+ "@gantryland/task": "^0.4.0"
38
44
  }
39
45
  }
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../../task/dist/index.d.ts","../index.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-test-renderer/index.d.ts"],"fileIdsList":[[60,108,125,126],[60,105,106,108,125,126],[60,107,108,125,126],[108,125,126],[60,108,113,125,126,143],[60,108,109,114,119,125,126,128,140,151],[60,108,109,110,119,125,126,128],[55,56,57,60,108,125,126],[60,108,111,125,126,152],[60,108,112,113,120,125,126,129],[60,108,113,125,126,140,148],[60,108,114,116,119,125,126,128],[60,107,108,115,125,126],[60,108,116,117,125,126],[60,108,118,119,125,126],[60,107,108,119,125,126],[60,108,119,120,121,125,126,140,151],[60,108,119,120,121,125,126,135,140,143],[60,101,108,116,119,122,125,126,128,140,151],[60,108,119,120,122,123,125,126,128,140,148,151],[60,108,122,124,125,126,140,148,151],[58,59,60,61,62,63,64,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157],[60,108,119,125,126],[60,108,125,126,127,151],[60,108,116,119,125,126,128,140],[60,108,125,126,129],[60,108,125,126,130],[60,107,108,125,126,131],[60,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157],[60,108,125,126,133],[60,108,125,126,134],[60,108,119,125,126,135,136],[60,108,125,126,135,137,152,154],[60,108,120,125,126],[60,108,119,125,126,140,141,143],[60,108,125,126,142,143],[60,108,125,126,140,141],[60,108,125,126,143],[60,108,125,126,144],[60,105,108,125,126,140,145],[60,108,119,125,126,146,147],[60,108,125,126,146,147],[60,108,113,125,126,128,140,148],[60,108,125,126,149],[60,108,125,126,128,150],[60,108,122,125,126,134,151],[60,108,113,125,126,152],[60,108,125,126,140,153],[60,108,125,126,127,154],[60,108,125,126,155],[60,101,108,125,126],[60,101,108,119,121,125,126,131,140,143,151,153,154,156],[60,108,125,126,140,157],[60,108,125,126,162],[60,108,125,126,159,160,161],[60,73,77,108,125,126,151],[60,73,108,125,126,140,151],[60,68,108,125,126],[60,70,73,108,125,126,148,151],[60,108,125,126,128,148],[60,108,125,126,158],[60,68,108,125,126,158],[60,70,73,108,125,126,128,151],[60,65,66,69,72,108,119,125,126,140,151],[60,73,80,108,125,126],[60,65,71,108,125,126],[60,73,94,95,108,125,126],[60,69,73,108,125,126,143,151,158],[60,94,108,125,126,158],[60,67,68,108,125,126,158],[60,73,108,125,126],[60,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100,108,125,126],[60,73,88,108,125,126],[60,73,80,81,108,125,126],[60,71,73,81,82,108,125,126],[60,72,108,125,126],[60,65,68,73,108,125,126],[60,73,77,81,82,108,125,126],[60,77,108,125,126],[60,71,73,76,108,125,126,151],[60,65,70,73,80,108,125,126],[60,108,125,126,140],[60,68,73,94,108,125,126,156,158],[52,60,108,125,126]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"dafe6ade5bf79ad163c589ac03e0d21f760c432e34df45f5bada14f7b5ceb4d3","impliedFormat":99},{"version":"c14c3b8da5ce3cfc4ef06f40a05c3778d06d5eda5819809c28831448f37ad81f","signature":"577c83c5f7de9dc8331661550b506aa81546dadede4f2a5aaed92086df18f6e5","impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"bb45cd435da536500f1d9692a9b49d0c570b763ccbf00473248b777f5c1f353b","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2bc7425ef40526650d6db7e072c1ff4a51101c3ac2cc4b666623b19496a6e27","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b039f55681caaf111d5eb84d292b9bee9e0131d0db1ad0871eef0964f533c73","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"0dba70b3fb0dcd713fda33c2df64fa6751fff6460e536971cee917260fb17882","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a370e617fd7ec5ff8c99f3582001f7c9ebf03e3c5be4113d3a504d321aff48fd","impliedFormat":1}],"root":[53],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[54,1],[105,2],[106,2],[107,3],[60,4],[108,5],[109,6],[110,7],[55,1],[58,8],[56,1],[57,1],[111,9],[112,10],[113,11],[114,12],[115,13],[116,14],[117,14],[118,15],[119,16],[120,17],[121,18],[61,1],[59,1],[122,19],[123,20],[124,21],[158,22],[125,23],[126,1],[127,24],[128,25],[129,26],[130,27],[131,28],[132,29],[133,30],[134,31],[135,32],[136,32],[137,33],[138,1],[139,34],[140,35],[142,36],[141,37],[143,38],[144,39],[145,40],[146,41],[147,42],[148,43],[149,44],[150,45],[151,46],[152,47],[153,48],[154,49],[155,50],[62,1],[63,1],[64,1],[102,51],[103,1],[104,1],[156,52],[157,53],[159,1],[163,54],[160,1],[162,55],[161,1],[49,1],[50,1],[10,1],[8,1],[9,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[23,1],[24,1],[4,1],[25,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[5,1],[33,1],[34,1],[35,1],[36,1],[6,1],[40,1],[37,1],[38,1],[39,1],[41,1],[7,1],[42,1],[51,1],[47,1],[48,1],[43,1],[44,1],[45,1],[46,1],[1,1],[12,1],[11,1],[80,56],[90,57],[79,56],[100,58],[71,59],[70,60],[99,61],[93,62],[98,63],[73,64],[87,65],[72,66],[96,67],[68,68],[67,61],[97,69],[69,70],[74,71],[75,1],[78,71],[65,1],[101,72],[91,73],[82,74],[83,75],[85,76],[81,77],[84,78],[94,61],[76,79],[77,80],[86,81],[66,82],[89,73],[88,71],[92,1],[95,83],[53,84],[52,1]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}