@intlayer/config 5.5.9 → 5.5.11

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
@@ -5,15 +5,48 @@
5
5
  </div>
6
6
 
7
7
  <div align="center">
8
- <a href="https://www.npmjs.com/package/intlayer">
9
- <img alt="npm" src="https://img.shields.io/npm/v/intlayer.svg?labelColor=49516F&color=8994BC" />
10
- </a>
11
- <a href="https://npmjs.org/package/intlayer">
12
- <img alt="downloads" src="https://badgen.net/npm/dm/intlayer?labelColor=49516F&color=8994BC" />
13
- </a>
14
- <a href="https://npmjs.org/package/intlayer">
15
- <img alt="types included" src="https://badgen.net/npm/types/intlayer?labelColor=49516F&color=8994BC"
16
- />
8
+ <a href="https://www.npmjs.com/package/intlayer" target="blank"><img
9
+ align="center"
10
+ alt="npm"
11
+ src="https://img.shields.io/npm/v/intlayer.svg?labelColor=49516F&color=8994BC&style=for-the-badge"
12
+ height="30" /></a>
13
+ <a href="https://npmjs.org/package/intlayer" target="blank"><img
14
+ align="center"
15
+ src="https://img.shields.io/npm/dm/intlayer?labelColor=49516F&color=8994BC&style=for-the-badge"
16
+ alt="monthly downloads"
17
+ height="30"
18
+ /></a>
19
+ <a href="https://npmjs.org/package/intlayer" target="blank"><img
20
+ align="center"
21
+ src="https://img.shields.io/npm/types/intlayer?label=types%20included&labelColor=49516F&color=8994BC&style=for-the-badge"
22
+ alt="types included"
23
+ height="30"
24
+ /></a>
25
+ </div>
26
+
27
+ <div>
28
+ <br/>
29
+ <p align="center">
30
+ <a href="https://www.linkedin.com/company/intlayerorg" target="blank"><img align="center"
31
+ src="https://img.shields.io/badge/linkedin-%231DA1F2.svg?style=for-the-badge&logo=linkedin&logoColor=white"
32
+ alt="Intlayer LinkedIn" height="30"/></a>
33
+ <a href="https://www.facebook.com/intlayer" target="blank"><img align="center"
34
+ src="https://img.shields.io/badge/facebook-4267B2.svg?style=for-the-badge&logo=facebook&logoColor=white"
35
+ alt="Intlayer Facebook" height="30"/></a>
36
+ <a href="https://www.instagram.com/intlayer_org/" target="blank"><img align="center"
37
+ src="https://img.shields.io/badge/instagram-%23E4405F.svg?style=for-the-badge&logo=Instagram&logoColor=white"
38
+ alt="Intlayer Instagram" height="30"/></a>
39
+ <a href="https://x.com/Intlayer183096" target="blank"><img align="center"
40
+ src="https://img.shields.io/badge/x-1DA1F2.svg?style=for-the-badge&logo=x&logoColor=white"
41
+ alt="Intlayer X" height="30"/></a>
42
+ <a href="https://www.youtube.com/@intlayer" target="blank"><img align="center"
43
+ src="https://img.shields.io/badge/youtube-FF0000.svg?style=for-the-badge&logo=youtube&logoColor=white"
44
+ alt="Intlayer YouTube" height="30"/></a>
45
+ <a href="https://www.tiktok.com/@intlayer" target="blank"><img align="center"
46
+ src="https://img.shields.io/badge/tiktok-000000.svg?style=for-the-badge&logo=tiktok&logoColor=white"
47
+ alt="Intlayer TikTok" height="30"/></a>
48
+ <br>
49
+ </p>
17
50
  </div>
18
51
 
19
52
  # @intlayer/config: Retrieve Intlayer configuration
@@ -23,7 +23,7 @@ __export(retryManager_exports, {
23
23
  module.exports = __toCommonJS(retryManager_exports);
24
24
  var import_logger = require('./logger.cjs');
25
25
  const DEFAULT_MAX_RETRY = 3;
26
- const DEFAULT_DELAY = 6e4;
26
+ const DEFAULT_DELAY = 0;
27
27
  const retryManager = (fn, {
28
28
  maxRetry = DEFAULT_MAX_RETRY,
29
29
  delay = DEFAULT_DELAY,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/retryManager.ts"],"sourcesContent":["import { logger } from './logger';\n\nexport type RetryManagerOptions = {\n /** maximum number of retries before giving up */\n maxRetry?: number;\n /** delay between attempts, in milliseconds */\n delay?: number;\n /** function to call when an error occurs */\n onError?: (err: Error) => void;\n};\n\nconst DEFAULT_MAX_RETRY = 3;\nconst DEFAULT_DELAY = 60_000; // 60 seconds\n\n/**\n * Wrap an async function `fn` so it’s retried on failure.\n *\n * @param fn The async function to wrap\n * @param options { maxRetry, delay }\n * @returns A new function with the same signature as `fn`\n */\nexport const retryManager =\n <Args extends any[], R>(\n fn: (...args: Args) => Promise<R>,\n {\n maxRetry = DEFAULT_MAX_RETRY,\n delay = DEFAULT_DELAY,\n onError,\n }: RetryManagerOptions = {}\n ): ((...args: Args) => Promise<R>) =>\n // ───────────────────────────────^ returned wrapper function\n async (...args: Args): Promise<R> => {\n for (let attempt = 0; ; attempt++) {\n try {\n return await fn(...args);\n } catch (err) {\n onError?.(err as Error);\n logger(['Request failed', err], {\n level: 'error',\n });\n if (attempt >= maxRetry) throw err; // out of retries\n if (delay > 0) await new Promise((res) => setTimeout(res, delay));\n }\n }\n };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AAWvB,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AASf,MAAM,eACX,CACE,IACA;AAAA,EACE,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AACF,IAAyB,CAAC;AAAA;AAAA,EAG5B,UAAU,SAA2B;AACnC,aAAS,UAAU,KAAK,WAAW;AACjC,UAAI;AACF,eAAO,MAAM,GAAG,GAAG,IAAI;AAAA,MACzB,SAAS,KAAK;AACZ,kBAAU,GAAY;AACtB,kCAAO,CAAC,kBAAkB,GAAG,GAAG;AAAA,UAC9B,OAAO;AAAA,QACT,CAAC;AACD,YAAI,WAAW,SAAU,OAAM;AAC/B,YAAI,QAAQ,EAAG,OAAM,IAAI,QAAQ,CAAC,QAAQ,WAAW,KAAK,KAAK,CAAC;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/retryManager.ts"],"sourcesContent":["import { logger } from './logger';\n\nexport type RetryManagerOptions = {\n /** maximum number of retries before giving up */\n maxRetry?: number;\n /** delay between attempts, in milliseconds */\n delay?: number;\n /** function to call when an error occurs */\n onError?: (err: Error) => void;\n};\n\nconst DEFAULT_MAX_RETRY = 3;\nconst DEFAULT_DELAY = 0;\n\n/**\n * Wrap an async function `fn` so it’s retried on failure.\n *\n * @param fn The async function to wrap\n * @param options { maxRetry, delay }\n * @returns A new function with the same signature as `fn`\n */\nexport const retryManager =\n <Args extends any[], R>(\n fn: (...args: Args) => Promise<R>,\n {\n maxRetry = DEFAULT_MAX_RETRY,\n delay = DEFAULT_DELAY,\n onError,\n }: RetryManagerOptions = {}\n ): ((...args: Args) => Promise<R>) =>\n // ───────────────────────────────^ returned wrapper function\n async (...args: Args): Promise<R> => {\n for (let attempt = 0; ; attempt++) {\n try {\n return await fn(...args);\n } catch (err) {\n onError?.(err as Error);\n logger(['Request failed', err], {\n level: 'error',\n });\n if (attempt >= maxRetry) throw err; // out of retries\n if (delay > 0) await new Promise((res) => setTimeout(res, delay));\n }\n }\n };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AAWvB,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AASf,MAAM,eACX,CACE,IACA;AAAA,EACE,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AACF,IAAyB,CAAC;AAAA;AAAA,EAG5B,UAAU,SAA2B;AACnC,aAAS,UAAU,KAAK,WAAW;AACjC,UAAI;AACF,eAAO,MAAM,GAAG,GAAG,IAAI;AAAA,MACzB,SAAS,KAAK;AACZ,kBAAU,GAAY;AACtB,kCAAO,CAAC,kBAAkB,GAAG,GAAG;AAAA,UAC9B,OAAO;AAAA,QACT,CAAC;AACD,YAAI,WAAW,SAAU,OAAM;AAC/B,YAAI,QAAQ,EAAG,OAAM,IAAI,QAAQ,CAAC,QAAQ,WAAW,KAAK,KAAK,CAAC;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var import_vitest = require("vitest");
3
+ var import_retryManager = require('./retryManager.cjs');
4
+ (0, import_vitest.describe)("retryManager", () => {
5
+ (0, import_vitest.it)("should retry until the wrapped function succeeds", async () => {
6
+ const fn = import_vitest.vi.fn().mockRejectedValueOnce(new Error("first fail")).mockResolvedValueOnce("success");
7
+ const wrapped = (0, import_retryManager.retryManager)(fn, { delay: 0 });
8
+ const result = await wrapped();
9
+ (0, import_vitest.expect)(result).toBe("success");
10
+ (0, import_vitest.expect)(fn).toHaveBeenCalledTimes(2);
11
+ });
12
+ (0, import_vitest.it)("should throw after exceeding the maximum number of retries", async () => {
13
+ const fn = import_vitest.vi.fn().mockRejectedValue(new Error("always fail"));
14
+ const onError = import_vitest.vi.fn();
15
+ const maxRetry = 2;
16
+ const wrapped = (0, import_retryManager.retryManager)(fn, { maxRetry, delay: 0, onError });
17
+ await (0, import_vitest.expect)(wrapped()).rejects.toThrow("always fail");
18
+ (0, import_vitest.expect)(fn).toHaveBeenCalledTimes(maxRetry + 1);
19
+ (0, import_vitest.expect)(onError).toHaveBeenCalledTimes(maxRetry + 1);
20
+ });
21
+ });
22
+ //# sourceMappingURL=retryManager.test.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/retryManager.test.ts"],"sourcesContent":["import { describe, expect, it, vi } from 'vitest';\nimport { retryManager } from './retryManager';\n\ndescribe('retryManager', () => {\n it('should retry until the wrapped function succeeds', async () => {\n const fn = vi\n .fn<() => Promise<string>>()\n .mockRejectedValueOnce(new Error('first fail'))\n .mockResolvedValueOnce('success');\n\n const wrapped = retryManager(fn, { delay: 0 });\n\n const result = await wrapped();\n\n expect(result).toBe('success');\n expect(fn).toHaveBeenCalledTimes(2); // 1 failure + 1 success\n });\n\n it('should throw after exceeding the maximum number of retries', async () => {\n const fn = vi\n .fn<() => Promise<void>>()\n .mockRejectedValue(new Error('always fail'));\n\n const onError = vi.fn();\n const maxRetry = 2;\n\n const wrapped = retryManager(fn, { maxRetry, delay: 0, onError });\n\n await expect(wrapped()).rejects.toThrow('always fail');\n\n // Attempt count = maxRetry + 1 (first attempt + retries)\n expect(fn).toHaveBeenCalledTimes(maxRetry + 1);\n expect(onError).toHaveBeenCalledTimes(maxRetry + 1);\n });\n});\n"],"mappings":";AAAA,oBAAyC;AACzC,0BAA6B;AAAA,IAE7B,wBAAS,gBAAgB,MAAM;AAC7B,wBAAG,oDAAoD,YAAY;AACjE,UAAM,KAAK,iBACR,GAA0B,EAC1B,sBAAsB,IAAI,MAAM,YAAY,CAAC,EAC7C,sBAAsB,SAAS;AAElC,UAAM,cAAU,kCAAa,IAAI,EAAE,OAAO,EAAE,CAAC;AAE7C,UAAM,SAAS,MAAM,QAAQ;AAE7B,8BAAO,MAAM,EAAE,KAAK,SAAS;AAC7B,8BAAO,EAAE,EAAE,sBAAsB,CAAC;AAAA,EACpC,CAAC;AAED,wBAAG,8DAA8D,YAAY;AAC3E,UAAM,KAAK,iBACR,GAAwB,EACxB,kBAAkB,IAAI,MAAM,aAAa,CAAC;AAE7C,UAAM,UAAU,iBAAG,GAAG;AACtB,UAAM,WAAW;AAEjB,UAAM,cAAU,kCAAa,IAAI,EAAE,UAAU,OAAO,GAAG,QAAQ,CAAC;AAEhE,cAAM,sBAAO,QAAQ,CAAC,EAAE,QAAQ,QAAQ,aAAa;AAGrD,8BAAO,EAAE,EAAE,sBAAsB,WAAW,CAAC;AAC7C,8BAAO,OAAO,EAAE,sBAAsB,WAAW,CAAC;AAAA,EACpD,CAAC;AACH,CAAC;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { logger } from "./logger.mjs";
2
2
  const DEFAULT_MAX_RETRY = 3;
3
- const DEFAULT_DELAY = 6e4;
3
+ const DEFAULT_DELAY = 0;
4
4
  const retryManager = (fn, {
5
5
  maxRetry = DEFAULT_MAX_RETRY,
6
6
  delay = DEFAULT_DELAY,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/retryManager.ts"],"sourcesContent":["import { logger } from './logger';\n\nexport type RetryManagerOptions = {\n /** maximum number of retries before giving up */\n maxRetry?: number;\n /** delay between attempts, in milliseconds */\n delay?: number;\n /** function to call when an error occurs */\n onError?: (err: Error) => void;\n};\n\nconst DEFAULT_MAX_RETRY = 3;\nconst DEFAULT_DELAY = 60_000; // 60 seconds\n\n/**\n * Wrap an async function `fn` so it’s retried on failure.\n *\n * @param fn The async function to wrap\n * @param options { maxRetry, delay }\n * @returns A new function with the same signature as `fn`\n */\nexport const retryManager =\n <Args extends any[], R>(\n fn: (...args: Args) => Promise<R>,\n {\n maxRetry = DEFAULT_MAX_RETRY,\n delay = DEFAULT_DELAY,\n onError,\n }: RetryManagerOptions = {}\n ): ((...args: Args) => Promise<R>) =>\n // ───────────────────────────────^ returned wrapper function\n async (...args: Args): Promise<R> => {\n for (let attempt = 0; ; attempt++) {\n try {\n return await fn(...args);\n } catch (err) {\n onError?.(err as Error);\n logger(['Request failed', err], {\n level: 'error',\n });\n if (attempt >= maxRetry) throw err; // out of retries\n if (delay > 0) await new Promise((res) => setTimeout(res, delay));\n }\n }\n };\n"],"mappings":"AAAA,SAAS,cAAc;AAWvB,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AASf,MAAM,eACX,CACE,IACA;AAAA,EACE,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AACF,IAAyB,CAAC;AAAA;AAAA,EAG5B,UAAU,SAA2B;AACnC,aAAS,UAAU,KAAK,WAAW;AACjC,UAAI;AACF,eAAO,MAAM,GAAG,GAAG,IAAI;AAAA,MACzB,SAAS,KAAK;AACZ,kBAAU,GAAY;AACtB,eAAO,CAAC,kBAAkB,GAAG,GAAG;AAAA,UAC9B,OAAO;AAAA,QACT,CAAC;AACD,YAAI,WAAW,SAAU,OAAM;AAC/B,YAAI,QAAQ,EAAG,OAAM,IAAI,QAAQ,CAAC,QAAQ,WAAW,KAAK,KAAK,CAAC;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../src/retryManager.ts"],"sourcesContent":["import { logger } from './logger';\n\nexport type RetryManagerOptions = {\n /** maximum number of retries before giving up */\n maxRetry?: number;\n /** delay between attempts, in milliseconds */\n delay?: number;\n /** function to call when an error occurs */\n onError?: (err: Error) => void;\n};\n\nconst DEFAULT_MAX_RETRY = 3;\nconst DEFAULT_DELAY = 0;\n\n/**\n * Wrap an async function `fn` so it’s retried on failure.\n *\n * @param fn The async function to wrap\n * @param options { maxRetry, delay }\n * @returns A new function with the same signature as `fn`\n */\nexport const retryManager =\n <Args extends any[], R>(\n fn: (...args: Args) => Promise<R>,\n {\n maxRetry = DEFAULT_MAX_RETRY,\n delay = DEFAULT_DELAY,\n onError,\n }: RetryManagerOptions = {}\n ): ((...args: Args) => Promise<R>) =>\n // ───────────────────────────────^ returned wrapper function\n async (...args: Args): Promise<R> => {\n for (let attempt = 0; ; attempt++) {\n try {\n return await fn(...args);\n } catch (err) {\n onError?.(err as Error);\n logger(['Request failed', err], {\n level: 'error',\n });\n if (attempt >= maxRetry) throw err; // out of retries\n if (delay > 0) await new Promise((res) => setTimeout(res, delay));\n }\n }\n };\n"],"mappings":"AAAA,SAAS,cAAc;AAWvB,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AASf,MAAM,eACX,CACE,IACA;AAAA,EACE,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AACF,IAAyB,CAAC;AAAA;AAAA,EAG5B,UAAU,SAA2B;AACnC,aAAS,UAAU,KAAK,WAAW;AACjC,UAAI;AACF,eAAO,MAAM,GAAG,GAAG,IAAI;AAAA,MACzB,SAAS,KAAK;AACZ,kBAAU,GAAY;AACtB,eAAO,CAAC,kBAAkB,GAAG,GAAG;AAAA,UAC9B,OAAO;AAAA,QACT,CAAC;AACD,YAAI,WAAW,SAAU,OAAM;AAC/B,YAAI,QAAQ,EAAG,OAAM,IAAI,QAAQ,CAAC,QAAQ,WAAW,KAAK,KAAK,CAAC;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
@@ -0,0 +1,21 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { retryManager } from "./retryManager.mjs";
3
+ describe("retryManager", () => {
4
+ it("should retry until the wrapped function succeeds", async () => {
5
+ const fn = vi.fn().mockRejectedValueOnce(new Error("first fail")).mockResolvedValueOnce("success");
6
+ const wrapped = retryManager(fn, { delay: 0 });
7
+ const result = await wrapped();
8
+ expect(result).toBe("success");
9
+ expect(fn).toHaveBeenCalledTimes(2);
10
+ });
11
+ it("should throw after exceeding the maximum number of retries", async () => {
12
+ const fn = vi.fn().mockRejectedValue(new Error("always fail"));
13
+ const onError = vi.fn();
14
+ const maxRetry = 2;
15
+ const wrapped = retryManager(fn, { maxRetry, delay: 0, onError });
16
+ await expect(wrapped()).rejects.toThrow("always fail");
17
+ expect(fn).toHaveBeenCalledTimes(maxRetry + 1);
18
+ expect(onError).toHaveBeenCalledTimes(maxRetry + 1);
19
+ });
20
+ });
21
+ //# sourceMappingURL=retryManager.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/retryManager.test.ts"],"sourcesContent":["import { describe, expect, it, vi } from 'vitest';\nimport { retryManager } from './retryManager';\n\ndescribe('retryManager', () => {\n it('should retry until the wrapped function succeeds', async () => {\n const fn = vi\n .fn<() => Promise<string>>()\n .mockRejectedValueOnce(new Error('first fail'))\n .mockResolvedValueOnce('success');\n\n const wrapped = retryManager(fn, { delay: 0 });\n\n const result = await wrapped();\n\n expect(result).toBe('success');\n expect(fn).toHaveBeenCalledTimes(2); // 1 failure + 1 success\n });\n\n it('should throw after exceeding the maximum number of retries', async () => {\n const fn = vi\n .fn<() => Promise<void>>()\n .mockRejectedValue(new Error('always fail'));\n\n const onError = vi.fn();\n const maxRetry = 2;\n\n const wrapped = retryManager(fn, { maxRetry, delay: 0, onError });\n\n await expect(wrapped()).rejects.toThrow('always fail');\n\n // Attempt count = maxRetry + 1 (first attempt + retries)\n expect(fn).toHaveBeenCalledTimes(maxRetry + 1);\n expect(onError).toHaveBeenCalledTimes(maxRetry + 1);\n });\n});\n"],"mappings":"AAAA,SAAS,UAAU,QAAQ,IAAI,UAAU;AACzC,SAAS,oBAAoB;AAE7B,SAAS,gBAAgB,MAAM;AAC7B,KAAG,oDAAoD,YAAY;AACjE,UAAM,KAAK,GACR,GAA0B,EAC1B,sBAAsB,IAAI,MAAM,YAAY,CAAC,EAC7C,sBAAsB,SAAS;AAElC,UAAM,UAAU,aAAa,IAAI,EAAE,OAAO,EAAE,CAAC;AAE7C,UAAM,SAAS,MAAM,QAAQ;AAE7B,WAAO,MAAM,EAAE,KAAK,SAAS;AAC7B,WAAO,EAAE,EAAE,sBAAsB,CAAC;AAAA,EACpC,CAAC;AAED,KAAG,8DAA8D,YAAY;AAC3E,UAAM,KAAK,GACR,GAAwB,EACxB,kBAAkB,IAAI,MAAM,aAAa,CAAC;AAE7C,UAAM,UAAU,GAAG,GAAG;AACtB,UAAM,WAAW;AAEjB,UAAM,UAAU,aAAa,IAAI,EAAE,UAAU,OAAO,GAAG,QAAQ,CAAC;AAEhE,UAAM,OAAO,QAAQ,CAAC,EAAE,QAAQ,QAAQ,aAAa;AAGrD,WAAO,EAAE,EAAE,sBAAsB,WAAW,CAAC;AAC7C,WAAO,OAAO,EAAE,sBAAsB,WAAW,CAAC;AAAA,EACpD,CAAC;AACH,CAAC;","names":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=retryManager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryManager.test.d.ts","sourceRoot":"","sources":["../../src/retryManager.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/config",
3
- "version": "5.5.9",
3
+ "version": "5.5.11",
4
4
  "private": false,
5
5
  "description": "Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.",
6
6
  "keywords": [
@@ -83,13 +83,14 @@
83
83
  "tsc-alias": "^1.8.16",
84
84
  "tsup": "^8.5.0",
85
85
  "typescript": "^5.8.3",
86
- "@utils/ts-config": "1.0.4",
87
- "@utils/tsup-config": "1.0.4",
86
+ "vitest": "^3.2.2",
88
87
  "@utils/eslint-config": "1.0.4",
89
- "@utils/ts-config-types": "1.0.4"
88
+ "@utils/ts-config": "1.0.4",
89
+ "@utils/ts-config-types": "1.0.4",
90
+ "@utils/tsup-config": "1.0.4"
90
91
  },
91
92
  "peerDependencies": {
92
- "intlayer": "5.5.9"
93
+ "intlayer": "5.5.11"
93
94
  },
94
95
  "engines": {
95
96
  "node": ">=14.18"
@@ -108,7 +109,8 @@
108
109
  "prettier": "prettier . --check",
109
110
  "prettier:fix": "prettier --write src/**/*",
110
111
  "reset": "pnpm clean & pnpm build",
111
- "test": "",
112
+ "test": "vitest run",
113
+ "test:watch": "vitest",
112
114
  "typecheck": "tsup --project ./tsconfig.json --noEmit"
113
115
  }
114
116
  }