From 2f75768133348a5e047a1efe475a861c667161fb Mon Sep 17 00:00:00 2001 From: 0xh3rman <119309671+0xh3rman@users.noreply.github.com> Date: Sun, 10 May 2026 23:35:29 +0900 Subject: [PATCH 1/2] Remove stonfi provider and bump dev tooling Stonfi is implemented in core (Rust) now. Drops the TypeScript provider, its TON/ston-fi runtime deps, and related fixtures. Also bumps knip 6.6.2 -> 6.12.2, oxfmt 0.46.0 -> 0.48.0, oxlint 1.61.0 -> 1.63.0 and reformats two files per oxfmt's stricter import grouping. --- .env.example | 1 - .github/dependabot.yml | 1 - AGENTS.md | 4 +- apps/api/src/index.ts | 2 - justfile | 2 +- package.json | 6 +- packages/swapper/package.json | 4 - packages/swapper/src/cetus/provider.ts | 3 +- packages/swapper/src/index.ts | 1 - packages/swapper/src/mayan/sui.ts | 1 - packages/swapper/src/stonfi/index.ts | 170 ---- .../swapper/src/stonfi/integration.test.ts | 114 --- packages/swapper/src/testkit/mock.ts | 36 - pnpm-lock.yaml | 735 +++++++----------- scripts/provider-bench.ts | 28 +- 15 files changed, 304 insertions(+), 804 deletions(-) delete mode 100644 packages/swapper/src/stonfi/index.ts delete mode 100644 packages/swapper/src/stonfi/integration.test.ts diff --git a/.env.example b/.env.example index 535ccd1..cb5ad3e 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,5 @@ SOLANA_URL=https://solana-rpc.publicnode.com SUI_URL=https://fullnode.mainnet.sui.io -TON_URL=https://toncenter.com APTOS_URL=https://fullnode.mainnet.aptoslabs.com/v1 MANTA_URL=https://pacific-rpc.manta.network/http MANTLE_URL=https://rpc.mantle.xyz diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d296c6e..bd9da2f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -22,6 +22,5 @@ updates: patterns: - "@mayanfinance/*" - "@orca-so/*" - - "@ston-fi/*" - "@cetusprotocol/*" - "@panoraexchange/*" diff --git a/AGENTS.md b/AGENTS.md index 5de34a3..0475499 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,7 +34,7 @@ - Use shared quote fixtures from `packages/swapper/src/testkit/mock.ts`; for provider-specific scenarios, extend via overrides instead of adding new provider-local `testkit.ts` files. ## Architecture Overview -- Providers implemented today: `stonfi_v2`, `mayan`, `cetus`, `panora`, `okx`. +- Providers implemented today: `mayan`, `cetus`, `panora`, `okx`. - API endpoints: `GET /` (providers, version), `POST /:providerId/quote`, `POST /:providerId/quote_data`. - Keep provider interface consistent for quotes and transaction building. - OKX Solana provider notes: [`packages/swapper/src/okx/README.md`](packages/swapper/src/okx/README.md). @@ -45,7 +45,7 @@ - Must pass `pnpm build`, `pnpm test`, and `pnpm lint`; do not commit `dist/`. ## Security & Configuration Tips -- Configure via env vars used by API/providers: `PORT`, `SOLANA_URL`, `SUI_URL`, `TON_URL`. +- Configure via env vars used by API/providers: `PORT`, `SOLANA_URL`, `SUI_URL`. - Never commit secrets; use local `.env`. Add/update an `.env.example` when introducing new vars. ## Agent‑Specific Instructions (all code agents) diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 8e440c9..a688019 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -1,7 +1,6 @@ import path from "node:path"; import { - StonfiProvider, Protocol, MayanProvider, CetusAggregatorProvider, @@ -34,7 +33,6 @@ const solanaRpc = process.env.SOLANA_URL || "https://solana-rpc.publicnode.com"; const API_VERSION = 1; const providers: Record = { - stonfi_v2: new StonfiProvider(process.env.TON_URL || "https://toncenter.com"), mayan: new MayanProvider(solanaRpc, process.env.SUI_URL || "https://fullnode.mainnet.sui.io"), cetus: new CetusAggregatorProvider(process.env.SUI_URL || "https://fullnode.mainnet.sui.io"), panora: new PanoraProvider(), diff --git a/justfile b/justfile index 11fbe81..5bf31e3 100644 --- a/justfile +++ b/justfile @@ -33,7 +33,7 @@ test-integration: check: lint format-check build test -bench PROVIDER="stonfi_v2" ITERATIONS="2": +bench PROVIDER="mayan" ITERATIONS="2": pnpm exec ts-node -P packages/swapper/tsconfig.json scripts/provider-bench.ts --provider {{PROVIDER}} --iterations {{ITERATIONS}} clean: diff --git a/package.json b/package.json index 4fb5310..aea61d9 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,9 @@ "devDependencies": { "@types/jest": "30.0.0", "jest": "30.2.0", - "knip": "6.6.2", - "oxfmt": "0.46.0", - "oxlint": "1.61.0", + "knip": "6.12.2", + "oxfmt": "0.48.0", + "oxlint": "1.63.0", "ts-jest": "29.4.5", "typescript": "5.9.3" }, diff --git a/packages/swapper/package.json b/packages/swapper/package.json index afa8697..8b5db53 100644 --- a/packages/swapper/package.json +++ b/packages/swapper/package.json @@ -20,10 +20,6 @@ "@mayanfinance/swap-sdk": "13.3.0", "@mysten/sui": "2.16.0", "@solana/web3.js": "1.98.4", - "@ston-fi/api": "0.32.0", - "@ston-fi/sdk": "2.7.0", - "@ton/core": "0.63.1", - "@ton/ton": "16.2.2", "@types/bn.js": "5.2.0", "bn.js": "5.2.3", "bs58": "6.0.0" diff --git a/packages/swapper/src/cetus/provider.ts b/packages/swapper/src/cetus/provider.ts index 3338c93..c493461 100644 --- a/packages/swapper/src/cetus/provider.ts +++ b/packages/swapper/src/cetus/provider.ts @@ -9,12 +9,11 @@ import { BLUEFIN, } from "@cetusprotocol/aggregator-sdk"; import { QuoteRequest, Quote, SwapQuoteData, AssetId, SwapQuoteDataType } from "@gemwallet/types"; -import { BN } from "bn.js"; - // @ts-ignore — v2 ESM types unresolvable under moduleResolution "node" import { SuiJsonRpcClient } from "@mysten/sui/jsonRpc"; // @ts-ignore — v2 ESM types unresolvable under moduleResolution "node" import { Transaction } from "@mysten/sui/transactions"; +import { BN } from "bn.js"; import { SUI_COIN_TYPE } from "../chain/sui/constants"; import { calculateGasBudget, prefillTransaction, getGasPriceAndCoinRefs } from "../chain/sui/tx_builder"; diff --git a/packages/swapper/src/index.ts b/packages/swapper/src/index.ts index 800c79b..7467700 100644 --- a/packages/swapper/src/index.ts +++ b/packages/swapper/src/index.ts @@ -1,5 +1,4 @@ export * from "./protocol"; -export * from "./stonfi"; export * from "./mayan"; export * from "./cetus"; export * from "./referrer"; diff --git a/packages/swapper/src/mayan/sui.ts b/packages/swapper/src/mayan/sui.ts index fd37170..5293f48 100644 --- a/packages/swapper/src/mayan/sui.ts +++ b/packages/swapper/src/mayan/sui.ts @@ -1,6 +1,5 @@ import { SwapQuoteData, QuoteRequest, SwapQuoteDataType } from "@gemwallet/types"; import { Quote as MayanQuote, ReferrerAddresses, createSwapFromSuiMoveCalls } from "@mayanfinance/swap-sdk"; - // @ts-ignore — v2 ESM types unresolvable under moduleResolution "node" import { SuiJsonRpcClient } from "@mysten/sui/jsonRpc"; diff --git a/packages/swapper/src/stonfi/index.ts b/packages/swapper/src/stonfi/index.ts deleted file mode 100644 index b9835d5..0000000 --- a/packages/swapper/src/stonfi/index.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { QuoteRequest, Quote, SwapQuoteData, AssetId, Chain, SwapQuoteDataType } from "@gemwallet/types"; -import { StonApiClient } from "@ston-fi/api"; -import { DEX, pTON } from "@ston-fi/sdk"; -import { TonClient } from "@ton/ton"; - -import { Protocol } from "../protocol"; -import { getReferrerAddresses } from "../referrer"; - -const client = new StonApiClient(); - -const TON_JETTON_ADDRESS = "EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c"; -const PTON_VERSION_1 = "EQCM3B12QK1e4yZSf8GtBRT0aLMNyEsBc_DhVfRRtOEffLez"; -const PTON_VERSION_2_1 = "EQBnGWMCf3-FZZq1W4IWcWiGAc3PHuZ0_H-7sad2oY00o83S"; - -function getTokenAddress(asset: AssetId): string { - return asset.isNative() ? TON_JETTON_ADDRESS : (asset.tokenId ?? ""); -} - -export class StonfiProvider implements Protocol { - private endpoint: string; - - constructor(endpoint: string) { - this.endpoint = endpoint; - } - - async get_quote(quoteRequest: QuoteRequest): Promise { - const fromAsset = AssetId.fromString(quoteRequest.from_asset.id); - const toAsset = AssetId.fromString(quoteRequest.to_asset.id); - const referralAddress = getReferrerAddresses().ton; - - if (fromAsset.chain !== Chain.Ton || toAsset.chain !== Chain.Ton) { - throw new Error("Only TON is supported"); - } - - const swapDirectSimulation = await client.simulateSwap({ - offerAddress: getTokenAddress(fromAsset), - offerUnits: quoteRequest.from_value, - askAddress: getTokenAddress(toAsset), - slippageTolerance: (quoteRequest.slippage_bps / 10000).toString(), - referralAddress: referralAddress, - referralFeeBps: quoteRequest.referral_bps.toString(), - }); - - return { - quote: quoteRequest, - output_value: swapDirectSimulation.askUnits, - output_min_value: swapDirectSimulation.minAskUnits, - route_data: {}, - eta_in_seconds: 3, // https://tonscan.org/blocks - }; - } - - async get_quote_data(quote: Quote): Promise { - const fromAsset = AssetId.fromString(quote.quote.from_asset.id); - const toAsset = AssetId.fromString(quote.quote.to_asset.id); - const fromTokenAdddress = getTokenAddress(fromAsset); - const toTokenAddress = getTokenAddress(toAsset); - const routers = await client.getRouters(); - const pools = await client.getPoolsByAssetPair({ - asset0Address: fromTokenAdddress, - asset1Address: toTokenAddress, - }); - const pool = pools[0]; - if (!pool) { - throw new Error("No valid pools"); - } - const router = routers.find((r) => r.address === pool.routerAddress); - if (!router) { - throw new Error("No matching router found"); - } - - // only support v2 - const dexRouterInstance = (() => { - switch (true) { - case router.majorVersion === 1: - return DEX.v1.Router.create(router.address); - case router.majorVersion === 2 && router.minorVersion === 1: - return DEX.v2_1.Router.create(router.address); - case router.majorVersion === 2 && router.minorVersion === 2: - return DEX.v2_2.Router.create(router.address); - default: - throw new Error("Router version not supported"); - } - })(); - const proxyTon = (() => { - switch (true) { - case router.majorVersion === 1: - return pTON.v1.create(PTON_VERSION_1); - case router.majorVersion === 2: - return pTON.v2_1.create(PTON_VERSION_2_1); - default: - throw new Error("Pton version not supported"); - } - })(); - const routerClient = new TonClient({ endpoint: this.endpoint + "/api/v2/jsonRPC" }).open(dexRouterInstance); - - if (pool.lpTotalSupplyUsd && parseFloat(pool.lpTotalSupplyUsd) < 1000) { - throw new Error("Pool liquidity is too low."); - } - - const referralAddress = getReferrerAddresses().ton; - const referralValue = quote.quote.referral_bps; - - if (fromAsset.isNative()) { - const params = await routerClient.getSwapTonToJettonTxParams({ - userWalletAddress: quote.quote.from_address, - proxyTon, - offerAmount: quote.quote.from_value, - askJettonAddress: toTokenAddress, - minAskAmount: quote.output_min_value, - deadline: Math.floor(Date.now() / 1000) + 60 * 1000, - referralAddress, - referralValue, - }); - - if (!params.body) { - throw new Error("Transaction body is required"); - } - - return { - to: params.to.toString(), - value: params.value.toString(), - data: params.body.toBoc().toString("base64"), - dataType: SwapQuoteDataType.Contract, - }; - } else if (toAsset.isNative()) { - const params = await routerClient.getSwapJettonToTonTxParams({ - userWalletAddress: quote.quote.from_address, - proxyTon, - offerJettonAddress: fromTokenAdddress, - offerAmount: quote.quote.from_value, - minAskAmount: quote.output_min_value, - referralAddress, - referralValue, - }); - - if (!params.body) { - throw new Error("Transaction body is required"); - } - - return { - to: params.to.toString(), - value: params.value.toString(), - data: params.body.toBoc().toString("base64"), - dataType: SwapQuoteDataType.Contract, - }; - } else { - const params = await routerClient.getSwapJettonToJettonTxParams({ - userWalletAddress: quote.quote.from_address, - offerJettonAddress: fromTokenAdddress, - offerAmount: quote.quote.from_value, - askJettonAddress: toTokenAddress, - minAskAmount: quote.output_min_value, - referralAddress, - referralValue, - }); - - if (!params.body) { - throw new Error("Transaction body is required"); - } - - return { - to: params.to.toString(), - value: params.value.toString(), - data: params.body.toBoc().toString("base64"), - dataType: SwapQuoteDataType.Contract, - }; - } - } -} diff --git a/packages/swapper/src/stonfi/integration.test.ts b/packages/swapper/src/stonfi/integration.test.ts deleted file mode 100644 index 8f20c33..0000000 --- a/packages/swapper/src/stonfi/integration.test.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { Chain, QuoteRequest } from "@gemwallet/types"; - -import { TON_ASSET, USDT_TON_ASSET, createStonfiQuoteRequest } from "../testkit/mock"; -import { StonfiProvider } from "./index"; - -const runIntegration = process.env.INTEGRATION_TEST === "1"; -const describeIntegration = runIntegration ? describe : describe.skip; - -const TON_RPC_ENDPOINT = process.env.TON_URL || "https://toncenter.com"; - -// A valid TON wallet address for testing (TON Foundation address) -const WALLET_ADDRESS = "EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N"; - -const REQUEST_TEMPLATE: QuoteRequest = createStonfiQuoteRequest({ - from_address: WALLET_ADDRESS, - to_address: WALLET_ADDRESS, - from_asset: TON_ASSET, - to_asset: USDT_TON_ASSET, - from_value: "1000000000", // 1 TON - referral_bps: 50, - slippage_bps: 100, -}); - -const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); - -describeIntegration("Stonfi live integration", () => { - jest.setTimeout(60_000); - const provider = new StonfiProvider(TON_RPC_ENDPOINT); - - // Add delay between tests to avoid rate limiting from public RPC - afterEach(async () => { - await delay(2000); - }); - - it("fetches a live quote for TON -> USDT", async () => { - const quote = await provider.get_quote(REQUEST_TEMPLATE); - - expect(BigInt(quote.output_value) > 0).toBe(true); - expect(quote.output_min_value).toBeDefined(); - - console.log("TON -> USDT quote", quote); - }); - - it("fetches a live quote and builds quote data for TON -> USDT", async () => { - const quote = await provider.get_quote(REQUEST_TEMPLATE); - - expect(BigInt(quote.output_value) > 0).toBe(true); - - const quoteData = await provider.get_quote_data(quote); - - expect(typeof quoteData.data).toBe("string"); - expect(quoteData.data.length).toBeGreaterThan(0); - expect(quoteData.to).toBeDefined(); - expect(quoteData.value).toBeDefined(); - - console.log("TON -> USDT quoteData", quoteData); - }); - - it("fetches a live quote and builds quote data for USDT -> TON", async () => { - const reverseRequest = createStonfiQuoteRequest({ - from_address: WALLET_ADDRESS, - to_address: WALLET_ADDRESS, - from_asset: USDT_TON_ASSET, - to_asset: TON_ASSET, - from_value: "1000000", // 1 USDT - referral_bps: 50, - slippage_bps: 100, - }); - - const quote = await provider.get_quote(reverseRequest); - - expect(BigInt(quote.output_value) > 0).toBe(true); - - console.log("USDT -> TON quote", quote); - - const quoteData = await provider.get_quote_data(quote); - - expect(typeof quoteData.data).toBe("string"); - expect(quoteData.data.length).toBeGreaterThan(0); - - console.log("USDT -> TON quoteData", quoteData); - }); - - it("fetches a live quote for jetton to jetton swap", async () => { - const NOT_COIN = { - id: `${Chain.Ton}_EQAvlWFDxGF2lXm67y4yzC17wYKD9A0guwPkMs1gOsM__NOT`, - symbol: "NOT", - decimals: 9, - }; - - const jettonToJettonRequest = createStonfiQuoteRequest({ - from_address: WALLET_ADDRESS, - to_address: WALLET_ADDRESS, - from_asset: USDT_TON_ASSET, - to_asset: NOT_COIN, - from_value: "1000000", // 1 USDT - referral_bps: 50, - slippage_bps: 100, - }); - - const quote = await provider.get_quote(jettonToJettonRequest); - - expect(BigInt(quote.output_value) > 0).toBe(true); - - console.log("USDT -> NOT quote", quote); - - const quoteData = await provider.get_quote_data(quote); - - expect(typeof quoteData.data).toBe("string"); - expect(quoteData.data.length).toBeGreaterThan(0); - - console.log("USDT -> NOT quoteData", quoteData); - }); -}); diff --git a/packages/swapper/src/testkit/mock.ts b/packages/swapper/src/testkit/mock.ts index 3811566..729f034 100644 --- a/packages/swapper/src/testkit/mock.ts +++ b/packages/swapper/src/testkit/mock.ts @@ -2,8 +2,6 @@ import { Chain, Quote, QuoteRequest } from "@gemwallet/types"; export const SOLANA_TEST_WALLET_ADDRESS = "7g2rVN8fAAQdPh1mkajpvELqYa3gWvFXJsBLnKfEQfqy"; export const APTOS_TEST_WALLET_ADDRESS = "0x4eb20e735591a85bb58921ef2e6b55c385bba10e817ffe1e02e50deb6c594aef"; -export const TON_TEST_WALLET_ADDRESS = "UQDummyFromAddress1111111111111111111111111111"; -export const TON_TEST_DESTINATION_ADDRESS = "UQDummyToAddress11111111111111111111111111111"; export const SOLANA_USDC_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"; export const APTOS_USDC_FA = "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b"; @@ -24,29 +22,6 @@ export const USDC_SOL_ASSET = { decimals: 6, }; -export const TON_ASSET = { - id: Chain.Ton, - symbol: "TON", - decimals: 9, -}; - -export const USDT_TON_ASSET = { - id: `${Chain.Ton}_EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs`, - symbol: "USDT", - decimals: 6, -}; - -export const STONFI_QUOTE_REQUEST_TEMPLATE: QuoteRequest = { - from_address: TON_TEST_WALLET_ADDRESS, - to_address: TON_TEST_DESTINATION_ADDRESS, - from_asset: TON_ASSET, - to_asset: USDT_TON_ASSET, - from_value: "1000000000", - referral_bps: 0, - slippage_bps: 100, - use_max_amount: false, -}; - export const OKX_SOLANA_USDC_REQUEST_TEMPLATE: QuoteRequest = { from_address: SOLANA_TEST_WALLET_ADDRESS, to_address: SOLANA_TEST_WALLET_ADDRESS, @@ -139,17 +114,6 @@ export function buildQuoteFixture( }; } -export function createStonfiQuoteRequest(overrides: Partial = {}): QuoteRequest { - return createQuoteRequest(STONFI_QUOTE_REQUEST_TEMPLATE, overrides); -} - -export function buildStonfiQuoteFixture( - requestOverrides: Partial = {}, - quoteOverrides: Partial> = {}, -): Quote { - return buildQuoteFixture(STONFI_QUOTE_REQUEST_TEMPLATE, requestOverrides, quoteOverrides, 3); -} - export function createSolanaUsdcQuoteRequest(overrides: Partial = {}): QuoteRequest { return createQuoteRequest(OKX_SOLANA_USDC_REQUEST_TEMPLATE, overrides); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 562c4b1..8d33c93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,14 +27,14 @@ importers: specifier: 30.2.0 version: 30.2.0(@types/node@25.6.0)(ts-node@10.9.2(@types/node@25.6.0)(typescript@5.9.3)) knip: - specifier: 6.6.2 - version: 6.6.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + specifier: 6.12.2 + version: 6.12.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: - specifier: 0.46.0 - version: 0.46.0 + specifier: 0.48.0 + version: 0.48.0 oxlint: - specifier: 1.61.0 - version: 1.61.0 + specifier: 1.63.0 + version: 1.63.0 ts-jest: specifier: 29.4.6 version: 29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.6.0)(ts-node@10.9.2(@types/node@25.6.0)(typescript@5.9.3)))(typescript@5.9.3) @@ -84,18 +84,6 @@ importers: '@solana/web3.js': specifier: 1.98.4 version: 1.98.4(bufferutil@4.0.9)(typescript@5.9.3)(utf-8-validate@5.0.10) - '@ston-fi/api': - specifier: 0.32.0 - version: 0.32.0 - '@ston-fi/sdk': - specifier: 2.7.0 - version: 2.7.0(@ston-fi/api@0.32.0)(@ton/ton@16.2.2(@ton/core@0.63.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0)) - '@ton/core': - specifier: 0.63.1 - version: 0.63.1(@ton/crypto@3.3.0) - '@ton/ton': - specifier: 16.2.2 - version: 16.2.2(@ton/core@0.63.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0) '@types/bn.js': specifier: 5.2.0 version: 5.2.0 @@ -305,9 +293,15 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + '@emnapi/runtime@1.9.2': resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} @@ -515,135 +509,135 @@ packages: resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} engines: {node: '>= 20.19.0'} - '@oxc-parser/binding-android-arm-eabi@0.127.0': - resolution: {integrity: sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==} + '@oxc-parser/binding-android-arm-eabi@0.128.0': + resolution: {integrity: sha512-aca6ZvzmCBUGOANQRiRQRZuRKYI3ENhcit6GisnknOOmcezfQc7xJ4dxlPU7MV7mOvrC7RNR1u3LAD7xyaiCxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.127.0': - resolution: {integrity: sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==} + '@oxc-parser/binding-android-arm64@0.128.0': + resolution: {integrity: sha512-BbeDmuohoJ7Rz/it5wnkj69i/OsCPS3Z51nLEzwO/Y6YshtC4JU+15oNwhY8v4LRKRYclRc7ggOikwrsJ/eOEQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.127.0': - resolution: {integrity: sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==} + '@oxc-parser/binding-darwin-arm64@0.128.0': + resolution: {integrity: sha512-tRUHPt80417QmvNpoSslJT1VY8NUbWdrWR+L14Zn+RbOTcaqB8E6PYE/ZGN8jjWBzqporiA/H4MfO50ew/NCNA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.127.0': - resolution: {integrity: sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==} + '@oxc-parser/binding-darwin-x64@0.128.0': + resolution: {integrity: sha512-rWI2Hb1Nt3U/vKsjyNvZzDC8i/l144U20DKjhzaTmwIhIiSRGeroPWWiImwypmKLqrw8GuIixbWJkpGWLbkzrQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.127.0': - resolution: {integrity: sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==} + '@oxc-parser/binding-freebsd-x64@0.128.0': + resolution: {integrity: sha512-hhpdVMaNCLgQxjgNPeeFzSeJMmZPc5lKfv0NGSI3egZq9EdnEGqeC8JsYsQjK7PoQgbvZ17xlj0SO5ziH5Obkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': - resolution: {integrity: sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.128.0': + resolution: {integrity: sha512-093zNw0zZ/e/obML+rhlSdmnzR0mVZluPcAkxunEc5E3F0yBVsFn24Y1ILfsEte11Ud041qn/gp2OJ1jxNqUng==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': - resolution: {integrity: sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==} + '@oxc-parser/binding-linux-arm-musleabihf@0.128.0': + resolution: {integrity: sha512-fq7DmKmfC+dvD97IXrgbph6Jzwe0EDu+PYMofmzZ6fv5X1k9vtaqLpDGMuICO9MmUnyKAQmVl+wIv2RNy4Dz8g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.127.0': - resolution: {integrity: sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==} + '@oxc-parser/binding-linux-arm64-gnu@0.128.0': + resolution: {integrity: sha512-Xvm48jJah8TlIrURIjNOP/gNiGe6aKvCB+r06VliflFo8Kq7VOLE8PxtgShJzZIqubrgdMdYfvuPPozn7F6MbQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-musl@0.127.0': - resolution: {integrity: sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==} + '@oxc-parser/binding-linux-arm64-musl@0.128.0': + resolution: {integrity: sha512-M7iwBGmYJTx+pKOYFjI0buop4gJvlmcVzFGaXPt21DKpQkbQZG1f63Yg7LloIYT/t9yLxCw0Lhfx/RFlAlMSjA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': - resolution: {integrity: sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==} + '@oxc-parser/binding-linux-ppc64-gnu@0.128.0': + resolution: {integrity: sha512-21LGNIZb1Pcfk5/EGsqabrxv4yqQOWis1407JJrClS7XpFCrbvr74YAB1V+m54cYbwvO6UWwQqS4WecxiyfCRg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': - resolution: {integrity: sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==} + '@oxc-parser/binding-linux-riscv64-gnu@0.128.0': + resolution: {integrity: sha512-gyHjOTFpg9bTTYjxPmQirvufb89+VdZwVfcMtAUyPr6F5H8ZswvCQshK4qOW+Q+2Xyb33hduRgY/eFHJQjU/vQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-musl@0.127.0': - resolution: {integrity: sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==} + '@oxc-parser/binding-linux-riscv64-musl@0.128.0': + resolution: {integrity: sha512-X6Q2oKUrP5GyDd2xniuEBLk6aFQCZ97W2+aVXGgJXdjx5t4/oFuA9ri0wLOUrBIX+qdSuK581snMBio4z910eA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-s390x-gnu@0.127.0': - resolution: {integrity: sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==} + '@oxc-parser/binding-linux-s390x-gnu@0.128.0': + resolution: {integrity: sha512-BdzTmqxfxoYkpgokoLaSnOX6T+R3/goL42klre2tnG+kHbG2TXS0VN+P5BPofH1axdKOHy5ei4ENZrjmCOt2lA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.127.0': - resolution: {integrity: sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==} + '@oxc-parser/binding-linux-x64-gnu@0.128.0': + resolution: {integrity: sha512-OO1nW2Q7sSYYvJZpDHdvyFSdRaVcQqRijZSSmWVMqFxPYy8cEF45zJ9fcdIYuzIT3jYq6YRhEFm/VMWNWhE22Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-musl@0.127.0': - resolution: {integrity: sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==} + '@oxc-parser/binding-linux-x64-musl@0.128.0': + resolution: {integrity: sha512-4NehAe404MRdoZVS9DW8C5XbJwbXIc/KfVlYdpi5vE4081zc9Y0YzKVqyOYj/Puye7/Do+ohaONBFWlEHYl9hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-openharmony-arm64@0.127.0': - resolution: {integrity: sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==} + '@oxc-parser/binding-openharmony-arm64@0.128.0': + resolution: {integrity: sha512-kVbqgW9xLL8bh8oc7aYOJilRKXE5G33+tE0jan+duo/9OriaFRpijcCwT2waWs2oqYROYq0GlE7/p3ywoshVeg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.127.0': - resolution: {integrity: sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==} + '@oxc-parser/binding-wasm32-wasi@0.128.0': + resolution: {integrity: sha512-L38ojghJYHmgiz6fJd7jwLB/ESDBpB02NdFxh+smqVM6P2anCEvHn0jhaSrt5eVNR1Ak8+moOeftUlofeyvniA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.127.0': - resolution: {integrity: sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==} + '@oxc-parser/binding-win32-arm64-msvc@0.128.0': + resolution: {integrity: sha512-xgvO35GyHBtjlQ5AEpaYr7Rll1rvY7zqIhT6ty8E3ezBW2J1SFLjIDEvI/tcgDg6oaseDAqVcM+jU1HuCekgZw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.127.0': - resolution: {integrity: sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==} + '@oxc-parser/binding-win32-ia32-msvc@0.128.0': + resolution: {integrity: sha512-OY+3eM2SN72prHKRB22mPz8o5A/7dJ+f5DFLBVvggyZhEaNDAH9IB+ElMjmOkOIwf5MDCUAowCK7pAncNxzpBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.127.0': - resolution: {integrity: sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==} + '@oxc-parser/binding-win32-x64-msvc@0.128.0': + resolution: {integrity: sha512-NE9ny+cPUCCObXa0IKLfj0tCdPd7pe/dz9ZpkxpUOymB3miNeMPybdlYYTBSGJUalMWeBM85/4JcCErCNTqOXw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxc-project/types@0.127.0': - resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} + '@oxc-project/types@0.128.0': + resolution: {integrity: sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ==} '@oxc-resolver/binding-android-arm-eabi@11.19.1': resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} @@ -753,246 +747,246 @@ packages: cpu: [x64] os: [win32] - '@oxfmt/binding-android-arm-eabi@0.46.0': - resolution: {integrity: sha512-b1doV4WRcJU+BESSlCvCjV+5CEr/T6h0frArAdV26Nir+gGNFNaylvDiiMPfF1pxeV0txZEs38ojzJaxBYg+ng==} + '@oxfmt/binding-android-arm-eabi@0.48.0': + resolution: {integrity: sha512-uwqk+/KhQvBIpULD8SMM/zAafMRC/+DV/xsEQjkkIsJ/kLmEI/2bxonVowcYTiXqqZ/a0FEW8DPkZY3VvwELDA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.46.0': - resolution: {integrity: sha512-v6+HhjsoV3GO0u2u9jLSAZrvWfTraDxKofUIQ7/ktS7tzS+epVsxdHmeM+XxuNcAY/nWxxU1Sg4JcGTNRXraBA==} + '@oxfmt/binding-android-arm64@0.48.0': + resolution: {integrity: sha512-VUCiKuXK5+McVssgHEJdrcGK7hRJzrRb36zm9/jwzMholyYt4BgXhw5Nm1V1DX6Ce717Zi/1jk432b/tgmQgtQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.46.0': - resolution: {integrity: sha512-3eeooJGrqGIlI5MyryDZsAcKXSmKIgAD4yYtfRrRJzXZ0UTFZtiSveIur56YPrGMYZwT4XyVhHsMqrNwr1XeFA==} + '@oxfmt/binding-darwin-arm64@0.48.0': + resolution: {integrity: sha512-IkKp8rnIyQLW6Jt+6jragCbUVYSayk55lapiprLjIVvt4NczLyO/nwX2GgefLQ5iaBdfS8UEAFgCs/pLO6Cl0w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.46.0': - resolution: {integrity: sha512-QG8BDM0CXWbu84k2SKmCqfEddPQPFiBicwtYnLqHRWZZl57HbtOLRMac/KTq2NO4AEc4ICCBpFxJIV9zcqYfkQ==} + '@oxfmt/binding-darwin-x64@0.48.0': + resolution: {integrity: sha512-+aFuhsGIuvnoOjXyKVHMhPKJZR1kQkAl8QyrKoMlA7yJsSTC3N0Asl53La8TChSHhW8epToQ/Q0nvLmEmfNmLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.46.0': - resolution: {integrity: sha512-9DdCqS/n2ncu/Chazvt3cpgAjAmIGQDz7hFKSrNItMApyV/Ja9mz3hD4JakIE3nS8PW9smEbPWnb389QLBY4nw==} + '@oxfmt/binding-freebsd-x64@0.48.0': + resolution: {integrity: sha512-fbqzQL8FjI9gGnktI7RIo0dksDziTAYBy7xlI7jU7eID5fxLF/25fS4Xj6GydD8Y5oWHL83U4NK160QaOAxtyg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': - resolution: {integrity: sha512-Dgs7VeE2jT0LHMhw6tPEt0xQYe54kBqHEovmWsv4FVQlegCOvlIJNx0S8n4vj8WUtpT+Z6BD2HhKJPLglLxvZg==} + '@oxfmt/binding-linux-arm-gnueabihf@0.48.0': + resolution: {integrity: sha512-hn4i0zhAyTiB3ZHjQfYUZkDvrbVkohw1S7pySWxWUoZ87HnkDoTFThj7QTxk40hNPOTUP0vHbPRNamFIv1HBJQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.46.0': - resolution: {integrity: sha512-Zxn3adhTH13JKnU4xXJj8FeEfF680XjXh3gSShKl57HCMBRde2tUJTgogV/1MSHA80PJEVrDa7r66TLVq3Ia7Q==} + '@oxfmt/binding-linux-arm-musleabihf@0.48.0': + resolution: {integrity: sha512-R4WBD9qF3QM9hqgdAa+fBGXmquTvDUujrPQ36t2Sjk8RPOSKGHDeN7l/khr10hqbQaOq9KCgPHG9ubNET/X/RQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.46.0': - resolution: {integrity: sha512-+TWipjrgVM8D7aIdDD0tlr3teLTTvQTn7QTE5BpT10H1Fj82gfdn9X6nn2sDgx/MepuSCfSnzFNJq2paLL0OiA==} + '@oxfmt/binding-linux-arm64-gnu@0.48.0': + resolution: {integrity: sha512-5bVdwSwlm1M8wbYCorLOxWxUBw/8tBvHYyQNIfwWVPwOJaj5vg1APSGJQVpwJfV5VNE9PSrR91UKEpoNwHhqUA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.46.0': - resolution: {integrity: sha512-aAUPBWJ1lGwwnxZUEDLJ94+Iy6MuwJwPxUgO4sCA5mEEyDk7b+cDQ+JpX1VR150Zoyd+D49gsrUzpUK5h587Eg==} + '@oxfmt/binding-linux-arm64-musl@0.48.0': + resolution: {integrity: sha512-vCS3Fk7gFslTqE1lUE2IlroyVV7u/9SmMA/uBqDoshuck2psGWcjW0ePyPZI3rM3+qtf2pDaMVIKMHozraifuw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.46.0': - resolution: {integrity: sha512-ufBCJukyFX/UDrokP/r6BGDoTInnsDs7bxyzKAgMiZlt2Qu8GPJSJ6Zm6whIiJzKk0naxA8ilwmbO1LMw6Htxw==} + '@oxfmt/binding-linux-ppc64-gnu@0.48.0': + resolution: {integrity: sha512-gKtfFfueUClXDumyoHUbymqRf7prHejOOyzJK0eIJn93GF9JBdFHdo60TM1ZBHxkEwZvjuOgHmKtneKbEOc/Eg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.46.0': - resolution: {integrity: sha512-eqtlC2YmPqjun76R1gVfGLuKWx7NuEnLEAudZ7n6ipSKbCZTqIKSs1b5Y8K/JHZsRpLkeSmAAjig5HOIg8fQzQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.48.0': + resolution: {integrity: sha512-SYt0UhOvZD/UwZz9sXq6J2uAw8o24f5VZpLB2DH01f6MevshmlgakQlZe2lwek2sZJkd07eLu7mZa0g7yeiw7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.46.0': - resolution: {integrity: sha512-yccVOO2nMXkQLGgy0He3EQEwKD7NF0zEk+/OWmroznkqXyJdN6bfK0LtNnr6/14Bh3FjpYq7bP33l/VloCnxpA==} + '@oxfmt/binding-linux-riscv64-musl@0.48.0': + resolution: {integrity: sha512-JLbrwck2AopG4ud/XklZO5N+qxGC7cS7ROvXZVNfx0MCLDDL2kGOLvzuWORkVjnjAM0CMAfIMU2zNBtQbM+4dw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.46.0': - resolution: {integrity: sha512-aAf7fG23OQCey6VRPj9IeCraoYtpgtx0ZyJ1CXkPyT1wjzBE7c3xtuxHe/AdHaJfVVb/SXpSk8Gl1LzyQupSqw==} + '@oxfmt/binding-linux-s390x-gnu@0.48.0': + resolution: {integrity: sha512-mdxt5L8OQLxkQH+JVpdC/lknZNe0lX4hlO3d8+xvw2wToo+iDrid9tiGOd5bmHfUVd5wVhrUry0qlu5vq66NkQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.46.0': - resolution: {integrity: sha512-q0JPsTMyJNjYrBvYFDz4WbVsafNZaPCZv4RnFypRotLqpKROtBZcEaXQW4eb9YmvLU3NckVemLJnzkSZSdmOxw==} + '@oxfmt/binding-linux-x64-gnu@0.48.0': + resolution: {integrity: sha512-oEz1BQwMrV7OMEFx/3VPDU3n9TM0AnxpktDYXjEg5i6nTX87wo18wSfBvkl4tzAICdKtoAQAdBIl7Y7hsPlx5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.46.0': - resolution: {integrity: sha512-7LsLY9Cw57GPkhSR+duI3mt9baRczK/DtHYSldQ4BEU92da9igBQNl4z7Vq5U9NNPsh1FmpKvv1q9WDtiUQR1A==} + '@oxfmt/binding-linux-x64-musl@0.48.0': + resolution: {integrity: sha512-g2SKTTurP5mWjd8Ecait0erYqmltL4IqW1EwttM25BxM6NiTt4ubobJYMR1uox1V2QgG4UfHH10CGRvWlUixjw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.46.0': - resolution: {integrity: sha512-lHiBOz8Duaku7JtRNLlps3j++eOaICPZSd8FCVmTDM4DFOPT71Bjn7g6iar1z7StXlKRweUKxWUs4sA+zWGDXg==} + '@oxfmt/binding-openharmony-arm64@0.48.0': + resolution: {integrity: sha512-CIg24VgheEpvolHL2gQuax5qcQ602bRMHrJ9g8XsQr3iVj9aSPgopigBKuMqrXsupwkrU+RQCn5cG8PgFntR6w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.46.0': - resolution: {integrity: sha512-/5ktYUliP89RhgC37DBH1x20U5zPSZMy3cMEcO0j3793rbHP9MWsknBwQB6eozRzWmYrh0IFM/p20EbPvDlYlg==} + '@oxfmt/binding-win32-arm64-msvc@0.48.0': + resolution: {integrity: sha512-zeaWkcxcEULwkGF3I/HgEvcDPN8buYDrxibBUa/IFh5Vmwyge+KpLO+hEwSovW349H0O/C0Z2kaFmEzEDm00/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.46.0': - resolution: {integrity: sha512-3WTnoiuIr8XvV0DIY7SN+1uJSwKf4sPpcbHfobcRT9JutGcLaef/miyBB87jxd3aqH+mS0+G5lsgHuXLUwjjpQ==} + '@oxfmt/binding-win32-ia32-msvc@0.48.0': + resolution: {integrity: sha512-yiEKnIAGvx5CyZQOlMaNlZkAbwT7/Quk0j3WLt+PR5hK+qYjPTRRJYDfD77wCBPLvEYAG41v4KG3iL0H+uxoxg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.46.0': - resolution: {integrity: sha512-IXxiQpkYnOwNfP23vzwSfhdpxJzyiPTY7eTn6dn3DsriKddESzM8i6kfq9R7CD/PUJwCvQT22NgtygBeug3KoA==} + '@oxfmt/binding-win32-x64-msvc@0.48.0': + resolution: {integrity: sha512-GSD2+7t2UoVMV2NgxXypa4bKewflPMAjYnF0Xw9/ht82ZfafAHhb8STwrEd7wlH2PFogt5zw3WVCxYJaHUdbeQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.61.0': - resolution: {integrity: sha512-6eZBPgiigK5txqoVgRqxbaxiom4lM8AP8CyKPPvpzKnQ3iFRFOIDc+0AapF+qsUSwjOzr5SGk4SxQDpQhkSJMQ==} + '@oxlint/binding-android-arm-eabi@1.63.0': + resolution: {integrity: sha512-A9xLtQt7i0OA1PoB/meog6kikXI9CdwEp7ZwQqmgnpKn3G3b1orvTDy8CQ6T7w1HvDrgWGB78PkFKcWgibcTCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.61.0': - resolution: {integrity: sha512-CkwLR69MUnyv5wjzebvbbtTSUwqLxM35CXE79bHqDIK+NtKmPEUpStTcLQRZMCo4MP0qRT6TXIQVpK0ZVScnMA==} + '@oxlint/binding-android-arm64@1.63.0': + resolution: {integrity: sha512-SQo+ZMvdR9l3CxZp5W5gFNxSiDxclY6lOzzNpKYLF8asESpm3Pwumx0gER5T7aHLF1/2BAAtLD3DiDkdgy4V1A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.61.0': - resolution: {integrity: sha512-8JbefTkbmvqkqWjmQrHke+MdpgT2UghhD/ktM4FOQSpGeCgbMToJEKdl9zwhr/YWTl92i4QI1KiTwVExpcUN8A==} + '@oxlint/binding-darwin-arm64@1.63.0': + resolution: {integrity: sha512-6W82XjJDTmMnjg30427l0dufpnyLoq7wEukKdM6/g2VIybRVuQiBVh43EA4b+UxZ3+tLcKm+Or/pXGNgLCEU8g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.61.0': - resolution: {integrity: sha512-uWpoxDT47hTnDLcdEh5jVbso8rlTTu5o0zuqa9J8E0JAKmIWn7kGFEIB03Pycn2hd2vKxybPGLhjURy/9We5FQ==} + '@oxlint/binding-darwin-x64@1.63.0': + resolution: {integrity: sha512-CnWd/YCuVG5W1BYkjJEVbJG11o526O9qAwBEQM+nh8K19CRFUkFdROXCyYkGmroHEYQe4vgQ6+lh3550Lp35Xw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.61.0': - resolution: {integrity: sha512-K/o4hEyW7flfMel0iBVznmMBt7VIMHGdjADocHKpK1DUF9erpWnJ+BSSWd2W0c8K3mPtpph+CuHzRU6CI3l9jQ==} + '@oxlint/binding-freebsd-x64@1.63.0': + resolution: {integrity: sha512-a4eZAqrmtajqcxfdAzC+l7g3PaE3V8hpAYqqeD3fTxLXOMFdK3eNTZrU80n4dDEVm0JXy1aL5PqvqWldBl6zYA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.61.0': - resolution: {integrity: sha512-P6040ZkcyweJ0Po9yEFqJCdvZnf3VNCGs1SIHgXDf8AAQNC6ID/heXQs9iSgo2FH7gKaKq32VWc59XZwL34C5Q==} + '@oxlint/binding-linux-arm-gnueabihf@1.63.0': + resolution: {integrity: sha512-tYUtU9TdbU3uXF5D62g5zXJ13iniFGhXQx5vp9cyEjGdbSAY3VdFBSaldYvyoDmgMZ0ZYuwQP1Y4t2Fhejwa0w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.61.0': - resolution: {integrity: sha512-bwxrGCzTZkuB+THv2TQ1aTkVEfv5oz8sl+0XZZCpoYzErJD8OhPQOTA0ENPd1zJz8QsVdSzSrS2umKtPq4/JXg==} + '@oxlint/binding-linux-arm-musleabihf@1.63.0': + resolution: {integrity: sha512-I5r3twFf776UZg9dmRo2xbrKt00tTkORXEVe0ctg4vdTkQvJAjiCHxnbAU2HL1AiJ9cqADA76MAliuilsAWnvg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.61.0': - resolution: {integrity: sha512-vkhb9/wKguMkLlrm3FoJW/Xmdv31GgYAE+x8lxxQ+7HeOxXUySI0q36a3NTVIuQUdLzxCI1zzMGsk1o37FOe3w==} + '@oxlint/binding-linux-arm64-gnu@1.63.0': + resolution: {integrity: sha512-t7ltUkg6FFh4b564QyGir8xIj/QZbXu8FlcRkcyW9+ztr/mfRHlvUOFd95pJCXi9s/L5DrUeWWgpXRS+V+6igQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.61.0': - resolution: {integrity: sha512-bl1dQh8LnVqsj6oOQAcxwbuOmNJkwc4p6o//HTBZhNTzJy21TLDwAviMqUFNUxDHkPGpmdKTSN4tWTjLryP8xg==} + '@oxlint/binding-linux-arm64-musl@1.63.0': + resolution: {integrity: sha512-Q5mmZy/XWjuYFUuQyYjOvZ5U/JkKEwnpir6hGxhh6HcdP0V/BKxLo8dqkfF/t7r7AguB17dfS/8+go5AQDRR6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.61.0': - resolution: {integrity: sha512-QoOX6KB2IiEpyOj/HKqaxi+NQHPnOgNgnr22n9N4ANJCzXkUlj1UmeAbFb4PpqdlHIzvGDM5xZ0OKtcLq9RhiQ==} + '@oxlint/binding-linux-ppc64-gnu@1.63.0': + resolution: {integrity: sha512-uBGtuZ0TzLB4x5wVa82HGNvYqY8buwDhyCnCP0R0gkk9szqVsP0MeTtD5HX7EsEuFIt+aYmYxuxeVxs3nTSwtQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.61.0': - resolution: {integrity: sha512-1TGcTerjY6p152wCof3oKElccq3xHljS/Mucp04gV/4ATpP6nO7YNnp7opEg6SHkv2a57/b4b8Ndm9znJ1/qAw==} + '@oxlint/binding-linux-riscv64-gnu@1.63.0': + resolution: {integrity: sha512-h4s6FwxE+9MeA181o0dnDwHP32Y/bG8EiB/vrD6Ib+AMt6haigDc/0bUtI/sLmQDBMJnUfaCmtSSrEAqjtEVrA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.61.0': - resolution: {integrity: sha512-65wXEmZIrX2ADwC8i/qFL4EWLSbeuBpAm3suuX1vu4IQkKd+wLT/HU/BOl84kp91u2SxPkPDyQgu4yrqp8vwVA==} + '@oxlint/binding-linux-riscv64-musl@1.63.0': + resolution: {integrity: sha512-2EaNcCBR8Mcjl5ARtuN3BdEpVkX7KpjSjMGZ/mJMIeaXgTtdz5ytg2VwygMSStA/k0ixfvZFoZOfjDEcouV5vQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.61.0': - resolution: {integrity: sha512-TVvhgMvor7Qa6COeXxCJ7ENOM+lcAOGsQ0iUdPSCv2hxb9qSHLQ4XF1h50S6RE1gBOJ0WV3rNukg4JJJP1LWRA==} + '@oxlint/binding-linux-s390x-gnu@1.63.0': + resolution: {integrity: sha512-p4hlf/fd7TrYYl3QrWWD0GocqJefwMu3cHQhmi2FvEB/YOvFb5DZN3SMBaPi7B1TM5DeypkEtrVib674q1KKPg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.61.0': - resolution: {integrity: sha512-SjpS5uYuFoDnDdZPwZE59ndF95AsY47R5MliuneTWR1pDm2CxGJaYXbKULI71t5TVfLQUWmrHEGRL9xvuq6dnA==} + '@oxlint/binding-linux-x64-gnu@1.63.0': + resolution: {integrity: sha512-Vgq9rkRVcPcjbcH+ihYTfpeR7vCXfqpd+z5ItTGc0yYUV59L5ceHYN1iV4H9bKGV7Rn5hkVc7x3mSvHegduENA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.61.0': - resolution: {integrity: sha512-gGfAeGD4sNJGILZbc/yKcIimO9wQnPMoYp9swAaKeEtwsSQAbU+rsdQze5SBtIP6j0QDzeYd4XSSUCRCF+LIeQ==} + '@oxlint/binding-linux-x64-musl@1.63.0': + resolution: {integrity: sha512-3/Lkq/ncooA61rorrC+ZQed1Bc4VpGj+WnGsp58zmxKgvZ2vhreu+dcVyr3mX8NUpq7mfZ4gDDTou/yrF1Pd7A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.61.0': - resolution: {integrity: sha512-OlVT0LrG/ct33EVtWRyR+B/othwmDWeRxfi13wUdPeb3lAT5TgTcFDcfLfarZtzB4W1nWF/zICMgYdkggX2WmQ==} + '@oxlint/binding-openharmony-arm64@1.63.0': + resolution: {integrity: sha512-0/EdD/6hDkx5Mfd769PTjvEM8mZ/6Dfukp1dBCL/2PjlIVGEtYdNZyok6ChqYPsT9JcFnlQnUeQzO0/1L/oC9w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.61.0': - resolution: {integrity: sha512-vI//NZPJk6DToiovPtaiwD4iQ7kO1r5ReWQD0sOOyKRtP3E2f6jxin4uvwi3OvDzHA2EFfd7DcZl5dtkQh7g1w==} + '@oxlint/binding-win32-arm64-msvc@1.63.0': + resolution: {integrity: sha512-wb0CUkN8ngwPiRQBjD1Cj0LsHeNvm+Xt6YBHDMtj2DVQVD6Oj8Ri7g6BD+KICf6LaBqZlmzOvy6nF9E/8yyGOg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.61.0': - resolution: {integrity: sha512-0ySj4/4zd2XjePs3XAQq7IigIstN4LPQZgCyigX5/ERMLjdWAJfnxcTsrtxZxuij8guJW8foXuHmhGxW0H4dDA==} + '@oxlint/binding-win32-ia32-msvc@1.63.0': + resolution: {integrity: sha512-BX5iq+ovdNlVYhSn5qPMUIT0uwAwt2lmEnCnzK+Gkhw4DovIvhGb96OFhV8yzQNUnQxn/xGkOR+X+BLrLDNm8w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.61.0': - resolution: {integrity: sha512-0xgSiyeqDLDZxXoe9CVJrOx3TUVsfyoOY7cNi03JbItNcC9WCZqrSNdrAbHONxhSPaVh/lzfnDcON1RqSUMhHw==} + '@oxlint/binding-win32-x64-msvc@1.63.0': + resolution: {integrity: sha512-QeN/WELOfsXMeYwxvfgQrl6CbVftYUCZsGXHjXQd5Trccm8+i4gmtxaOui4xbJQaiDlviF8F3yLSBloQUeFsfA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1071,35 +1065,9 @@ packages: '@solana/web3.js@1.98.4': resolution: {integrity: sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==} - '@ston-fi/api@0.32.0': - resolution: {integrity: sha512-1Z9++yFaDQIDaoIX5Vz+LnqFe+Wzaq6P65TW38KTqOyymvztvHj7yLI1bMGDoFB3EjZ8HPR4z2LUMstyrBT0dQ==} - - '@ston-fi/sdk@2.7.0': - resolution: {integrity: sha512-dErhqyCy53t2p/tPe1KNVR7iX5f1d6v7wvSPltsFKy8uF+hU/mxL2/ElRZktDE0mkJQDljOjFlM9s4E0VTFzuw==} - peerDependencies: - '@ston-fi/api': ^0 - '@ton/ton': ^13.9.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@ton/core@0.63.1': - resolution: {integrity: sha512-hDWMjlKzc18W2E4OeV3hUP8ohRJNHPD4Wd1+AQJj8zshZyCRT0usrvnExgbNUTo/vntDqCGMzgYWbXxyaA+L4g==} - peerDependencies: - '@ton/crypto': '>=3.2.0' - - '@ton/crypto-primitives@2.1.0': - resolution: {integrity: sha512-PQesoyPgqyI6vzYtCXw4/ZzevePc4VGcJtFwf08v10OevVJHVfW238KBdpj1kEDQkxWLeuNHEpTECNFKnP6tow==} - - '@ton/crypto@3.3.0': - resolution: {integrity: sha512-/A6CYGgA/H36OZ9BbTaGerKtzWp50rg67ZCH2oIjV1NcrBaCK9Z343M+CxedvM7Haf3f/Ee9EhxyeTp0GKMUpA==} - - '@ton/ton@16.2.2': - resolution: {integrity: sha512-yEOw4IW3gpRZxJAcILMI4dQ1d5/eAAbD2VU/Iwc6z7f2jt1mLDWVED8yn2vLNucQfZr+1eaqYHLztYVFZ7PKmw==} - peerDependencies: - '@ton/core': '>=0.63.0 <1.0.0' - '@ton/crypto': '>=3.2.0' - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -1207,6 +1175,7 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@unrs/resolver-binding-android-arm-eabi@1.11.1': resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} @@ -1493,10 +1462,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase-keys@9.1.3: - resolution: {integrity: sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==} - engines: {node: '>=16'} - camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -1505,10 +1470,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} - caniuse-lite@1.0.30001745: resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} @@ -1597,9 +1558,6 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - dataloader@2.2.3: - resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -1609,14 +1567,6 @@ packages: supports-color: optional: true - decamelize-keys@2.0.1: - resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==} - engines: {node: '>=14.16'} - - decamelize@6.0.1: - resolution: {integrity: sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dedent@1.7.0: resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} peerDependencies: @@ -1641,9 +1591,6 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -2162,8 +2109,8 @@ packages: node-notifier: optional: true - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true js-sha3@0.8.0: @@ -2199,11 +2146,8 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jssha@3.2.0: - resolution: {integrity: sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==} - - knip@6.6.2: - resolution: {integrity: sha512-ma2p+SvgIs1GZZLUV9QJrLkb9gGNBQHk7fcrtt3aVhiW2XEXH/yfMOU88F7ZdriYuBYkB53djPNYMWb2pKVl/g==} + knip@6.12.2: + resolution: {integrity: sha512-RcZpT1sVziKZgDk1F0hAcp+bq71VJAF8vg1Y9ZLXc1+UXQaMm1rjiUqpJQTIj+lqwmiBQT19/u7ikgazs23cvA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2237,14 +2181,6 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - map-obj@5.0.0: - resolution: {integrity: sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2323,9 +2259,6 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -2361,9 +2294,6 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} - on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -2375,24 +2305,24 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oxc-parser@0.127.0: - resolution: {integrity: sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==} + oxc-parser@0.128.0: + resolution: {integrity: sha512-XkOw3eiIxAgQ19WRew/Bq9wc5Ga/guaWIzDBzq80z1PyuDNGvWBpPby9k6YGwV8A8uMw+Nlq3xqlzuDYmUFYUw==} engines: {node: ^20.19.0 || >=22.12.0} oxc-resolver@11.19.1: resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} - oxfmt@0.46.0: - resolution: {integrity: sha512-CopwJOwPAjZ9p76fCvz+mSOJTw9/NY3cSksZK3VO/bUQ8UoEcketNgUuYS0UB3p+R9XnXe7wGGXUmyFxc7QxJA==} + oxfmt@0.48.0: + resolution: {integrity: sha512-AVaLh+7XeGx+R1zfFV+f6VV61nT2MWVJXVUDhbTm5LBWGyNt64xAyh3NYYyjeY2WykNt9AvqSQLPHcbWquYF9g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint@1.61.0: - resolution: {integrity: sha512-ZC0ALuhDZ6ivOFG+sy0D0pEDN49EvsId98zVlmYdkcXHsEM14m/qTNUEsUpiFiCVbpIxYtVBmmLE87nsbUHohQ==} + oxlint@1.63.0: + resolution: {integrity: sha512-9TGXetdjgIHOJ9OiReomP7nnrMkV9HxC1xM2ramJSLQpzxjsAJtQwa4wqkJN2f/uCrqZuJseFuSlWDdvcruveg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.18.0' + oxlint-tsgolint: '>=0.22.1' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -2483,10 +2413,6 @@ packages: resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} - quick-lru@6.1.2: - resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==} - engines: {node: '>=12'} - range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -2781,9 +2707,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -2792,10 +2715,6 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -2809,9 +2728,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.6.3: - resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -2846,6 +2762,7 @@ packages: uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache-lib@3.0.1: @@ -3204,12 +3121,23 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + '@emnapi/core@1.9.2': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 @@ -3546,10 +3474,10 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true @@ -3577,71 +3505,71 @@ snapshots: '@noble/hashes@2.2.0': {} - '@oxc-parser/binding-android-arm-eabi@0.127.0': + '@oxc-parser/binding-android-arm-eabi@0.128.0': optional: true - '@oxc-parser/binding-android-arm64@0.127.0': + '@oxc-parser/binding-android-arm64@0.128.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.127.0': + '@oxc-parser/binding-darwin-arm64@0.128.0': optional: true - '@oxc-parser/binding-darwin-x64@0.127.0': + '@oxc-parser/binding-darwin-x64@0.128.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.127.0': + '@oxc-parser/binding-freebsd-x64@0.128.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.128.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.128.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.127.0': + '@oxc-parser/binding-linux-arm64-gnu@0.128.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.127.0': + '@oxc-parser/binding-linux-arm64-musl@0.128.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': + '@oxc-parser/binding-linux-ppc64-gnu@0.128.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.128.0': optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.127.0': + '@oxc-parser/binding-linux-riscv64-musl@0.128.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.127.0': + '@oxc-parser/binding-linux-s390x-gnu@0.128.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.127.0': + '@oxc-parser/binding-linux-x64-gnu@0.128.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.127.0': + '@oxc-parser/binding-linux-x64-musl@0.128.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.127.0': + '@oxc-parser/binding-openharmony-arm64@0.128.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.127.0': + '@oxc-parser/binding-wasm32-wasi@0.128.0': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + '@oxc-parser/binding-win32-arm64-msvc@0.128.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + '@oxc-parser/binding-win32-ia32-msvc@0.128.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.127.0': + '@oxc-parser/binding-win32-x64-msvc@0.128.0': optional: true - '@oxc-project/types@0.127.0': {} + '@oxc-project/types@0.128.0': {} '@oxc-resolver/binding-android-arm-eabi@11.19.1': optional: true @@ -3691,9 +3619,9 @@ snapshots: '@oxc-resolver/binding-openharmony-arm64@11.19.1': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -3708,118 +3636,118 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.19.1': optional: true - '@oxfmt/binding-android-arm-eabi@0.46.0': + '@oxfmt/binding-android-arm-eabi@0.48.0': optional: true - '@oxfmt/binding-android-arm64@0.46.0': + '@oxfmt/binding-android-arm64@0.48.0': optional: true - '@oxfmt/binding-darwin-arm64@0.46.0': + '@oxfmt/binding-darwin-arm64@0.48.0': optional: true - '@oxfmt/binding-darwin-x64@0.46.0': + '@oxfmt/binding-darwin-x64@0.48.0': optional: true - '@oxfmt/binding-freebsd-x64@0.46.0': + '@oxfmt/binding-freebsd-x64@0.48.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.48.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.46.0': + '@oxfmt/binding-linux-arm-musleabihf@0.48.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.46.0': + '@oxfmt/binding-linux-arm64-gnu@0.48.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.46.0': + '@oxfmt/binding-linux-arm64-musl@0.48.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.46.0': + '@oxfmt/binding-linux-ppc64-gnu@0.48.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.46.0': + '@oxfmt/binding-linux-riscv64-gnu@0.48.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.46.0': + '@oxfmt/binding-linux-riscv64-musl@0.48.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.46.0': + '@oxfmt/binding-linux-s390x-gnu@0.48.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.46.0': + '@oxfmt/binding-linux-x64-gnu@0.48.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.46.0': + '@oxfmt/binding-linux-x64-musl@0.48.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.46.0': + '@oxfmt/binding-openharmony-arm64@0.48.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.46.0': + '@oxfmt/binding-win32-arm64-msvc@0.48.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.46.0': + '@oxfmt/binding-win32-ia32-msvc@0.48.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.46.0': + '@oxfmt/binding-win32-x64-msvc@0.48.0': optional: true - '@oxlint/binding-android-arm-eabi@1.61.0': + '@oxlint/binding-android-arm-eabi@1.63.0': optional: true - '@oxlint/binding-android-arm64@1.61.0': + '@oxlint/binding-android-arm64@1.63.0': optional: true - '@oxlint/binding-darwin-arm64@1.61.0': + '@oxlint/binding-darwin-arm64@1.63.0': optional: true - '@oxlint/binding-darwin-x64@1.61.0': + '@oxlint/binding-darwin-x64@1.63.0': optional: true - '@oxlint/binding-freebsd-x64@1.61.0': + '@oxlint/binding-freebsd-x64@1.63.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.61.0': + '@oxlint/binding-linux-arm-gnueabihf@1.63.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.61.0': + '@oxlint/binding-linux-arm-musleabihf@1.63.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.61.0': + '@oxlint/binding-linux-arm64-gnu@1.63.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.61.0': + '@oxlint/binding-linux-arm64-musl@1.63.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.61.0': + '@oxlint/binding-linux-ppc64-gnu@1.63.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.61.0': + '@oxlint/binding-linux-riscv64-gnu@1.63.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.61.0': + '@oxlint/binding-linux-riscv64-musl@1.63.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.61.0': + '@oxlint/binding-linux-s390x-gnu@1.63.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.61.0': + '@oxlint/binding-linux-x64-gnu@1.63.0': optional: true - '@oxlint/binding-linux-x64-musl@1.61.0': + '@oxlint/binding-linux-x64-musl@1.63.0': optional: true - '@oxlint/binding-openharmony-arm64@1.61.0': + '@oxlint/binding-openharmony-arm64@1.63.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.61.0': + '@oxlint/binding-win32-arm64-msvc@1.63.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.61.0': + '@oxlint/binding-win32-ia32-msvc@1.63.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.61.0': + '@oxlint/binding-win32-x64-msvc@1.63.0': optional: true '@pkgjs/parseargs@0.11.0': @@ -3926,45 +3854,10 @@ snapshots: - typescript - utf-8-validate - '@ston-fi/api@0.32.0': - dependencies: - camelcase-keys: 9.1.3 - decamelize-keys: 2.0.1 - ofetch: 1.4.1 - - '@ston-fi/sdk@2.7.0(@ston-fi/api@0.32.0)(@ton/ton@16.2.2(@ton/core@0.63.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0))': - dependencies: - '@ston-fi/api': 0.32.0 - '@ton/ton': 16.2.2(@ton/core@0.63.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0) - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 - '@ton/core@0.63.1(@ton/crypto@3.3.0)': - dependencies: - '@ton/crypto': 3.3.0 - - '@ton/crypto-primitives@2.1.0': - dependencies: - jssha: 3.2.0 - - '@ton/crypto@3.3.0': - dependencies: - '@ton/crypto-primitives': 2.1.0 - jssha: 3.2.0 - tweetnacl: 1.0.3 - - '@ton/ton@16.2.2(@ton/core@0.63.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0)': - dependencies: - '@ton/core': 0.63.1(@ton/crypto@3.3.0) - '@ton/crypto': 3.3.0 - axios: 1.13.6 - dataloader: 2.2.3 - zod: 3.25.76 - transitivePeerDependencies: - - debug - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -4367,19 +4260,10 @@ snapshots: callsites@3.1.0: {} - camelcase-keys@9.1.3: - dependencies: - camelcase: 8.0.0 - map-obj: 5.0.0 - quick-lru: 6.1.2 - type-fest: 4.41.0 - camelcase@5.3.1: {} camelcase@6.3.0: {} - camelcase@8.0.0: {} - caniuse-lite@1.0.30001745: {} chalk@4.1.2: @@ -4459,21 +4343,10 @@ snapshots: data-uri-to-buffer@4.0.1: {} - dataloader@2.2.3: {} - debug@4.4.3: dependencies: ms: 2.1.3 - decamelize-keys@2.0.1: - dependencies: - decamelize: 6.0.1 - map-obj: 4.3.0 - quick-lru: 6.1.2 - type-fest: 3.13.1 - - decamelize@6.0.1: {} - dedent@1.7.0: {} deepmerge@4.3.1: {} @@ -4484,8 +4357,6 @@ snapshots: depd@2.0.0: {} - destr@2.0.5: {} - detect-newline@3.1.0: {} diff@8.0.3: {} @@ -5219,7 +5090,7 @@ snapshots: - supports-color - ts-node - jiti@2.6.1: {} + jiti@2.7.0: {} js-sha3@0.8.0: {} @@ -5244,17 +5115,15 @@ snapshots: jsonparse@1.3.1: {} - jssha@3.2.0: {} - - knip@6.6.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): + knip@6.12.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): dependencies: fdir: 6.5.0(picomatch@4.0.4) formatly: 0.3.0 get-tsconfig: 4.14.0 - jiti: 2.6.1 + jiti: 2.7.0 minimist: 1.2.8 - oxc-parser: 0.127.0 - oxc-resolver: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + oxc-parser: 0.128.0 + oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) picomatch: 4.0.4 smol-toml: 1.6.1 strip-json-comments: 5.0.3 @@ -5292,10 +5161,6 @@ snapshots: dependencies: tmpl: 1.0.5 - map-obj@4.3.0: {} - - map-obj@5.0.0: {} - math-intrinsics@1.1.0: {} media-typer@1.1.0: {} @@ -5345,8 +5210,6 @@ snapshots: node-domexception@1.0.0: {} - node-fetch-native@1.6.7: {} - node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -5372,12 +5235,6 @@ snapshots: object-inspect@1.13.4: {} - ofetch@1.4.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.3 - on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -5390,32 +5247,32 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oxc-parser@0.127.0: + oxc-parser@0.128.0: dependencies: - '@oxc-project/types': 0.127.0 + '@oxc-project/types': 0.128.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.127.0 - '@oxc-parser/binding-android-arm64': 0.127.0 - '@oxc-parser/binding-darwin-arm64': 0.127.0 - '@oxc-parser/binding-darwin-x64': 0.127.0 - '@oxc-parser/binding-freebsd-x64': 0.127.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.127.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.127.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.127.0 - '@oxc-parser/binding-linux-arm64-musl': 0.127.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.127.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.127.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.127.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.127.0 - '@oxc-parser/binding-linux-x64-gnu': 0.127.0 - '@oxc-parser/binding-linux-x64-musl': 0.127.0 - '@oxc-parser/binding-openharmony-arm64': 0.127.0 - '@oxc-parser/binding-wasm32-wasi': 0.127.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.127.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.127.0 - '@oxc-parser/binding-win32-x64-msvc': 0.127.0 - - oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): + '@oxc-parser/binding-android-arm-eabi': 0.128.0 + '@oxc-parser/binding-android-arm64': 0.128.0 + '@oxc-parser/binding-darwin-arm64': 0.128.0 + '@oxc-parser/binding-darwin-x64': 0.128.0 + '@oxc-parser/binding-freebsd-x64': 0.128.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.128.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.128.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.128.0 + '@oxc-parser/binding-linux-arm64-musl': 0.128.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.128.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.128.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.128.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.128.0 + '@oxc-parser/binding-linux-x64-gnu': 0.128.0 + '@oxc-parser/binding-linux-x64-musl': 0.128.0 + '@oxc-parser/binding-openharmony-arm64': 0.128.0 + '@oxc-parser/binding-wasm32-wasi': 0.128.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.128.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.128.0 + '@oxc-parser/binding-win32-x64-msvc': 0.128.0 + + oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.19.1 '@oxc-resolver/binding-android-arm64': 11.19.1 @@ -5433,7 +5290,7 @@ snapshots: '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 '@oxc-resolver/binding-linux-x64-musl': 11.19.1 '@oxc-resolver/binding-openharmony-arm64': 11.19.1 - '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 @@ -5441,51 +5298,51 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - oxfmt@0.46.0: + oxfmt@0.48.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.46.0 - '@oxfmt/binding-android-arm64': 0.46.0 - '@oxfmt/binding-darwin-arm64': 0.46.0 - '@oxfmt/binding-darwin-x64': 0.46.0 - '@oxfmt/binding-freebsd-x64': 0.46.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.46.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.46.0 - '@oxfmt/binding-linux-arm64-gnu': 0.46.0 - '@oxfmt/binding-linux-arm64-musl': 0.46.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.46.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.46.0 - '@oxfmt/binding-linux-riscv64-musl': 0.46.0 - '@oxfmt/binding-linux-s390x-gnu': 0.46.0 - '@oxfmt/binding-linux-x64-gnu': 0.46.0 - '@oxfmt/binding-linux-x64-musl': 0.46.0 - '@oxfmt/binding-openharmony-arm64': 0.46.0 - '@oxfmt/binding-win32-arm64-msvc': 0.46.0 - '@oxfmt/binding-win32-ia32-msvc': 0.46.0 - '@oxfmt/binding-win32-x64-msvc': 0.46.0 - - oxlint@1.61.0: + '@oxfmt/binding-android-arm-eabi': 0.48.0 + '@oxfmt/binding-android-arm64': 0.48.0 + '@oxfmt/binding-darwin-arm64': 0.48.0 + '@oxfmt/binding-darwin-x64': 0.48.0 + '@oxfmt/binding-freebsd-x64': 0.48.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.48.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.48.0 + '@oxfmt/binding-linux-arm64-gnu': 0.48.0 + '@oxfmt/binding-linux-arm64-musl': 0.48.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.48.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.48.0 + '@oxfmt/binding-linux-riscv64-musl': 0.48.0 + '@oxfmt/binding-linux-s390x-gnu': 0.48.0 + '@oxfmt/binding-linux-x64-gnu': 0.48.0 + '@oxfmt/binding-linux-x64-musl': 0.48.0 + '@oxfmt/binding-openharmony-arm64': 0.48.0 + '@oxfmt/binding-win32-arm64-msvc': 0.48.0 + '@oxfmt/binding-win32-ia32-msvc': 0.48.0 + '@oxfmt/binding-win32-x64-msvc': 0.48.0 + + oxlint@1.63.0: optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.61.0 - '@oxlint/binding-android-arm64': 1.61.0 - '@oxlint/binding-darwin-arm64': 1.61.0 - '@oxlint/binding-darwin-x64': 1.61.0 - '@oxlint/binding-freebsd-x64': 1.61.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.61.0 - '@oxlint/binding-linux-arm-musleabihf': 1.61.0 - '@oxlint/binding-linux-arm64-gnu': 1.61.0 - '@oxlint/binding-linux-arm64-musl': 1.61.0 - '@oxlint/binding-linux-ppc64-gnu': 1.61.0 - '@oxlint/binding-linux-riscv64-gnu': 1.61.0 - '@oxlint/binding-linux-riscv64-musl': 1.61.0 - '@oxlint/binding-linux-s390x-gnu': 1.61.0 - '@oxlint/binding-linux-x64-gnu': 1.61.0 - '@oxlint/binding-linux-x64-musl': 1.61.0 - '@oxlint/binding-openharmony-arm64': 1.61.0 - '@oxlint/binding-win32-arm64-msvc': 1.61.0 - '@oxlint/binding-win32-ia32-msvc': 1.61.0 - '@oxlint/binding-win32-x64-msvc': 1.61.0 + '@oxlint/binding-android-arm-eabi': 1.63.0 + '@oxlint/binding-android-arm64': 1.63.0 + '@oxlint/binding-darwin-arm64': 1.63.0 + '@oxlint/binding-darwin-x64': 1.63.0 + '@oxlint/binding-freebsd-x64': 1.63.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.63.0 + '@oxlint/binding-linux-arm-musleabihf': 1.63.0 + '@oxlint/binding-linux-arm64-gnu': 1.63.0 + '@oxlint/binding-linux-arm64-musl': 1.63.0 + '@oxlint/binding-linux-ppc64-gnu': 1.63.0 + '@oxlint/binding-linux-riscv64-gnu': 1.63.0 + '@oxlint/binding-linux-riscv64-musl': 1.63.0 + '@oxlint/binding-linux-s390x-gnu': 1.63.0 + '@oxlint/binding-linux-x64-gnu': 1.63.0 + '@oxlint/binding-linux-x64-musl': 1.63.0 + '@oxlint/binding-openharmony-arm64': 1.63.0 + '@oxlint/binding-win32-arm64-msvc': 1.63.0 + '@oxlint/binding-win32-ia32-msvc': 1.63.0 + '@oxlint/binding-win32-x64-msvc': 1.63.0 p-limit@2.3.0: dependencies: @@ -5558,8 +5415,6 @@ snapshots: dependencies: side-channel: 1.1.0 - quick-lru@6.1.2: {} - range-parser@1.2.1: {} raw-body@3.0.2: @@ -5864,14 +5719,10 @@ snapshots: tslib@2.8.1: {} - tweetnacl@1.0.3: {} - type-detect@4.0.8: {} type-fest@0.21.3: {} - type-fest@3.13.1: {} - type-fest@4.41.0: {} type-is@2.0.1: @@ -5882,8 +5733,6 @@ snapshots: typescript@5.9.3: {} - ufo@1.6.3: {} - uglify-js@3.19.3: optional: true diff --git a/scripts/provider-bench.ts b/scripts/provider-bench.ts index 01a6e5d..1519390 100644 --- a/scripts/provider-bench.ts +++ b/scripts/provider-bench.ts @@ -2,40 +2,22 @@ import fs from "node:fs"; import path from "node:path"; import { performance } from "node:perf_hooks"; -import { Chain, Quote, QuoteRequest } from "@gemwallet/types"; +import { Quote, QuoteRequest } from "@gemwallet/types"; -import { CetusAggregatorProvider, MayanProvider, Protocol, StonfiProvider } from "../packages/swapper/src"; +import { CetusAggregatorProvider, MayanProvider, Protocol } from "../packages/swapper/src"; const SOLANA_RPC = process.env.SOLANA_URL || "https://solana-rpc.publicnode.com"; const SUI_RPC = process.env.SUI_URL || "https://fullnode.mainnet.sui.io"; -const TON_RPC = process.env.TON_URL || "https://toncenter.com"; const PROVIDER_FACTORY = { cetus: () => new CetusAggregatorProvider(SUI_RPC), mayan: () => new MayanProvider(SOLANA_RPC, SUI_RPC), - stonfi_v2: () => new StonfiProvider(TON_RPC), } satisfies Record Protocol>; type ProviderId = keyof typeof PROVIDER_FACTORY; const SUPPORTED_PROVIDERS = Object.keys(PROVIDER_FACTORY) as ProviderId[]; -const STONFI_BENCH_WALLET_ADDRESS = "EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N"; - -const DEFAULT_REQUESTS: Partial> = { - stonfi_v2: { - from_address: STONFI_BENCH_WALLET_ADDRESS, - to_address: STONFI_BENCH_WALLET_ADDRESS, - from_asset: { id: Chain.Ton, symbol: "TON", decimals: 9 }, - to_asset: { - id: `${Chain.Ton}_EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs`, - symbol: "USDT", - decimals: 6, - }, - from_value: "1000000000", - referral_bps: 0, - slippage_bps: 100, - use_max_amount: false, - }, -}; + +const DEFAULT_REQUESTS: Partial> = {}; type CliOptions = { providerId: ProviderId; @@ -59,7 +41,7 @@ function parseArgs(argv: string[]): CliOptions { return undefined; }; - const rawProvider = getValue("--provider") ?? "stonfi_v2"; + const rawProvider = getValue("--provider") ?? "mayan"; const iterations = Number(getValue("--iterations") ?? "2"); const includeQuoteData = !args.includes("--skip-quote-data"); const requestPath = getValue("--request"); From ebdd06a4c72a6b31b4f76d97d78f9f8db3366560 Mon Sep 17 00:00:00 2001 From: 0xh3rman <119309671+0xh3rman@users.noreply.github.com> Date: Sun, 10 May 2026 23:43:06 +0900 Subject: [PATCH 2/2] Remove provider-bench script --- justfile | 3 -- scripts/provider-bench.ts | 109 -------------------------------------- 2 files changed, 112 deletions(-) delete mode 100644 scripts/provider-bench.ts diff --git a/justfile b/justfile index 5bf31e3..03bd12f 100644 --- a/justfile +++ b/justfile @@ -33,9 +33,6 @@ test-integration: check: lint format-check build test -bench PROVIDER="mayan" ITERATIONS="2": - pnpm exec ts-node -P packages/swapper/tsconfig.json scripts/provider-bench.ts --provider {{PROVIDER}} --iterations {{ITERATIONS}} - clean: pnpm run clean rm -rf packages/swapper/dist packages/swapper/tsconfig.tsbuildinfo diff --git a/scripts/provider-bench.ts b/scripts/provider-bench.ts deleted file mode 100644 index 1519390..0000000 --- a/scripts/provider-bench.ts +++ /dev/null @@ -1,109 +0,0 @@ -import fs from "node:fs"; -import path from "node:path"; -import { performance } from "node:perf_hooks"; - -import { Quote, QuoteRequest } from "@gemwallet/types"; - -import { CetusAggregatorProvider, MayanProvider, Protocol } from "../packages/swapper/src"; - -const SOLANA_RPC = process.env.SOLANA_URL || "https://solana-rpc.publicnode.com"; -const SUI_RPC = process.env.SUI_URL || "https://fullnode.mainnet.sui.io"; - -const PROVIDER_FACTORY = { - cetus: () => new CetusAggregatorProvider(SUI_RPC), - mayan: () => new MayanProvider(SOLANA_RPC, SUI_RPC), -} satisfies Record Protocol>; - -type ProviderId = keyof typeof PROVIDER_FACTORY; -const SUPPORTED_PROVIDERS = Object.keys(PROVIDER_FACTORY) as ProviderId[]; - -const DEFAULT_REQUESTS: Partial> = {}; - -type CliOptions = { - providerId: ProviderId; - iterations: number; - includeQuoteData: boolean; - requestPath?: string; -}; - -function parseArgs(argv: string[]): CliOptions { - const args = argv.slice(2); - const getValue = (key: string): string | undefined => { - const prefix = `${key}=`; - const match = args.find((arg) => arg.startsWith(prefix)); - if (match) { - return match.slice(prefix.length); - } - const index = args.findIndex((arg) => arg === key); - if (index >= 0) { - return args[index + 1]; - } - return undefined; - }; - - const rawProvider = getValue("--provider") ?? "mayan"; - const iterations = Number(getValue("--iterations") ?? "2"); - const includeQuoteData = !args.includes("--skip-quote-data"); - const requestPath = getValue("--request"); - - const providerId = SUPPORTED_PROVIDERS.find((value) => value === rawProvider); - if (!providerId) { - throw new Error(`Unsupported provider "${rawProvider}". Supported: ${SUPPORTED_PROVIDERS.join(", ")}`); - } - - return { - providerId, - iterations: Number.isFinite(iterations) && iterations > 0 ? iterations : 2, - includeQuoteData, - requestPath, - }; -} - -function loadRequest(opts: CliOptions): QuoteRequest { - if (opts.requestPath) { - const resolved = path.resolve(process.cwd(), opts.requestPath); - const raw = fs.readFileSync(resolved, "utf8"); - return JSON.parse(raw) as QuoteRequest; - } - - const fallback = DEFAULT_REQUESTS[opts.providerId]; - if (!fallback) { - throw new Error("Provide --request for this provider"); - } - return fallback; -} - -async function time(label: string, fn: () => Promise): Promise { - const start = performance.now(); - const result = await fn(); - const duration = performance.now() - start; - process.stdout.write(`${label}: ${duration.toFixed(0)} ms\n`); - return result; -} - -function formatError(error: unknown): string { - if (error instanceof Error) { - return error.stack ?? error.message; - } - return String(error); -} - -async function main() { - const opts = parseArgs(process.argv); - const provider = PROVIDER_FACTORY[opts.providerId](); - const request = loadRequest(opts); - - let lastQuote: Quote | null = null; - for (let i = 0; i < opts.iterations; i++) { - lastQuote = await time(`quote#${i + 1}`, () => provider.get_quote(request)); - } - - if (opts.includeQuoteData && lastQuote) { - await time("quote_data", () => provider.get_quote_data(lastQuote as Quote)); - } -} - -main().catch((error) => { - process.stderr.write(`Benchmark failed: ${formatError(error)}\n`); - process.exit(1); -});