zerc20-client-sdk 0.2.2 → 0.3.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
@@ -185,7 +185,7 @@ import {
185
185
 
186
186
  const fee = await estimateRelayFee("https://relay.example", 1);
187
187
 
188
- const quote = await fetchSwapQuote("https://relay.example", 1, 1_000_000n);
188
+ const quote = await fetchSwapQuote("https://relay.example", { chainId: 1, amount: 1_000_000n });
189
189
  if (quote.priceFallback) {
190
190
  console.warn("Relay is using fallback oracle prices");
191
191
  }
@@ -479,15 +479,6 @@ npm test
479
479
  npm run typecheck
480
480
  ```
481
481
 
482
- ## Tests
483
-
484
- ```bash
485
- npm test
486
- ```
487
-
488
- **Current (as of 2026-03-05): 943 passed, 2 skipped**
489
- Note: This number will drift over time; treat `npm test` output as the source of truth.
490
-
491
482
  ### Skipped Tests
492
483
 
493
484
  1. **`src/zkp/__tests__/runNovaProver.test.ts`**
@@ -8,6 +8,77 @@ describe("relay", () => {
8
8
  vi.clearAllMocks();
9
9
  });
10
10
  // ---------------------------------------------------------------------------
11
+ // Input validation — relayUrl
12
+ // ---------------------------------------------------------------------------
13
+ describe("relayUrl validation", () => {
14
+ test("throws on empty relayUrl", async () => {
15
+ await expect(estimateRelayFee("", 1)).rejects.toThrow("relayUrl must not be empty");
16
+ });
17
+ test("throws on non-http(s) protocol", async () => {
18
+ await expect(estimateRelayFee("ftp://relay.test", 1)).rejects.toThrow("relayUrl must use http or https protocol");
19
+ });
20
+ test("allows relative URLs for browser same-origin proxy setups", async () => {
21
+ mockFetch.mockResolvedValueOnce({
22
+ ok: true,
23
+ json: async () => ({ relayerFee: "1000" }),
24
+ });
25
+ await expect(estimateRelayFee("/relay-api", 1)).resolves.toEqual({
26
+ relayerFee: 1000n,
27
+ });
28
+ expect(mockFetch).toHaveBeenCalledWith("/relay-api/relay/fee-estimate?chain_id=1", expect.any(Object));
29
+ });
30
+ test("validates relayUrl in all functions", async () => {
31
+ const invalidUrl = "";
32
+ await expect(submitRelayTeleport(invalidUrl, {})).rejects.toThrow("relayUrl must not be empty");
33
+ await expect(fetchSwapQuote(invalidUrl, { chainId: 1, amount: 100n })).rejects.toThrow("relayUrl must not be empty");
34
+ await expect(submitRelaySwap(invalidUrl, {})).rejects.toThrow("relayUrl must not be empty");
35
+ });
36
+ });
37
+ // ---------------------------------------------------------------------------
38
+ // Input validation — chainId and amounts
39
+ // ---------------------------------------------------------------------------
40
+ describe("chainId and amount validation", () => {
41
+ test("throws on non-positive chainId for estimateRelayFee", async () => {
42
+ await expect(estimateRelayFee("http://relay.test", 0)).rejects.toThrow("chainId must be a positive integer");
43
+ await expect(estimateRelayFee("http://relay.test", -1)).rejects.toThrow("chainId must be a positive integer");
44
+ await expect(estimateRelayFee("http://relay.test", 1.5)).rejects.toThrow("chainId must be a positive integer");
45
+ });
46
+ test("throws on non-positive amount for fetchSwapQuote", async () => {
47
+ await expect(fetchSwapQuote("http://relay.test", { chainId: 1, amount: 0n })).rejects.toThrow("amount must be positive");
48
+ await expect(fetchSwapQuote("http://relay.test", { chainId: 1, amount: -1n })).rejects.toThrow("amount must be positive");
49
+ });
50
+ test("throws on non-positive tokenAmount for submitRelaySwap", async () => {
51
+ const params = {
52
+ chainId: 1,
53
+ tokenAmount: 0n,
54
+ minNativeAmount: 0n,
55
+ maxNativeAmount: 100n,
56
+ recipient: `0x${"aa".repeat(20)}`,
57
+ owner: `0x${"bb".repeat(20)}`,
58
+ permitDeadline: 1700000000n,
59
+ permitV: 27,
60
+ permitR: `0x${"cc".repeat(32)}`,
61
+ permitS: `0x${"dd".repeat(32)}`,
62
+ };
63
+ await expect(submitRelaySwap("http://relay.test", params)).rejects.toThrow("tokenAmount must be positive");
64
+ });
65
+ test("throws when minNativeAmount exceeds maxNativeAmount", async () => {
66
+ const params = {
67
+ chainId: 1,
68
+ tokenAmount: 1000n,
69
+ minNativeAmount: 200n,
70
+ maxNativeAmount: 100n,
71
+ recipient: `0x${"aa".repeat(20)}`,
72
+ owner: `0x${"bb".repeat(20)}`,
73
+ permitDeadline: 1700000000n,
74
+ permitV: 27,
75
+ permitR: `0x${"cc".repeat(32)}`,
76
+ permitS: `0x${"dd".repeat(32)}`,
77
+ };
78
+ await expect(submitRelaySwap("http://relay.test", params)).rejects.toThrow("minNativeAmount (200) must not exceed maxNativeAmount (100)");
79
+ });
80
+ });
81
+ // ---------------------------------------------------------------------------
11
82
  // submitRelayTeleport — safe integer checks
12
83
  // ---------------------------------------------------------------------------
13
84
  describe("submitRelayTeleport", () => {
@@ -109,7 +180,7 @@ describe("relay", () => {
109
180
  relayerFee: "5000",
110
181
  }),
111
182
  });
112
- const quote = await fetchSwapQuote("http://relay.test", 1, 100n);
183
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n });
113
184
  expect(quote.nativeAmount).toBe(1000000n);
114
185
  expect(quote.feeBps).toBe(50);
115
186
  expect(quote.relayerFee).toBe(5000n);
@@ -125,7 +196,7 @@ describe("relay", () => {
125
196
  priceFallback: true,
126
197
  }),
127
198
  });
128
- const quote = await fetchSwapQuote("http://relay.test", 1, 100n);
199
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n });
129
200
  expect(quote.priceFallback).toBe(true);
130
201
  });
131
202
  test("throws on non-ok response", async () => {
@@ -134,7 +205,7 @@ describe("relay", () => {
134
205
  status: 400,
135
206
  text: async () => "bad request",
136
207
  });
137
- await expect(fetchSwapQuote("http://relay.test", 1, 100n)).rejects.toThrow("swap-quote returned 400: bad request");
208
+ await expect(fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n })).rejects.toThrow("swap-quote returned 400: bad request");
138
209
  });
139
210
  test("normalizes trailing slash in relay URL", async () => {
140
211
  mockFetch.mockResolvedValue({
@@ -146,8 +217,9 @@ describe("relay", () => {
146
217
  priceFallback: false,
147
218
  }),
148
219
  });
149
- await fetchSwapQuote("http://relay.test/", 8453, 123n);
150
- expect(mockFetch).toHaveBeenCalledWith("http://relay.test/relay/swap-quote?chain_id=8453&amount=123");
220
+ await fetchSwapQuote("http://relay.test/", { chainId: 8453, amount: 123n });
221
+ const calledUrl = mockFetch.mock.calls[0][0];
222
+ expect(calledUrl).toBe("http://relay.test/relay/swap-quote?chain_id=8453&amount=123");
151
223
  });
152
224
  });
153
225
  // ---------------------------------------------------------------------------
@@ -196,6 +268,85 @@ describe("relay", () => {
196
268
  });
197
269
  });
198
270
  // ---------------------------------------------------------------------------
271
+ // Timeout / AbortSignal handling
272
+ // ---------------------------------------------------------------------------
273
+ describe("timeout and abort", () => {
274
+ test("aborts when external signal is triggered", async () => {
275
+ const controller = new AbortController();
276
+ mockFetch.mockImplementation(() => new Promise((_resolve, reject) => {
277
+ controller.signal.addEventListener("abort", () => reject(new DOMException("The operation was aborted.", "AbortError")));
278
+ }));
279
+ const promise = estimateRelayFee("http://relay.test", 1, { signal: controller.signal });
280
+ controller.abort();
281
+ await expect(promise).rejects.toThrow("aborted");
282
+ });
283
+ test("passes signal to fetch for submitRelayTeleport", async () => {
284
+ mockFetch.mockResolvedValue({
285
+ ok: true,
286
+ json: async () => ({ txHash: "0xabc" }),
287
+ });
288
+ const validParams = {
289
+ isSingle: false,
290
+ isGlobal: true,
291
+ rootHint: 12345n,
292
+ chainId: 1n,
293
+ recipient: `0x${"aa".repeat(32)}`,
294
+ tweak: `0x${"bb".repeat(32)}`,
295
+ proof: "0x1234",
296
+ relayerFee: 1000n,
297
+ maxFee: 2000n,
298
+ deadline: 1700000000n,
299
+ signature: `0x${"cc".repeat(65)}`,
300
+ };
301
+ await submitRelayTeleport("http://relay.test", validParams, { timeoutMs: 5000 });
302
+ const callOptions = mockFetch.mock.calls[0][1];
303
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
304
+ });
305
+ test("passes signal to fetch for fetchSwapQuote", async () => {
306
+ mockFetch.mockResolvedValue({
307
+ ok: true,
308
+ json: async () => ({
309
+ nativeAmount: "1000000",
310
+ feeBps: 50,
311
+ relayerFee: "5000",
312
+ }),
313
+ });
314
+ await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 100n }, { timeoutMs: 5000 });
315
+ const callOptions = mockFetch.mock.calls[0][1];
316
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
317
+ });
318
+ test("passes signal to fetch for submitRelaySwap", async () => {
319
+ mockFetch.mockResolvedValue({
320
+ ok: true,
321
+ json: async () => ({ txHash: "0xdef" }),
322
+ });
323
+ const swapParams = {
324
+ chainId: 1,
325
+ tokenAmount: 1000000n,
326
+ minNativeAmount: 900000n,
327
+ maxNativeAmount: 1100000n,
328
+ recipient: `0x${"aa".repeat(20)}`,
329
+ owner: `0x${"bb".repeat(20)}`,
330
+ permitDeadline: 1700000000n,
331
+ permitV: 27,
332
+ permitR: `0x${"cc".repeat(32)}`,
333
+ permitS: `0x${"dd".repeat(32)}`,
334
+ };
335
+ await submitRelaySwap("http://relay.test", swapParams, { timeoutMs: 5000 });
336
+ const callOptions = mockFetch.mock.calls[0][1];
337
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
338
+ });
339
+ test("uses default signal when no options provided", async () => {
340
+ mockFetch.mockResolvedValue({
341
+ ok: true,
342
+ json: async () => ({ relayerFee: "0" }),
343
+ });
344
+ await estimateRelayFee("http://relay.test", 1);
345
+ const callOptions = mockFetch.mock.calls[0][1];
346
+ expect(callOptions.signal).toBeInstanceOf(AbortSignal);
347
+ });
348
+ });
349
+ // ---------------------------------------------------------------------------
199
350
  // Integration-style: full swap flow (fee estimate → quote → swap)
200
351
  // ---------------------------------------------------------------------------
201
352
  describe("swap flow (mocked)", () => {
@@ -218,7 +369,7 @@ describe("relay", () => {
218
369
  priceFallback: false,
219
370
  }),
220
371
  });
221
- const quote = await fetchSwapQuote("http://relay.test", 1, tokenAmount);
372
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: tokenAmount });
222
373
  expect(quote.nativeAmount).toBe(950000n);
223
374
  expect(quote.priceFallback).toBe(false);
224
375
  // 3. Submit swap with quote values
@@ -259,7 +410,7 @@ describe("relay", () => {
259
410
  priceFallback: true,
260
411
  }),
261
412
  });
262
- const quote = await fetchSwapQuote("http://relay.test", 1, 1000000n);
413
+ const quote = await fetchSwapQuote("http://relay.test", { chainId: 1, amount: 1000000n });
263
414
  // Caller can check priceFallback and decide not to proceed
264
415
  expect(quote.priceFallback).toBe(true);
265
416
  // No swap submitted — only 1 fetch call
@@ -1 +1 @@
1
- {"version":3,"file":"relay.test.js","sourceRoot":"","sources":["../../../../src/operations/relay/__tests__/relay.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.test.js","sourceRoot":"","sources":["../../../../src/operations/relay/__tests__/relay.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAIhE,oBAAoB;AACpB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1B,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,8BAA8B;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACnE,0CAA0C,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YAC3E,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;aAC3C,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC/D,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,0CAA0C,EAC1C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,4BAA4B,CAC7B,CAAC;YACF,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpF,4BAA4B,CAC7B,CAAC;YACF,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,4BAA4B,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,yCAAyC;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpE,oCAAoC,CACrC,CAAC;YACF,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrE,oCAAoC,CACrC,CAAC;YACF,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,oCAAoC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3F,yBAAyB,CAC1B,CAAC;YACF,MAAM,MAAM,CACV,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CACjE,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,EAAE;gBACf,eAAe,EAAE,EAAE;gBACnB,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC;YACF,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACxE,8BAA8B,CAC/B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,KAAK;gBAClB,eAAe,EAAE,IAAI;gBACrB,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC;YACF,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACxE,6DAA6D,CAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,4CAA4C;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,WAAW,GAAwB;YACvC,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACpC,KAAK,EAAE,QAAe;YACtB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;SACzC,CAAC;QAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC5C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,YAAY,GAAG;gBACnB,GAAG,WAAW;gBACd,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;aAC/C,CAAC;YACF,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,qCAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,YAAY,GAAG;gBACnB,GAAG,WAAW;gBACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;aAC9C,CAAC;YACF,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,oCAAoC,CACrC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,YAAY,GAAG;gBACnB,GAAG,WAAW;gBACd,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;aAC/C,CAAC;YACF,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,qCAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc;aACjC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjF,uCAAuC,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC9C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;aACtD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACtD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB;aACtC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtE,8CAA8C,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,iCAAiC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACzD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;iBACnB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACnE,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;oBAClB,aAAa,EAAE,IAAI;iBACpB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;aAChC,CAAC,CAAC;YAEH,MAAM,MAAM,CACV,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAClE,CAAC,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;oBAClB,aAAa,EAAE,KAAK;iBACrB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,oCAAoC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,MAAM,eAAe,GAAoB;YACvC,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,QAAQ;YACrB,eAAe,EAAE,OAAO;YACxB,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACpC,cAAc,EAAE,WAAW;YAC3B,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;YACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;SACvC,CAAC;QAEF,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACvD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC3C,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,4BAA4B;aAC/C,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjF,+CAA+C,CAChD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,eAAe,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;YAE7D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,iCAAiC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,CACH,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAC/B,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC,CACrE,CAAC;YACJ,CAAC,CAAC,CACL,CAAC;YAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACxF,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAChE,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAwB;gBACvC,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,KAAK,EAAE,QAAe;gBACtB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACzC,CAAC;YAEF,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjF,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YAC3D,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,MAAM;iBACnB,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7F,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC5D,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAoB;gBAClC,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,QAAQ;gBACrB,eAAe,EAAE,OAAO;gBACxB,eAAe,EAAE,QAAQ;gBACzB,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC;YAEF,MAAM,eAAe,CAAC,mBAAmB,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC9D,SAAS,CAAC,iBAAiB,CAAC;gBAC1B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;aACxC,CAAC,CAAC;YAEH,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,kEAAkE;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpC,gBAAgB;YAChB,MAAM,WAAW,GAAG,QAAQ,CAAC;YAC7B,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,QAAQ;oBACtB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,OAAO;oBACnB,aAAa,EAAE,KAAK;iBACrB,CAAC;aACH,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExC,mCAAmC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK;YAC/B,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC;YACzE,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;YAErC,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;aAC9C,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,EAAE;gBACxD,OAAO,EAAE,CAAC;gBACV,WAAW;gBACX,eAAe,EAAE,SAAS;gBAC1B,eAAe,EAAE,SAAS;gBAC1B,SAAS,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACxC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACpC,cAAc,EAAE,WAAW;gBAC3B,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;gBACtC,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAS;aACvC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE1C,qCAAqC;YACrC,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE3C,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACzD,SAAS,CAAC,qBAAqB,CAAC;gBAC9B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,YAAY,EAAE,QAAQ;oBACtB,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,OAAO;oBACnB,aAAa,EAAE,IAAI;iBACpB,CAAC;aACH,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE1F,2DAA2D;YAC3D,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,wCAAwC;YACxC,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { submitRelayTeleport, estimateRelayFee, fetchSwapQuote, submitRelaySwap } from "./relay.js";
2
- export type { RelayTeleportParams, RelayFeeEstimate, RelayResult, SwapQuoteParams, SwapQuote, RelaySwapParams, SwapResult, } from "./types.js";
2
+ export type { RelayTeleportParams, RelayFeeEstimate, RelayRequestOptions, RelayResult, SwapQuoteParams, SwapQuote, RelaySwapParams, SwapResult, } from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC"}
@@ -1,18 +1,18 @@
1
- import type { RelayFeeEstimate, RelayResult, RelaySwapParams, RelayTeleportParams, SwapQuote, SwapResult } from "./types.js";
1
+ import type { RelayFeeEstimate, RelayRequestOptions, RelayResult, RelaySwapParams, RelayTeleportParams, SwapQuote, SwapQuoteParams, SwapResult } from "./types.js";
2
2
  /**
3
3
  * Submit a teleport request to the relay node.
4
4
  */
5
- export declare function submitRelayTeleport(relayUrl: string, params: RelayTeleportParams): Promise<RelayResult>;
5
+ export declare function submitRelayTeleport(relayUrl: string, params: RelayTeleportParams, options?: RelayRequestOptions): Promise<RelayResult>;
6
6
  /**
7
7
  * Fetch a fee estimate from the relay node.
8
8
  */
9
- export declare function estimateRelayFee(relayUrl: string, chainId: number): Promise<RelayFeeEstimate>;
9
+ export declare function estimateRelayFee(relayUrl: string, chainId: number, options?: RelayRequestOptions): Promise<RelayFeeEstimate>;
10
10
  /**
11
11
  * Fetch a swap quote from the relay node.
12
12
  */
13
- export declare function fetchSwapQuote(relayUrl: string, chainId: number, amount: bigint): Promise<SwapQuote>;
13
+ export declare function fetchSwapQuote(relayUrl: string, params: SwapQuoteParams, options?: RelayRequestOptions): Promise<SwapQuote>;
14
14
  /**
15
15
  * Submit a token-to-native swap request to the relay node.
16
16
  */
17
- export declare function submitRelaySwap(relayUrl: string, params: RelaySwapParams): Promise<SwapResult>;
17
+ export declare function submitRelaySwap(relayUrl: string, params: RelaySwapParams, options?: RelayRequestOptions): Promise<SwapResult>;
18
18
  //# sourceMappingURL=relay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,WAAW,CAAC,CA2CtB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAsBpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CA6BrB"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACX,MAAM,YAAY,CAAC;AAgDpB;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC,CA6CtB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC,CA2BpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
@@ -1,7 +1,49 @@
1
+ const DEFAULT_TIMEOUT_MS = 30_000;
2
+ /**
3
+ * Build an AbortSignal that fires on timeout and, optionally, on an
4
+ * external signal — whichever comes first.
5
+ */
6
+ function buildSignal(options) {
7
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
8
+ const timeoutSignal = AbortSignal.timeout(timeoutMs);
9
+ if (!options?.signal)
10
+ return timeoutSignal;
11
+ return AbortSignal.any([timeoutSignal, options.signal]);
12
+ }
13
+ /**
14
+ * Validate that relayUrl is a non-empty string.
15
+ *
16
+ * - Absolute URLs (with a scheme) must use http or https.
17
+ * - Relative URLs (e.g. `/relay-api`, `./api`) are allowed for browser
18
+ * same-origin proxy setups. Note that relative URLs are not valid in
19
+ * Node.js `fetch`.
20
+ */
21
+ function validateRelayUrl(relayUrl) {
22
+ if (!relayUrl.trim()) {
23
+ throw new Error("relayUrl must not be empty");
24
+ }
25
+ const hasScheme = /^[a-zA-Z][a-zA-Z\d+.-]*:/.test(relayUrl);
26
+ if (!hasScheme) {
27
+ return;
28
+ }
29
+ const parsed = new URL(relayUrl);
30
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
31
+ throw new Error(`relayUrl must use http or https protocol: ${relayUrl}`);
32
+ }
33
+ }
34
+ /**
35
+ * Validate that chainId is a positive safe integer.
36
+ */
37
+ function validateChainId(chainId) {
38
+ if (!Number.isSafeInteger(chainId) || chainId <= 0) {
39
+ throw new Error(`chainId must be a positive integer: ${chainId}`);
40
+ }
41
+ }
1
42
  /**
2
43
  * Submit a teleport request to the relay node.
3
44
  */
4
- export async function submitRelayTeleport(relayUrl, params) {
45
+ export async function submitRelayTeleport(relayUrl, params, options) {
46
+ validateRelayUrl(relayUrl);
5
47
  const url = `${relayUrl.replace(/\/$/, "")}/relay/teleport`;
6
48
  const rootHint = Number(params.rootHint);
7
49
  if (!Number.isSafeInteger(rootHint)) {
@@ -32,6 +74,7 @@ export async function submitRelayTeleport(relayUrl, params) {
32
74
  method: "POST",
33
75
  headers: { "Content-Type": "application/json" },
34
76
  body: JSON.stringify(body),
77
+ signal: buildSignal(options),
35
78
  });
36
79
  if (!response.ok) {
37
80
  const text = await response.text();
@@ -43,9 +86,11 @@ export async function submitRelayTeleport(relayUrl, params) {
43
86
  /**
44
87
  * Fetch a fee estimate from the relay node.
45
88
  */
46
- export async function estimateRelayFee(relayUrl, chainId) {
89
+ export async function estimateRelayFee(relayUrl, chainId, options) {
90
+ validateRelayUrl(relayUrl);
91
+ validateChainId(chainId);
47
92
  const url = `${relayUrl.replace(/\/$/, "")}/relay/fee-estimate?chain_id=${chainId}`;
48
- const response = await fetch(url);
93
+ const response = await fetch(url, { signal: buildSignal(options) });
49
94
  if (!response.ok) {
50
95
  const text = await response.text();
51
96
  throw new Error(`Relay node fee-estimate returned ${response.status}: ${text}`);
@@ -56,9 +101,14 @@ export async function estimateRelayFee(relayUrl, chainId) {
56
101
  /**
57
102
  * Fetch a swap quote from the relay node.
58
103
  */
59
- export async function fetchSwapQuote(relayUrl, chainId, amount) {
60
- const url = `${relayUrl.replace(/\/$/, "")}/relay/swap-quote?chain_id=${chainId}&amount=${amount.toString()}`;
61
- const response = await fetch(url);
104
+ export async function fetchSwapQuote(relayUrl, params, options) {
105
+ validateRelayUrl(relayUrl);
106
+ validateChainId(params.chainId);
107
+ if (params.amount <= 0n) {
108
+ throw new Error(`amount must be positive: ${params.amount}`);
109
+ }
110
+ const url = `${relayUrl.replace(/\/$/, "")}/relay/swap-quote?chain_id=${params.chainId}&amount=${params.amount.toString()}`;
111
+ const response = await fetch(url, { signal: buildSignal(options) });
62
112
  if (!response.ok) {
63
113
  const text = await response.text();
64
114
  throw new Error(`Relay node swap-quote returned ${response.status}: ${text}`);
@@ -74,7 +124,15 @@ export async function fetchSwapQuote(relayUrl, chainId, amount) {
74
124
  /**
75
125
  * Submit a token-to-native swap request to the relay node.
76
126
  */
77
- export async function submitRelaySwap(relayUrl, params) {
127
+ export async function submitRelaySwap(relayUrl, params, options) {
128
+ validateRelayUrl(relayUrl);
129
+ validateChainId(params.chainId);
130
+ if (params.tokenAmount <= 0n) {
131
+ throw new Error(`tokenAmount must be positive: ${params.tokenAmount}`);
132
+ }
133
+ if (params.minNativeAmount > params.maxNativeAmount) {
134
+ throw new Error(`minNativeAmount (${params.minNativeAmount}) must not exceed maxNativeAmount (${params.maxNativeAmount})`);
135
+ }
78
136
  const url = `${relayUrl.replace(/\/$/, "")}/relay/swap`;
79
137
  const body = {
80
138
  chainId: params.chainId,
@@ -92,6 +150,7 @@ export async function submitRelaySwap(relayUrl, params) {
92
150
  method: "POST",
93
151
  headers: { "Content-Type": "application/json" },
94
152
  body: JSON.stringify(body),
153
+ signal: buildSignal(options),
95
154
  });
96
155
  if (!response.ok) {
97
156
  const text = await response.text();
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/operations/relay/relay.ts"],"names":[],"mappings":"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"}
@@ -60,4 +60,11 @@ export interface RelaySwapParams {
60
60
  export interface SwapResult {
61
61
  txHash: string;
62
62
  }
63
+ /** Options for relay HTTP requests. */
64
+ export interface RelayRequestOptions {
65
+ /** Request timeout in milliseconds. Defaults to 30 000 ms. */
66
+ timeoutMs?: number;
67
+ /** An external AbortSignal to cancel the request. */
68
+ signal?: AbortSignal;
69
+ }
63
70
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,EAAE,GAAG,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/operations/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,EAAE,GAAG,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,GAAG,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zerc20-client-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Client SDK for interacting with ZERC20 rollup services from browser or node environments.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -42,26 +42,26 @@
42
42
  "access": "public"
43
43
  },
44
44
  "engines": {
45
- "node": ">=18"
45
+ "node": ">=22.12.0"
46
46
  },
47
47
  "dependencies": {
48
- "@dfinity/agent": "3.4.1",
49
- "@dfinity/candid": "3.4.1",
50
- "@dfinity/principal": "3.4.1",
48
+ "@dfinity/agent": "~3.4.1",
49
+ "@dfinity/candid": "~3.4.1",
50
+ "@dfinity/principal": "~3.4.1",
51
51
  "@dfinity/vetkeys": "0.4.0",
52
- "@noble/curves": "^2.0.1",
53
- "base64-arraybuffer": "^1.0.2",
54
- "pako": "^2.1.0",
55
- "poseidon-lite": "^0.3.0",
52
+ "@noble/curves": "2.0.1",
53
+ "base64-arraybuffer": "1.0.2",
54
+ "pako": "2.1.0",
55
+ "poseidon-lite": "0.3.0",
56
56
  "viem": "^2.38.6"
57
57
  },
58
58
  "devDependencies": {
59
- "@types/node": "^24.10.0",
60
- "@types/pako": "^2.0.4",
61
- "esbuild": "^0.27.3",
62
- "prettier": "^3.4.2",
63
- "tsx": "^4.20.6",
64
- "typescript": "^5.6.2",
65
- "vitest": "^4.0.8"
59
+ "@types/node": "25.5.0",
60
+ "@types/pako": "2.0.4",
61
+ "esbuild": "0.27.5",
62
+ "prettier": "3.8.1",
63
+ "tsx": "4.21.0",
64
+ "typescript": "6.0.2",
65
+ "vitest": "4.1.2"
66
66
  }
67
67
  }