hyperttp 0.2.0 → 0.2.2

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 (49) hide show
  1. package/README.md +55 -65
  2. package/dist/Hyperttp/Core/CacheManager.d.ts +16 -3
  3. package/dist/Hyperttp/Core/CacheManager.d.ts.map +1 -1
  4. package/dist/Hyperttp/Core/CacheManager.js +45 -13
  5. package/dist/Hyperttp/Core/CacheManager.js.map +1 -1
  6. package/dist/Hyperttp/Core/HttpClientImproved.d.ts +5 -3
  7. package/dist/Hyperttp/Core/HttpClientImproved.d.ts.map +1 -1
  8. package/dist/Hyperttp/Core/HttpClientImproved.js +164 -157
  9. package/dist/Hyperttp/Core/HttpClientImproved.js.map +1 -1
  10. package/dist/Hyperttp/Core/MetricsManager.d.ts +32 -0
  11. package/dist/Hyperttp/Core/MetricsManager.d.ts.map +1 -0
  12. package/dist/Hyperttp/Core/MetricsManager.js +96 -0
  13. package/dist/Hyperttp/Core/MetricsManager.js.map +1 -0
  14. package/dist/Hyperttp/Core/QueueManager.d.ts.map +1 -1
  15. package/dist/Hyperttp/Core/QueueManager.js +12 -5
  16. package/dist/Hyperttp/Core/QueueManager.js.map +1 -1
  17. package/dist/Hyperttp/Core/RateLimiter.d.ts +6 -36
  18. package/dist/Hyperttp/Core/RateLimiter.d.ts.map +1 -1
  19. package/dist/Hyperttp/Core/RateLimiter.js +41 -58
  20. package/dist/Hyperttp/Core/RateLimiter.js.map +1 -1
  21. package/dist/Hyperttp/Core/RequestBuilder.d.ts +17 -4
  22. package/dist/Hyperttp/Core/RequestBuilder.d.ts.map +1 -1
  23. package/dist/Hyperttp/Core/RequestBuilder.js +41 -18
  24. package/dist/Hyperttp/Core/RequestBuilder.js.map +1 -1
  25. package/dist/Hyperttp/Core/index.d.ts +4 -1
  26. package/dist/Hyperttp/Core/index.d.ts.map +1 -1
  27. package/dist/Hyperttp/Core/index.js +11 -5
  28. package/dist/Hyperttp/Core/index.js.map +1 -1
  29. package/dist/Hyperttp/Request.d.ts +5 -0
  30. package/dist/Hyperttp/Request.d.ts.map +1 -1
  31. package/dist/Hyperttp/Request.js +17 -35
  32. package/dist/Hyperttp/Request.js.map +1 -1
  33. package/dist/Hyperttp/UrlExtractor.d.ts +1 -1
  34. package/dist/Hyperttp/UrlExtractor.d.ts.map +1 -1
  35. package/dist/Hyperttp/UrlExtractor.js.map +1 -1
  36. package/dist/Hyperttp/index.d.ts +3 -1
  37. package/dist/Hyperttp/index.d.ts.map +1 -1
  38. package/dist/Hyperttp/index.js +6 -1
  39. package/dist/Hyperttp/index.js.map +1 -1
  40. package/dist/Types/index.d.ts +45 -206
  41. package/dist/Types/index.d.ts.map +1 -1
  42. package/dist/Types/index.js +7 -16
  43. package/dist/Types/index.js.map +1 -1
  44. package/dist/Types/request.d.ts +15 -100
  45. package/dist/Types/request.d.ts.map +1 -1
  46. package/dist/Types/request.js.map +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js.map +1 -1
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -1,48 +1,29 @@
1
1
  # Hyperttp
2
2
 
3
- Advanced HTTP client for Node.js with caching, rate limiting, request queuing, automatic retries, cookie management, and response decompression.
3
+ Advanced HTTP client for Node.js with caching, rate limiting, request queuing, automatic retries, cookie management, and automatic JSON/XML parsing.
4
4
 
5
5
  ## Features
6
6
 
7
- * Automatic request deduplication
8
- * LRU caching with TTL
9
- * Configurable rate limiting
10
- * Concurrent request management
11
- * Exponential backoff with jitter
12
- * Cookie jar support
13
- * Automatic response parsing (JSON/XML)
14
- * Compression support (gzip, deflate, brotli)
7
+ - Automatic request deduplication
8
+ - LRU caching with TTL
9
+ - Configurable rate limiting
10
+ - Concurrent request management
11
+ - Exponential backoff with jitter for retries
12
+ - Cookie jar support
13
+ - Automatic response parsing (JSON/XML/text/buffer)
14
+ - Automatic handling of redirects
15
+ - Fluent request builder API
15
16
 
16
- ---
17
+ ## Installation
17
18
 
18
- ## Buttons to Switch Language
19
-
20
- [English](#english-version) | [Русский](#russian-version)
21
-
22
- ---
23
-
24
- ## Russian Version
25
-
26
- ### Описание
27
-
28
- Расширенный HTTP клиент для Node.js с кэшированием, ограничением запросов, очередями запросов, автоматическими повторными попытками, управлением cookie и декомпрессией ответов.
29
-
30
- ### Возможности
31
-
32
- * Автоматическое предотвращение дублирования запросов
33
- * LRU кэширование с TTL
34
- * Настраиваемое ограничение запросов
35
- * Управление конкурентными запросами
36
- * Экспоненциальная задержка с джиттером
37
- * Поддержка cookie jar
38
- * Автопарсинг JSON/XML
39
- * Поддержка сжатия (gzip, deflate, brotli)
19
+ ```bash
20
+ npm install hyperttp
21
+ ```
40
22
 
41
- ### Пример использования
23
+ ## Basic Usage
42
24
 
43
- ```ts
44
- import HttpClientImproved from './src/Hyperttp/Core/HttpClientImproved';
45
- import Request from './src/Hyperttp/Request';
25
+ ```typescript
26
+ import HttpClientImproved from "hyperttp";
46
27
 
47
28
  const client = new HttpClientImproved({
48
29
  timeout: 10000,
@@ -50,43 +31,52 @@ const client = new HttpClientImproved({
50
31
  logger: (level, msg) => console.log(`[${level}] ${msg}`),
51
32
  });
52
33
 
53
- const req = new Request({ scheme: 'https', host: 'example.com', port: 443 });
54
- const data = await client.get(req);
34
+ // Simple GET request
35
+ const data = await client.get("https://api.example.com/data");
55
36
  console.log(data);
56
- ```
57
37
 
58
- ---
38
+ // POST request with JSON body
39
+ const postData = await client.post("https://api.example.com/items", {
40
+ name: "Item 1",
41
+ });
42
+ console.log(postData);
59
43
 
60
- ## English Version
44
+ // Using fluent RequestBuilder
45
+ const builderData = await client
46
+ .request("https://api.example.com/search")
47
+ .query({ q: "hyperttp", limit: 10 })
48
+ .headers({ Authorization: "Bearer TOKEN" })
49
+ .json()
50
+ .send();
61
51
 
62
- ### Description
52
+ console.log(builderData);
53
+ ```
63
54
 
64
- Advanced HTTP client for Node.js with caching, rate limiting, request queuing, automatic retries, cookie management, and response decompression.
55
+ ## Fluent Builder API
56
+
57
+ ```typescript
58
+ client
59
+ .request("https://api.example.com/data")
60
+ .get() // default
61
+ .headers({ "X-Test": "123" })
62
+ .query({ page: 1 })
63
+ .json() // or .text(), .xml()
64
+ .send()
65
+ .then(console.log);
66
+ ```
65
67
 
66
- ### Features
68
+ ## Advanced Features
67
69
 
68
- * Automatic request deduplication
69
- * LRU caching with TTL
70
- * Configurable rate limiting
71
- * Concurrent request management
72
- * Exponential backoff with jitter
73
- * Cookie jar support
74
- * Automatic response parsing (JSON/XML)
75
- * Compression support (gzip, deflate, brotli)
70
+ - Caching: Automatically caches GET/HEAD responses, configurable TTL and max size
76
71
 
77
- ### Usage Example
72
+ - Rate limiting: Prevents overwhelming servers
78
73
 
79
- ```ts
80
- import HttpClientImproved from './src/Hyperttp/Core/HttpClientImproved';
81
- import Request from './src/Hyperttp/Request';
74
+ - Retries: Automatic retries for 408, 429, 500, 502, 503, 504 with exponential backoff
82
75
 
83
- const client = new HttpClientImproved({
84
- timeout: 10000,
85
- maxConcurrent: 10,
86
- logger: (level, msg) => console.log(`[${level}] ${msg}`),
87
- });
76
+ - Cookies: Persistent cookie jar per client
88
77
 
89
- const req = new Request({ scheme: 'https', host: 'example.com', port: 443 });
90
- const data = await client.get(req);
91
- console.log(data);
92
- ```
78
+ - Metrics: Track request timings, bytes sent/received, retries, and cache hits
79
+
80
+ ## Documentation
81
+
82
+ - [Русский](https://github.com/Dirold2/hyperttp/blob/main/lang/ru/README.md)
@@ -1,13 +1,27 @@
1
+ export interface CacheEntry<T> {
2
+ data: T;
3
+ etag?: string;
4
+ lastModified?: string;
5
+ timestamp: number;
6
+ }
1
7
  export interface CacheManagerOptions {
2
- /** TTL для элементов в миллисекундах (по умолчанию 5 минут) */
3
8
  cacheTTL?: number;
4
- /** Максимальное количество элементов в кэше (по умолчанию 500) */
5
9
  cacheMaxSize?: number;
6
10
  }
7
11
  export declare class CacheManager {
8
12
  private cache;
9
13
  private ttl;
10
14
  constructor(options?: CacheManagerOptions);
15
+ getWithMetadata<T>(key: string): Promise<{
16
+ data: T;
17
+ etag?: string;
18
+ lastModified?: string;
19
+ isExpired: boolean;
20
+ } | null>;
21
+ setWithMetadata<T>(key: string, data: T, meta: {
22
+ etag?: any;
23
+ lastModified?: any;
24
+ }): Promise<void>;
11
25
  get<T>(key: string): Promise<T | undefined>;
12
26
  set<T>(key: string, value: T): Promise<void>;
13
27
  has(key: string): Promise<boolean>;
@@ -18,7 +32,6 @@ export declare class CacheManager {
18
32
  hasSync(key: string): boolean;
19
33
  deleteSync(key: string): boolean;
20
34
  clearSync(): void;
21
- /** Количество элементов в кэше */
22
35
  get size(): number;
23
36
  }
24
37
  //# sourceMappingURL=CacheManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,CAAC,EAAE,mBAAmB;IAYnC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAItC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,IAAI,IAAI;IAIjB,kCAAkC;IAClC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,CAAC,EAAE,mBAAmB;IAQnC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;IAcH,eAAe,CAAC,CAAC,EACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,CAAA;KAAE,GACvC,OAAO,CAAC,IAAI,CAAC;IAUV,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgB3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAItC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIvC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,IAAI,IAAI;IAIjB,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -9,21 +9,57 @@ class CacheManager {
9
9
  this.ttl = options?.cacheTTL ?? 300_000;
10
10
  this.cache = new lru_cache_1.LRUCache({
11
11
  max: options?.cacheMaxSize ?? 500,
12
- ttl: this.ttl,
13
- updateAgeOnGet: true,
12
+ updateAgeOnGet: false,
13
+ });
14
+ }
15
+ async getWithMetadata(key) {
16
+ const entry = this.cache.get(key);
17
+ if (!entry)
18
+ return null;
19
+ const isExpired = Date.now() - entry.timestamp > this.ttl;
20
+ return {
21
+ data: entry.data,
22
+ etag: entry.etag,
23
+ lastModified: entry.lastModified,
24
+ isExpired,
25
+ };
26
+ }
27
+ async setWithMetadata(key, data, meta) {
28
+ this.cache.set(key, {
29
+ data,
30
+ etag: typeof meta.etag === "string" ? meta.etag : undefined,
31
+ lastModified: typeof meta.lastModified === "string" ? meta.lastModified : undefined,
32
+ timestamp: Date.now(),
14
33
  });
15
34
  }
16
- // ----------------------
17
- // Async API
18
- // ----------------------
19
35
  async get(key) {
20
- return this.cache.get(key);
36
+ const entry = this.cache.get(key);
37
+ if (!entry)
38
+ return undefined;
39
+ const isExpired = Date.now() - entry.timestamp > this.ttl;
40
+ if (isExpired) {
41
+ this.cache.delete(key);
42
+ return undefined;
43
+ }
44
+ entry.timestamp = Date.now();
45
+ this.cache.set(key, entry);
46
+ return entry.data;
21
47
  }
22
48
  async set(key, value) {
23
- this.cache.set(key, value);
49
+ await this.setWithMetadata(key, value, {});
24
50
  }
25
51
  async has(key) {
26
- return this.cache.has(key);
52
+ const entry = this.cache.get(key);
53
+ if (!entry)
54
+ return false;
55
+ // Если время жизни истекло — для метода has() записи "нет"
56
+ const isExpired = Date.now() - entry.timestamp > this.ttl;
57
+ if (isExpired) {
58
+ // Опционально: удаляем сразу, чтобы не забивать память
59
+ this.cache.delete(key);
60
+ return false;
61
+ }
62
+ return true;
27
63
  }
28
64
  async delete(key) {
29
65
  return this.cache.delete(key);
@@ -31,14 +67,11 @@ class CacheManager {
31
67
  async clear() {
32
68
  this.cache.clear();
33
69
  }
34
- // ----------------------
35
- // Sync API (супербыстрый)
36
- // ----------------------
37
70
  getSync(key) {
38
71
  return this.cache.get(key);
39
72
  }
40
73
  setSync(key, value) {
41
- this.cache.set(key, value);
74
+ this.setWithMetadata(key, value, {});
42
75
  }
43
76
  hasSync(key) {
44
77
  return this.cache.has(key);
@@ -49,7 +82,6 @@ class CacheManager {
49
82
  clearSync() {
50
83
  this.cache.clear();
51
84
  }
52
- /** Количество элементов в кэше */
53
85
  get size() {
54
86
  return this.cache.size;
55
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AASrC,MAAa,YAAY;IACf,KAAK,CAAwB;IAC7B,GAAG,CAAS;IAEpB,YAAY,OAA6B;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAQ,CAAC;YACxB,GAAG,EAAE,OAAO,EAAE,YAAY,IAAI,GAAG;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,YAAY;IACZ,yBAAyB;IACzB,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,OAAO,CAAI,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAkB,CAAC;IAC9C,CAAC;IAED,OAAO,CAAI,GAAW,EAAE,KAAQ;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AA/DD,oCA+DC"}
1
+ {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/Hyperttp/Core/CacheManager.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export default class HttpClientImproved implements HttpClientInterface {
17
17
  private options;
18
18
  private requestInterceptors;
19
19
  private responseInterceptors;
20
- private requestMetrics;
20
+ private metricsManager;
21
21
  /**
22
22
  * Creates a new instance of HttpClientImproved.
23
23
  * @param options Optional configuration options for the HTTP client
@@ -43,7 +43,10 @@ export default class HttpClientImproved implements HttpClientInterface {
43
43
  * @param interceptor The interceptor function to add
44
44
  */
45
45
  addResponseInterceptor(interceptor: ResponseInterceptor): void;
46
- /** Closes the HTTP agent to properly terminate keep-alive connections. */
46
+ /**
47
+ * @ru Закрывает агент и освобождает ресурсы (keep-alive соединения).
48
+ * @en Closes the HTTP agent and terminates keep-alive connections.
49
+ */
47
50
  close(): void;
48
51
  private log;
49
52
  private decompress;
@@ -55,7 +58,6 @@ export default class HttpClientImproved implements HttpClientInterface {
55
58
  private parseRetryAfterMs;
56
59
  private readBodyWithLimit;
57
60
  private sendWithRetry;
58
- private parseContentType;
59
61
  private xmlParser;
60
62
  private parseResponse;
61
63
  private requestInternal;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpClientImproved.d.ts","sourceRoot":"","sources":["../../../src/Hyperttp/Core/HttpClientImproved.ts"],"names":[],"mappings":"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"}